We publish whether our
probabilities were any good.
The record page tracks the calls. This page tracks every probability the model publishes — scored after the fact, in public, wins and misses alike.
What calibration means, plainly: when the model says something is 60% likely, it should happen roughly 60% of the time — not 45%, not 75%. A tipster can hide behind a hot streak; a calibration table cannot. It is the one number on this site that tells you whether the percentages mean anything at all, which is why we score it in public and link it from every miss on what we got wrong.
How this page cannot cheat
Every probability here was written to an append-only log before kick-off, from the ratings as they stood at that moment. Nothing is recomputed after results are known — recomputing would smuggle the answer into the question. Where several pre-match snapshots exist, the last one before kick-off is the one judged. The markets measured (match result, over 2.5 goals, both teams to score) and the 50 settled-prediction threshold were fixed before any data existed and do not move mid-season.
When the model says X%, does X% happen?
2490 settled predictions · 95 awaiting results · overall Brier score 0.2178 (lower is better; 0.25 is what coin-flipping 50% at everything scores) · log-loss 0.6253 (0.693 is that same coin-flip — log-loss just punishes confident misses harder).
Each dot is a probability band; bigger dots hold more predictions. The dashed line is perfect honesty — a dot on it means when the model said that, it happened that often. Above the line the model was too cautious; below it, too confident.
| Model said | Predictions | Avg said | Actually happened | Gap |
|---|---|---|---|---|
| 0–10% | 10 | 8.2% | 0.0% | -8.2 pts |
| 10–20% | 90 | 16.6% | 20.0% | +3.4 pts |
| 20–30% | 666 | 26.2% | 23.4% | -2.7 pts |
| 30–40% | 371 | 34.6% | 34.5% | -0.1 pts |
| 40–50% | 464 | 45.4% | 47.8% | +2.5 pts |
| 50–60% | 618 | 54.7% | 60.4% | +5.7 pts |
| 60–70% | 236 | 63.7% | 62.7% | -0.9 pts |
| 70–80% | 32 | 73.1% | 87.5% | +14.4 pts |
| 80–90% | 3 | 81.2% | 100.0% | +18.8 pts |
| Market | n | Brier | Log-loss |
|---|---|---|---|
| Home win | 498 | 0.2311 | 0.6537 |
| Draw | 498 | 0.1751 | 0.5344 |
| Away win | 498 | 0.2009 | 0.5890 |
| Over 2.5 goals | 498 | 0.2386 | 0.6696 |
| Both teams to score | 498 | 0.2433 | 0.6796 |
Against the market's de-vigged closing price, over the 2483 settled prediction(s) where a full close was captured: our log-loss 0.6251 versus the market's 0.6062 (lower is better). The closing price scored better here — the market is a hard baseline, and we do not pretend to beat it.
Before and after 17 Oct 2026
On 17 Oct 2026 we changed the model (FIX4: split shrink - supremacy unshrunk). Probabilities logged before that day came from the old model and are scored separately here, so a fix cannot borrow credit from the past, and the past cannot hide the fix.
Before 17 Oct 2026 (old model)
1835 settled · Brier 0.2183 · log-loss 0.6265
Gap in the 50–60% band: +7.5 pts on 459 predictions. In the 60–70% band: +2.9 pts on 138 predictions. (Positive = things happened more often than we said.)
Since 17 Oct 2026 (current model)
925 settled · Brier 0.2168 · log-loss 0.6228
Gap in the 50–60% band: -0.9 pts on 229 predictions. In the 60–70% band: -5.1 pts on 124 predictions. (Positive = things happened more often than we said.)
Before and after 26 Oct 2026
On 26 Oct 2026 we changed the model (Full history: ratings walk every season on file, as tested). Probabilities logged before that day came from the old model and are scored separately here, so a fix cannot borrow credit from the past, and the past cannot hide the fix.
Before 26 Oct 2026 (old model)
2185 settled · Brier 0.2184 · log-loss 0.6267
Gap in the 50–60% band: +6.4 pts on 533 predictions. In the 60–70% band: +0.7 pts on 198 predictions. (Positive = things happened more often than we said.)
Since 26 Oct 2026 (current model)
360 settled · Brier 0.2111 · log-loss 0.6103
Gap in the 50–60% band: +3.5 pts on 95 predictions. In the 60–70% band: -8.8 pts on 45 predictions. (Positive = things happened more often than we said.)
The young leagues, scored separately
Five leagues joined the model on 13 September 2026 — 2. Bundesliga, Serie B, Eredivisie, Primeira Liga and the Scottish Premiership — because their expected-goals data proved reliable. Their ratings are built on a first season of data only, so their probabilities are badged young wherever they appear, no picks are generated from them, and they are scored here separately: the numbers above are the established six leagues alone, and stay that way.
570 settled prediction(s) · 35 awaiting results · Brier 0.2335 · log-loss 0.6595 (0.25 and 0.693 are the coin-flip baselines; lower is better). Small samples early — judge these numbers only as their n grows.