Image you see following picture for two different profit lines. Both betting simulations are based on the same stacking method: Each identified value bet is set with 1 unit flat stack. Which of both simulation would you prefer? I think the answer is easy.
Of course everybody would prefer the green proft line. But both profit lines are based on the same predictive model. All predictions and bet selections are based on the EMA10 Vanilla Poisson xG model, which I already used for multiple blogs.
The difference between both lines: The yellow line represents the betting profit, when betting against the provided odds of a bookie. The green line represent the betting profit, when betting against a bookie without the bookie margin. This bookmaker margin eat up the whole advantage of the model.
The Bookie margin
Bookies add a margin to the odds to make profit. How big the margin of a bookmaker or a specific market is, can be calculated by summing up the probabilities of all possible outcomes of a bet. 
round((1 / bet365_home_odds) + (1 / bet365_draw_odds) + (1 / bet365_away_odds),3)
Following picture shows the match overround and match margin for the liverpool home matches in the season 20/21.
As you can see the margin varies from match to match. This depents on multiple factors like the size and the sharpness of the market. The smaller the market, the higher the bookies choose the margin to ensure some kind of risk management.
Bookie margin distribution
All market odds in these examples are from Bet365 for the Big5 seasons 2016-2020. In the top five leagues Bet365 on average adds about 5% margin. The only exception is the english Premier League. This division shows a lower average margin.
The biggest amount of matches has got an added margin between 4%-6%. But the distribution shows also single matches with a way higher or lower margin. The Premier League margin distribution has also a peak in the area of 2.5% – 3%. This explains the overall lower average in comparison to the other leagues.
Calculating fair odds
As we now know the bookie margin and are able to calculate it, it would of course be interesting the know, how the market odds or market probabilties look like without a margin. There are different methods the calculate the fair odds, as it’s just not possible to really know, how much margin a bookmaker adds to the different possible outcomes. I used the “Margin Weights Proportional to the Odds” method as the it does a good job removing the marging.  This method distributes the overall margin proportional to the size of the odds of the different outcomes. So short odds are reduced by a smaller amount than long odds. This also leads to the know effect of the favourite–longshot bias .
bet365_fair_home_odd = round((3 * bet365_home_odds) / (3-(margin * bet365_home_odds)),2) bet365_fair_draw_odd = round((3 * bet365_draw_odds) / (3-(margin * bet365_draw_odds)),2) bet365_fair_away_odd = round((3 * bet365_away_odds) / (3-(margin * bet365_away_odds)),2)
Following picture shows the market odds and fair odds for the already seen liverpool home matches:
Betting with fair odds
With fair odds for each bet, we are able to check, how good a model would perform without the bookie margin. The first picture already provided a first impression. The betting simulation based on fair odds showed an overall profit of more than 400€. Looking at the profit on season and division level also shows the big influence of the margin. Each season and each division have an increased profit. The model has got an edge over the fair odds, but the margin prevents us to have a profit. Each bet with a 1 unit stack results in an average profit of 4.7%.
The influence of different margins
We now know, that our model provides profit, if we would be able to bet against the fair odds of a bookmaker. And we know, that the margin of the bookie kills our complete advantage. Now the next interesting question would be, which margin is the turning point, at which we lose our advantage.
Therefor I created artificial odds with margins from 1% to 5%. That’s possible by using the the calculated fair odds. First of all the overall margin need to partially be distributed to the different result classes:
1% home win margin = 1 + (bet365_fair_home_odd * 0.01) / 3 1% draw margin = 1 + (bet365_fair_draw_odd * 0.01) / 3 1% away win margin = 1 + (bet365_fair_away_odd * 0.01) / 3
These margin values now just have to be added to the fair odds, to get the odd including specific margin.
1% home win odd = bet365_fair_home_odd / 1% home win margin 1% draw odd= bet365_fair_draw_odd / 1% draw margin 1% away win odd = bet365_fair_away_odd / 1% away win margin
The betting simulations based on these artifical odds nicely indicate the effect of the margin. In case the margin of Bet365 would just be around 3%, it’s still possible to gain a small profit. As soon the margin gets larger, the Vanilla Poisson models loses the advantage.
Having a good model and beating the fair odds of a Bookie is just one side of the coin. The other side is to have a model, which provides such a big advantage to also beat the odds containing the margin. So you should always also take a look at the size of this margin.
While chosing a bookmaker to place bets, a look at the included margin could help you to rate the market. A high margin always indicates a smaller market with a maybe more uncertainty. It might be easier to find some inefficiency in such markets, but exactly because of this, bookies add a higher risk surcharge.
As an alternative to a bookie and the margin, they use to earn money, a bettor could also start betting on an exchange. Exchanges do not have an overall and more fair prices. But of course they also want to earn money, what’s done via commissions. So this also need to be respected.
If you have further questions, feel free to leave a comment or contact me @Mo_Nbg.
3 Replies to “Why is it so hard to beat the Bookie?”
after reading your article I was intrigued to check the margin of a betting exchange.
I used your formula and collected a very very small sample size of bets from smarkets. The sample size is limited to soccer games within the next 2 days. (Not sure If they offer historic odds like some other exchanges, but did not want to pay an API fee for this plausibility test)
I got an average margin of a about 0,46% but some outliers exceeding 1%. with a standard deviation of about 0,261%
Lets say the 290€ profit with a 1% Margin would be realized than 2% commission would have to be paid on winning bets. That would still leave a Profit of 284€ which seems way to good to be true to be honest.
Liquidity on some games was rather tight, so there is a random element hard to include in a model if the overall system performance would still be plausible.
Have you tried your betting system on one of exchanges?
If the 2% commission has to be paid for each won bet, you calculation should be wrong.
It has to be substracted for each single bet and not the overall profit at the end. So the profit should be more in the region
of the 3% Margin example.
I am currently betting at a broker. There 1×2 bets for the big football leagues have a margin around 1% – 1.2%.
You can find some thoughts about my betting experience in my pick history for the ML Poisson model. The next one is
already in progress. 😉
LikeLiked by 1 person