Trofeo
← All posts

· The Trofeo team

How Elo works, explained with office ping pong

The rating system behind chess, and probably your office leaderboard - explained with worked examples, no math degree required.

Every office has a ping pong hierarchy. Everyone knows Sarah is better than Tom, and Tom is better than the new guy. But how much better? And what happens to that hierarchy when the new guy beats Sarah on a Tuesday?

That's the problem Arpad Elo solved for chess in the 1960s, and his system has aged so well that it still runs everything from chess federations to competitive video games - and, yes, office ping pong leaderboards. Here's how it actually works.

One number per player

Every player gets a rating - a single number summarizing their demonstrated skill. New players typically start at 1200. The number itself is arbitrary; what matters is the gap between two players, because the gap predicts results.

The core formula converts a rating gap into an expected score:

Expected score = 1 / (1 + 10^((their rating − your rating) / 400))

You don't need to compute this by hand - the intuition is what matters:

Rating gapStronger player's win chance
050%
10064%
20076%
40091%

A 400-point gap means the stronger player should win about nine times out of ten. If the office leaderboard runs from 1100 to 1500, the bottom beating the top should be a genuinely rare event - which is exactly what makes it glorious when it happens.

Points move when results surprise

After each match, ratings update based on how surprising the result was:

Rating change = K × (actual score − expected score)

Actual score is 1 for a win, 0 for a loss, 0.5 for a draw. K is the "K-factor" - the maximum points a single match can move. Trofeo uses K = 32, a common choice for casual leagues: responsive without being chaotic.

Worked examples, office edition:

This is the asymmetry that makes Elo feel fair: the system pays for evidence, and an upset is strong evidence.

Why it beats win percentage

The whiteboard-and-tally-marks approach ranks whoever plays the most favorable schedule. Win percentage can't tell the difference between 10–0 against beginners and 6–4 against the office elite. Elo can - it's baked into every single update. That's also why playing more doesn't inflate your rating: each match moves you toward the level your results actually support, from above or below.

A few practical properties fall out of the math:

Where Elo stops being enough

Elo assumes 1v1 and assumes your rating is equally trustworthy whether you played yesterday or last year. Two successors fix those gaps:

A good leaderboard picks the right system per game rather than forcing Elo everywhere. (Trofeo supports all three, plus plain win/loss and custom points, per game.)

The one-sentence version

Your rating is a promise about your future results; every match settles whether the promise was honest, and the points move accordingly.

That's the whole trick - and it's why a proper rating system turns the office table from "we play sometimes" into a season-long story with stakes, rivals, and the occasional Tuesday upset that everyone hears about on Slack.

Related reading