What this calculator does
Elo converts a rating difference into an expected score, then adjusts both players by how far the actual result was from that expectation. Beating an equal opponent with a K-factor of 20 gains exactly 10 points, half of K, because the expectation was 0.5 and the result was 1.
The size of the adjustment depends entirely on how surprising the result was. Beating a player rated 300 points below you gains only 3 points, because you were expected to win. Beating one rated 300 above gains 17. The two figures sum to 20, which is K, and that symmetry is what keeps the system stable.
The formula
The expected score is 1 divided by 1 plus 10 raised to the power of the rating difference divided by 400. The new rating is the old rating plus K multiplied by the difference between the actual score and the expected score. A win scores 1, a draw 0.5 and a loss 0. The 400 constant sets how much a rating gap shifts the expectation.
| Term | Meaning |
|---|---|
| Expected score | The probability-weighted result, from 0 to 1, implied by the rating difference. |
| K-factor | How much a single game can move a rating. Higher K means faster adjustment and more volatility. |
| 400 | The constant in the formula: a 400 point gap implies the stronger player scores about 0.91. |
| Zero sum | What one player gains the other loses, so total rating in a closed pool stays constant. |
The inputs explained
| Field | What to enter |
|---|---|
| Player A rating | Player A current rating. |
| Opponent rating | Opponent current rating. |
| Result for A | The result from player A perspective: win, draw or loss. |
| K-factor | The K-factor. Chess federations commonly use 40 for new players, 20 for established ones and 10 at the top level. |
When to use it
Working out a rating change after a game
The direct use, and the one that makes clear why beating a much weaker opponent is worth so little.
Understanding an unexpected result
A rating drop after losing to a much lower-rated player is larger than people expect, and the expected score column shows why.
Setting up a rating system
Choosing a K-factor is the main design decision, trading responsiveness against stability, and running the same game at different K values shows the effect.
Worked examples
Every figure in the tables below is produced by this page’s own calculator at build time, so the numbers and the tool always agree. Select any row to load that scenario.
How much does a win gain against each opponent?
A 1500-rated player winning against opponents of three different strengths.
| Opponent rating | Rating change | New rating for A | Expected score for A before the game |
|---|---|---|---|
| 1,200 | +3.02 | 1,503 | 0.849 |
| 1,500 | +10.00 | 1,510 | 0.500 |
| 1,800 | +16.98 | 1,517 | 0.151 |
Questions
What is the K-factor?
The maximum a single game can change a rating. FIDE uses 40 for players with fewer than 30 games, 20 for most established players and 10 for those rated above 2400. A high K adapts quickly to changing strength; a low K gives a stable rating that reflects a long history.
Why does beating a weaker player gain so little?
Because you were expected to win, so the result carries almost no information. Elo only moves a rating by the surprise in the result. Beating someone 300 points below you was 85% likely, so it gains only 15% of K.
Is Elo zero sum?
Yes, between the two players in a game: what one gains the other loses, exactly. Across a whole pool, rating inflation or deflation can still occur as players enter and leave with provisional ratings, which is a separate administrative problem.
Where else is Elo used?
Well beyond chess. Go, tennis, esports, football ranking systems and many online matchmaking systems use Elo or a descendant of it such as Glicko or TrueSkill. Those variants mainly add a measure of rating uncertainty, which plain Elo does not track.
For the chess-specific version, see the FIDE rating calculator. For win percentage over a season, see the winning percentage calculator.