Odds tell you how much you get paid if you win. But they also hide how much the bookmaker keeps. We went through 235,796 real football matches, from 2000–2026, to see whether odds are fair and whether any way of betting pays off.
Read in
Plain mode explains the ideas without jargon. Technical mode adds formulas, methods and code.
235,796
real matches analysed, with their odds and result
€6.28
kept by the bookmaker from every €100 bet on a typical match
-36%
average loss backing big upsets (odds of 15 to 25)
0 / 8
simple ways of betting that made money over ten years
The fee hidden in the odds
Imagine betting on heads or tails with a normal coin. The fair deal would be to double your money if you win: odds of 2.00. A bookmaker would not offer 2.00, it would offer something like 1.90 on both heads and tails. That small difference is its fee: whatever happens, in the long run it keeps part of everything that is bet.
Football works the same way with its three possible results (home win, draw, away win). The fee is not shown anywhere, but it can be worked out from the odds. Type in any match:
Fee calculator
Type a match’s decimal odds (home, draw, away) and see how much the bookmaker keeps.
Try:
Bookmaker’s fee4.05%
For every €100 spread “fairly” across the three outcomes, the bookmaker keeps €3.90. A bet pays back €0.961 per euro on average.
Odds
Implied
Proportional
Power
Chance without the feeShin
Pays back per €1
Home
1.85
54.1%
51.9%
52.7%
52.5%
€0.971
Draw
3.60
27.8%
26.7%
26.4%
26.5%
€0.954
Away
4.50
22.2%
21.4%
20.9%
21.0%
€0.945
Σ
104.1%
100.0%
100.0%
100.0%
The chance without the fee is estimated with Shin’s method. The last column is what each euro bet on that result pays back on average.
TechnicalImplied probability, overround and how to remove it
Decimal odds o imply a probability π = 1/o. In a 1X2 market the three add up to more than one; the excess is the overround or margin:
overround = 1/o₁ + 1/oₓ + 1/o₂ − 1
There are several ways to recover probabilities that sum to one. Proportional normalises πi/Σπ. Power finds k such that Σπik = 1. Shin (1993) assumes a fraction z of the money comes from insiders and that the bookmaker protects itself by shortening high odds; it is solved numerically for z. Power and Shin shrink small probabilities more. In our data the median Shin z is 3.3%.
The average loss for a bettor is overround / (1 + overround) of the stake.
The bookmaker’s fee has halved since 2000… but it is still there
Typical fee each season, as a percentage. Orange: one big bookmaker. Blue: if you could always pick the best odds among about 17 bookmakers.
Median overround per season, 1X2 market, all leagues. Reference bookmaker (Bet365) against the maximum published price across ~17 books.
One big bookmaker (Bet365)
Best odds across ~17 bookmakers
Source: Football-Data.co.uk via xgabora/Club-Football-Match-Data. Our calculation. The “best price” is the highest quote published by any bookmaker: in practice you cannot always bet at that price.
In 2000 the bookmaker kept about 13%. With online betting and competition it fell to around 7%, and it has stayed there. But it does not charge the same everywhere: in the most-watched leagues, like the Premier League or LaLiga, the fee is lower. In lower divisions and small leagues, where fewer people are watching, it charges almost twice as much.
The less followed a league is, the more the bookmaker charges
Typical fee by league since the 2019/20 season.
Median overround of the reference bookmaker by league, seasons 2019/20 to 2026/27.
A selection of 16 leagues. The table includes all of them.
Do bookmakers get it right?
Charging a fee does not mean being wrong. To check, we took every result the odds gave, say, a 30% chance, and counted how often it actually happened. If the odds were perfect, it would have happened exactly 30% of the time. In the chart, that means the points fall on the diagonal line.
The odds are very accurate… except for upsets and heavy favourites
Horizontal: what the odds said. Vertical: what actually happened. Each point groups thousands of outcomes.
Reliability diagram: implied probability (proportional method) against observed frequency, 20 bins, seasons 2012/13 to 2026/27. Bars: 95% Wilson CIs.
What actually happened
Perfect accuracy
In the middle, the odds are remarkably accurate. But look at the ends. On the left, the points sit below the line: upsets happen less often than their odds suggest. On the right, above it: heavy favourites win more often than they are priced. In other words, the bookmaker pays worst on exactly the most tempting bets, the ones that promise a lot of money for a little. Economists call it the favourite–longshot bias, and it is one of the most replicated findings in the study of betting.
TechnicalCalibration and confidence intervals
The implied probabilities (margin removed, proportional method) of each match’s three outcomes are grouped into 20 bins 5% wide, and in each bin the mean predicted probability is compared with the observed frequency. The 95% confidence intervals use the Wilson method, which is more stable than the normal approximation for extreme proportions. Bins with fewer than 200 observations are dropped.
Dreaming of the upset is expensive
In money terms: bet €1 on every very likely result (odds between 1.25 and 1.50) and you would lose €0.02 per euro on average. Bet on every big upset (odds between 10 and 15) and you would lose €0.28 per euro: more than ten times as much.
The higher the odds, the worse the deal
What you win or lose on average for every euro bet, by odds range. The small black lines show the margin of error.
Mean ROI of a 1-unit bet on every outcome in the range, seasons 2012/13 to 2026/27. 95% bootstrap intervals (1,000 resamples).
One big bookmaker (Bet365)
Best odds across ~17 bookmakers
Even at the best price in the market, long shots lose money. The small gains on favourites at the best price vanish in practice: those prices do not last and bookmakers limit winning customers.
Eight ways to bet, ten years of matches
What if instead of betting with your heart you follow a fixed rule? We tested eight on the 113,026 matches of the last ten seasons, €1 per match: always backing the home team, the draw, the away team, the favourite, the underdog, at random, the favourite at the best price in the market, and what a statistical model would recommend.
No simple rule wins: they all end up paying the fee
Money won or lost as the bets go by, as a share of everything staked. In grey, the other four strategies (home, draw, away and random).
Cumulative P&L normalised by each strategy’s total number of bets; the final value is the ROI. Seasons 2016/17 to 2026/27, unit stakes.
Always the favourite
Always the underdog
Favourite, at the best price
Elo model “value bets”
Final results: favourite -4.5%, underdog -10.4%, random -6.9%, favourite at the best price -0.3% (95% interval: -0.9% to +0.3%).
They all lose, roughly what the bookmaker charges on the kind of bet they pick. Always backing the underdog is the worst (-10.4%), for the reason we just saw. Betting at random loses 6.9%, almost exactly the fee. The only thing that gets close to zero is always finding the best odds among 17 bookmakers at once, something almost nobody does, and even then you do not win.
What if a computer picks?
It is the promise of tipsters and betting courses: find the matches where the bookmaker is wrong. We tried it. We built a statistical model that estimates who will win from each team’s strength, trained it on old matches and set it betting on 59,906 later matches it had never seen. It only bet when it thought it had found a good opportunity. Result: it predicted worse than the odds themselves and lost 8.8% of its stakes over 36,671 bets. When a simple model “sees an opportunity”, it is almost always because it does not know something the bookmaker does: an injury, a line-up, money from well-informed bettors.
TechnicalThe model: ordinal logistic regression on Elo
Ordinal logistic model with the Elo rating difference (home − away, in hundreds of points) as the only feature: P(y ≤ j) = σ(cj − β·ΔElo), with y ∈ {home, draw, away}. Home advantage is absorbed by the cut points. Fitted by maximum likelihood (Nelder–Mead) on the 2000–2015 seasons and evaluated out of sample from 2016/17. It bets when the estimated expected value, p̂·o − 1, exceeds 5%.
Out-of-sample log-loss: market (Shin) 0.9908 vs Elo 1.0103. Brier: 0.5915 vs 0.6048.
Margin-removal methods, 2012–2026: base rates 1.0732, proportional 1.0041, Shin 1.0036. Shin and power win narrowly because they correct for the favourite–longshot bias.
ROI of the “value bets”: -8.8% (95% bootstrap CI: -10.7% to -7.1%).
What about machine learning?
That model knew only one thing about each team: its overall strength. So we tried properly, with the machine learning techniques used in industry. We gave the computer 41 facts about each match, all known before kick-off: team strength, recent points and goals, shots, home and away form, days of rest and league. And we tested it as in real life: each season, trained only on the ones before, never seeing the future.
Machine learning gets close to the odds, but does not reach them
How much of what the odds “know” each model manages to learn. 100% would mean predicting as well as the bookmaker. The small black lines show the margin of error.
Share of the market’s (Shin) log-loss improvement over base rates recovered by each model: (LL_base − LL_model) / (LL_base − LL_market). Walk-forward, seasons 2016/17 to 2026/27, n = 59,906. 95% paired bootstrap CIs.
With team data, the best model reaches 84%. And there is a lesson any data scientist will recognise: the complex model (gradient boosting) does no better than a much simpler logistic regression. The data has nothing more to give. The only model that matches the bookmaker is the one given the odds themselves as input: it reaches 99.6%. It learns to copy the bookmaker, not to beat it.
Almost everything the model knows is how strong each team is
How much more the model gets wrong when each kind of information is taken away.
Grouped permutation importance: relative rise in log-loss when each group’s features are shuffled together (5 repeats, bars ±2 SD). Gradient boosting trained up to 2023/24 and evaluated on 2024/25 to 2026/27.
Team strength explains almost everything. Recent shots add a little. And the run of results, the thing so many people look at before betting, adds almost nothing: once you know how good a team is, knowing it won its last three matches tells you hardly anything more.
Out-of-sample calibration: gradient boosting vs the market
Reliability diagram of the walk-forward predictions (59,906 matches × 3 outcomes, 20 bins, 95% Wilson CIs). The model without odds is well calibrated: it loses on resolution, not on bias.
The bookmaker’s odds
Machine learning
Perfect accuracy
That leaves the question that matters: does it make money? We set both machine learning models to bet €1 whenever they thought they saw an edge over the bookmaker’s odds.
No model makes money reliably
Average win or loss per euro, by the minimum edge the model required before betting. The small black lines show the margin of error.
ROI of betting 1 unit on the outcome with the highest expected value p̂·o − 1 when it exceeds the threshold. Reference-bookmaker odds, 2016/17 to 2026/27. 95% bootstrap CIs (1,000 resamples).
Machine learning
Machine learning + odds
Higher thresholds (10%, 15%, 25%) and bets at the best market price are in the table. With so few bets, their margin of error is huge.
The model that only looks at the teams loses between 7% and 12%: as much as or more than betting at random (6.9%). And the surer it is of having found a bargain, the more it loses, because its “bargains” are nearly always upsets, exactly where the bookmaker pays worst. The one that also sees the odds breaks even: sometimes a little up, sometimes a little down, and the margin of error is so wide it cannot be told apart from zero. Try enough variants and one will come out positive by pure luck. That is what many tipsters sell: the good run, picked from among many.
TechnicalMachine learning experiment design
Features. 41 per match, computed only from each team’s earlier matches (rolling windows of 5, 10 and 20 matches, shifted by one): Elo and its trend, points, goals for and against, shots and shots on target, same-venue form, draw rate, rest days, experience in the sample and league (30 categories). Unit tests check that changing a match’s result alters neither its own features nor those of earlier matches.
Validation. Walk-forward with an expanding window: season s is predicted by a model trained on 2001–s−1. Hyperparameters are chosen once on a temporal hold-out (train 2001–2012, validate 2013–2015) that never touches the test years; grid of 24 combinations. Chosen: 100 trees, 8 leaves, at least 200 per leaf (without odds) and 100 trees, 4 leaves (with odds); learning rate 0.05 and L2 = 1.
Models. Ordinal logit on ΔElo; multinomial logistic regression (median imputation with missing indicators, standardisation, one-hot league); scikit-learn HistGradientBoosting with native missing values and categorical league. The “+ odds” model adds the Shin probabilities and the margin.
Out-of-sample log-loss (n = 59,906): market 0.9908; Elo 1.0093; logistic 1.0044; gradient boosting 1.0045; gradient boosting + odds 0.9912 (difference from the market 0.0004, 95% CI -0.0001 to 0.0008).
Betting. 14 configurations were evaluated. With odds as a feature, 0 of 6 intervals lie entirely above zero. At the best published price with a 5% threshold, ROI is +2.2% (CI -0.6% to +5.2%): not significant, uncorrected for multiple comparisons, and at prices that are not always available in practice.
Limits. The bootstrap treats matches as independent and ignores correlation within a matchday, so the intervals are somewhat optimistic. Elo is only available for part of the matches. There are no line-ups, injuries or multi-book closing odds, which is exactly the information the market does use.
What this analysis does not cover
We only look at the most basic bet: who wins a match, before kick-off. Accumulators, in-play bets or goalscorer markets usually carry much higher fees, so these figures are the most favourable version for the bettor.
TechnicalTechnical caveats
The reference bookmaker is the one recorded by Football-Data.co.uk; in the earliest seasons it may come from other bookmakers.
Maximum odds are the best published price, not a price you can always get, and they ignore the limiting of winning accounts.
The Elo model is deliberately simple. The machine learning models get closer to the market, but to make money they would have to beat it and pay the margin on top.