Accuracy

We do not need to beat the market. We need to not be lying. This page publishes our model's own calibration results, unedited, whether they pass or fail.

Model 20260928-1724

gates passed

Evaluated on 58226 held-out matches across 11 walk-forward splits. Intervals are 80% conformal.

What we said, against what happened

What we said against what happened, for Home win0%100%100%0%We said 8%; it happened 9% of the time, across 132 matches.We said 16%; it happened 17% of the time, across 1554 matches.We said 26%; it happened 28% of the time, across 5971 matches.We said 36%; it happened 38% of the time, across 15687 matches.We said 44%; it happened 44% of the time, across 20272 matches.We said 54%; it happened 54% of the time, across 9419 matches.We said 64%; it happened 64% of the time, across 3565 matches.We said 74%; it happened 76% of the time, across 1289 matches.We said 83%; it happened 84% of the time, across 319 matches.We said 92%; it happened 94% of the time, across 18 matches.

Each dot is a tenth of the probability range: what we said, against how often it happened. On the dashed line we were exactly right; above it we were too cautious, below it too confident. The rule through each dot is one standard error, and the dot's area is how many matches it rests on — the sparse ones at the ends will always scatter.

Furthest out: when we said 92%, it happened 94% of the time, across 18 matches.

All 36 gate values, unedited — 5 not passing
GateValueThresholdResult
rps within 5% of marketreported only—1.0500not evaluated
ece home0.00980.0300pass
max reliability gap pp homereported only2.61363pass
max reliability gap pp home measurablereported only2.46113pass
reliability within sampling envelope home2.46114.4364pass
ece draw0.01080.0300pass
max reliability gap pp drawreported only30.95903fail
max reliability gap pp draw measurablereported only3.34223fail
reliability within sampling envelope draw3.34224.9933pass
ece away0.00990.0300pass
max reliability gap pp awayreported only8.14463fail
max reliability gap pp away measurablereported only4.88453fail
reliability within sampling envelope away4.88455.2728pass
interval coverage within 5pp of 80%0.00010.0500pass
ece over under 1 50.00120.0300pass
max reliability gap pp over under 1 5reported only—3not evaluated
max reliability gap pp over under 1 5 measurablereported only0.25003pass
reliability within sampling envelope over under 1 50.25001.3607pass
brier over under 1 50.18410.2500pass
ece over under 2 50.00200.0300pass
max reliability gap pp over under 2 5reported only—3not evaluated
max reliability gap pp over under 2 5 measurablereported only2.53693pass
reliability within sampling envelope over under 2 52.53694.4823pass
brier over under 2 50.24570.2500pass
ece over under 3 50.00090.0300pass
max reliability gap pp over under 3 5reported only—3not evaluated
max reliability gap pp over under 3 5 measurablereported only1.12193pass
reliability within sampling envelope over under 3 51.12195.8094pass
brier over under 3 50.20300.2500pass
ece btts0.00050.0300pass
max reliability gap pp bttsreported only—3not evaluated
max reliability gap pp btts measurablereported only0.16523pass
reliability within sampling envelope btts0.16522.0646pass
brier btts0.24760.2500pass
sampler converged forecast rhat1.00591.0100pass
sampler converged max rhatreported only1.02121.0100fail

Why some gates read “fail” while the model publishes

Our original specification asked that predicted and observed rates agree within 3 percentage points in every probability decile. We since measured what that bound demands: simulating a perfectly calibrated model against our own results, it breaches 3 points in 100% of runs, and would need on the order of 150,000 matches — roughly eighty years of five-league football — to clear it reliably. A decile holding a few dozen matches simply cannot resolve 3 points.

So those rows are shown but do not decide. What decides is the same question asked in a form this much data can answer: is the disagreement larger than chance alone would produce at this sample size? That is the sampling-envelope row for each outcome, and it is a real bar — a genuinely miscalibrated model fails it.

We are telling you this rather than quietly deleting the gate we could not meet.

How the forecasts we published have actually done

Everything above comes from backtesting — a model refitted over past seasons and scored on matches no reader ever saw a forecast for. That is the right way to decide whether to publish at all, and the wrong thing to leave as the only answer to “were you right?”. This counts only forecasts we actually published, scored against the market on the same matches.

Did the market come to us?

+0.40pp

Average move in the price of the outcome we backed, between publishing and kick-off, across 19 bets. The market moved toward us on 47% of them.

Positive means the price rose toward our number after we published it, which is what it looks like when a forecast is finding something before the market does. It is not profit and not a win rate: a bet can beat the closing line and lose, and one that drifts the wrong way can still come in. It is evidence about the rule rather than about any single match, and — unlike a settled record — it does not need the season to finish before it says anything.

MarketScoredOursMarketDifference
Match result (RPS)4790.20850.20090.0076 [0.0016 to 0.0136]
Goals over 2.5 (BRIER)3020.23460.22470.0099 [0.0024 to 0.0174]
Goals over 1.5 (BRIER)4620.16400.1648-0.0008 [-0.0048 to 0.0032]
Goals over 3.5 (BRIER)3020.23470.22410.0106 [0.0015 to 0.0198]
Both teams to score (BRIER)4620.23790.23500.0029 [-0.0024 to 0.0082]

Lower is better, and negative means we beat the price. The match result is judged by ranked probability score and the two-way markets by Brier, so a number is comparable with the market beside it but not with another row.

These two halves of the page answer different questions and deliberately treat a thin sample in opposite ways. The gates above decide whether a market is allowed to publish at all, so a market with too little data to check fails them: not being able to verify something is not the same as it being fine. This table only describes how the forecasts we did publish have turned out, so too little data here means too early, not too bad. A market can therefore be cleared to publish and still have nothing to say for itself down here.

A market is only called either way once it has enough settled forecasts for the interval to mean something, and the interval clears zero.

What these gates mean