Project · Simulation · 10,000 runs

World Cup Monte Carlo Simulator

A tournament simulator that plays the World Cup ten thousand times, producing probability distributions for every team’s path: group escape, quarterfinals, the trophy itself.

Live PythonMonte CarloPandasPoisson models

Why a football tournament is an actuarial problem

Strip away the crowd noise and a World Cup is a portfolio of correlated random events. Each match is a random draw; each team’s tournament is a compound path through those draws. That is pricing-and-reserving thinking wearing a jersey, which is exactly why I built it: to practice the mindset on a problem people actually want to talk about.

How it works

Goals for each side are modeled as Poisson processes with rates derived from team strength ratings, adjusted for the matchup. Simulating a match means drawing from those distributions; simulating the tournament means chaining draws through the real group and bracket structure. Repeat 10,000 times and frequencies converge to stable probability estimates, the same Monte Carlo logic insurers use to model catastrophe portfolios.

What it taught me

Three lessons transferred straight to exam and work life: small rate assumptions compound into huge outcome differences (assumption risk is real); tail outcomes happen, some simulated finals featured teams no pundit would pick (respect the tails); and communicating a distribution honestly is harder than computing it (a lesson Exam PA later formalized).

The takeaway

If you’re a student: build the fun version of a serious method. Interviewers remember the candidate who simulated the World Cup and can explain Poisson processes because of it.

Buy me a coffee