A planned machine learning project for Summer 2026: predict every match of the FIFA World Cup using historical data, team statistics and tournament context.
The FIFA World Cup 2026 is the first to feature 48 teams and will be hosted across 16 cities in the USA, Canada and Mexico. With more teams and more matches than any previous tournament, there is more data to predict and more uncertainty to model. I want to build an AI system that takes in historical World Cup results going back to 1930 alongside current team and player statistics, and produces a full probability distribution over every possible match outcome: win, draw or loss, with score predictions, group stage standings and knockout bracket simulation.
The goal is not just to get the winner right. Any prediction system that only outputs a winner is not very useful. I want to quantify uncertainty properly: for every match, the model should output a probability for each outcome so that you can see not just what is most likely but how confident the model is and what the alternative scenarios look like.
The core training data will be every international football result since 1872, covering over 45,000 matches. For World Cup matches specifically, the historical record goes back to Uruguay 1930. Each match record will include: date, teams, goals, tournament stage, host nation and match importance weighting.
Beyond raw results, I plan to incorporate:
Football prediction is a well-studied problem in sports analytics. The main approaches are:
My plan is to start with a calibrated Poisson baseline to validate the data pipeline, then train an XGBoost model on the full feature set and use Monte Carlo simulation to run the full tournament bracket 100,000 times, producing win probabilities for every possible knockout matchup.
The predictions will be deployed as a public web app so anyone can interact with them. The planned interface includes:
Stack: Python for data processing and model training, FastAPI for the prediction API, Next.js for the frontend, PostgreSQL to store match results and predictions, deployed on Vercel and Render.
The World Cup group stage begins on 11 June 2026. That gives me roughly from May 2026 to have a working model and deployed app in place. The plan:
Football and engineering do not usually sit in the same sentence but they share something important: they both reward people who think carefully about systems and uncertainty. A prediction model for a football tournament is a real applied machine learning problem with a clear deadline, a public output and a defined success criterion. It is also a project that will be genuinely useful and interesting to people outside of engineering, which matters to me.
I also want to document the entire build process as a blog post series so that other students can see how a real ML project comes together from data collection to deployed product.