Most football prediction sites publish a hit rate. Almost none publish the list of matches they got wrong.
That asymmetry is the whole problem with accuracy claims in this space: a hit rate you can't audit is a marketing number, not a result. So here is ours, with the losses attached.
Our model's favourite came through in 63 of 76 decisive World Cup 2026 matches. 82.9%. In the knockout rounds, its favourite advanced in 20 of 24 ties.
The full graded record is public at onsidearena.com/model-record, the raw data is free to reuse under CC BY 4.0 at onsidearena.com/data, and the method is written up at onsidearena.com/methodology.
How it was graded
A scorecard is worthless if you get to pick the rules after seeing the results, so these were fixed in advance:
- The question is binary and boring. Did the model's favourite win the match (group stage) or advance (knockouts)? Not "were we directionally interesting." Did the pick come through, yes or no.
- Group-stage draws are excluded from the denominator. A draw isn't a win for our pick, but it isn't a defeat of it either, and quietly counting draws as hits is the oldest trick in this genre. 76 is the count of decisive matches.
- Knockout ties are graded on advancement, including extra time and penalties. If our pick went out on penalties, that's a loss. No asterisks.
- Every miss is listed. Not summarised, not aggregated into a percentage. Named.
The 13 misses
| Round | Result | Our pick |
|---|---|---|
| Group | Ghana 1-0 Panama | Panama |
| Group | South Africa 1-0 South Korea | South Korea |
| Group | Australia 2-0 Turkiye | Turkiye |
| Group | Ivory Coast 1-0 Ecuador | Ecuador |
| Group | Turkiye 0-1 Paraguay | Turkiye |
| Group | Norway 3-2 Senegal | Senegal |
| Group | Bosnia & Herzegovina 3-1 Qatar | Qatar |
| Group | Ecuador 2-1 Germany | Germany |
| Group | Turkiye 3-2 United States | United States |
| R32 | Germany 1-1 (pens 3-4) Paraguay | Germany |
| R32 | Netherlands 1-1 (pens 2-3) Morocco | Netherlands |
| R16 | Colombia 0-0 (pens 3-4) Switzerland | Colombia |
| R16 | Brazil 0-2 Norway | Brazil |
Three of those are penalty shootouts, which are close to coin flips and which no model should claim to predict. The rest are straightforward: we called it, and it didn't happen.
What the knockouts looked like
The model held up better once the tournament narrowed: 20 of 24 ties. It called Morocco over Canada, Spain over Portugal, Argentina over Egypt, and England over Mexico. Two of its four knockout losses went to penalties.
That pattern is what you'd hope for. Knockout ties concentrate quality gaps that group-stage football tends to blur, and a model built on team strength should do relatively better there. It did.
Why publish the losses
Two reasons, and only one of them is high-minded.
The high-minded one: a prediction you can't check isn't a prediction, it's content. The category is full of "AI football tips" that never publish a scorecard, because a scorecard can be checked and content cannot. If the number is going to mean anything, it has to be falsifiable.
The self-interested one: it's the one claim a competitor can't match by writing better marketing copy. Anyone can say "83% accurate." Almost nobody will publish the thirteen matches behind the other 17%, because it's uncomfortable. That discomfort is the moat.
The data
Free to download, cite and reuse under CC BY 4.0:
- The graded record, every call and every result: onsidearena.com/model-record
- The raw data: onsidearena.com/data
- The methodology: onsidearena.com/methodology
If you're building something similar, take it. If you find an error in the grading, I'd rather hear it than not.
The same engine now points at Fantasy Premier League, currently at 0.86 mean absolute error across 51,518 out-of-sample predictions. The 2026/27 season starts 21 August, and the record gets published the same way: every gameweek, wins and losses, in public.
Top comments (0)