Inspiration
What it does
How we built it
The Question
The 2026 FIFA World Cup kicks off in weeks. Prediction markets are pricing the tournament based on reputation. I wanted to know: what does the actual match data say?
How I Built It
I pulled 7,095 international matches from 2019 onwards and built an Elo rating system across 276 national teams — the same methodology used in chess rankings, adapted for football. Every result updates each team's rating based on opponent strength.
Then I ran the full 2026 World Cup bracket — all 48 teams, 12 groups, complete knockout rounds — 10,000 times using Monte Carlo simulation.
What I Found
The results challenge conventional wisdom:
- Morocco ranks 3rdwith a 6.4% win probability — yet Polymarket prices them at just 3%
- Argentina is the biggest market disagreement — priced at 26% by betting markets, my model gives them 7.9% (an 18-point gap)
- Brazil sits at 13% on Polymarket — the data says 2.3%
- Spain leads the model at 8.0%, nearly matching the market's 9%
The market is betting on historical prestige. The data is betting on recent form.
The Math
Each match win probability is calculated using the Elo formula:
\( E_A = \frac{1}{1 + 10^{(R_B - R_A)/400}} \)
K-factor of 24 applied uniformly across all match types.
Built With Zerve
Entire workflow on Zerve — from raw CSV upload to Elo engine to Monte Carlo simulator to deployed interactive Streamlit app. Zero context switching. Question to production in under 24 hours.
Challenges
Getting Zerve's AI to stop asking clarifying questions and just build. Once I gave it firm assumptions, it moved fast.
Log in or sign up for Devpost to join the conversation.