Elo Ratings Explained — And How We Use Them
When you hear that a team has an Elo of 1850 and their opponent sits at 1650, you instantly know something meaningful: the favourite is significantly stronger, and the maths can tell you exactly how much. Elo ratings distil performance history into a single, honest number — and that number is one of the core ingredients in our betting model across football, tennis, hockey, and basketball.
Where Elo comes from
The system was invented by Hungarian-American physics professor Arpad Elo in the 1960s to rank chess players. The US Chess Federation adopted it in 1960; FIDE (the world chess body) followed shortly after. It has since spread to almost every competitive sport because it solves a simple problem cleanly: how do you compare players or teams who have never met directly?
Skip the hand-calculation.
Get real value bets flagged for you — 7-day free trialThe core idea is elegant. Every competitor carries a single number representing their current strength. Before each match, the system calculates how likely each side is to win based on the gap between their ratings. After the match, the winner takes points from the loser — but the *size* of the transfer depends on how surprising the result was. Beating a much stronger opponent earns more than beating an equal one.
The expected-score formula
The expected score for player A against player B is calculated via the logistic formula: `E_A = 1 / (1 + 10^((R_B − R_A) / 400))`. You don't need to memorise that — the intuition is what matters. A 200-point gap between two competitors produces an expected win probability of roughly 76% for the higher-rated side. A 400-point gap pushes that to about 91%. Equal ratings give exactly 50/50.
After the match, ratings are updated: `R_new = R_old + K × (actual − expected)`. If Team A wins as expected, they gain a small number of points (say +6 with K=32). If Team B pulls off the upset, Team B gains a large number while Team A drops substantially. Over time, ratings drift toward their true level.
The K-factor: how fast ratings update
The K-factor controls update speed. A high K (say 40) makes ratings reactive — useful for sports with short seasons or infrequent matches. A low K (say 10) makes them stable — better where sample sizes are large and one result shouldn't shift the landscape much. We tune K separately per sport and competition type, weighting playoff matches more heavily than mid-season games where teams might rotate squads.
How we use Elo across sports
Elo isn't just a leaderboard trinket for us — it's a live signal that feeds the probability engine. Here's what it looks like in practice for each sport we cover.
Football
Every domestic club in our database carries an Elo rating that updates after each result. The rating difference between home and away sides is one of the 110 features our XGBoost model uses to estimate win probabilities. We also run an auto-sync for cup competitions: when a domestic club enters a European or national cup under a slightly different registered name, they inherit the parent club's Elo automatically, so the model stays coherent across competitions.
For international football — World Cup, Euros, Copa América, AFCON, and the AFC Championship — we maintain a separate national team Elo bootstrapped from roughly 1,275 international matches going back to 2010. This is what powers our World Cup predictions: Elo-diff plus knockout-round context are the primary signals, since form features are sparse for national teams.
Tennis — surface-specific Elo
Tennis is where Elo gets genuinely interesting. Djokovic on clay is a different entity from Djokovic on grass — the surface splits are that significant. Rather than a single overall rating, we maintain separate Elo ratings per surface (hard, clay, grass) for ATP and WTA players. A player's hard-court Elo updates only from hard-court results; their clay Elo from clay matches. The model then uses the surface-appropriate Elo difference as a feature when predicting a given match.
NHL and NBA
Both the NHL and NBA models include team Elo as a model input alongside advanced efficiency metrics (MoneyPuck CF%/xGF% for hockey; ESPN-computed off/def rating and pace for basketball). Crucially, during training we use the Elo value recorded *before* each match, not the end-of-season rating — this prevents look-ahead leakage where the model would see how good a team eventually became rather than how good they were at the time.
NFL — leaderboard only
We built an NFL team Elo primarily for the live Elo leaderboard — it's a clean, intuitive way to track team strength across a 17-game season. We made a deliberate decision *not* to use it as a betting-model feature: the NFL closing line already encodes team strength (it's set by sharp books with vast resources), so Elo would be largely redundant with information the model already has. For betting, we rely on EPA/play and other efficiency metrics instead. But as a display tool for understanding the competitive landscape at a glance, Elo is hard to beat. The same projection stack also produces our free NFL fantasy draft rankings — fantasy football draft projections ranked by value over replacement.
What Elo does well
- Interpretable: a number you can reason about without a statistics degree.
- Self-correcting: overrated teams gradually lose points as results arrive; underrated teams rise. No manual recalibration needed.
- Cross-competition comparisons: you can meaningfully compare a team's strength across different leagues or tournaments, which raw standings can't do.
- Regresses to average slowly: after a single lucky win, a strong team's rating barely moves. Noise is damped over time.
What Elo doesn't do — being honest about the limits
Elo is a starting point, not the whole story. It has real weaknesses worth understanding.
- Ignores margin of victory (in its standard form): a 4-0 win and a 1-0 win both count as 'won'. Modified versions (like our Elo with goal-difference weighting for football) address this, but introduce their own tuning choices.
- Lags after sudden changes: a star transfer in January, a new manager, or an injury to a key player won't show up in Elo until results start reflecting the change — which takes weeks or months.
- Long layoffs: international breaks and close seasons mean a team's Elo at the start of a new campaign may reflect last season's squad, not the current one. We apply a small mean-reversion adjustment at the start of each season to account for this.
- Needs enough matches: early in a season, or for newly promoted teams, Elo is volatile and less reliable. We treat it accordingly — as one signal among many, weighted by confidence.
From Elo to a value bet
Elo alone doesn't make a bet. It feeds into a probability estimate — alongside form, lineup quality, injuries, rest days, surface (in tennis), home advantage, and a dozen other factors. That combined probability is what our model produces. We then compare it against the bookmaker's implied probability (derived from their odds after removing the margin). When our number is meaningfully higher — at least 5% higher in expected-value terms — we flag it as a potential value bet.
The sharpest bookmaker in the world (Pinnacle) essentially runs the same calculation we do, with more data and faster reaction times. We don't try to beat Pinnacle's closing line. We look for soft bookmakers whose prices haven't caught up with where the sharp money is pointing — and Elo is one of the earliest signals that something has shifted.
To understand how the full probability stack fits together, see our guide on how our models work, or read about one of the most powerful complementary metrics: what is xG.
Live Elo leaderboards
We publish live Elo leaderboards for the sports where it's most useful. You can see current team ratings, track season-long movement, and get an immediate read on the competitive landscape — no deep-dive into tables or form guides needed.
- NHL team Elo — current season standings
- NBA team Elo — current season standings
- NFL team Elo — leaderboard (display)
For live model predictions and value bets across all sports, the model page is updated throughout the day.
Want to see how Elo and the rest of our model translate into actual value bets sent straight to your phone? Try it free for a week.
Start free — 7-day trial