The backtest, in full
Run on 2026-08-20 and unchanged since. These are the only accuracy numbers we publish site-wide.
The model was fitted on 5 leagues across the 2023-2025 seasons — 5,256 played matches — and then scored on the 2025/26 season it had not seen. That season held 1,752 fixtures: 1,709 were scored and 43 were skipped, because a newly promoted side had too little history for the form window to mean anything. Skipping them is the honest option; pricing them and quietly leaving them out of the total is not.
Two tests, both reported whichever way they came out. Against a naive baseline that ignores the teams and just predicts each result at its historical frequency, the model won in 5/5 leagues at statistical significance. On calibration — whether things we call 60% happen about 60% of the time — it passed in 4/5.
Calibration error, league by league
Average gap between the probability we gave a 1X2 selection and how often that selection actually landed. Lower is better; the tolerance we set ourselves is 0.05.
The bars are drawn relative to the worst league in the set, so the shape exaggerates a spread that is small in absolute terms — the widest gap here is 5.30 percentage points. The league in amber is the one that missed our own tolerance, and it stays on the page for that reason.
Why we will never say “99% accurate”
The phrases are easy to find in this corner of the internet: “99% accurate”, “sure win”, “zero risk”. Take the first one literally for a moment. A model that is 99% accurate is finding outcomes that fail once in a hundred, over and over, in a sport where a red card in the eleventh minute is a normal Saturday. If ours started producing numbers like that, the calibration test on this page is the thing that would catch it — not as a triumph, as a bug.
So a near-certainty claim is worth taking apart rather than disbelieving in general. Ask what sample it came from and whether that sample was chosen before or after the results were known. Ask what “accurate” was defined to mean, because the definition is rarely printed next to the number and it is doing most of the work. And ask what would have to happen for the claim to be false — a number in an advert costs nothing to type, and a claim that cannot fail is the cheapest kind.
The test to apply — to us as much as to anyone — is whether the claim could have come out badly. Ours could: 1,709 predictions on a season the model had never seen, published with the misses in the total and with the league that failed our calibration tolerance named on this page.
None of this turns a prediction into advice. Probabilities here are estimates, and gambling carries a risk of loss whatever the number says. If it has stopped being fun, our responsible gambling page is a better read than this one. 18+.
What is not on this page — and why
Three things a reader would reasonably expect. None of them exist yet, so none of them are drawn.
- A live hit rate for this site. A competition or a club shows its own settled record only once it has reached 100 resolved predictions of its own. Below that the number moves several points on a single weekend, and publishing it would be dressing a coin toss up as a track record. Where you see no accuracy block on a competition or team page, that threshold is the reason.
- A comparison against the closing market. The honest benchmark for a pre-match model is the price at kick-off, and measuring it needs our own archive of snapshots taken at known times. We are still accumulating that archive. Borrowing someone else’s forecast to stand in for it would answer a different question.
- A profit-and-loss curve. A staking-plan return says as much about the staking plan as about the model, and it is the easiest chart on the internet to make flattering. Calibration and a baseline comparison are harder to fake and are what we publish instead.
One note on scope: the backtest covers the same 5 competitions this site publishes — the model you are reading about was tested on exactly the football it is used on, not on a wider set that would make the numbers look sturdier.
Current model revision: 2026-10-15. It changes whenever anything that moves the probabilities changes, so numbers from two revisions are never pooled silently.