Poovanna Machangada Sathish

Betting markets as forecasts

Betting odds are prices on uncertain outcomes, so they're a good place to test market efficiency with a lot of data. My day job is in sports trading, and I ran two tests on public football prices.

Built with
Python, NumPy, SciPy, pandas
Data
Football-Data.co.uk results and odds, 2000 to 2026
Method
Walk-forward Dixon–Coles model, returns by price band

Can a model beat the price?

I fitted the Dixon–Coles model to past Premier League and Championship results, refitted it every week on earlier matches only, and compared its forecasts with Bet365's on 2,660 matches from 2019/20 to 2025/26.

Bet365 was more accurate in all seven seasons, by 0.016 in log loss (95% interval 0.010 to 0.023). Averaging the model with Bet365 made Bet365 worse, so the model held nothing the price didn't already know.

Log loss by season for the model and Bet365.
Log loss per season, lower is better.

Are all prices equally fair?

Backing every outcome in 235,796 matches, the loss grew with the odds: −0.5% at 1.01 to 1.25 and −40.6% at 13 or longer. That's the favourite-longshot bias, and it's the question I'd ask of any market: where is the mispricing, and is it big enough to cover the costs?

Return per pound staked by Bet365 price band.
Return per £1 staked, by Bet365 price band. Best price is the top price across about 17 bookmakers.