HomeBlog › Calculating No-Vig Fair Odds from Pinnacle Lines
Guides

Calculating No-Vig Fair Odds from Pinnacle Lines

Calculating No-Vig Fair Odds from Pinnacle Lines

How to strip the margin from Pinnacle prices for a fair-probability reference: three vig-removal methods, worked examples, code, and when each is wrong.

Calculating No-Vig Fair Odds from Pinnacle Lines

Pinnacle's line is the sharpest in the market, but it still has a margin baked in. If you want to use it as a true-probability reference — for +EV detection, model calibration, or fair-value comparison — you have to remove that margin first. This is how, including the part most explainers skip: the different methods disagree, and the one you pick matters.

First, what the vig is

Every price implies a probability: p = 1 / decimal_odds. For a fair, margin-free market, the implied probabilities of all outcomes sum to exactly 1.0. Real books price so the sum is above 1.0; that excess is the overround (the "vig" or "juice").

Pinnacle runs tight — often around 2% overround on a two-way market versus 5–8% at recreational books — but tight isn't zero. To get fair odds, you redistribute the prices so the implied probabilities sum back to 1.0.

Method 1: Multiplicative (normalization)

The simplest and most common method. Divide each implied probability by the total, so they renormalize to 1.0.

Take a two-way market at 1.91 / 1.91:

p_a = 1/1.91 = 0.5236
p_b = 1/1.91 = 0.5236
total = 1.0472 # ~4.7% overround

Renormalize:

fair_p_a = 0.5236 / 1.0472 = 0.5000
fair_p_b = 0.5236 / 1.0472 = 0.5000
fair_odds = 1 / 0.5 = 2.00 each

So the fair line behind 1.91/1.91 is a coin flip at 2.00. Clean and fast.

Where it's wrong: multiplicative removal assumes the margin is applied proportionally across outcomes. On lopsided markets (a heavy favorite vs a longshot) that assumption is questionable — books tend to load more margin onto the longshot (the "favorite-longshot bias"). Multiplicative ignores this and slightly mis-prices both sides.

Method 2: Additive (equal margin)

Instead of scaling, subtract an equal share of the overround from each outcome's probability. For an n-outcome market with overround m = total - 1:

fair_p_i = p_i - (m / n)

This assumes the margin is spread evenly in probability terms. It's better than multiplicative on some markets and worse on others — and it can produce nonsense (negative probabilities) on extreme longshots, which is a signal it's the wrong tool there.

Method 3: Shin / power methods (favorite-longshot aware)

For serious work, the methods worth knowing handle the favorite-longshot bias explicitly:

These need an iterative solve rather than a one-liner, but on lopsided markets they're materially more accurate than multiplicative. If you're calibrating a model against Pinnacle, this is the tier you want.

Code: multiplicative (the everyday default)

def no_vig_fair(odds):
    """odds: list of decimal odds for all outcomes in a market."""
    implied = [1 / o for o in odds]
    total = sum(implied)
    fair_p = [p / total for p in implied]
    fair_odds = [1 / p for p in fair_p]
    return fair_p, fair_odds

# Example: a soccer 1X2 market
p, o = no_vig_fair([2.10, 3.40, 3.60])
print([round(x, 4) for x in p]) # fair probabilities, sum to 1.0
print([round(x, 2) for x in o]) # fair odds

For three-way markets (1X2), the same normalization applies across all three outcomes. For anything lopsided or high-stakes, swap in Shin. (If you're consuming our drop stream, this arithmetic is already done for you — every alert carries its no-vig fair price precomputed server-side.)

A worked use: +EV detection

The payoff of fair odds is comparison. Compute Pinnacle's no-vig fair price for an outcome, then look at what a soft book offers — this arithmetic is the entire engine of value betting against soft bookmakers:

fair_p = 0.50 # from Pinnacle, vig removed
soft_book_odds = 2.10
soft_book_implied = 1/2.10 = 0.476

# Your edge: the soft book thinks it's less likely than fair says
EV_per_unit = fair_p * soft_book_odds - 1
 = 0.50 * 2.10 - 1 = 0.05 # +5% expected value

A positive number means the soft book is offering more than the fair price — a +EV bet if your fair estimate is right. Which leads to the caveat.

When this breaks

Takeaway

Removing the vig is how you turn Pinnacle's sharp-but-margined line into a true-probability reference. Multiplicative is fine for most quick work; Shin/power methods earn their complexity on lopsided markets and model calibration. And all of it depends on the input price being current — fair value computed off a stale line is just a confident wrong answer.

Frequently asked questions

What is no-vig fair odds?

The price you'd see if the bookmaker margin were removed, so implied probabilities sum to exactly 1.0 — an estimate of the true probability.

Why use Pinnacle for this?

Its low margin and sharp, fast-moving line make it the closest widely-available proxy for true probability.

Which vig-removal method should I use?

Multiplicative for everyday work; Shin or a power method when markets are lopsided or you're calibrating a model.

Get real-time Pinnacle odds in your code

Live & prematch markets with sub-second odds-drop alerts. Free trial key in seconds — no card.

Start free trial