Understanding how we remove sportsbook margins and calculate true betting value
Sportsbooks build a margin ("vig") into every line. If you use the raw odds to estimate probability, you'll often see fake value—bets that look +EV but aren't once you remove that built-in edge.
Our goal is simple: estimate a "true" probability (no vig when possible), then compute EV, edge, and fair odds from that.
The probability implied by the sportsbook's odds (includes vig).
Example: -110 implies about 52.38%.
Our best estimate of the outcome happening with vig removed (or conservatively adjusted when we can't fully remove it). This is what we use for EV.
If a market is fair, all outcomes sum to 100%. Books price markets so the implied probabilities sum to more than 100%. That extra is the vig.
Example: A typical -110/-110 market implies 52.38% + 52.38% = 104.76%. That extra 4.76% is the sportsbook margin.
We use the best method available for each bet, in this order:
Two-way markets (spreads, totals, moneylines, most props) where we have both sides at the same book.
It's a direct, math-correct vig removal using real market pairs.
Confidence: 🟢 Highest
If we can't devig properly because the market is incomplete or thin, for example:
true probability = implied probability ÷ total market factor• 0–15% (long shots): factor 1.35 (~35% vig)
• 15–25%: factor 1.25 (~25% vig)
• 25–40%: factor 1.15 (~15% vig)
• 40–50% (near even): factor 1.08 (~8% vig)
• 50%+ (favorites): factor 1.06 (~6% vig)
• Volatile props (blocks/steals): +5%
• Alternate lines: +3%
• Special/exotic markets: +3%
Confidence: 🔵 Medium (conservative estimate)
Only if the overround fallback is turned off (legacy behavior).
Use a trimmed mean of implied probabilities (drops high/low outliers)… but does not remove vig.
Keeping vig inflates probabilities and can create misleading edges.
Confidence: ⚠ Lowest (being phased out)
Once we have true probability, EV is straightforward.
EV = (true_prob × profit_if_win) − ((1 − true_prob) × stake)Where:
stake = 1 unitprofit_if_win = (decimal_odds − 1) × stake✓ Positive EV = good long-term bet
✗ Negative EV = skip
A simple measure of advantage:
edge = true_probability − market_implied_probabilityPositive edge means the bet is priced better than it "should" be.
Fair odds are what the line would be if the market had zero vig—based purely on true probability.
We compute:
fair decimal = 1 / true_probabilitythen convert to fair American
Every bet includes a probabilitySource so users can see how it was calculated:
devig_two_wayProper no-vig consensus from complete two-way markets
devig_three_way(planned / expanding) no-vig consensus for three-way markets
overround_adjusted_fallbackConservative estimate when devig isn't possible
vigged_fallbackLegacy method (vig not removed)
In the UI, we show a badge + tooltip explaining the method.
If you use raw implied probability (vigged) instead of true probability, you can make bad bets look good.
Our system avoids that by: