Implied probability is what a price says about the likelihood of an outcome. It is the first thing to compute when assessing a market, and the first place naive analysis goes wrong — because the probabilities in any real market deliberately sum to more than 100%.
The formula, and the correction
- Raw implied probability:
p = 1 / decimal odds - Book total (the overround):
Σ pacross every outcome - Margin:
Σ p − 1 - Normalised (margin removed):
p_fair = p / Σ p
Worked example
A match priced 2.10 / 3.40 / 3.90 gives raw probabilities of 47.6%, 29.4% and 25.6%. Those sum to 102.6% — the 2.6% excess is the bookmaker margin, not a probability. Normalising gives 46.4% / 28.7% / 25.0%. Comparing your model against the raw 47.6% rather than the normalised 46.4% will make you think you have an edge you do not.
Proportional normalisation is not neutral
Dividing by the book total assumes margin is spread evenly across outcomes. It usually is not: bookmakers load more margin onto longshots, a pattern known as favourite–longshot bias. Proportional normalisation therefore overstates the fair price of outsiders. Shin and power methods exist precisely because this simple correction has a known direction of error.
Doing this at scale
Margin analysis is only meaningful across many matches, which means joining prices to fixtures reliably over time. Stats API keeps competition, season, team and fixture identifiers stable across requests and across a provider change, so a historical odds series stays joinable rather than fragmenting whenever an upstream renumbers.
Common questions
What is a normal overround?
Roughly 2–5% on major-league match odds at competitive books, and materially higher on minor competitions and exotic markets. A book total near 100% signals a sharp market; well above 110% signals a recreational one.
Can implied probability exceed 100%?
A single outcome cannot, but the sum across outcomes always does in a real market. That excess is the margin. If your probabilities sum to exactly 1, you are looking at a model output, not a price.