devigging draft
Backing out fair binary probabilities from a vigged market using the probit method
- Tags
- odds vig devig probability probit binary
- Vocabulary
- devig
- Stripping the vig out of posted prices to recover the book's underlying fair belief about each outcome.
- probit_method
- Devig method that solves in z-score space: convert each implied probability to its inverse normal CDF, then find a constant shift c such that the shifted Φ-values sum to 1.
- fair_probability
- Probability of an outcome with vig stripped out — the book's implicit belief, not its quoted price.
Devigging takes a vigged market — where the implied probabilities sum to more than 1 — and backs out fair probabilities that sum to exactly 1 and represent the book's underlying belief. Several methods exist in the literature (multiplicative, additive, power, probit, Shin). Mimir's canonical method is probit, applied to binary (two-sided) markets only. Multi-way (3+) markets are out of scope for v1; future versions may add them.
Probit treats the vig as a uniform shift on a latent normal scale. Convert each side's implied probability q_i to its z-score z_i = Φ⁻¹(q_i), then find a constant c such that Σ Φ(z_i − c) = 1. The fair probabilities are p_i = Φ(z_i − c). Kairos solves for c numerically via bisection on the latent scale. The method is well-suited to markets where the underlying outcome distribution is plausibly Gaussian-ish (point spreads, totals, moneyline-equivalents) and tends to produce results close to the power method while being more stable at extreme prices.
Worked example
Binary moneyline at +150 / −180:
- qA = 1 / 2.50 = 0.4000, qB = 1 / 1.5556 ≈ 0.6429
- Sum = 1.0429, overround = 0.0429 (4.29%) — vig is built in.
- z_A = Φ⁻¹(0.4000) ≈ −0.2533
- z_B = Φ⁻¹(0.6429) ≈ +0.3661
- Solve for
csuch that Φ(z_A − c) + Φ(z_B − c) = 1. Numerically,c ≈ +0.0561. - p_A = Φ(−0.2533 − 0.0561) = Φ(−0.3094) ≈ 0.378
- p_B = Φ(+0.3661 − 0.0561) = Φ(+0.3100) ≈ 0.622
Sum: 0.378 + 0.622 = 1.000. The book's fair belief: Side A has ~37.8% probability, Side B has ~62.2%.
Gotchas
- Probit collapses for inputs at exactly 0 or 1.
Φ⁻¹(0)andΦ⁻¹(1)are −∞ / +∞. Guard the boundaries before calling probit — treat exactly-0 and exactly-1 implied probabilities as degenerate (unbettable). Kairos's_valid_prob_pairrejects these inputs upstream. - Methods agree at zero vig. When implied probabilities already sum to 1.0, probit returns them unchanged (
c = 0). Testing devig code on a no-vig market doesn't exercise the method's actual behavior — use a vigged input to verify. - Devig before any cross-book aggregation. Comparing implied probabilities across books or building a
consensus-fair-lineonly makes sense if every book is devigged first, with the same method. Aggregating raw vigged probabilities baked-in book-level vig into the consensus. - Devig before any EV calculation. EV against the raw vigged line bakes the book's margin into your "edge" — the number is misleading. EV against the devigged fair line is the meaningful one. See
vig-adjusted-ev(forthcoming). - Bisection has bounds. Kairos's probit solver searches over a bounded latent-scale interval. For pathological inputs (extreme overround, near-degenerate prices) the search can fail and Kairos returns
None. Don't assume probit always converges; handle the failure.
Open questions
- The probit method assumes a normal latent scale. For markets where outcomes aren't plausibly Gaussian (heavy-tailed event probabilities, exotic props, multi-leg parlays viewed as composite outcomes), probit may be a worse fit than power or another method. Should Mimir surface guidance on when probit is the wrong choice, or treat probit as universally canonical until concrete counter-evidence appears?