The problem
A match prediction does not directly tell us a team’s chance of winning a tournament. Group positions, knockout paths and uncertain match results all affect progression. This project builds a probabilistic forecast for the 2026 format.
Approach and solution
The pipeline uses more than 49,000 historical international matches, rolling Elo, recent form, head-to-head results, ranking and squad features. It compares an Elo and logistic baseline with XGBoost and LightGBM, then uses a 50/50 blend of the calibrated boosting models.
How it works
Outcome probabilities drive repeated tournament simulations. A separate goals model supplies scorelines for goal-difference tiebreakers and extra time. Each run progresses through the group stage and knockout rounds, producing probabilities of reaching each stage and winning in a CSV report.
Decisions and results
Training is split chronologically: through 2021 for training, 2022–2024 for validation and 2025 onward for testing. On the 2025+ test split, I measured log-loss of 0.832 for the blend versus 0.838 for Elo, a modest improvement. On validation, LightGBM alone had lower log-loss than the blend, so blending was not uniformly better.
What did not work as hoped
Live squad scraping was blocked, so the project uses a committed April 2026 snapshot. That makes the pipeline runnable but can leave squad features stale. Penalty-shootout probabilities and the greedy assignment of third-placed teams are modelling approximations that need separate validation.
Effect and limits
The output is a distribution of plausible tournament outcomes, not a guaranteed winner. These match-level metrics do not establish prospective tournament accuracy. A retrospective rerun must carefully freeze the information available at the intended forecast date.
Demo availability
This project runs locally; there is no public hosted demo. The code includes the implementation and setup instructions.