Sharp Betting Concepts

What Are No-Vig Odds?

No-vig odds reveal what a fair coin would pay if sportsbooks took no cut. This guide explains the vig, the formula to remove it, why Pinnacle is the reference sharp line, and how to access no-vig odds programmatically for +EV detection.

By theFounder·SharpAPI

No-vig odds remove the bookmaker's built-in margin (the "vig" or "juice") from a betting line, leaving only the estimated true probability of each outcome. To calculate them: convert each American price to implied probability, sum the probabilities (which exceed 100% due to the vig), divide each by the total to normalize to 100%, and convert back to American odds. SharpAPI pre-calculates Pinnacle no-vig odds on every line, exposed as no_vig_price in the API response.

1. What Is the Vig?

Every sportsbook builds a margin into its odds — the "vig" (short for vigorish), also called "juice" or "the take."

Example — NFL point spread:

OutcomeRaw OddsImplied Probability
Cowboys -3-11052.38%
Eagles +3-11052.38%
Total104.76%

The two sides should sum to 100% (one of them wins). But they sum to 104.76%. The extra 4.76% is the sportsbook's expected profit — the vig. For -110/-110: vig = 1 - (1 / 1.0476) = 4.55% — the book keeps $4.55 per $100 bet on each side in expectation.

2. How to Calculate No-Vig Odds

# Step 1: Convert American odds to implied probability
# Negative (favorite):
implied_prob = abs(odds) / (abs(odds) + 100)
# Positive (underdog):
implied_prob = 100 / (odds + 100)

# Step 2: Sum all implied probabilities
total = prob_A + prob_B

# Step 3: Normalize each probability
no_vig_prob_A = prob_A / total
no_vig_prob_B = prob_B / total

# Step 4: Convert back to American odds
# If no_vig_prob > 0.5 (favorite):
american = -(no_vig_prob / (1 - no_vig_prob)) * 100
# If no_vig_prob < 0.5 (underdog):
american = ((1 - no_vig_prob) / no_vig_prob) * 100

3. Worked Example

Given: Lakers -120 / Celtics +100

1

Implied probabilities

Lakers: 120 / (120 + 100) = 0.5455 (54.55%)
Celtics: 100 / (100 + 100) = 0.500 (50.00%)

2

Total & vig

Total: 0.5455 + 0.500 = 1.0455
Vig: 4.35%

3

No-vig probabilities

Lakers: 0.5455 / 1.0455 = 52.18%
Celtics: 0.500 / 1.0455 = 47.82%

4

No-vig American odds

Lakers: -109.1
Celtics: +91.6

Interpretation: The fair price for the Celtics is +91.6. If you can find them at +100 or better, you have a +EV bet.

4. Why Pinnacle Is the Reference Sharp Line

Not all sportsbooks are equal. Recreational books like DraftKings and FanDuel shade their lines based on public betting tendency — they want balanced action, not accurate prices.

Pinnacle is different

  • • Accepts large bets from professional bettors (no limits for winning players)
  • • Adjusts lines efficiently when sharp money comes in
  • • Has the lowest vig in the market (often -105/-105 vs -110/-110 elsewhere)
  • • Widely regarded as the most efficient pricing mechanism in sports betting

Why it matters

Using Pinnacle's lines as the reference for vig removal gives you the most accurate estimate of true probability — not a line shaped by public perception. SharpAPI calculates all no-vig values using Pinnacle's lines. If Pinnacle has Patriots -6 at -108/-112, the resulting no-vig line (~-110/-110) is your most reliable estimate of fair value.

See also: Pinnacle Odds API coverage.

5. Python Code — Calculate No-Vig Odds

def american_to_implied(odds: float) -> float:
    if odds < 0:
        return abs(odds) / (abs(odds) + 100)
    return 100 / (odds + 100)

def implied_to_american(prob: float) -> float:
    if prob >= 0.5:
        return -(prob / (1 - prob)) * 100
    return ((1 - prob) / prob) * 100

