Model Performance
Transparent accuracy tracking. Every prediction is measured, every miss is counted.
How to read this page
A forecast here is one decision — one match, one stage, one title race — not one line of probability. Picking the winner of a Tour stage means scoring 160 riders, and almost all of them are easy calls; counting those as 160 forecasts would let cycling drown out football.
Raw Brier scores cannot be compared across markets either, because the difficulty differs. Guessing blindly scores about 0.25 on a tennis match and about 0.006 on a 160-rider stage. The skill score removes that: it measures how much better the model does than knowing only how often this kind of call comes in. Zero means it adds nothing, one is perfect, and a negative number means it is worse than guessing. 4 forecasts sit in market and field-size segments too small to set a reliable baseline, so they show a raw score only.
Calibration
When the model says 70%, does it happen 70% of the time? The closer to the diagonal, the better calibrated. Head-to-head markets and large-field markets are drawn separately: field markets are almost entirely low-probability lines and would otherwise hide everything else.
Skill over time
Monthly skill score by sport. Higher is better. Months with fewer than 5 scored forecasts are excluded.
By market
Raw Brier belongs here, alongside the baseline it is measured against. Markets are split by field size, because winning a six-rider classic and winning a Grand Tour stage are not the same task.
| Sport | Market | Field | Forecasts | Brier | Baseline | Skill |
|---|---|---|---|---|---|---|
| Cycling | GC Winner | 30 | 4 | 0.9928 | 0.9344 | — |
| Cycling | Stage Winner | 30 | 41 | 0.0212 | 0.0222 | 0.046 |
| Cycling | Top 10 Finish | 30 | 41 | 0.1426 | 0.1367 | -0.043 |
| Football | 1X2 | 3 | 238 | 0.2032 | 0.2222 | 0.086 |
| Football | BTTS | 2 | 238 | 0.2393 | 0.2500 | 0.043 |
| Football | Over/Under 2.5 | 2 | 238 | 0.2454 | 0.2500 | 0.018 |
| Formula 1 | Fastest Lap | 21 | 5 | 0.0528 | 0.0445 | — |
| Formula 1 | Podium | 22 | 11 | 0.0939 | 0.1190 | 0.211 |
| Formula 1 | Race Winner | 22 | 11 | 0.0438 | 0.0439 | 0.002 |
| Formula 1 | Sprint Winner | 21 | 1 | 0.0457 | 0.0454 | — |
| Formula 1 | Top 6 | 22 | 11 | 0.1225 | 0.1999 | 0.387 |
| Tennis | Match Winner | 2 | 205 | 0.2274 | 0.2500 | 0.090 |
| WRC | Drivers Championship | 8 | 1 | 0.1031 | 0.7656 | — |
| WRC | Rally Podium | 11 | 4 | 0.1989 | — | — |
| WRC | Rally Winner | 10 | 4 | 0.0862 | 0.0880 | — |
| WRC | Stage Winner | 10 | 37 | 0.0861 | 0.0881 | 0.022 |
By sport
Skill only. A sport's markets have different field sizes, so an average Brier across them would mean nothing. The count is the forecasts the skill score covers, which can be fewer than the sport's total.
| Sport | Forecasts | Skill | Log loss |
|---|---|---|---|
| Cycling | 86 | -0.042 | 0.7118 |
| Football | 714 | 0.047 | 0.6498 |
| Formula 1 | 39 | 0.255 | 0.2691 |
| Tennis | 205 | 0.090 | 0.6450 |
| WRC | 42 | 0.169 | 0.3335 |
Model versions
Each model change is tracked separately so improvements can be verified.
| Version | Sport | Forecasts | Brier | Skill | Log loss | Status |
|---|---|---|---|---|---|---|
| cycling-stage-v1 | Cycling | 86 | 0.1243 | -0.042 | 0.7118 | retired |
| dixon-coles-v6-reg | Football | 591 | 0.2278 | 0.054 | 0.6465 | active |
| dixon-coles-v1 | Football | 93 | 0.2408 | 0.000 | 0.6747 | retired |
| dixon-coles-v5-intl | Football | 30 | 0.2244 | 0.068 | 0.6383 | retired |
| f1-plackett-luce-v1 | Formula 1 | 39 | 0.0813 | 0.255 | 0.2691 | active |
| tennis-elo-v1 | Tennis | 205 | 0.2274 | 0.090 | 0.6450 | active |
| wrc-elo-v1 | WRC | 46 | 0.0963 | 0.169 | 0.3335 | active |