What an Elo rating actually measures
An Elo rating is not a score and not a percentage. It is a position on a scale built so that the difference between two ratings, and nothing else, predicts the result. Arpad Elo, a physics professor and strong chess player, proposed the system to the United States Chess Federation in the 1960s to replace an older percentage-based scheme, and FIDE adopted it in 1970. The same machinery now runs behind chess ladders, Go servers, competitive video game matchmaking, table tennis leagues and a long tail of board game clubs.
The scale is anchored by one design decision: a gap of 400 points corresponds to odds of ten to one. A player rated 400 points above you is expected to take about 0.91 points from every game, which is a win rate of 91% if draws are ignored. Halve the gap to 200 points and the favourite's expectancy falls to about 0.76. Close the gap to zero and both players expect 0.50. Because only the difference matters, the absolute numbers are arbitrary; a pool of players whose ratings all rose by 300 points overnight would produce identical predictions.
The second design decision is that the rating is a running estimate that updates after every game. You do not recompute a player's whole history; you nudge the current number toward the evidence the latest game supplied. How hard you nudge is the development coefficient K, and choosing it is the only genuinely contested part of the system.
The formula, term by term
Two equations do all the work. The first converts a rating difference into an expected score:
E = 1 / (1 + 10^((Ro - R) / 400))
Read it from the inside out. Ro - R is how many points your opponent is above you, so it is positive when you are the underdog. Dividing by 400 expresses that gap in units of "one full order of magnitude of odds". Raising 10 to that power turns it into an odds ratio: a gap of 400 gives 101 = 10, meaning the opponent is ten times as likely to win. The final step, 1 / (1 + odds), converts odds into a probability. That shape is the logistic curve, and it is why expectancy flattens out at the extremes: the difference between a 600-point gap and an 800-point gap barely changes anything, which is exactly why both FIDE and the USCF stop counting past 400.
The second equation moves your rating:
R' = R + K x (S - E)
S - E is the surprise. If you were expected to score 0.24 and you won, the surprise is +0.76 and your rating rises. If you were expected to score 0.91 and you drew, the surprise is -0.41 and your rating falls even though you did not lose. The system is zero-sum in a single game: whatever you gain, your opponent loses, provided both players use the same K. When the two players carry different coefficients - a junior on 40 against a grandmaster on 10 - rating points are created or destroyed, which is one reason rating pools drift over decades.
For a tournament, FIDE sums the change across all games in the event and applies it once at the end. That is why this calculator rates every round against your starting rating rather than updating between rounds; updating in sequence would give a different answer, and it is not what the regulations do.
Worked example: a three-round weekend at 1650
You start the event rated 1650 with an established coefficient of K = 20. You beat a 1720, draw a 1580 and lose to an 1810.
- Game 1, opponent 1720. The gap is 1720 - 1650 = 70 points against you. 70 / 400 = 0.175, and 100.175 = 1.4962. So E = 1 / (1 + 1.4962) = 0.4006. You won, so the surprise is 1 - 0.4006 = +0.5994.
- Game 2, opponent 1580. The gap is 1580 - 1650 = -70, in your favour. 10-0.175 = 0.6684, so E = 1 / 1.6684 = 0.5994. You drew, so the surprise is 0.5 - 0.5994 = -0.0994.
- Game 3, opponent 1810. The gap is +160. 160 / 400 = 0.4, and 100.4 = 2.5119. E = 1 / 3.5119 = 0.2848. You lost, so the surprise is 0 - 0.2848 = -0.2848.
- Add up. Total expected score = 0.4006 + 0.5994 + 0.2848 = 1.2848. Total actual score = 1 + 0.5 + 0 = 1.5.
- Apply K. Change = 20 x (1.5 - 1.2848) = 20 x 0.2152 = +4.30 points.
- New rating. 1650 + 4.30 = 1654.3, published as 1654.
Notice how little the draw against the 1580 cost you and how little the loss to the 1810 cost you. Against a field averaging 1703 you were expected to score 1.28 out of 3, and 1.5 beat that. A weekend that felt mediocre - one win, one draw, one loss - was in fact a slightly above-par performance, and that is the whole point of having a rating rather than a win percentage.
How to read the result
Judge the change against the size of K, not against the raw points. With K = 20 the theoretical maximum from one game is 20 points, so a +4.30 result is a little over a fifth of what one maximally surprising game could deliver. A single game can never move you more than K, and it only approaches that when a heavy underdog wins.
The most useful diagnostic is your score against expectation, not your score. If you take 1.5 from a field where the formula expected 1.28, you performed at roughly the level of a player rated somewhat above 1650 - the performance rating calculator turns that into an explicit number, which is what selection committees and norm calculations look at. A rating change of zero across a long event means the field was correctly priced against you, which is the normal outcome for a settled player.
Expect volatility to shrink as you play more. Ratings are estimates, and the standard error of a rating after a handful of games is large. FIDE's answer is to start players on a high coefficient so the estimate finds its level quickly, then drop it. The USCF's answer is an explicitly variable coefficient tied to the number of games played, which behaves like a running average whose weight on new evidence declines. Either way, if you are in your first thirty rated games, treat your rating as a rough bracket rather than a measurement.
Expected score by rating difference
| Gap (opponent minus you) | Your expected score | Gain for a win at K=20 | Loss for a defeat at K=20 |
|---|---|---|---|
| -400 or more in your favour | 0.9091 | +1.82 | -18.18 |
| -300 | 0.8490 | +3.02 | -16.98 |
| -200 | 0.7597 | +4.81 | -15.19 |
| -100 | 0.6401 | +7.20 | -12.80 |
| -50 | 0.5714 | +8.57 | -11.43 |
| 0 | 0.5000 | +10.00 | -10.00 |
| +50 | 0.4286 | +11.43 | -8.57 |
| +100 | 0.3599 | +12.80 | -7.20 |
| +200 | 0.2403 | +15.19 | -4.81 |
| +300 | 0.1510 | +16.98 | -3.02 |
| +400 or more against you | 0.0909 | +18.18 | -1.82 |
Rows beyond 400 points repeat the 400-point row because both FIDE and the USCF cap the difference there. A draw is worth the average of the win and loss figures in the same row, because K(0.5 - E) is the midpoint of K(1 - E) and K(0 - E), so at a gap of zero a draw moves nothing.
Mistakes that produce a wrong rating change
- Updating your rating between rounds. A tournament is rated as a block against the rating you entered with. Recomputing round by round changes the answer and does not match the regulations.
- Mixing rating lists. A FIDE rating and a national rating are different scales for the same players, often differing by 50 to 150 points in either direction. Rate a game with both players' figures from the same list.
- Using the wrong K. Under the FIDE regulations K is 40 while you are new to the list or a junior below a stated ceiling, 20 for an established player who has never reached 2400, and 10 once your rating has touched 2400 - permanently, even if it later falls back.
- Ignoring the 400-point cap. Without it, beating a 900-rated player as a 2000 looks like a change of +0.1 rather than +0.9, and losing looks catastrophic rather than merely bad.
- Assuming the pool is stable. Elo predicts results within a pool. Comparing a 1900 on a strict national list with a 1900 on a generous online ladder is not meaningful, because the two pools were never calibrated against each other.
- Expecting draws to be free. A draw against a much weaker opponent costs you points, because the formula priced a win. Half a point is only a good result when the expectancy was below 0.5.
Which standard this follows
The calculation follows the FIDE Rating Regulations: expectancy from the logistic formula above, the rating difference capped at 400 points, results summed across an event and the change applied once. The K values offered in the dropdown include the three FIDE bands (40, 20, 10) plus coefficients used by other bodies and online ladders. FIDE has revised both the K bands and the published rating floor over the years, so confirm the current values in the FIDE Handbook before submitting a calculation that matters. The USCF uses the same expectancy curve but a formally different update rule with a variable coefficient and bonus provisions, so a USCF change will not match this figure exactly.
Where Elo stops and what replaces it
Elo carries one number per player and therefore cannot distinguish a settled 1800 from a volatile 1800 who might be anywhere between 1600 and 2000. Mark Glickman's Glicko system fixes exactly that by carrying a rating deviation alongside the rating, so an uncertain player moves further per game and an inactive player's uncertainty grows back over time. Glicko-2 adds a volatility term. Microsoft's TrueSkill extends the idea to team games and multiplayer free-for-alls, where the credit for a result has to be split among several players. Most large online ladders now run one of these rather than plain Elo, even when the interface still calls the number "Elo".
Within a single event, the natural companion to a rating change is a performance rating, which asks what rating would have made your actual score exactly expected. For team sports the analogous idea is the Pythagorean win expectation, which predicts standings from points scored and conceded rather than from a per-player rating. If you are organising the event rather than playing in it, the round robin games calculator and the single elimination bracket calculator size the schedule, and a rating-based expectancy is also the cleanest way to convert a match-up into the fair price that a betting odds converter would quote.
One last caution about the curve itself. Elo assumed a normal distribution of performance; FIDE and the USCF both switched to the logistic curve because it fits real results better at the extremes, and the logistic is what this calculator uses. The two differ by only a point or two of expectancy in the middle of the range, but they diverge where the gap is large - which is another reason the 400-point cap exists.
Key terms
- Expected score
- The average number of points the rating gap predicts you will take per game, counting a win as 1 and a draw as 0.5. It is not a win probability, because it folds draws in at half weight.
- Development coefficient (K)
- The multiplier on the surprise term, and therefore the largest number of points a single game can move you. Higher K means faster adaptation and noisier ratings.
- Rating floor
- The lowest rating a federation will publish. Players below it are unrated or held at the floor, which prevents ratings from spiralling downward on a thin sample.
- Performance rating
- The rating that would have made your actual score in an event exactly equal to your expected score. It is a summary of one event, not a running rating.
