Pricing Framework Fundamental
Implied Probability
Convert betting odds to probabilities. The implied probability reveals what the odds assume about win likelihoodโand the house edge built in.
๐ฎ The Conversion Formula
Implied Probability = 1 / Decimal Odds
Example: At 1.91x payout, implied probability = 1/1.91 = 52.4%. For a true 50/50 bet, the extra 2.4% is the house edge.
Odds Converter
1.01x 10x
Decimal
1.91
American
-110
Fractional
91/100
๐ Implied Analysis
Implied Probability 52.36%
Breakeven Win Rate 52.36%
House Edge (vs 50%) 4.7%
If true probability is 50%, the house keeps 4.7% on average.
๐ Common Odds Reference
| Description | Decimal | American | Implied % | $100 Profit |
|---|---|---|---|---|
| Even Money | 2.00 | +100 | 50.0% | $100 |
| Standard Vig | 1.91 | -110 | 52.4% | $91 |
| Heavy Favorite | 1.25 | -400 | 80.0% | $25 |
| Underdog | 3.00 | +200 | 33.3% | $200 |
| Long Shot | 10.00 | +900 | 10.0% | $900 |
๐ Overround (Total Vig)
For a two-sided market (Over/Under), the overround is the sum of implied probabilities minus 100%:
Overround = ฮฃ(Implied Probs) - 100%
Example: Over at 1.91 (52.4%) + Under at 1.91 (52.4%) = 104.7%
Overround = 4.7% (house edge split across both sides)
Why It Matters
- โ Higher overround = more house edge = worse for bettors
- โ Sharp bettors seek lowest vig markets
- โ For pricing: balance vig against user retention
๐ฏ True Probability vs Implied
True Probability
The actual likelihood of an outcome occurring. What your models predict.
50.0%
Implied Probability
What the odds suggest. Includes house edge baked in.
52.4%
Your Edge
When true > implied, you have +EV. This is the gap.
-2.4%
R Code Equivalent
# Odds conversion functions
implied_prob <- function(decimal_odds) 1 / decimal_odds
decimal_to_american <- function(decimal) {
ifelse(decimal >= 2,
round((decimal - 1) * 100),
round(-100 / (decimal - 1)))
}
american_to_decimal <- function(american) {
ifelse(american > 0,
american / 100 + 1,
100 / abs(american) + 1)
}
# Calculate overround
overround <- function(odds_over, odds_under) {
implied_prob(odds_over) + implied_prob(odds_under) - 1
}
# Example
decimal <- 1.91
cat(sprintf("Implied: %.2f%%\n", implied_prob(decimal) * 100))
cat(sprintf("American: %+d\n", decimal_to_american(decimal)))
cat(sprintf("Overround (vs 1.91 under): %.2f%%\n", overround(decimal, 1.91) * 100))โ Key Takeaways
- โข Implied probability = 1 / decimal odds
- โข Overround measures total house edge
- โข Standard vig (-110/-110) = 4.5% overround
- โข Edge = True probability - Implied probability
- โข Positive edge โ bet is +EV
- โข Convert between formats to compare across books