Skip to main content

Margin — multi-way (Shin)

Multi-way Shin-model margin tools, paired on one page. Strip recovers fair probabilities from priced decimal odds; Apply injects margin into a fair distribution to produce priced quotes. The two are exact inverses (apply ↔ strip round-trips to ~1e-12). This is the same three-way strip the Odds Generation engine runs on the 1X2 quote before it fits the draw lift φ; the two-way analog uses the Power method — see Margin — two-way (Power).

Recover fair probabilities from a multi-way priced market (1X2, Correct Score, AOS — any market with three or more outcomes) via the Shin model. The solver finds the insider-fraction parameter z ∈ (0, 1) such that the implied fair probabilities satisfy pᵢ = (√(z² + 4(1−z)qᵢ²/Q) − z) / (2(1−z)) and Σ pᵢ = 1, where qᵢ = 1/dᵢ and Q = Σ qᵢ is the bookmaker overround. Shin is the canonical multi-way solver. Production serves both directions via precomputed lookups; this demo solves live by bisecting on z — the per-iteration solve is shown in the Bisection trace below.

Worked example — 1X2, decimals (2.10, 3.60, 3.40)
Implied qᵢ (0.4762, 0.2778, 0.2941) — overround Q = 1.0481 → m = 0.0481
→ bisected z ≈ 0.024083
→ fair pᵢ (0.4587, 0.2626, 0.2787) → fair decimals (2.18, 3.81, 3.59).
Priced decimal odds (input)
Decimal oddsdᵢ
One decimal odd per line. Spaces / commas / tabs / newlines all work. Each value must be > 1.
3 ≤ n ≤ 26 outcomes
n = 3 parsed
Derived
Countn
Count of parsed decimal odds. Must be in [3, 26].
OverroundQ
Q = Σ 1/dᵢ. The bookmaker overround. Q > 1 required (otherwise there is no margin to strip).
Shin zz
Insider-fraction parameter, bisected so Σ pᵢ = 1. z → 0 means no margin to strip.
Equivalent marginm
m = Q − 1. Equivalent margin scalar for cross-reference with the two-way (Power) tool.
Bisection trace — solving for z (Σ pᵢ(z) → 1)
#z loz hiz midvalue → targetmove
10.0000001.0000000.5000000.6008hi←mid
20.0000000.5000000.2500000.7885hi←mid
30.0000000.2500000.1250000.9021hi←mid
40.0000000.1250000.0625000.9623hi←mid
50.0000000.0625000.0312500.9929hi←mid
60.0000000.0312500.0156251.0083lo←mid
70.0156250.0312500.0234371.0006lo←mid
80.0234370.0312500.0273440.9968hi←mid
90.0234370.0273440.0253910.9987hi←mid
100.0234370.0253910.0244140.9997hi←mid
110.0234370.0244140.0239261.0002lo←mid
120.0239260.0244140.0241700.9999hi←mid
… converges to z ≈ 0.024083 after 45 iterations (|value − target| = 1.78e-15)
Fair probabilities (output)
#decimal inq implied (1/d)p fairfair decimal (1/p)
12.100.47620.45872.18
23.600.27780.26263.81
33.400.29410.27873.59