Model accuracy of 62.7% beat the always-pick-favorite baseline (45%) by 17.7 points. Brier score of 0.577 beat the coin-flip baseline (0.667) by 0.090.
Head-to-head performance of different rating models on this tournament. “Elo (walk-forward)” updates ratings after each match; snapshot-based models use pre-tournament ratings for all matches.
| Model | Accuracy | Brier | Log Loss | Correct |
|---|---|---|---|---|
| Glicko-2Best | 64.7% | 0.5472 | 0.9880 | 33/51 |
| Bradley-Terry | 62.7% | 0.5524 | 0.9942 | 32/51 |
| Grid-Optimized | 62.7% | 0.5617 | 0.9922 | 32/51 |
| Combined (Elo+Roster) | 60.8% | 0.5711 | 0.9994 | 31/51 |
| Elo (walk-forward) | 62.7% | 0.5773 | 1.0123 | 32/51 |
Ratings before the tournament began. Only participating teams shown.
| Date | Match | Score | H% | D% | A% | xG | Pred | |
|---|---|---|---|---|---|---|---|---|
| Jun 11 | ITAvTUR | 3–0 | 78 | 15 | 7 | 2.8–0.7 | ITA | ✓ |
| Jun 12 | WALvSUI | 1–1 | 27 | 27 | 46 | 1.2–1.7 | SUI | ✗ |
| Jun 12 | DENvFIN | 0–1 | 86 | 10 | 4 | 3.3–0.6 | DEN | ✗ |
| Jun 12 | RUSvBEL | 0–3 | 1 | 3 | 97 |
| 1385 |
| 1748 |
| 9 | ItalyITA | 1608 | 1608 | 1392 | 1736 |
| 13 | SwitzerlandSUI | 1581 | 1581 | 1419 | 1694 |
| 16 | CroatiaCRO | 1578 | 1578 | 1422 | 1695 |
| 17 | DenmarkDEN | 1577 | 1577 | 1423 | 1730 |
| 19 | NetherlandsNED | 1570 | 1570 | 1430 | 1724 |
| 21 | PolandPOL | 1565 | 1565 | 1435 | 1693 |
| 22 | SwedenSWE | 1559 | 1559 | 1441 | 1694 |
| 24 | WalesWAL | 1558 | 1558 | 1442 | 1679 |
| 27 | TurkeyTUR | 1551 | 1551 | 1449 | 1664 |
| 28 | AustriaAUT | 1546 | 1546 | 1454 | 1656 |
| 31 | UkraineUKR | 1543 | 1543 | 1457 | 1662 |
| 35 | RussiaRUS | 1536 | 1536 | 1464 | 1668 |
| 37 | SlovakiaSVK | 1532 | 1532 | 1468 | 1647 |
| 38 | HungaryHUN | 1531 | 1531 | 1469 | 1645 |
| 43 | Czech RepublicCZE | 1525 | 1525 | 1475 | 1662 |
| 44 | ScotlandSCO | 1525 | 1525 | 1475 | 1638 |
| 64 | FinlandFIN | 1507 | 1507 | 1493 | 1645 |
| 67 | North MacedoniaMKD | 1505 | 1505 | 1495 | 1633 |
| 0.4–4.8 |
| BEL |
| ✓ |
| Jun 13 | AUTvMKD | 3–1 | 60 | 24 | 15 | 1.9–0.9 | AUT | ✓ |
| Jun 13 | NEDvUKR | 3–2 | 60 | 23 | 17 | 2.1–1.0 | NED | ✓ |
| Jun 13 | ENGvCRO | 1–0 | 75 | 17 | 8 | 2.6–0.8 | ENG | ✓ |
| Jun 14 | SCOvCZE | 0–2 | 43 | 28 | 29 | 1.6–1.3 | SCO | ✗ |
| Jun 14 | POLvSVK | 1–2 | 56 | 26 | 18 | 1.8–0.9 | POL | ✗ |
| Jun 14 | ESPvSWE | 0–0 | 78 | 15 | 7 | 2.8–0.8 | ESP | ✗ |
| Jun 15 | HUNvPOR | 0–3 | 3 | 10 | 87 | 0.6–3.4 | POR | ✓ |
| Jun 15 | GERvFRA | 0–1 | 22 | 26 | 53 | 1.1–1.9 | FRA | ✓ |
| Jun 16 | TURvWAL | 0–2 | 30 | 30 | 41 | 1.2–1.4 | WAL | ✓ |
| Jun 16 | ITAvSUI | 3–0 | 65 | 22 | 14 | 2.2–0.9 | ITA | ✓ |
| Jun 16 | RUSvFIN | 1–0 | 55 | 25 | 20 | 1.9–1.1 | RUS | ✓ |
| Jun 17 | DENvBEL | 1–2 | 2 | 7 | 91 | 0.5–3.8 | BEL | ✓ |
| Jun 17 | UKRvMKD | 2–1 | 59 | 25 | 16 | 1.9–0.9 | UKR | ✓ |
| Jun 17 | NEDvAUT | 2–0 | 59 | 24 | 17 | 2.0–1.0 | NED | ✓ |
| Jun 18 | CROvCZE | 1–1 | 55 | 26 | 19 | 1.8–0.9 | CRO | ✗ |
| Jun 18 | ENGvSCO | 0–0 | 97 | 3 | 1 | 4.8–0.4 | ENG | ✗ |
| Jun 18 | SWEvSVK | 1–0 | 48 | 28 | 24 | 1.6–1.1 | SWE | ✓ |
| Jun 19 | ESPvPOL | 1–1 | 78 | 15 | 7 | 2.8–0.7 | ESP | ✗ |
| Jun 19 | HUNvFRA | 1–1 | 1 | 2 | 97 | 0.4–5.0 | FRA | ✗ |
| Jun 19 | GERvPOR | 4–2 | 28 | 28 | 45 | 1.3–1.6 | POR | ✗ |
| Jun 20 | ITAvWAL | 1–0 | 79 | 14 | 6 | 2.8–0.7 | ITA | ✓ |
| Jun 20 | SUIvTUR | 3–1 | 58 | 25 | 17 | 1.9–0.9 | SUI | ✓ |
| Jun 21 | DENvRUS | 4–1 | 56 | 25 | 19 | 2.0–1.1 | DEN | ✓ |
| Jun 21 | FINvBEL | 0–2 | 0 | 1 | 99 | 0.2–6.0 | BEL | ✓ |
| Jun 21 | NEDvMKD | 3–0 | 93 | 6 | 2 | 4.0–0.5 | NED | ✓ |
| Jun 21 | UKRvAUT | 0–1 | 34 | 30 | 36 | 1.3–1.3 | AUT | ✓ |
| Jun 22 | SCOvCRO | 1–3 | 17 | 24 | 59 | 1.0–2.0 | CRO | ✓ |
| Jun 22 | ENGvCZE | 1–0 | 93 | 6 | 2 | 4.0–0.5 | ENG | ✓ |
| Jun 23 | ESPvSVK | 5–0 | 88 | 9 | 3 | 3.5–0.6 | ESP | ✓ |
| Jun 23 | SWEvPOL | 3–2 | 41 | 30 | 29 | 1.4–1.2 | SWE | ✓ |
| Jun 23 | GERvHUN | 2–2 | 92 | 6 | 2 | 3.9–0.5 | GER | ✗ |
| Jun 23 | PORvFRA | 2–2 | 18 | 26 | 56 | 0.9–1.8 | FRA | ✗ |
| Jun 26 | ITAvAUT | 2–1 | 78 | 16 | 6 | 2.5–0.6 | ITA | ✓ |
| Jun 26 | WALvDEN | 0–4 | 29 | 30 | 41 | 1.1–1.3 | DEN | ✓ |
| Jun 27 | NEDvCZE | 0–2 | 72 | 19 | 9 | 2.2–0.6 | NED | ✗ |
| Jun 27 | BELvPOR | 1–0 | 72 | 19 | 9 | 2.2–0.6 | BEL | ✓ |
| Jun 28 | CROvESP | 3–5 | 14 | 24 | 62 | 0.8–1.8 | ESP | ✓ |
| Jun 28 | FRAvSUI | 3–3 | 80 | 15 | 6 | 2.5–0.6 | FRA | ✗ |
| Jun 29 | ENGvGER | 2–0 | 52 | 26 | 22 | 1.7–1.0 | ENG | ✓ |
| Jun 29 | SWEvUKR | 1–2 | 59 | 25 | 16 | 1.7–0.8 | SWE | ✗ |
| Jul 2 | SUIvESP | 1–1 | 17 | 26 | 58 | 0.8–1.7 | ESP | ✗ |
| Jul 2 | BELvITA | 1–2 | 71 | 20 | 10 | 2.1–0.7 | BEL | ✗ |
| Jul 3 | CZEvDEN | 1–2 | 17 | 25 | 58 | 0.8–1.7 | DEN | ✓ |
| Jul 3 | UKRvENG | 0–4 | 3 | 10 | 87 | 0.5–3.0 | ENG | ✓ |
| Jul 6 | ITAvESP | 1–1 | 45 | 29 | 26 | 1.4–1.0 | ITA | ✗ |
| Jul 7 | ENGvDEN | 2–1 | 80 | 14 | 6 | 2.7–0.6 | ENG | ✓ |
| Jul 11 | ENGvITA | 1–1 | 45 | 28 | 27 | 1.5–1.1 | ENG | ✗ |