def remove_vig(*american_odds: float) -> list[float]:
    """Return no-vig American odds for a market with N outcomes."""
    probs = [american_to_implied(o) for o in american_odds]
    total = sum(probs)
    no_vig_probs = [p / total for p in probs]
    return [implied_to_american(p) for p in no_vig_probs]

# Example: -110/-110 (standard spread)
fair_odds = remove_vig(-110, -110)
print(f"No-vig: {fair_odds[0]:.1f} / {fair_odds[1]:.1f}")
# Output: No-vig: -100.0 / -100.0

# Example: Lakers -120 / Celtics +100
fair_odds = remove_vig(-120, 100)
print(f"No-vig: {fair_odds[0]:.1f} / {fair_odds[1]:.1f}")
# Output: No-vig: -109.1 / +91.6

6. Access No-Vig Odds via SharpAPI

SharpAPI pre-calculates Pinnacle no-vig odds on every line. Hobby plans and above include no_vig_price in the odds response:

from sharpapi import SharpAPI

client = SharpAPI(api_key="YOUR_KEY")
odds = client.odds.list(sport="basketball_nba", markets=["h2h"])

for event in odds.data:
    for book in event.bookmakers:
        for market in book.markets:
            for outcome in market.outcomes:
                raw = outcome.price
                fair = outcome.no_vig_price  # Pinnacle-derived fair value
                if fair and raw > fair:
                    edge = raw - fair
                    print(f"+EV: {outcome.name} at {book.title}: "
                          f"raw={raw}, fair={fair:.1f}, edge={edge:.1f}")

This is exactly how the EV betting endpoint works under the hood — comparing all book prices to Pinnacle's no-vig line.

7. No-Vig vs CLV vs +EV — Key Concepts

TermDefinitionUse
No-vig oddsMarket price with margin removedMeasure true probability
Pinnacle no-vigVig removed from Pinnacle's lineBest reference fair value
Closing line value (CLV)Beat the closing no-vig line or notLong-term skill benchmark
+EV betRaw price > no-vig fair valueProfitable bet in expectation
Vig / juiceSportsbook marginCost of betting

Frequently Asked Questions

What are no-vig odds?+
No-vig odds (also called "fair odds" or "true odds") remove the bookmaker's built-in margin (the "vig" or "juice") from a betting line, leaving only the estimated true probability of each outcome. They tell you what odds the sportsbook would offer if it took no cut.
What is the vig in sports betting?+
The vig (vigorish, or juice) is the margin a sportsbook builds into its odds to guarantee profit regardless of outcome. A standard -110/-110 line on a coin-flip market implies 52.4% per side — totaling 104.8%, meaning the book keeps 4.8% of action. No-vig odds convert both sides to exactly 100%.
Why use Pinnacle for no-vig odds?+
Pinnacle is a sharp sportsbook — it accepts large bets from professional bettors and adjusts lines accordingly. Its lines are the most efficient in the market. SharpAPI calculates no-vig odds using Pinnacle's lines as the reference, which provides the most accurate estimate of true probability.
How do you calculate no-vig odds?+
Convert each American odds price to an implied probability, sum all probabilities (they'll exceed 100%), then divide each probability by the total to normalize to 100%. The resulting percentages are the no-vig implied probabilities; convert back to American odds for no-vig lines.
What is the difference between no-vig odds and closing line value (CLV)?+
No-vig odds remove the margin from the current line to reveal fair probability. Closing line value (CLV) measures whether you got a better price than the closing no-vig line — the gold standard for measuring long-term betting skill.
Can I access no-vig odds via API?+
Yes. SharpAPI's /odds endpoint returns no_vig_price alongside each raw sportsbook price on Hobby plans and above. The Pinnacle-derived fair value is pre-calculated, so you don't need a Pinnacle account to access it.

Related Resources

Ready to Build?
Start free. Scale when you're ready. No credit card required.

No credit card required