american-implied-probability draft
Converting American odds to implied probability and back
- Tags
- odds conversion probability fundamentals
- Vocabulary
- american_odds
- Sportsbook-style odds; a signed integer like +150 or -120. Positive numbers say what you win on $100 staked; negative numbers say what you stake to win $100.
- implied_probability
- The probability a posted price would represent if the price were fair (no vig). Expressed as a fraction in [0, 1]. Real prices have vig built in, so implied probability usually needs to be devigged before it represents the book's true belief.
- fair_probability
- The probability of the outcome with the book's vig stripped out — the book's underlying belief about the outcome, not its quoted price. See devigging.
Implied probability is the probability a given price represents if you treat the
price as fair (no vig). It's the canonical neutral form for reasoning about lines
across formats. Note: a book's posted line is rarely fair — it includes vig — so
"implied probability" usually needs to be devigged before it represents the book's
true belief about the outcome. See book-vig-overround and devigging.
Worked example
American +150 → implied probability: 100 / (150 + 100) = 0.40 (40%). American −120 → implied probability: 120 / (120 + 100) ≈ 0.545 (54.5%). Implied probability 0.40 → American: 0.40 < 0.50 → positive branch → (1 / 0.40 − 1) × 100 = +150. Implied probability 0.545 → American: 0.545 ≥ 0.50 → negative branch → 0.545 / (1 − 0.545) × 100 ≈ −120.
Gotchas
- The two-sides of a market do NOT sum to 1.0 in implied-probability space. They sum to slightly more — the excess is the vig. Forgetting this is the classic beginner mistake.
- Symmetric formulas don't work across the 50% / even-money boundary — same split as American↔decimal.
- Computing implied probability and then comparing across books only works if both books are devigged — otherwise you're comparing different vigs, not different beliefs.
Open questions
- Kairos derives implied probability indirectly:
implied_prob_from_american(o) = 1 / decimal_odds_from_american(o). This is algebraically equivalent to the direct formulas (100/(o+100)for positive,|o|/(|o|+100)for negative) but routes through decimal first. Confirm whether other consumers should mirror this composition or compute directly — relevant if a consumer wants to skip the decimal-conversion module entirely. - For
american_from_prob, Kairos returnsNonewhenp <= 0orp >= 1(degenerate certainty). Confirm consumers should likewise treat 0 and 1 as unbettable rather than emitting infinity-style sentinels.