Prince Okunade.
All projects

SPORT & PROBABILISTIC MODELLING

World Cup Forecasting

Bringing my interest in sport into a model that describes tournament uncertainty rather than presenting a single outcome as certain.

10,000tournament simulations configured
0.832test log-loss, blended model
0.838test log-loss, Elo baseline

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.