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

Preset:
Match result

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.

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.

  1. Compute expected score for A: \[ E_A = \frac{1}{1 + 10^{(1800 - 1600)/400}} \approx 0.24 \]
  2. 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\).
  3. 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.