Track record
Football: what the model predicted, against what actually happened
What you are looking at
Historical uses the raw model probability rather than the calibrated one, because calibration is itself derived from this history — scoring against it would be marking its own homework.
Historical — out of sample
A gap near zero means the model's probabilities mean what they say: things it calls 70% happen about 70% of the time. That is the single most important number on this site.
Calibration by confidence
| Model said | Selections | Predicted | Actual | Gap | Predicted vs actual |
|---|---|---|---|---|---|
| 0.05–0.10 | 340,183 | 7.5% | 7.8% | +0.35 | |
| 0.10–0.15 | 287,122 | 12.4% | 12.7% | +0.27 | |
| 0.15–0.20 | 262,759 | 17.5% | 18.0% | +0.49 | |
| 0.20–0.25 | 254,881 | 22.5% | 23.2% | +0.70 | |
| 0.25–0.30 | 224,183 | 27.4% | 27.6% | +0.23 | |
| 0.30–0.35 | 179,861 | 32.5% | 32.6% | +0.12 | |
| 0.35–0.40 | 172,266 | 37.4% | 37.3% | -0.13 | |
| 0.40–0.45 | 158,930 | 42.5% | 42.3% | -0.18 | |
| 0.45–0.50 | 204,129 | 47.7% | 47.8% | +0.06 | |
| 0.50–0.55 | 185,081 | 52.2% | 51.8% | -0.33 | |
| 0.55–0.60 | 138,726 | 57.5% | 57.3% | -0.13 | |
| 0.60–0.65 | 133,865 | 62.4% | 62.4% | -0.05 | |
| 0.65–0.70 | 125,210 | 67.5% | 67.4% | -0.11 | |
| 0.70–0.75 | 128,281 | 72.5% | 72.5% | +0.01 | |
| 0.75–0.80 | 121,160 | 77.5% | 76.9% | -0.59 | |
| 0.80–0.85 | 111,991 | 82.4% | 81.8% | -0.62 | |
| 0.85–0.90 | 102,489 | 87.4% | 86.8% | -0.63 | |
| 0.90–0.95 | 86,546 | 92.5% | 91.6% | -0.83 | |
| 0.95–1.00 | 91,192 | 97.7% | 96.5% | -1.22 |
By market
| Market family | Selections | Predicted | Actual | Gap |
|---|---|---|---|---|
| Corners O/U | 226,584 | 50.8% | 50.7% | -0.08 |
| Corner handicap | 222,949 | 51.5% | 51.5% | -0.07 |
| 1X2 & Over/Under | 205,765 | 18.4% | 18.3% | -0.19 |
| Home corners O/U | 188,660 | 50.8% | 50.7% | -0.08 |
| Away corners O/U | 188,401 | 50.9% | 50.8% | -0.07 |
| Multi goal | 181,398 | 49.3% | 50.7% | +1.40 |
| Over/Under | 144,323 | 53.7% | 53.5% | -0.11 |
| Correct score | 102,630 | 8.9% | 8.7% | -0.21 |
| Asian handicap | 99,298 | 52.1% | 52.1% | -0.03 |
| Home goals O/U | 96,976 | 53.3% | 53.2% | -0.06 |
| Over/Under (whole line) | 93,649 | 58.8% | 58.7% | -0.11 |
| Away goals O/U | 91,594 | 56.3% | 56.3% | -0.03 |
| Total goals | 77,634 | 16.2% | 16.0% | -0.23 |
| Winning margin | 73,906 | 16.9% | 16.9% | -0.01 |
| 1X2 & GG/NG | 72,132 | 17.7% | 17.6% | -0.10 |
| Most corners | 56,965 | 33.6% | 33.6% | +0.00 |
| Corner range | 56,359 | 34.0% | 33.9% | -0.08 |
| GG/NG & Over/Under | 51,349 | 25.2% | 25.2% | -0.01 |
| Win to nil | 50,956 | 50.8% | 50.8% | -0.01 |
| Goals home | 50,935 | 25.4% | 25.3% | -0.05 |
| Goals away | 49,134 | 26.2% | 26.1% | -0.08 |
| Teams to score | 47,621 | 26.9% | 26.8% | -0.10 |
| Goal range | 40,630 | 31.4% | 31.4% | -0.00 |
| Double chance | 38,894 | 66.7% | 66.7% | +0.00 |
| Handicap | 38,894 | 33.3% | 33.3% | +0.00 |
| 1X2 | 38,758 | 33.4% | 33.4% | -0.01 |
| Handicap 0:1 | 38,460 | 33.7% | 33.6% | -0.03 |
| Corners Odd/Even | 38,358 | 50.0% | 50.0% | +0.00 |
| Handicap 1:0 | 36,527 | 35.3% | 35.3% | +0.01 |
| Handicap 0:2 | 34,230 | 37.5% | 37.4% | -0.10 |
| Handicap 2:0 | 26,971 | 47.0% | 47.1% | +0.11 |
| GG/NG | 25,930 | 50.0% | 50.0% | +0.00 |
| Home Odd/Even | 25,930 | 50.0% | 50.0% | +0.00 |
| Odd/Even | 25,930 | 50.0% | 50.0% | +0.00 |
| Away Odd/Even | 25,930 | 50.0% | 50.0% | +0.00 |
| Home clean sheet | 25,913 | 50.0% | 50.0% | -0.00 |
| Away clean sheet | 25,771 | 50.3% | 50.3% | -0.00 |
| GG/NG 2+ | 24,743 | 52.2% | 52.0% | -0.23 |
| Handicap 0:3 | 23,323 | 54.1% | 54.0% | -0.05 |
| Lead at any time | 20,620 | 42.1% | 40.3% | -1.78 |
| Draw no bet | 19,111 | 50.2% | 50.2% | -0.00 |
| Away no bet | 18,339 | 50.0% | 50.0% | +0.00 |
| Handicap 0:4 | 15,534 | 81.4% | 81.7% | +0.21 |
| Over/Under 2HT | 14,742 | 50.0% | 50.0% | +0.00 |
| Over/Under 1HT | 14,735 | 50.0% | 50.0% | +0.00 |
| HT correct score | 14,468 | 15.1% | 15.4% | +0.27 |
| Home no bet | 14,328 | 50.0% | 50.0% | +0.00 |
| Consecutive goals | 13,812 | 32.3% | 30.1% | -2.21 |
| HT/FT | 13,715 | 16.0% | 15.8% | -0.20 |
| Win either half | 9,827 | 50.0% | 50.0% | +0.00 |
| Score both halves | 9,826 | 50.0% | 50.0% | +0.00 |
| Home goals O/U 1HT | 9,782 | 50.2% | 50.2% | +0.01 |
| Away goals O/U 1HT | 9,601 | 51.1% | 51.1% | -0.01 |
| GG/NG by half | 9,129 | 26.6% | 26.5% | -0.08 |
| Win both halves | 8,682 | 56.2% | 56.2% | +0.04 |
| Double chance 2HT | 7,371 | 66.7% | 66.7% | +0.00 |
| Total goals 2nd half | 7,371 | 33.3% | 33.3% | +0.00 |
| Highest scoring half | 7,371 | 33.3% | 33.3% | +0.00 |
| Double chance 1HT | 7,371 | 66.7% | 66.7% | +0.00 |
| Half time | 7,370 | 33.3% | 33.3% | -0.01 |
| 2nd half 1X2 | 7,369 | 33.3% | 33.3% | +0.00 |
| First goal | 6,125 | 39.4% | 39.2% | -0.16 |
| Last goal | 6,125 | 39.4% | 39.2% | -0.16 |
| Double chance 1UP | 4,914 | 61.5% | 68.8% | +7.33 |
| Home clean sheet 1HT | 4,914 | 50.0% | 50.0% | +0.00 |
| Both halves U1.5 | 4,914 | 50.0% | 50.0% | +0.00 |
| GG/NG half time | 4,914 | 50.0% | 50.0% | +0.00 |
| Goal in both halves | 4,914 | 50.0% | 50.0% | +0.00 |
| GG/NG 2nd half | 4,914 | 50.0% | 50.0% | +0.00 |
| Away clean sheet 1HT | 4,914 | 50.0% | 50.0% | +0.00 |
| Odd/Even 2HT | 4,914 | 50.0% | 50.0% | +0.00 |
| Odd/Even 1HT | 4,914 | 50.0% | 50.0% | +0.00 |
| Draw either half | 4,914 | 50.0% | 50.0% | +0.00 |
| 1X2 1UP | 4,914 | 55.1% | 55.1% | -0.06 |
| Both halves O1.5 | 4,913 | 50.0% | 50.0% | +0.00 |
| Never down | 4,910 | 39.5% | 44.9% | +5.40 |
| 1X2 2UP | 4,894 | 38.9% | 40.1% | +1.19 |
| DNB half time | 2,950 | 50.0% | 50.0% | +0.00 |
A family with a large negative gap is one the model oversells. The radar's calibration already corrects for this before ranking, but it is worth knowing which markets to trust least.
By league
| Competition | Selections | Predicted | Actual | Gap |
|---|---|---|---|---|
| ENG-Premier League xG | 287,531 | 41.7% | 41.8% | +0.05 |
| ENG-Championship results-only | 177,613 | 44.4% | 44.4% | -0.06 |
| ESP-La Liga xG | 169,912 | 42.0% | 42.1% | +0.09 |
| ITA-Serie A xG | 156,703 | 41.5% | 41.6% | +0.00 |
| ESP-La Liga 2 results-only | 145,155 | 41.6% | 41.6% | -0.06 |
| USA-MLS results-only | 133,709 | 41.1% | 41.1% | -0.02 |
| ARG-Liga Profesional results-only | 126,034 | 42.9% | 43.0% | +0.07 |
| NED-Eerste Divisie results-only | 118,563 | 41.4% | 41.4% | -0.02 |
| ITA-Serie B results-only | 113,613 | 41.8% | 42.0% | +0.14 |
| FRA-Ligue 1 xG | 108,521 | 41.7% | 41.4% | -0.21 |
| COL-Primera A results-only | 98,668 | 42.3% | 42.3% | +0.05 |
| GER-Bundesliga xG | 96,546 | 40.9% | 41.2% | +0.30 |
| TUR-Super Lig results-only | 88,547 | 42.2% | 42.2% | +0.03 |
| NED-Eredivisie results-only | 86,035 | 42.1% | 42.2% | +0.16 |
| KSA-Pro League results-only | 84,117 | 42.4% | 42.4% | +0.00 |
| POR-Primeira Liga results-only | 82,731 | 42.8% | 43.0% | +0.14 |
| GER-2. Bundesliga results-only | 82,683 | 41.6% | 41.5% | -0.07 |
| FRA-Ligue 2 results-only | 82,656 | 42.2% | 42.0% | -0.24 |
| BEL-Pro League results-only | 80,775 | 41.9% | 42.0% | +0.08 |
| JPN-J League results-only | 80,581 | 42.2% | 42.1% | -0.06 |
| BRA-Serie A results-only | 78,901 | 42.5% | 42.6% | +0.07 |
| MEX-Liga MX results-only | 68,224 | 42.2% | 42.1% | -0.01 |
| NGA-Professional League results-only | 67,923 | 40.5% | 40.7% | +0.13 |
| PER-Liga 1 results-only | 63,931 | 42.6% | 42.6% | +0.05 |
| RUS-Premier League results-only | 50,992 | 43.3% | 43.4% | +0.10 |
| SCO-Premiership results-only | 50,092 | 42.7% | 42.7% | -0.06 |
| RSA-Premiership results-only | 50,023 | 44.0% | 43.9% | -0.10 |
| ECU-LigaPro results-only | 45,907 | 41.3% | 41.3% | +0.05 |
| KEN-Premier League results-only | 43,900 | 40.2% | 40.2% | +0.02 |
| GHA-Premier League results-only | 43,488 | 40.9% | 40.9% | +0.02 |
| CHN-Super League results-only | 42,159 | 43.0% | 43.0% | +0.01 |
| GRE-Super League results-only | 37,550 | 41.7% | 41.9% | +0.17 |
| AUT-Bundesliga results-only | 35,230 | 42.8% | 42.7% | -0.05 |
| SWE-Allsvenskan results-only | 32,000 | 43.9% | 43.8% | -0.06 |
| URU-Primera Division results-only | 31,723 | 39.0% | 38.8% | -0.17 |
| CHI-Primera Division results-only | 31,009 | 43.2% | 43.1% | -0.13 |
| NOR-Eliteserien results-only | 30,456 | 44.0% | 44.0% | +0.01 |
| EUR-Champions League results-only | 28,511 | 44.4% | 44.2% | -0.20 |
| DEN-Superliga results-only | 26,246 | 44.4% | 44.5% | +0.03 |
| ROU-Liga 1 results-only | 20,221 | 44.3% | 44.4% | +0.09 |
| AUS-A-League results-only | 12,533 | 48.4% | 48.5% | +0.01 |
| ZAM-Super League results-only | 7,091 | 41.1% | 40.8% | -0.28 |
| SAM-Libertadores results-only | 4,561 | 48.7% | 48.5% | -0.21 |
| IND-Super League results-only | 2,745 | 48.3% | 48.2% | -0.10 |
| SUI-Super League results-only | 2,542 | 48.2% | 48.2% | +0.01 |
| CAF-Nations Cup results-only | 204 | 48.9% | 48.5% | -0.41 |
Live record
Profit at fair odds
This is not a profit claim. Every bet is settled at the model's own fair odds, where a perfectly calibrated model scores exactly zero by construction. It is a second calibration measure, and it is more sensitive than the headline gap because a longshot priced at 7% pays about 13× — so small errors on unlikely outcomes cost far more than the same error on a favourite. A negative figure alongside a near-zero overall gap points to the familiar favourite–longshot pattern: the model slightly oversells long odds and slightly undersells short ones. Real bookmaker prices are shorter than fair odds, so actual betting would do worse than this.