WC2026

Price football matches, then check the model against the market.

Football

Machine learning

Role

Research, modeling, product, build

Timeline

Research build

team

Independent build

platform

Python and web

WC2026 championship probability model
The Real Problem

Football predictions are easy to publish and hard to evaluate. A correct winner can still come from a poorly priced model, while a plausible probability can hide weak assumptions about teams, tournaments, and low-scoring matches.

I wanted a system that could price outcomes, survive historical testing, and make its disagreement with a market visible enough to inspect.

The question is not just who wins. It is whether the model's probability is better calibrated than the price.

WC2026 model output chart

Finding the Fix

The predictor combines a Dixon-Coles bivariate Poisson model with XGBoost. The statistical model handles football's score structure, while the machine-learning layer captures nonlinear relationships in team and match features.

The output becomes fair-value probabilities. Before comparing them with Kalshi, the tool also derives a no-vig market anchor.

  • Assemble reproducible match and team data from public sources.

  • Backtest on past World Cups instead of memorable games.

  • Compare calibrated probabilities, not only winner accuracy.

  • Size simulated positions with a conservative Kelly framework.

WC2026 football forecasting cover

What Actually Happened

The first model looked impressive on ordinary train-test splits and became less convincing when the split respected time. Tournament football changes, national teams have sparse schedules, and a feature can quietly leak future information.

Rebuilding the evaluation around historical cutoffs made the model more honest. Backtests on the 2018 and 2022 tournaments became the central reference.

WC2026 research build cover

What Changed

The product stopped presenting one confident prediction and began showing a range of evidence. Users can see the fair price, the market anchor, the model edge, and the simulated position size as separate ideas.

A $1,000 paper account makes decisions concrete without confusing an experiment for financial advice or a proven live strategy.

WC2026 model backtest output

What I Had to Work With

The entire system uses free public data, so coverage, naming, and update cadence are imperfect. International football adds infrequent matches, changing squads, and neutral venues.

Those limits favor simple, inspectable features and careful backtests over a huge model that cannot explain why it moved.

WC2026 championship probabilities

What I'd Do Differently

I would build the data contracts before experimenting with model combinations. Too much early work went into reconciling team names and repairing historical rows after modeling had already begun.

I would also track calibration and closing-price movement from the first simulated trade.


What I Learned

A backtest is a product feature. It needs understandable assumptions, reproducible inputs, and a display that makes failure visible.

I also learned that market comparison improves the interface. It forces every model number to have a reference point.

Let's Talk

I'm most energized by projects where I can dig into complex problems, collaborate with smart people, and ship things that genuinely improve someone's day.

Summermaxxing

Sansar

Make varsity. Grow Clavix to $10k/month. Win a hackathon. Season one ends August 31.

1

Create a free website with Framer, the website builder loved by startups, designers and agencies.