Companies
Skip to content

Free tool

LeetCode Rating Predictor

Enter your rating and where you finished to estimate your contest rating change — and see why it lands where it does.

Estimated change
+84
likely +68 to +100
New rating
1584
midpoint estimate
Expected rank
13,001
you beat expectation

This is an estimate. LeetCode computes your change against the actual rating of every person in the contest; that list is not public until the contest is rated, so the calculation above models a typical field instead. Expect it to be close on a normal weekly contest and further off when the field is unusual or you have very few contests behind you.

How LeetCode rating is actually calculated

LeetCode's system is adapted from the Open Codeforces rating system. Elo was designed for two players, so a contest with tens of thousands of people is handled by treating it as everyone playing everyone else at once. It runs in three steps.

1. Your expected rank. For each other contestant, the probability they finish above you is 1 / (1 + 10^((your_rating − their_rating) / 400)). Add those probabilities across the whole field and you get the position you were expected to take. A 1500-rated player in a field of 26,000 is expected to land close to the middle.

2. The midpoint between expectation and reality. The system takes the geometric mean of your expected rank and your actual rank — the square root of the two multiplied together. This is what stops one exceptional or disastrous contest from moving you the whole way.

3. A fraction of the gap. It finds the rating that would have been expected to finish at that midpoint, then moves you part of the way there. That fraction starts near one half and decays toward about two ninths as you attend more contests, which is why new accounts swing hard and settled ones crawl.

The practical consequence is the one most people find counter-intuitive: your rating change has almost nothing to do with how many problems you solved. It depends on your finishing rank relative to the rank your current rating predicted. Solving three problems is a large gain at 1400 and a loss at 2200.

What this tool cannot know

Step 1 needs the rating of every person in your specific contest. LeetCode does not publish that until the contest is rated, so this calculator models a typical weekly field rather than the real one, and the decay in step 3 follows a published schedule that crackalgo can only approximate. Both are why the result is shown as a range. Treat it as a well-founded estimate of where you will land, not as the official number — that arrives when LeetCode rates the contest.

Frequently asked

How accurate is this LeetCode rating predictor?

It is an estimate, and it is worth understanding why. LeetCode calculates your change against the actual rating of every other person in that contest. That list is not published until the contest is rated, so no predictor can use it beforehand — this one models a typical weekly field instead. On an ordinary weekly contest the estimate is usually close. It drifts furthest when the field is unusual, or when you have only a handful of contests behind you, because the multiplier applied to new accounts is the least precisely documented part of the algorithm.

How does the LeetCode rating system work?

It is an adaptation of the Open Codeforces rating system. First it works out where you were expected to finish, by summing the probability that each other contestant beats you — a standard Elo calculation on a 400-point scale. Then it takes the geometric mean of that expected rank and where you actually finished. Finally it finds the rating that would have been expected to finish at that midpoint, and moves you a fraction of the way toward it. Beat your expected rank and you gain; finish below it and you lose.

Why do new accounts gain and lose rating so much faster?

The fraction of the gap applied each contest starts around one half and decays toward roughly two ninths as you attend more rated contests. The system is deliberately unsure where a new account belongs, so it moves quickly; once you have a track record it moves slowly. This is why the same rank can be worth three times the points to a newcomer.

Why did my rating barely move even though I did well?

Because rating measures performance against expectation, not against the problem set. If you are rated 1900 in a field of 26,000, you are already expected to finish around 5,000th. Coming 4,000th is a mild overperformance and earns a small gain. To move a high rating substantially you have to beat an expectation that is already demanding.

Does everyone who solves the same number of problems get the same rating change?

No. Only your finishing rank matters, and rank is decided by problems solved and the time taken, including penalties. Two people who solve three problems can finish thousands of places apart, and their rating changes differ accordingly. Your current rating matters too, because it sets the expectation you are measured against.

Is this rating predictor free?

Yes, completely, and no account is needed. Nothing is held back and there is no paid tier.

Related

Want your live rating and contest history instead of typing it in? Connect your LeetCode profile.