How the Elo system, originally designed for chess, can rank football teams and predict match results with surprising accuracy.
The Elo rating system was invented by physicist Arpad Elo for chess — but it turns out to be remarkably effective at ranking football teams and predicting match outcomes. Here's how it works and why we use it as a cross-validation layer in our model.
Every team starts with a base rating (typically 1500). After each match, points are transferred from loser to winner — but the amount transferred depends on how expected the result was.
EA = expected score for team A (their win probability). RA and RB are their current Elo ratings.
SA = actual result (1 = win, 0.5 = draw, 0 = loss). K = sensitivity factor (typically 20–40 for football).
Example: Man City (Elo: 1820) beat Wolves (Elo: 1510). Expected result for City: 95%. Actual result: 1.0 (win). K = 30.
Beating a much weaker team barely moves your Elo. Losing to them tanks it — reflecting the upset's significance.
| Feature | Elo | Attack/Defence |
|---|---|---|
| Updates after every match | ✓ | ✓ |
| Accounts for opponent strength | ✓ | ✗ (indirect) |
| Generates scoreline probabilities | ✗ | ✓ (via Poisson) |
| Reacts to margin of victory | Partially | Yes |
We use both: Elo as a sanity check and for long-run team quality ranking; attack/defence ratings to feed the Poisson model for market probabilities.
See how team strength affects today's match probabilities →
Today's Predictions