Using bookmaker odds and 50,000 Monte Carlo simulations to forecast final standings
By combining live betting odds with Monte Carlo simulation, I modelled 50,000 possible end-of-season outcomes for every Premier League club based on their next two fixtures. The simulation confirmed Arsenal as near-certain champions (100%) with Manchester City locked into second (99%), while revealing a much tighter battle in the middle of the table — and a two-horse relegation fight at the bottom where Wolves and Burnley face a combined 93.8% chance of occupying the final two relegation spots.
Late in a Premier League season, the title race and relegation battle are often mathematically tight. Points gaps are small, remaining fixtures vary in difficulty, and a single result can reshape the entire table. Standard league table views tell you where teams stand right now — they don't tell you where they are likely to end up.
Goal: Build a simulation-based model that uses current league position and upcoming match odds to generate a probability distribution over every possible finishing position for all 20 clubs.
Rather than making a single deterministic prediction, the goal was to produce a full probability matrix — answering questions like "what is the chance Tottenham get relegated?" or "how likely is a top-four finish for Aston Villa?" in a way that a simple league table cannot.
I chose Monte Carlo simulation because it naturally handles uncertainty without forcing a single deterministic outcome. Rather than predicting one result per match, the model runs thousands of possible season endings and reports how often each scenario occurs.
Arsenal finish 1st in 100% of simulations, with Manchester City at 99% for 2nd place. With only two games remaining and a sufficient points gap, no realistic combination of results changes the top two — the title is Arsenal's to lose.
Manchester United (68.5% for 3rd) and Aston Villa (67.8% for 4th) are locked in a tight contest for European spots. Liverpool sit at 75.8% for 5th but face a 17.2% chance of slipping to 6th — a result that could have significant implications for European competition qualification.
The simulation places Tottenham at 53.8% to finish 17th and 30.1% to finish 18th — meaning over an 80% chance of landing in the bottom four. Despite their historical stature, the odds for their remaining fixtures reflect a team in serious form trouble heading into the final weeks.
Wolverhampton Wanderers and Burnley have a combined 187.6% probability points across 19th and 20th — each finishing in those spots in 93.8% of simulations. Their relegation is not yet mathematically confirmed, but the model treats it as near-certain given remaining fixture difficulty.
Before normalisation, raw implied probabilities for each match summed to roughly 105–108%, reflecting the typical bookmaker margin. Stripping this out meaningfully shifts win probabilities for underdogs, making the simulation fairer and better calibrated than using raw odds directly.
Running 50,000 iterations ensures the probability estimates are stable to within roughly ±0.5 percentage points. Early test runs at 1,000 and 10,000 simulations showed noticeable variance in mid-table probabilities; 50,000 produced consistent, reproducible results across runs.
Recommendation: For fans, analysts, or clubs monitoring the table, this approach provides a more honest view of uncertainty than headline points gaps alone. A team four points behind with a favourable fixture might have a 35% chance of overtaking — or only 5% — and the simulation quantifies that distinction clearly.
This project reinforced how powerful Monte Carlo methods are for communicating uncertainty. Rather than stating "Arsenal will win the league," the model produces a distribution that is both more honest and more informative. The normalisation step — removing the bookmaker overround — was a small but important detail that required understanding why raw implied probabilities can't be used directly.
If I revisited this analysis, I would extend it to simulate all remaining fixtures in the season rather than just the next two, and would incorporate goal difference tiebreakers for cases where teams are level on points. A natural extension would be to re-run the simulation daily as odds update and new results come in — turning this into a live season tracker rather than a single snapshot.