No vig calculator

No vig calculator: enter both sides of a market to remove the vig, see the hold and get fair odds and fair probabilities, by the multiplicative or additive method.

Remove the vig from a two- or three-way market to get the hold, fair probabilities and fair odds.

The calculator runs in your browser with JavaScript; the formulas it uses are explained below.

A no vig calculator removes the bookmaker's margin from a market and shows what the prices would be if the book charged nothing. Enter the odds on both sides of a two-way market, such as a spread or a total, and it returns each side's implied probability, the book's hold, and the fair probability and fair odds for each side, by the multiplicative method (the usual default) or the additive method. Below: the formulas, two worked examples, common mistakes, and how to pull the inputs from the API.

How to use the no vig calculator

The inputs are the price on each side of one market, in American, decimal or fractional odds, and the method. Both prices must come from the same book, at the same moment, on the same line.

The outputs are:

The same tool goes by other names, a devig calculator or a fair odds calculator, and the math is identical under each.

The formulas

Convert each price to implied probability first: p = 1 / decimal odds. Then:

total       T = p1 + p2   (+ p3 for a three-way market)
overround     = T − 1
hold          = 1 − 1 / T

Multiplicative (proportional) method

Divide each implied probability by the total:

fair_i               = p_i / T
fair decimal odds_i  = 1 / fair_i

Each side keeps its share of the total, so the margin comes off in proportion to each side's probability. It can't produce a negative probability, and it works the same for a three-way soccer market: include the draw and divide all three by their total.

Additive method

Subtract an equal share of the overround from every side:

fair_i = p_i − (T − 1) / n      (n = number of outcomes)

Taking the same amount from every side removes a larger fraction of the underdog's probability, so the favorite ends up slightly higher than under the multiplicative method. Power and Shin methods also exist; the no-vig guide compares all four.

Worked example 1: a -110 / -110 spread

Both sides at -110 (decimal 1.9091) imply 52.38% each. The total is 104.76%, so the overround is 4.76% and the hold is 1 − 1 / 1.0476 = 4.55%. Both methods return 50% / 50%, fair odds of +100 on each side: on a symmetric market the method doesn't matter.

Worked example 2: a -165 / +140 moneyline

The favorite at -165 implies 165 / 265 = 62.26% and the underdog at +140 implies 100 / 240 = 41.67%. The total is 103.93%: an overround of 3.93% and a hold of 3.78%. Entered into the no vig calculator, the two methods give:

Favorite -165Underdog +140
Implied probability62.26%41.67%
Multiplicative fair59.91% (-149.4)40.09% (+149.4)
Additive fair60.30% (-151.9)39.70% (+151.9)

Suppose another book offers the underdog at +155, decimal 2.55, longer than both fair prices. With the multiplicative fair probability its expected value is 0.4009 × 2.55 − 1, about 2.2% of the stake; with the additive one, about 1.2%. The EV calculator runs that step.

Which book to de-vig

A fair price is only as good as the market it comes from. De-vig a low-margin book that moves quickly, such as Pinnacle, Circa or BookMaker, or take the median of several books' fair prices as a consensus. A soft book reacts to news later, so its fair probabilities lag the market; the sharp sportsbook entry explains why.

Common mistakes

Getting the inputs from the API

Request any market with format=probability and the first step of the no vig calculator is done for you: every price arrives as an implied probability, and the rest is one division.

curl "https://api.preciseapi.com/v1/odds?league=nfl&markets=moneyline,spread,total&books=pinnacle&format=probability" \
  -H "Authorization: Bearer $PRECISEAPI_KEY"
import os, requests

resp = requests.get(
    "https://api.preciseapi.com/v1/odds",
    params={"league": "nfl", "markets": "moneyline,spread,total", "books": "pinnacle", "format": "probability"},
    headers={"Authorization": f"Bearer {os.environ['PRECISEAPI_KEY']}"},
    timeout=10,
)
resp.raise_for_status()
for event in resp.json()["data"]:
    for book in event["bookmakers"]:
        for m in book["markets"]:
            implied = [o["price"] for o in m["outcomes"]]
            total = sum(implied)
            fair = [round(p / total, 4) for p in implied]
            print(event["id"], m["key"], m.get("line"), fair, f"hold {1 - 1 / total:.2%}")

The REST API returns each source's posted prices and leaves the method to you. Markets a source has stopped reporting are marked suspended and left out by default, so a stale side doesn't skew the total. The no vig odds API page covers the full workflow, including a consensus fair line, and the odds reference lists every parameter. On the MCP server, find_outliers measures every price in a league against the no-vig consensus or a sharp book and ranks the gaps by edge.

Frequently asked questions

What is the difference between vig, overround and hold?

Vig is the margin a book builds into its prices. Overround measures it as the excess of the implied probabilities over 100%; hold is the share of the money the book keeps on a balanced market, 1 − 1 / total.

Which no-vig method should I use?

The multiplicative method is the standard choice and safe for any number of outcomes. The additive method removes the same amount from every side, which cuts longshots more in relative terms. If your work centers on longshots, test both against closing prices.

What are no-vig fair odds?

No-vig fair odds are the prices a market would show with the margin removed: 1 divided by each side's fair probability. They estimate the true chance of each outcome and are only as good as the book you de-vig.

Does the API return fair odds?

Not over REST: /v1/odds returns posted prices and you apply the method you prefer. The MCP find_outliers tool computes fair prices for you. API access starts on Edge; see pricing.

More calculators