We built a chronological Elo engine for men's tennis and let it predict every Grand Slam and Masters 1000 match played in 2026 so far — then compared it to the actual closing prices bookmakers offered. Here's the scoreboard, unedited.
No black box. Four moving parts, in order.
Each player's Elo is initialized from their ATP rank points the first time they appear in the 2026 data — a stand-in for multi-year match history we couldn't pull this round.
Standard logistic Elo, K=32, no surface adjustment yet. Ratings move match-by-match in true chronological order — no peeking at results before they happened.
For every match, the model's probability is computed before the result is folded in. That number is what gets graded.
Compared against closing odds (de-vigged average across books, plus Bet365 solo) — the standard benchmark for "is this actually any good."
| Event | Matches | Model acc. | Market acc. | Gap |
|---|---|---|---|---|
| Australian Open | 127 | 74.0% | 79.5% | −5.5 |
| Indian Wells | 95 | 68.4% | 71.6% | −3.2 |
| Monte Carlo | 55 | 70.9% | 76.4% | −5.5 |
| Madrid | 95 | 57.9% | 70.5% | −12.6 |
| French Open | 127 | 63.0% | 71.7% | −8.7 |
The model never once out-accuracies the market at event level. Madrid (clay, longer since last seed) is the worst gap — the cold-start cost shows most where rating history matters most.
Separate question from accuracy: when the model says 70%, does that side actually win ~70% of the time?
Bar = model's average predicted probability in that bucket. Tick = what actually happened. They track closely — the model isn't overconfident, it's just working with less information than a bookmaker who's watching warm-ups, injury news, and live money.
Flat $1 stakes, every match, both sides evaluated, filtered by how much edge the model claimed over the market price.
Every configuration loses money. Filtering for "bigger edge" makes it worse, not better — a tell that the apparent edge is model noise, not real signal the market missed.
This is the expected result, not a failed experiment. At Grand Slam and Masters 1000 level, the betting market is priced by people watching the same rankings this model uses, plus warm-ups, injury reports, and real money moving the line in real time. A single-number rating system without that information shouldn't beat it — and didn't.
The calibration story is the actual finding worth keeping: the model knows roughly how much it doesn't know. That's the property worth building on.
Where this goes next: Challenger and ITF events, where books price more mechanically and the crowd thinns out — exactly where the original thesis pointed. No free historical odds source for that tier has turned up yet, so that backtest is still unbuilt.