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

■ Premier League

Smallest displayed maximum cluster gap in this study: 2.7pp.

■ Bundesliga

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

MetricEPLBundesligaSerie ALa LigaLigue 1
Matches3,8003,3664,1794,1803,856
Goals/match2.833.072.732.632.71
Home win44.6%44.2%42.3%45.7%43.8%
Draw23.2%24.7%25.5%26.0%25.5%
Away win32.1%31.1%32.2%28.2%30.7%
Over 2.554.4%59.4%52.1%48.3%51.1%
BTTS52.8%58.4%53.6%51.4%52.0%
0:06.1%5.6%6.9%7.3%7.2%
Margin4.1%4.6%4.7%4.6%4.8%

Largest displayed calibration gap by league

LeagueLargest gapWhereDetail
EPL2.7ppClear Fav HomeLargest displayed EPL cluster gap
Bundesliga2.8ppEven HomeLargest displayed Bundesliga cluster gap; Heavy Fav draw gap +2.6pp
Serie A4.8ppUnderdog HomeObserved home-win rate 4.8pp below the de-vigged implied rate
La Liga6.0ppHeavy Fav Home81.1% observed vs 75.0% de-vigged implied
Ligue 14.0ppEven DrawObserved 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
LeagueCorrelation (r)n
EPL−0.0363,800
Bundesliga−0.0283,366
Serie A−0.0484,179
La Liga−0.0084,180
Ligue 1−0.0013,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
SeasonEPLBundesligaSerie ALa LigaLigue 1
2016/1749.2%49.0%48.4%47.6%48.9%
2020/2137.9%42.2%40.8%41.6%37.4%
2024/2540.8%38.6%39.7%44.5%46.7%
2025/2642.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
#EPLBundesligaSerie ALa LigaLigue 1
11:1 (10.9%)1:1 (11.9%)1:1 (11.8%)1:1 (12.7%)1:1 (12.3%)
21:0 (8.8%)2:1 (8.7%)1:0 (9.3%)1:0 (11.5%)1:0 (9.8%)
32: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

LeaguePreset ρδ at league-average λCharacter
La Liga−0.007+0.086ppNear-zero aggregate preset
EPL−0.010+0.117ppMinimal correction
Serie A−0.020+0.241ppModerate
Ligue 1−0.025+0.301ppModerate
Bundesliga−0.096+1.036ppLargest 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

LeagueHomeDrawAway
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)
FindingLeagueClusterROIGap
Draw in Heavy FavBundesligaHeavy Fav+10.7%+2.6pp
Draw in Slight FavSerie ASlight Fav+10.0%+4.3pp
Draw in EvenLa LigaEven+9.5%+4.5pp
Draw in EvenLigue 1Even+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.

Scroll to Top