Lesson 2: The Update Rule and K-Factor

The previous lesson gave you the prediction formula. Now: what happens after the game?

The Update Rule

After a game, each player's rating shifts based on how surprising the result was:

R'A = RA + K × (SA - EA)

Where:

The intuition: If you win a game you were expected to win, your rating barely moves. If you pull off an upset, your rating jumps. The system rewards surprises.

Worked Example

Setup: Alice (1600) plays Bob (1400). K = 32.

Step 1 — Expected score:

EAlice = 1 / (1 + 10(1400-1600)/400) = 1 / (1 + 10-0.5) = 1 / (1 + 0.316) = 0.76

Step 2a — Alice wins (expected outcome):

R'Alice = 1600 + 32 × (1 - 0.76) = 1600 + 32 × 0.24 = 1608 (+8)

R'Bob = 1400 + 32 × (0 - 0.24) = 1400 + 32 × (-0.76) = 1376 (−24)

Wait — why doesn't Alice gain 24 and Bob lose 24? She does from Bob's perspective: Alice gains 8 because the win was expected; Bob loses more because the loss, from his formula, was also expected (his E was 0.24). Actually: Alice gains K×0.24 = 7.7 ≈ 8, Bob loses K×0.76 = 24.3 ≈ 24. Total points gained = total points lost (zero-sum).


Step 2b — Bob upsets Alice:

R'Alice = 1600 + 32 × (0 - 0.76) = 1600 - 24 = 1576 (−24)

R'Bob = 1400 + 32 × (1 - 0.24) = 1400 + 24 = 1424 (+24)

The upset causes a much bigger swing for both players.

What Is K?

K controls how reactive the system is:

K valueBehaviorUsed when
10–16Slow, stableEstablished players (FIDE uses 10 for top players)
20–32ModerateMost tournaments, Chatbot Arena
40+Fast, volatileNew players, provisional ratings
The K tradeoff: High K → ratings converge quickly but are noisy. Low K → ratings are stable but slow to reflect real improvement. For a casual ping pong ladder with few games, you'd want K = 32 or higher so ratings become meaningful quickly.

Source: Wikipedia — K-factor; Elo (1978), Ch. 4.

Quick Check

Player A (1500) beats Player B (1500). K = 32. How many points does A gain?

Hint: what's EA when ratings are equal?

A much weaker player beats a much stronger one. Which statement is true?

Recommended Reading

Read the "Implementing Elo" section on Wikipedia for pseudocode and practical details on choosing K.