Live model · Elo ratings

How Elo Ratings Actually Work

Elo turns the rating gap between two players into an expected score: E = 1 / (1 + 10^((Rb − Ra)/400)), so a player 400 points higher is expected to score 10 to 1. After the game, each rating moves by K × (result − expected). The winner gains what the loser loses, most of all after an upset.

A season of games, rated one at a time

Four players start at 1500, with K = 40. Each has a hidden strength, the bands; every result is drawn at random from those strengths. Elo sees only who won.
StopElo, game by game
K-factorHidden strengthsSeed
Game0 of 48K40Average rating1,500

Ratings and hidden strengths

PlayerRatingStrengthOff by
Ana15001750−250
Ben15001600−100
Cal15001400+100
Dee15001250+250

Ratings over the season

Ana 1750Ben 1600Cal 1400Dee 12501,2001,3001,4001,5001,6001,7001,800010203040gamerating
  • Ana
  • Ben
  • Cal
  • Dee

The bands are the hidden strengths.

Results, newest first

GameWinnerLoserChange
(none)
  • CH1 Ana
  • CH2 Ben
  • CH3 Cal
  • CH4 Dee

Watch the Python behind this model run, line by line

How to read the stage

Four players start at 1500, with hidden strengths of 1750, 1600, 1400 and 1250: the bands on the chart. Each result is drawn at random from those strengths; the ratings see only who won. The table works out each game, the expected scores and the change. After 48 games at K = 40, the ratings stand at 1698, 1594, 1426 and 1282, in the order of the strengths.

Why an upset moves so many points

In game 23, Dee, rated 1365, beats Ana, rated 1594. The 229-point gap made Dee's expected score 0.21, so Dee gains 40 × (1 − 0.21), rounded to 32, and Ana loses 32. Had Ana won, she'd have gained 8. A rating moves by how surprising the result was, and every point one player gains, the other loses, so the four still average 1500.

What K does

K is the most one game can move a rating. The stage below replays the same 48 results at K = 10: Ana ends at 1569, still 181 points under her strength. At K = 40 she gets close but swings with every upset. FIDE sets K by experience: 40 for a new player until 30 games, 20 while a rating stays under 2400, and 10 once a published rating has reached 2400.

The same results at K = 10

Four players start at 1500, with K = 10. Each has a hidden strength, the bands; every result is drawn at random from those strengths. Elo sees only who won.
StopElo, game by game
K-factor
Game0 of 48K10Average rating1,500

Ratings and hidden strengths

PlayerRatingStrengthOff by
Ana15001750−250
Ben15001600−100
Cal15001400+100
Dee15001250+250

Ratings over the season

Ana 1750Ben 1600Cal 1400Dee 12501,2001,3001,4001,5001,6001,7001,800010203040gamerating
  • Ana
  • Ben
  • Cal
  • Dee

The bands are the hidden strengths.

Results, newest first

GameWinnerLoserChange
(none)
  • CH1 Ana
  • CH2 Ben
  • CH3 Cal
  • CH4 Dee

Watch the Python behind this model run, line by line

What the model leaves out

No game here ends in a draw, which scores ½. FIDE reads the expected score from a table in its rules rather than the formula: at a 400-point gap the table says .92 where the formula gives .91, and for players under 2650 it counts any gap over 400 as 400. FIDE also rates a whole tournament and rounds the total; the model rates and rounds game by game. Chess.com and Lichess use Glicko systems instead.

Questions

How many Elo points do you get for a win?
K × (1 − E), where E is your expected score from the rating gap. Against an equal opponent E is 0.5, so a win at K = 20 earns 10. Beat someone rated 400 above you and E is 0.09, so you gain about 18. Beat someone 400 below you and you gain about 2.
Why did my rating barely move after a win?
You were expected to win. When E is close to 1, K × (1 − E) is close to nothing, while losing the same game would cost you nearly K. In the season above, Ana's last win over Dee, rated 410 points lower, earns her 3.
How does the chess.com rating work?
Chess.com says it uses the Glicko system. Glicko adds a rating deviation to each rating: a measure of how confident the system is in it. A high deviation, as for a new account or after a long break, makes the rating move more per game. Lichess uses Glicko-2, which also tracks volatility, and starts every new account at 1500 ± 1000.
Is Elo zero-sum?
When both players have the same K, yes: the winner gains exactly what the loser gives up, so the pool's average never moves, which is why the four players here still average 1500 after 48 games. FIDE gives players different K-factors, so a game between a new player and a veteran can add or remove points.
Can a much stronger newcomer get rated quickly?
Slowly. Once a newcomer is rated above everyone, each win earns only a few points. Try A 2400 among beginners under Break it: after 48 games Ana is rated 1753, far below her 2400. She's favored in every game by then, and each win adds only a few points. A larger K for new players speeds this up.

More of how it works