What this app does
Plots your entire rating history from your very first contest and overlays a fitted regression curve (linear, quadratic, or cubic) to best approximate your rating trend
Projected curve fit into your rating chart
Actual contest rating changes in all the contests a user has participated in so far
Predicts your future rating month-by-month until December 2025. Future Rating Predictions (Monthly till Dec 2025)
Approach
1. Fetches a user's entire contest history : Codeforces RatingChange API
Each contest entry includes:
contestId: Unique ID of the contest
contestName: Name of the contest
handle: User's Codeforces handle
newRating: Rating after the contest
ratingUpdateTimeSeconds: UNIX timestamp (converted to a readable date)
2. Machine Learning technique — Polynomial Regression : Fits a smooth curve through a user's rating history using polynomial regression.
I tried linear regression, and polynomial regression with degrees 2 and 3 but since most people participated in less than 100 contests, polynomial regression (with degrees 2 and 3) caused overfitting and showed absurd results but it works fine for some users who participated in a large number of contests.
I tried to improve the balance in the dataset before training by over-sampling some data points for some users with very less number of contests but i suggest most users to use the Linear regression approach (Polynomial Regression with degree 1) in order to obtain smooth and more accurate results but I have given the option to view the results produced by the higher degree polynomials as well in the dropdown in the bottom of the page.
You can access it from here : Codeforces Future rating Predictor
NOTE : Since I used the free-tier of Render to deploy the backend, it will spin down to sleep mode in case of prolonged inactivity and in such cases it would take slightly longer time to return results (3-4 mins), otherwise it would return results instantly in few seconds.
Disclaimer
These predictions are NOT 100% accurate. They are generated using your past contest ratings only. The model does not account for upcoming contest performance, competition difficulty, relative ranking, or rating inflation. Also, the more contests a user has participated in, the better the prediction will be.
Looking forward for your feedback, Thank you!








I highly appreciate your efforts, some suggestion I would like to add a suggestion(I am a complete noob in ML things)
I think using neural network approach will work better, because as your rating increase, your delta will not be same. For doing this you can train your model on at least 500-1000 accounts and also take no. of problem solved and rating of problems as a parameter and these things will add on to make more accurate curves.
It's unrealistic for you to simply fit our rating points into a linear function. If a new account participates in all competitions within one month and receives 1800 ratings, do you think he will reach Tourist within half a year? The answer is negative, but your model doesn't consider anything.
Yeah, I understood but it is very rare that someone is reaching expert or specialist in just 5-10 contests, it is possible but it is rare and it is an outlier in the dataset, but yeah you're right but this approach would work for most of the users on codeforces not with 100% accuracy but it can be a decent fit into their rating chart and there is an option for fitting various kinds of polynomial curves in my web-app not just linear. In statistical models, some outliers exist and it is not possible so satisfy every user.
I think that you should omit the first $$$5$$$ contests from the analysis because the rating is stabilizing in those contests. Leaving them in leads to artificially high predictions.
If someone has participated in at least 10-15 contests then those first 5 wouldn't make much difference as it can be seen for some handles in the application, also I have done over-sampling to prevent this, after the first 4 contests i added some synthetic data points to prevent this effect which you said
Such a smart community, yet they keep linear freaking regression to predict rating (I have seen another guy using average difficulty of problem solved as feature and also using linear regression). Common guys, can't we do better than this? If this gets 40 likes I'll drop a foundational model that takes in data of a user, generates embeddings and predicts the user rating in 3, 6 and 12 months. I'll also post the dataset on Kaggle, so people won't have to DOS codeforces serves everytime.
Update: ok guys, I will do it, just wait 1 or 2 weeks for a blog (I have to work, so I barely have time to do this outside of weekend)
With a simple linear regression model like this, expect high inaccuracies (bias). Don't get too excited folks, it seems like someone from first year has made this project.
I know it's not accurate but 2088 by end of November seems pretty nice to me :)
Wow, the model says I’ll reach 7000 rating by the end of the year! tourist better watch out.
I am waiting for my 4339 rating by the end of the year.
LMFAO I wish this was how rating progression worked... Linear regression thinks I should've become CM weeks ago, yet I'm barely hovering above specialist now :(
Can you check my profile and tell me what I make out of these results?
Degree 1 told me I might go in 1858, Degree 2 says 1769, and Degree 3 says 909 (which scares me, lol).
Can you add a feature to select a particular timeline only, like I gave 5-6 contests initially, then left CP for 1 year, and came back and gave 75+ contests, but I think those 5-6 contests are affecting the graph. Rest, it is a good model.
yeah, we are working on improving the prediction and yeah we'll add that feature too of selecting a particular timeline. don't worry about the degree 2/3 predictions they work better if the number of contests is super high and if a user is participating in contests consistently. Thanks for your feedback