Elo Rating Calculator
Compute expected scores and updated Elo ratings for chess, tennis, esports and other competitive games. Supports win/draw/loss, custom scores, custom K-factors and batch updates.
Elo Rating Calculator
Player A
Expected score: 0.50
Rating change: 0
New rating: 1500
Player B
Expected score: 0.50
Rating change: 0
New rating: 1500
Batch Elo Update (Multiple Games)
Quickly update ratings after a series of games. Enter one result
per line in the format:
opponentRating,result
where result is 1, 0.5, or
0.
Games processed: 0
Final rating: 1500
Total rating change: 0
How the Elo rating system works
The Elo rating system is a method to estimate the relative strength of players in games like chess, tennis, football (soccer), esports and many other competitive activities. After each game, both players’ ratings are updated based on the result and how surprising that result was.
Core Elo formulas
Expected score for Player A:
\[ E_A = \frac{1}{1 + 10^{(R_B - R_A)/400}} \]
Expected score for Player B:
\[ E_B = \frac{1}{1 + 10^{(R_A - R_B)/400}} = 1 - E_A \]
Rating update:
\[ R'_A = R_A + K_A \cdot (S_A - E_A) \]
\[ R'_B = R_B + K_B \cdot (S_B - E_B) \]
where:
• \(R_A, R_B\) are current ratings
• \(R'_A,
R'_B\) are new ratings
• \(K_A, K_B\) are K-factors
(development coefficients)
• \(S_A, S_B\) are actual
scores (1 = win, 0.5 = draw, 0 = loss)
• \(E_A, E_B\)
are expected scores from the rating difference
Choosing the right K-factor
The K-factor controls how fast ratings move. Higher K means more volatile ratings; lower K means more stable ratings.
- 40: new or junior players, ratings adjust quickly.
- 20: typical active club players.
- 10: strong titled players or very stable ratings.
- 32–50: common in online platforms and esports for faster adaptation.
Example: chess game Elo update
Suppose Player A is rated 1600 and Player B is rated 1800, both with K = 20.
- Compute expected score for A: \[ E_A = \frac{1}{1 + 10^{(1800 - 1600)/400}} \approx 0.24 \]
- If A wins, \(S_A = 1\). Rating change: \[ \Delta R_A = 20 \cdot (1 - 0.24) \approx +15.2 \] New rating \(R'_A \approx 1615\).
- For B, \(S_B = 0\), \(E_B = 1 - E_A \approx 0.76\): \[ \Delta R_B = 20 \cdot (0 - 0.76) \approx -15.2 \] New rating \(R'_B \approx 1785\).
Typical Elo rating ranges
Ranges vary by game, but for chess they are often interpreted roughly as:
- < 800: beginner, learning the rules and basic tactics.
- 800–1200: casual player, knows basic strategy.
- 1200–1600: improving club player.
- 1600–2000: strong club player.
- 2000–2200: candidate master level.
- 2200–2400: national master / FIDE master.
- 2400–2600: international master / grandmaster.
- > 2700: elite “super‑GM” level.
FAQ
Can Elo ratings go negative?
In theory yes, because the formula has no lower bound. In practice, federations and platforms usually clamp ratings to a minimum (for example 100 or 400) or stop publishing ratings below a threshold.
Does Elo account for margin of victory?
Classic Elo only uses the game result (win/draw/loss). Some modern systems (like Glicko, Glicko‑2, or custom esports ratings) incorporate margin of victory, uncertainty, or time decay, but that is beyond standard Elo.
How many games are needed for an accurate Elo?
With a high K-factor, a rough estimate emerges after 20–30 games. For a stable rating that reflects long‑term strength, 50–100+ games against rated opponents are usually needed.
Is Elo rating comparable across different platforms?
Not reliably. Each platform chooses its own starting rating, K-factors and pools of opponents. A 1500 rating on one site may correspond to 1200 or 1800 on another. Always interpret Elo within the same pool.