The 2026 Dark-Horse Audit: Grading Our June Checklist
In June we published a checklist for spotting World Cup overperformers — explicitly hypothetical, no teams named. The tournament has now graded it. The ledger of who actually beat their seed, box-by-box scores, and the uncomfortable result: the two boxes we could test both failed.
Five days before the tournament, this site published a dark-horse checklist — five traits that supposedly mark a team about to outrun expectations, illustrated with numbers we explicitly labelled invented. The tournament is over, the 104-match dataset is final, and a checklist published before the fact deserves a grade after it. So: six teams beat their group-stage seed in the knockouts — Belgium, Morocco, Norway, Egypt, Canada and Paraguay. Of the checklist's five boxes, two cannot be tested with our data, one doesn't map to anything measurable, and the two that can be scored — the elite keeper and the kind draw — both failed. Only one of the six overperformers ranked in the field's top third on shot-stopping, and five of their nine knockout wins came against top-half seeds, not around them.
Sourcing. Every number here is computed from the bundled tournament dataset — all 104 completed matches with per-team box scores from ESPN's public scoreboard and summary feeds, served raw at /data/wc2026_results.json. Following the site convention, the first 72 matches are the group stage and the last 32 the knockouts; knockout draws are shootouts by construction, a shootout win counts as a knockout win, and the third-place game is excluded. Chart and every transcribed figure: charts/chart_wc2026_dark_horse_audit.py.
What the June piece actually claimed
Restated as predictions, the checklist said overperformers would tend to show: underlying performance — xG and xGA — ahead of results and reputation; a goalkeeper capable of stealing ties; a real set-piece edge; a kind side of the draw; and squad depth for the heat and schedule. It named no teams and flagged its one worked profile as invented in every detail — which is what makes an audit possible: the claims sit on the record, dated June 6.
The ledger: who actually beat their seed
"Dark horse" needs a definition that lives entirely inside the data. Ours: rank the 32 knockout qualifiers by group-stage record — points, then goal difference, then goals scored — and call that the seed. Chalk expectation is the staircase in the chart: seeds 1–2 reach the final, 3–4 the semis, 5–8 the quarters, 9–16 the round of 16, 17–32 go out immediately. An overperformer beat that expectation; a dark horse is an overperformer from outside the consensus-favourite set our June ratings piece put on record — Brazil, France, Argentina, Germany, Spain, England (how models rate the field). Eight teams finished above the stairs. Two were favourites: Spain, seed 6 by group record, won the whole thing (+3 rounds), and England reached the semis from seed 8 (+1). The other six are the ledger:
| Team | Seed (group record) | Run | vs seed | Signature result |
|---|---|---|---|---|
| Belgium | 18 (5 pts, +4) | QF, lost 2–1 to Spain | +2 | 4–1 over #12 United States |
| Morocco | 9 (7 pts, +3) | QF, lost to France | +1 | shoot-out over #4 Netherlands |
| Norway | 14 (6 pts, +1) | QF, lost to England | +1 | 2–1 over #5 Brazil |
| Egypt | 19 (5 pts, +2) | R16, lost 3–2 to Argentina | +1 | shoot-out over #26 Australia |
| Canada | 20 (4 pts, +5) | R16, lost 0–3 to Morocco | +1 | 1–0 over #28 South Africa |
| Paraguay | 30 (4 pts, −2) | R16, lost 0–1 to France | +1 | shoot-out over #11 Germany |
Two names the narrative wanted on this list are honestly not on it. Switzerland's quarter-final was not an overperformance: they were seed 7, and seeds 5–8 are supposed to make the quarters. And Colombia went home unbeaten — two group wins and a draw, 1–0 over Ghana, a 0–0 with Switzerland lost on kicks — yet never beat their seed: 10th, round-of-16 exit, exactly on the stairs. Paraguay's shoot-out win over Germany, a 19-place seed gap, was the largest upset of the tournament by this measure; Norway over Brazil (+9) was second. Both runs have their own files: Norway's numbers and the shootout retrospective.
Scoring the checklist, box by box
Box 1 — xG/xGA ahead of results: untestable. Our feed carries box scores, not expected goals, and the claim is about the pre-tournament cycle besides. We won't improvise a substitute and call it xG: this box needs data we don't bundle.
Box 2 — the elite keeper: testable, and it failed. Our proxy is tournament-long save rate: one minus goals allowed over shots on target faced, across all matches (shoot-out kicks excluded). The six dark horses rank 7th (Paraguay, 77.8%), 17th, 18th, 20th, 21st and joint-bottom (Canada, 50.0%) among the 32 knockout teams — one of six in the top third, four of six at or below the field median of 70.7%. Norway's +1 run happened on a 64.5% save rate. Meanwhile the best save rates in the field behind champion Spain (90.0%) belonged to Portugal (86.4%) and Colombia (85.7%, one goal allowed on seven on-target shots in five games) — who exited precisely on seed. The proxy is crude — it blends keeper skill, defensive shot quality and opponent finishing, on small denominators — but the claim was directional, and the direction did not show up.
Box 3 — the set-piece edge: unmappable. The feed logs corners won, not set-piece goals, and corner volume is not dead-ball prowess — we showed during the group stage that out-cornering the opponent was a coin flip. For the record, the six dark horses span the entire corner spectrum — Paraguay's 2.0 per game (joint-lowest in the knockout field) to Canada's 10.0 (highest): no common signature, and no honest way to score the actual claim.
Box 4 — the kind draw: mostly failed. Directly measurable: the seeds of the teams each dark horse knocked out. Five of their nine knockout wins came against top-16 seeds — Morocco through #4 Netherlands, Norway through #5 Brazil and #13 Ivory Coast, Paraguay through #11 Germany, Belgium through #12 United States. Only Belgium's opener (#31 Senegal), Egypt (#26 Australia) and Canada (#28 South Africa) fit the soft-path story. The 2026 overperformers did not slip around contenders; most of them went through the front door.
Box 5 — depth for heat and schedule: untestable. No lineups, no rotation, no venue weather in this feed. Unscored.
The verdict, and what the checklist should say now
Final scorecard: zero boxes validated, two failed, one unmappable, two untestable. What survived is the June piece's definition — a dark horse as a mispricing rather than a lucky weak team — and its refusal to name one. Belgium is the definition wearing a shirt: a squad nobody would call weak, priced to seed 18 by a bad group, then two rounds better than the bracket's implied expectation. The constructive lesson: the honest anchor was the group table itself — nine-point teams went 3-for-3, four-point teams 2-for-11 (did the groups predict the bracket) — and dark horses are the residuals around it, residuals that in 2026 shared no box-score profile at all. Paraguay overran their seed with 29.7% possession, the lowest in the knockout field; Morocco did it with 59.0%. Which pre-match numbers did sort knockout winners from losers — possession identity over goals form — is already settled in the knockout autopsy; this piece defers to it.
The caveats, at full volume
This is one tournament and six teams — an audit, not a refutation; a checklist can lose a single World Cup and still be right on average. The definition drives the result: seeding by group record measures in-tournament expectation, and a different anchor (FIFA ranking, June market odds) would redraw the list — it would never call sixth-seeded Spain an overperformer, and might not call 2022 semi-finalist Morocco "dark" at all. Our proxies are box-score shadows of the checklist's real claims. And a five-box checklist scored against six teams is exactly the small-sample regime we warn about. The June piece now carries a dated pointer here: a prediction made in public, and its grade.
Sources
- Match results and team stats: ESPN public scoreboard + match-summary APIs, parsed to
data_layer/wc2026_results.json(all 104 matches, tournament complete); served at /data/wc2026_results.json. Seeding, ledger, save-rate proxy and every transcribed number computed bycharts/chart_wc2026_dark_horse_audit.py. - The prediction under audit: how to spot a dark horse (June 6, pre-tournament), and the consensus-favourite set from how models rate the field (June 5).
- The retrospective series this closes out: what predicted the knockouts, did expansion dilute it, did the groups predict the bracket and the shootouts; the World Cup hub collects all of it.