VALUEODDSAPI / DEVELOPER RESOURCES
How to remove the bookmaker margin: 4 methods compared
Fair probabilities are the starting point for expected value, closing line value and model testing. This guide compares the four most common ways to strip the margin out of bookmaker odds, shows how far apart they land, and gives you working Python code.
Published by ValueOddsAPI · 2 November 2026
Why the margin has to go
Bookmaker odds include a margin, also called overround or vig. Convert each price to an implied probability (1 ÷ odds), add them up, and the total is above 100%. For a match priced 1.40 / 4.80 / 8.00 the implied probabilities are 71.43%, 20.83% and 12.50%, a total of 104.76%. The bookmaker’s margin is the extra 4.76%.
To estimate fair probabilities, for expected value, closing line value or model calibration, that extra has to be taken out. The question is where the bookmaker put it. Different assumptions give different answers, and the gap is largest on long shots.
Four common methods
Multiplicative (proportional). Divide every implied probability by the total. Simple and the most widely used, but it assumes the margin is spread in proportion to each probability, which tends to leave long shots looking too likely.
Additive. Subtract the same amount from every outcome. It takes more off long shots, but with a large margin and a big long shot it can produce a negative probability.
Power. Raise every implied probability to the same power k, chosen so the results add up to 100%. Never negative, and it shifts margin towards long shots.
Shin. Models the bookmaker as protecting itself against a share of insider bettors and solves for that share. In a two-outcome market it gives the same result as the additive method. Research comparing methods on football odds found Shin’s probabilities more accurate than basic normalisation (Štrumbelj (2014), International Journal of Forecasting).
The same match, four answers
Fair odds for 1.40 / 4.80 / 8.00 after removing the 4.76% margin with each method:
| Method | Home | Draw | Away |
|---|---|---|---|
| Multiplicative | 1.47 | 5.03 | 8.38 |
| Additive | 1.43 | 5.20 | 9.16 |
| Power | 1.43 | 5.27 | 9.06 |
| Shin | 1.44 | 5.15 | 8.94 |
The favourite barely moves, but the away price ranges from 8.38 to 9.16. If another bookmaker offers 8.80 on the away win, the multiplicative method says it is value and the other three say it is not. On a two-way market priced 1.90 / 1.90 every method agrees on 2.00 / 2.00, because the margin is symmetric.
Python implementation
All four methods in plain Python, without dependencies. Power and Shin are solved numerically with bisection. The Shin function reproduces the published example of the shin package for odds 2.6 / 2.4 / 4.3 (0.373 / 0.405 / 0.222).
from math import sqrt
def implied(odds):
return [1 / o for o in odds]
def multiplicative(odds):
q = implied(odds)
s = sum(q)
return [x / s for x in q]
def additive(odds):
q = implied(odds)
cut = (sum(q) - 1) / len(q)
return [x - cut for x in q]
def solve(f, lo, hi):
"""Bisection: find x in [lo, hi] where f(x) = 0 (f decreasing or increasing)."""
flo = f(lo)
for _ in range(100):
mid = (lo + hi) / 2
if (f(mid) > 0) == (flo > 0):
lo, flo = mid, f(mid)
else:
hi = mid
return (lo + hi) / 2
def power(odds):
q = implied(odds)
k = solve(lambda k: sum(x ** k for x in q) - 1, 1.0, 10.0)
return [x ** k for x in q]
def shin(odds):
q = implied(odds)
s = sum(q)
def probs(z):
return [(sqrt(z * z + 4 * (1 - z) * x * x / s) - z) / (2 * (1 - z)) for x in q]
z = solve(lambda z: sum(probs(z)) - 1, 0.0, 0.5)
return probs(z)
odds = [1.40, 4.80, 8.00] # home / draw / away
for name, method in [("Multiplicative", multiplicative), ("Additive", additive),
("Power", power), ("Shin", shin)]:
fair = method(odds)
print(f"{name:15}", " ".join(f"{1 / p:5.2f}" for p in fair))Output:
Multiplicative 1.47 5.03 8.38
Additive 1.43 5.20 9.16
Power 1.43 5.27 9.06
Shin 1.44 5.15 8.94Which method should you use?
Two-way markets with similar prices (handicaps, totals near even money): the methods barely differ, so multiplicative is fine.
Three-way and many-outcome markets (1X2, correct score, outright winners): use power or Shin, which account for long shots carrying more of the margin.
Low-margin reference books such as Pinnacle: with a margin around 2%, the choice matters much less than with a 5–8% recreational book. That is one reason sharp prices are used as a baseline. See Pinnacle odds API.
Whatever you choose, use the same method for the whole data set and say which one you used. Always remove the margin from a complete market from one bookmaker at one moment; mixing prices from different times or books is not a margin.
Frequently asked questions
What is the bookmaker margin?
The amount by which the implied probabilities of all outcomes in a market add up to more than 100%. It is the bookmaker’s built-in edge, also called overround or vig.
Which margin-removal method is most accurate?
It depends on the market. On football 1X2 odds, research has found Shin’s method more accurate than basic proportional normalisation. On balanced two-way markets the methods give almost the same result.
Why is the additive method sometimes negative?
It subtracts the same amount from every outcome. When the margin per outcome is larger than a long shot’s implied probability, the result drops below zero. Use power or Shin for markets with big long shots.
Can I remove the margin from odds at different bookmakers?
Only within one bookmaker’s complete market at one moment. Combining the best price from several bookmakers can add up to less than 100%, which is an arbitrage situation, not a margin.
Related reading
Get the data into your product
Data Archive from €149/month, Data Display from €399/month, Data Partner from €999/month, excluding VAT. Coverage and usage rights are confirmed before activation.