Skip to main content

Odds Generation

Turn a handful of vendor market quotes into fair odds for a whole scope of markets. You give the engine a Handicap and a Total quote (Malay) plus, optionally, the 1X2 (decimal) — the bookmaker's margin still in each; it strips the margins, back-solves the latent goal rates through a fixed stage pipeline (Poisson baseline, then Dixon-Coles ρ, then a draw lift φ when the 1X2 is supplied), and re-prices every market that is a pure function of the final score — all consistent with the quotes you entered.

This section is organized by score_unit · period_type. Each scope is a self-contained model: the markets, the recovered rate, and the pricing all live within that one scope — nothing is split or assumed across periods.

Scopes

ScopeStatus
goal · regularAvailable — Poisson + Dixon-Coles
point · quarter (basketball)Available — correlated Gaussian grid + OT fold (ADR-029)
run · inning (baseball)Available — zero-inflated-geometric innings + endgame rules (ADR-029)
run · inning (cricket)Available — ball→over→innings compound + day-form mixing + chase truncation (ADR-029)
game · set + set · set (tennis)Available — nested-race DP: serve probs + serve-sum prior + τ form shock (ADR-030)
point · game + game · game (badminton)Available — rally race: r + γ restoring force + κ_M match shock (ADR-030)

More scopes reuse the same pipeline — strip margins, back-solve latent parameters, re-price the sheet — but the latent distribution is per-scope: low-count units (goals, corners) are Poisson-family; basketball points are a correlated Gaussian score grid (shared pace correlates the teams, so Poisson's one-parameter variance is structurally wrong there — see ADR-029); tennis and badminton scores are nested best-of races with win-by-2 barriers — bimodal totals and parity combs (a set never totals 11 games) that no count model can express, so one race model per sport prices both of its scopes (ADR-030).