Independent assessment of the LSTM's prediction quality across the 30 knockout matches (Round of 32 through Semi-finals, w73–w102). All figures are computed directly from the model's predictions (Model column) and the actual results; nothing is estimated.
| Category | Points | Count | Share |
|---|---|---|---|
| Exact result ✓✓ | 200 | 7 | 23.3% |
| Correct draw (different score) | 100 | 1 | 3.3% |
| Winner + 1 correct team score | 95 | 9 | 30.0% |
| Correct winner | 75 | 7 | 23.3% |
| 1 team score correct (wrong winner) | 20 | 5 | 16.7% |
| Fully wrong | 0 | 1 | 3.3% |
Three things stand out:
1. Almost no complete misses. In 29 of the 30 KO matches, the model scored at least the winner or one correct team score. Only once fully wrong. That's a very stable error profile — the model almost never "derails".
2. More than half top hits. In 56.7% of matches (17/30), the model reached ≥95 points, i.e. the correct winner plus at least one exact team score (or an exact correct draw). That's the category that wins pools.
3. Strong exact-score hit rate. Almost 1 in 4 KO results exactly correct (23.3%). For calibration: a naive Poisson-modal model scored 16.7% exact, and a market-optimized model only 10%. Predicting exact scores is the hardest task, and it's precisely there that the LSTM performs above average.
| # | Match | Model | Result | Pts | MAE |
|---|---|---|---|---|---|
| Round of 32 (w73–w88) | |||||
| 73 | South Africa – Canada | 1-3 | 0-1 | 75 | 3 |
| 74 | Germany – Paraguay | 2-1 | 1-1 pen.↗ | 20 | 1 |
| 75 | Netherlands – Morocco | 2-1 | 1-1 pen.↗ | 20 | 1 |
| 76 | Brazil – Japan | 2-1 | 2-1 ✓✓ | 200 ✓ | 0 |
| 77 | France – Sweden | 3-1 | 3-0 | 95 | 1 |
| 78 | Ivory Coast – Norway | 1-2 | 1-2 ✓✓ | 200 ✓ | 0 |
| 79 | Mexico – Ecuador | 2-1 | 2-0 | 95 | 1 |
| 80 | England – DR Congo | 2-1 | 2-1 ✓✓ | 200 ✓ | 0 |
| 81 | USA – Bosnia | 2-1 | 2-0 | 95 | 1 |
| 82 | Belgium – Senegal | 2-1 | 3-2 | 75 | 2 |
| 83 | Portugal – Croatia | 2-1 | 2-1 ✓✓ | 200 ✓ | 0 |
| 84 | Spain – Austria | 3-1 | 3-0 | 95 | 1 |
| 85 | Switzerland – Algeria | 2-1 | 2-0 | 95 | 1 |
| 86 | Argentina – Cape Verde | 2-0 | 3-2 | 75 | 3 |
| 87 | Colombia – Ghana | 2-0 | 1-0 | 95 | 1 |
| 88 | Australia – Egypt | 2-1 | 1-1 pen.↗ | 20 | 1 |
| Round of 16 (w89–w96) | |||||
| 89 | Canada – Morocco | 1-2 | 0-3 | 75 | 2 |
| 90 | Paraguay – France | 1-2 | 0-1 | 75 | 2 |
| 91 | Brazil – Norway | 1-1 p. | 1-2 | 20 | 1 |
| 92 | Mexico – England | 1-2 | 2-3 | 75 | 2 |
| 93 | Portugal – Spain | 1-2 | 0-1 | 75 | 2 |
| 94 | USA – Belgium | 1-2 | 1-4 | 95 | 2 |
| 95 | Argentina – Egypt | 3-1 | 3-2 | 95 | 1 |
| 96 | Switzerland – Colombia | 1-1 p. | 0-0 pen. | 100 D | 2 |
| Quarter-finals (w97–w100) | |||||
| 97 | France – Morocco | 2-0 | 2-0 ✓✓ | 200 ✓ | 0 |
| 98 | Spain – Belgium | 2-1 | 2-1 ✓✓ | 200 ✓ | 0 |
| 99 | Norway – England | 1-2 | 1-2 ✓✓ | 200 ✓ | 0 |
| 100 | Argentina – Switzerland | 2-1 | 3-1 | 95 | 1 |
| Semi-finals (w101–w102) | |||||
| 101 | France – Spain | 1-1 pen. | 0-2 | 0 | 2 |
| 102 | England – Argentina | 1-1 pen. | 1-2 | 20 | 1 |
| TOTAL (30 matches) | 2980 / 99.3 | 1.17 | |||
| Phase | Matches | Pts/match |
|---|---|---|
| Round of 32 | 16 | 103.4 |
| Round of 16 | 8 | 76.2 |
| Quarter-finals | 4 | 173.8 |
| Semi-finals | 2 | 10.0 |
| Total | 30 | 99.3 |
The quarter-finals were the strongest (173.8/match — nearly all results correct, several exact). The Round of 32 was comfortably above 100. The weak spot is exclusively the semi-finals (10.0): both were low-probability outcomes (Spain 2-0 France; Argentina's late comeback 2-1 vs. England) that the Opta supercomputer also got wrong — Opta's favorite lost both. So this is not a weakness of the model specifically, but the intrinsic unpredictability of those two matches (n=2).
Purely to calibrate "how good is 99.3?":
| Predictor | Pts/match |
|---|---|
| train_38 LSTM + calibrator | 99.3 |
| >5% ELO rule | 82.5 |
| Poisson EV-opt (market/bookmaker proxy) | 81.8 |
| Poisson modal | 69.7 |
The LSTM sits ~17 points per match above the plain ELO rule and the market-optimized Poisson baseline. See the head-to-head vs. Opta below for a direct comparison against real Opta win-probability data.
Direct comparison against Opta's actual per-match win probabilities (25,000 simulations, 90 minutes), taken from Opta's own match previews. No proxy, no estimate.
Coverage: all 14 matches from the Round of 16 onward (Round of 16 → Semi-finals, w89–w102) — every match for which Opta published a preview with an exact win/draw/win split. The Round of 32 (w73–w88) is not included: Opta's live widget "collapses" to 100/0 after full time, so those pre-match splits are no longer available. Round of 16 through the final is the heaviest, most decisive KO subset.
The model beats the best public predictor in the world on both measures — winners and Brier score — across these 14 out-of-sample knockout matches.
Where the difference lies. Both missed the same three big upsets: Norway's demolition of Brazil (w91), and both semi-finals (Spain over France, Argentina over England). But the model won two duels where Opta missed:
USA–Belgium (w94): Opta favored USA (37.2%). Model: 1-2 Belgium. Result: 1-4 Belgium. Model correct, Opta wrong.
Switzerland–Colombia (w96): Opta favored Colombia (42.7%). Model: 1-1 (draw → penalties). Result: 0-0 (Switzerland on penalties). Model correct, Opta wrong.
In the Round of 16, it was 7/8 (model) against 5/8 (Opta) on winners. That gap is what tips the overall comparison.
| # | Match | Opta (A/draw/B) | Opta favorite | Model | Result | Winner | Opta | Model |
|---|---|---|---|---|---|---|---|---|
| w89 | Canada – Morocco | 22/26/53 | Morocco | 1-2 | 0-3 | Morocco | ✓ | ✓ |
| w90 | Paraguay – France | 7/14/80 | France | 1-2 | 0-1 | France | ✓ | ✓ |
| w91 | Brazil – Norway | 54/24/22 | Brazil | 1-1 | 1-2 | Norway | ✗ | ✗ |
| w92 | Mexico – England | 32/28/41 | England | 1-2 | 2-3 | England | ✓ | ✓ |
| w93 | Portugal – Spain | 26/25/49 | Spain | 1-2 | 0-1 | Spain | ✓ | ✓ |
| w94 | USA – Belgium | 37/26/36 | USA | 1-2 | 1-4 | Belgium | ✗ | ✓ |
| w95 | Argentina – Egypt | 70/19/12 | Argentina | 3-1 | 3-2 | Argentina | ✓ | ✓ |
| w96 | Switzerland – Colombia | 29/28/43 | Colombia | 1-1 | 0-0 | draw | ✗ | ✓ |
| w97 | France – Morocco | 62/22/16 | France | 2-0 | 2-0 | France | ✓ | ✓ |
| w98 | Spain – Belgium | 59/22/18 | Spain | 2-1 | 2-1 | Spain | ✓ | ✓ |
| w99 | Norway – England | 25/25/50 | England | 1-2 | 1-2 | England | ✓ | ✓ |
| w100 | Argentina – Switzerland | 58/24/18 | Argentina | 2-1 | 3-1 | Argentina | ✓ | ✓ |
| w101 | France – Spain | 44/27/29 | France | 1-1 | 0-2 | Spain | ✗ | ✗ |
| w102 | England – Argentina | 37/31/32 | England | 1-1 | 1-2 | Argentina | ✗ | ✗ |
On the KO phase of WK 2026, train_38 + calibrator is a qualitatively strong model: a high and stable point level (99.3/match), very low miss risk (1 in 30 fully wrong), an above-average exact-score hit rate (23%), and low goal error (MAE 1.17). It beats every statistical baseline on pool scoring, and on the 14 knockout matches with real Opta win-probability data (Round of 16 onward) it also beats the Opta supercomputer itself — higher winner accuracy (78.6% vs. 64.3%) and a better Brier score (0.429 vs. 0.457). The only real limitation is the small sample (30 matches overall, 14 in the Opta comparison) and the two semi-finals — outcomes no model, Opta included, saw coming. Within those bounds: this is a well-performing predictor, not a lucky streak.
| Metric | Your LSTM | Opta supercomputer |
|---|---|---|
| Correct winner | 78.6% (11/14) | 64.3% (9/14) |
| Brier score (lower = better) | 0.429 | 0.457 |
| Pool points (scorelines) | 94.6/match | n/a |
Group phase — assessment vs. Opta/market level:
In the group phase (72 matches, Uncal series) the model scored 5230 points = 72.6/match — on par with Opta/market-grade Poisson EV-optimal (72.4/match) and the >5% ELO rule (72.7/match). Market-level performance, no deficit.
The calibrator's value is in the KO, not the group phase. Cal 71.5/match vs. Uncal 72.6/match (−1.1). That is why the Uncal series is the right benchmark for the group phase.
Across both phases combined: strong in the group phase (Opta-level, 72.6/match, 68% winners), superior in the KO (78.6% winners, beats Opta). This is a world-class predictor.
HackMD — FIFA WK 2026 Predictions
Opta previews (14 matches): Canada–Morocco, Paraguay–France, Brazil–Norway, Mexico–England, Portugal–Spain, USA–Belgium, Argentina–Egypt, Switzerland–Colombia, France–Morocco, Spain–Belgium, Norway–England, Argentina–Switzerland, France–Spain, England–Argentina