Market Calibration: How Accurate Are Football Betting Odds?
19,381 matches. 5 leagues. 11 seasons. We tested bookmaker implied probabilities against what actually happened.
Total matches
19,381
Leagues
5
Seasons
11
Smallest displayed max gap
EPL
Largest displayed cluster gap
6.0pp
Smallest displayed maximum cluster gap in this study: 2.7pp.
Highest scoring sample (3.07 goals/match); fitted league-level ρ preset −0.096.
■ Serie A
Displayed cluster gaps include favourites +3.0pp and underdogs −4.8pp.
■ La Liga
Largest displayed cluster gap: Heavy Fav +6.0pp; lowest scoring sample.
■ Ligue 1
Highest red-card rate in the sample (21.8%) and widest listed average margin (4.8%).
Study scope: this page reports retrospective empirical results. It is not the site’s general probability-evaluation methodology. The headline cluster gaps below are descriptive maxima, not a complete scoring-rule evaluation of the underlying Home/Draw/Away probability vectors. For Brier score, log loss, reliability tables and validation design, use the Football Probability Evaluation Calculator and calibration guide. For a plain-language introduction to the question this study addresses, see how accurate football betting odds are.
Five leagues at a glance
| Metric | EPL | Bundesliga | Serie A | La Liga | Ligue 1 |
|---|---|---|---|---|---|
| Matches | 3,800 | 3,366 | 4,179 | 4,180 | 3,856 |
| Goals/match | 2.83 | 3.07 | 2.73 | 2.63 | 2.71 |
| Home win | 44.6% | 44.2% | 42.3% | 45.7% | 43.8% |
| Draw | 23.2% | 24.7% | 25.5% | 26.0% | 25.5% |
| Away win | 32.1% | 31.1% | 32.2% | 28.2% | 30.7% |
| Over 2.5 | 54.4% | 59.4% | 52.1% | 48.3% | 51.1% |
| BTTS | 52.8% | 58.4% | 53.6% | 51.4% | 52.0% |
| 0:0 | 6.1% | 5.6% | 6.9% | 7.3% | 7.2% |
| Margin | 4.1% | 4.6% | 4.7% | 4.6% | 4.8% |
Largest displayed calibration gap by league
| League | Largest gap | Where | Detail |
|---|---|---|---|
| EPL | 2.7pp | Clear Fav Home | Largest displayed EPL cluster gap |
| Bundesliga | 2.8pp | Even Home | Largest displayed Bundesliga cluster gap; Heavy Fav draw gap +2.6pp |
| Serie A | 4.8pp | Underdog Home | Observed home-win rate 4.8pp below the de-vigged implied rate |
| La Liga | 6.0pp | Heavy Fav Home | 81.1% observed vs 75.0% de-vigged implied |
| Ligue 1 | 4.0pp | Even Draw | Observed draw rate 4.0pp above the de-vigged implied rate |
Descriptively, the largest displayed gaps include La Liga heavy home favourites at +6.0pp and several draw clusters outside the EPL with observed rates above their de-vigged implied rates. These are retrospective maxima selected across many league/outcome/cluster comparisons. They should not be treated as proof of a persistent market bias without pre-specified tests, uncertainty intervals, season stability checks and multiple-comparison control.
Corners and goals: near-zero correlation
| League | Correlation (r) | n |
|---|---|---|
| EPL | −0.036 | 3,800 |
| Bundesliga | −0.028 | 3,366 |
| Serie A | −0.048 | 4,179 |
| La Liga | −0.008 | 4,180 |
| Ligue 1 | −0.001 | 3,856 |
Every coefficient is near zero or slightly negative across 19,381 matches. Full-match corner totals show no linear relationship with goals in this dataset. This does not test team-level corner profiles, set-piece quality, or live game-state effects.
Home-win rates changed substantially over time
| Season | EPL | Bundesliga | Serie A | La Liga | Ligue 1 |
|---|---|---|---|---|---|
| 2016/17 | 49.2% | 49.0% | 48.4% | 47.6% | 48.9% |
| 2020/21 | 37.9% | 42.2% | 40.8% | 41.6% | 37.4% |
| 2024/25 | 40.8% | 38.6% | 39.7% | 44.5% | 46.7% |
| 2025/26 | 42.6% | 43.8% | 38.9% | 48.9% | 46.2% |
The table shows a sharp cross-league drop around 2020/21 and substantial later divergence. Serie A is at 38.9% in 2025/26 in this dataset, while La Liga is at 48.9%. These descriptive rates do not by themselves identify why home-win frequency changed.
Most common scores across leagues
| # | EPL | Bundesliga | Serie A | La Liga | Ligue 1 |
|---|---|---|---|---|---|
| 1 | 1:1 (10.9%) | 1:1 (11.9%) | 1:1 (11.8%) | 1:1 (12.7%) | 1:1 (12.3%) |
| 2 | 1:0 (8.8%) | 2:1 (8.7%) | 1:0 (9.3%) | 1:0 (11.5%) | 1:0 (9.8%) |
| 3 | 2:1 (8.3%) | 1:0 (6.6%) | 2:1 (9.1%) | 2:1 (9.5%) | 2:1 (8.6%) |
1:1 is #1 in every league (10.9%–12.7%). La Liga 1:0 at 11.5% is nearly 3pp above EPL (8.8%); this is consistent with the lower-scoring La Liga sample but does not identify a causal style effect.
Dixon-Coles ρ: league-level heuristic fits in this sample
| League | Preset ρ | δ at league-average λ | Character |
|---|---|---|---|
| La Liga | −0.007 | +0.086pp | Near-zero aggregate preset |
| EPL | −0.010 | +0.117pp | Minimal correction |
| Serie A | −0.020 | +0.241pp | Moderate |
| Ligue 1 | −0.025 | +0.301pp | Moderate |
| Bundesliga | −0.096 | +1.036pp | Largest preset shift in this sample |
These values were fitted at league-average goal rates by minimizing low-score error in this historical sample. They are heuristic aggregate presets, not universal league constants or full team-level Dixon-Coles maximum-likelihood estimates. The probability moved in each affected cell is δ = −ρλhomeλawaye−(λhome+λaway), so raw ρ values are not directly comparable without the scoring environment. The table reports δ at the same league-average λ values used by the current methodology; a higher-scoring league does not by itself require a stronger correction. See the full methodology and Dixon-Coles calculator.
Aggregate ROI by 1X2 outcome was negative in every league
| League | Home | Draw | Away |
|---|---|---|---|
| EPL | −3.4% | −7.2% | −5.6% |
| Bundesliga | −4.4% | −0.9% | −9.3% |
| Serie A | −12.3% | −4.5% | −7.7% |
| La Liga | −3.9% | −4.6% | −12.8% |
| Ligue 1 | −6.4% | −7.2% | −5.5% |
Displayed positive-ROI clusters (retrospective; all involve draws)
| Finding | League | Cluster | ROI | Gap |
|---|---|---|---|---|
| Draw in Heavy Fav | Bundesliga | Heavy Fav | +10.7% | +2.6pp |
| Draw in Slight Fav | Serie A | Slight Fav | +10.0% | +4.3pp |
| Draw in Even | La Liga | Even | +9.5% | +4.5pp |
| Draw in Even | Ligue 1 | Even | +7.8% | +4.0pp |
All four displayed positive-ROI subgroups involve draw bets. Because these clusters were identified retrospectively across many subgroup comparisons, they are exploratory findings rather than forward evidence of an edge. Positive historical ROI can also be affected by sampling variation and selection of the reported subgroup.
What this means for the ImpliedScore calculator
EPL: smallest maximum displayed calibration gap in this study; fitted league-level ρ preset −0.010.
Bundesliga: largest-magnitude fitted ρ preset (−0.096) in this historical low-score fit.
Serie A: displayed favourite and underdog clusters differ from their de-vigged implied rates; treat them as retrospective diagnostics.
La Liga: the largest displayed cluster gap is the heavy-home-favourite group (+6.0pp).
Ligue 1: fitted ρ preset −0.025; the sample also has the highest listed red-card rate and widest listed average margin. These facts do not establish a causal link.
Data notes & methodology
Source: football-data.co.uk. Coverage: 19,381 matches, 5 leagues, 11 seasons (2015/16–2025/26; EPL from 2016/17). Bundesliga: 306/season (18 teams). Ligue 1: 306/season from 2023/24 (18 teams). Ligue 1 2019/20: 279/380 (COVID).
Odds: football-data.co.uk market-average AvgH/D/A non-closing columns; the separate closing-odds columns are not used in this historical calibration dataset. Fallback: mean of B365 + Pinnacle + Betway. Margin removal: proportional normalization, independently per market; this is the current ImpliedScore production baseline. ρ fitting: league-average λ, MSE on 0:0/1:0/0:1/1:1.
All analysis retrospective. Calibration gaps may not persist. Positive ROI = 11-season aggregate, not forward guarantee. This is not betting advice. Data last updated: May 2026.
19,381 matches across EPL, Bundesliga, Serie A, La Liga, Ligue 1 (2015/16–2025/26). Source: football-data.co.uk. Data last updated: May 2026.