Skip to main content

Shock Fit — λ₃ (soccer)

The goal · regular page's step 4 as a standalone calculator — choose the common shock λ₃ and re-solve (λ₁, λ₂) from scratch at every trial so the Handicap and Total anchors never move.

It runs the same engine the page runs (fitBP in markets-bp.ts), so the two can never disagree. Step 4 there links here with its current inputs prefilled — whatever quotes you entered replay digit for digit.

/ steps a field (lines by 0.25, probabilities by 0.001), Shift steps bigger.

Fit facts
One knob against two targets (home + draw; away follows from Σ = 1) — a least-squares compromise, never an exact fit of both
The shock cancels in the margin (X − Y = W₁ − W₂), so λ₃ reaches the draw only by trading λ₁ + λ₂ down against the Total anchor
λ₃ ≥ 0 only adds covariance — a target draw at/below the λ₃ = 0 baseline pins the knob at 0
(λ₁, λ₂) are re-solved from scratch at every trial, so both anchors hold to 10⁻⁶ on every accepted point
Inputs — step 1’s outputs, nothing else
Tryexamples
Handicap lineh
Home-team line; quarter lines (±0.25, ±0.75, …) split into their two neighbours.
|h| ≤ 10
P(home covers h)hard
Hard Handicap anchor — step 1’s stripped fair cover probability. Held on every trial.
0 < p < 1
Total lineL
Match-total line, same quarter handling.
0 ≤ L ≤ 20
P(over L)hard
Hard Total anchor — the fair over probability. This is the anchor λ₃ trades against.
0 < p < 1
1X2 target p*_Hsoft
Soft home target — the Shin-stripped 1X2 home leg. Scored in the miss, but the anchor usually pins it.
0 < p < 1
1X2 target p*_Dsoft
Soft draw target — the leg the shock actually chases.
0 < p < 1 and p*_H + p*_D < 1
1X2 target p*_AΣ = 1
Derived, not typed: away = 1 − p*_H − p*_D. It is never scored — adding it would double-count the miss.
Grid sizeN
Scores 0…N with the ≥N tail folded in (Σ = 1). The goal-regular page runs N = 5.
Steps 2–3 — the λ₃ = 0 baseline
λrecover the rates against the two hard anchors — the steps 2–3 nested bisection, λ₃ frozen at 0anchors hit to |Δ| = 3.8e-9 (Handicap) · 7.1e-9 (Total)λₕ 1.608939 · λₐ 1.065121
1X2the win/draw/loss split that grid already implies0.500000 · 0.248599 · 0.251401
Δthe draw gap the shock must close: target − baselinepositive — λ₃ trades λ₁ + λ₂ down against the Total anchor until the draw meets it (least squares)+5.37e-2
Step 4 — every trial, (λ₁, λ₂) re-solved each time

The λ₃ column is a fixed grid, not an adaptive guess: 17 even points across [0, 3], step 3⁄16 = 0.1875, so row i reads λ₃ = i × 0.1875 (row 1 is 0.1875, never 0.2). λ₁ and λ₂ are then re-solved at that frozen λ₃ by nested bisection — the outer loop sets λ₁+λ₂ from the Total anchor, the inner splits it with the Handicap anchor — so both hard anchors stay pinned (|Δ| < 10⁻⁶) on every row. The 1X2 targets never enter this solve; they only score the miss that picks the winning row.

iphaseλ₃λ₁λ₂λ₁+λ₂2λ₃bracketλ₁ λ₂ Back SolveP_DΔ drawmiss
0scan0.0000001.6089391.0651212.6740600.000000back-solve →-5.37e-23.0e-3
1scan0.1875001.4472800.8941622.3414430.375000back-solve →-3.49e-21.3e-3
2scan0.3750001.2831830.7166031.9997870.750000back-solve →-1.03e-21.9e-4
3scan0.5625001.1192630.5330671.6523311.125000back-solve →+2.27e-26.0e-4
4scan0.7500000.9606860.3462461.3069321.500000back-solve →+6.75e-24.6e-3
5scan0.9375000.8151690.1618250.9769941.875000back-solve →+1.27e-11.6e-2
·scan1.125000infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan1.312500infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan1.500000infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan1.687500infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan1.875000infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan2.062500infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan2.250000infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan2.437500infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan2.625000infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan2.812500infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
·scan3.000000infeasible — an anchor broke (2λ₃ alone overshoots the Total), trial discarded
6golden0.4739751.1963750.6203591.8167350.947949[0.330737, 0.562500]back-solve →+5.85e-31.2e-4
7golden0.3854491.2740090.7065191.9805280.770898[0.330737, 0.473975]back-solve →-8.73e-31.6e-4
8golden0.4401611.2259960.6534171.8794140.880322[0.385449, 0.473975]back-solve →+3.43e-58.5e-5
9golden0.4530761.2146750.6408111.8554860.906153[0.419263, 0.473975]back-solve →+2.22e-39.0e-5
10golden0.4321781.2329960.6611951.8941920.864357[0.419263, 0.453076]back-solve →-1.29e-38.7e-5
11golden0.4450941.2216710.6486051.8702760.890188[0.432178, 0.453076]back-solve →+8.62e-48.6e-5
12golden0.4371121.2286700.6563901.8850590.874224[0.432178, 0.445094]back-solve →-4.74e-48.6e-5
13golden0.4420451.2243440.6515801.8759240.884090[0.437112, 0.445094]back-solve →+3.50e-48.6e-5
14golden0.4389961.2270170.6545531.8815700.877992[0.437112, 0.442045]back-solve →-1.60e-48.5e-5
15golden0.4408811.2253650.6527161.8780810.881761[0.438996, 0.442045]back-solve →+1.55e-48.5e-5
16golden0.4397161.2263860.6538511.8802370.879432[0.438996, 0.440881]back-solve →-4.01e-58.5e-5
17golden0.4404361.2257550.6531491.8789040.880871[0.439716, 0.440881]back-solve →+8.03e-58.5e-5
18golden0.4399911.2261450.6535831.8797280.879982[0.439716, 0.440436]back-solve →+5.90e-68.5e-5
19golden0.4398861.2262370.6536851.8799230.879772[0.439716, 0.440161]back-solve →-1.17e-58.5e-5
20golden0.4400561.2260880.6535201.8796080.880112[0.439886, 0.440161]back-solve →+1.67e-58.5e-5
21golden0.4399511.2261800.6536221.8798030.879902[0.439886, 0.440056]back-solve →-8.09e-78.5e-5
22golden0.4399261.2262020.6536461.8798480.879852[0.439886, 0.439991]back-solve →-4.95e-68.5e-5
23golden0.4399661.2261670.6536071.8797740.879932[0.439926, 0.439991]back-solve →+1.75e-68.5e-5
24golden0.4399411.2261890.6536311.8798200.879883[0.439926, 0.439966]back-solve →-2.39e-68.5e-5
25golden0.4399571.2261750.6536161.8797920.879913[0.439941, 0.439966]back-solve →+1.69e-78.5e-5
26golden0.4399471.2261840.6536261.8798090.879894[0.439941, 0.439957]back-solve →-1.41e-68.5e-5
27golden0.4399531.2261780.6536201.8797980.879906[0.439947, 0.439957]back-solve →-4.35e-78.5e-5
28golden0.4399541.2261770.6536191.8797960.879909[0.439951, 0.439957]back-solve →-2.04e-78.5e-5
29golden0.4399521.2261790.6536211.8798000.879904[0.439951, 0.439954]back-solve →-5.78e-78.5e-5
30golden0.4399541.2261780.6536191.8797970.879907[0.439952, 0.439954]back-solve →-3.47e-78.5e-5
31golden0.4399531.2261790.6536201.8797990.879905[0.439952, 0.439954]back-solve →-4.90e-78.5e-5
32golden0.4399531.2261780.6536201.8797980.879906[0.439953, 0.439954]back-solve →-4.02e-78.5e-5

Click any P_D to unfold the draw cell by cell — the score grid’s diagonal (P(H = A) at every scoreline), summed. Follow any row’s back-solve link to open that row’s (λ₁, λ₂) re-solve in the Bisection Calculator, walked halving by halving — the sum λ₁+λ₂ bisected out of the Total anchor, then the split bisected out of the Handicap anchor, λ₃ frozen at that row’s value and both hard anchors prefilled, so the pair reproduces the row digit for digit. Watch λ₁+λ₂ fall as 2λ₃ rises down the scan — the Total anchor trading private goals for shared ones. The golden miss column is not monotone: the bracket shrinks, and the best trial seen anywhere ships (highlighted).

Reading the two anchors in closed form
Why every feasible row lands on the same two anchor numbers — the closed forms behind P(over L) and P(home covers h)
Both hard anchors are read off the same bivariate-Poisson grid, yet each collapses to a far smaller law. Two facts do the work: in the total the shared shock counts twice but the home/away split washes out; in the margin the shock cancels outright. That is why the anchors depend on so few numbers — and why the nested bisection above is so well behaved. Worked here for the page’s default quotes (Total 2.5, Handicap −0.25) at scan row i = 1: λ₁ 1.296334 · λ₂ 1.067956 · λ₃ 0.1875, so S = λ₁ + λ₂ = 2.364290.
Total — P(over 2.5) depends only on λ_total = λ₁ + λ₂ (and λ₃), never on the split
Write the total as its latent streams: T = X + Y = (W₁ + W₃) + (W₂ + W₃) = W₁ + W₂ + 2·W₃ — the shock is counted twice. A sum of independent Poissons is Poisson with the summed rate, so W₁ + W₂ ~ Poisson(S) with S = λ₁ + λ₂, however S is split. “Over 2.5” is just T ≥ 3, so take the finite complement T ≤ 2: with no shock (W₃ = 0) that needs W₁ + W₂ = 0, 1 or 2; with one shock (W₃ = 1, worth 2 goals) it needs W₁ + W₂ = 0; two shocks already overshoot. Collect the Poisson terms and factor exp(−(S + λ₃)):
P(over 2.5)=1e(S+λ3)(1+S+S22+λ3)P(\text{over}\ 2.5) = 1 - e^{-(S+\lambda_3)}\left(1 + S + \tfrac{S^2}{2} + \lambda_3\right)
=1e2.551790(1+2.364290+2.794933+0.187500)=10.0779426.346723=0.505323= 1 - e^{-2.551790}\left(1 + 2.364290 + 2.794933 + 0.187500\right) = 1 - 0.077942\cdot 6.346723 = 0.505323
The value never sees the split, which is exactly why the outer loop can bisect λ_total against P(over) as a clean 1-D root find. And because the under-region T ≤ 2 lives entirely in the grid’s unfolded interior, the ≥N tail-fold never touches it — this closed form reproduces the engine to machine precision at any N.
Handicap — P(home covers −0.25) drops the shock entirely: the margin is Skellam(λ₁, λ₂)
The margin cancels the shared shock: M = X − Y = (W₁ + W₃) − (W₂ + W₃) = W₁ − W₂, so it carries no λ₃ at all — a difference of independent Poissons, i.e. Skellam(λ₁, λ₂). The −0.25 line is half a stake at −0.5 and half at the level 0: both halves win when the home side wins outright (M ≥ 1); the level half is refunded on a draw (M = 0). So the win mass is Wbar = P(M ≥ 1) and the refund is Rbar = ½·P(M = 0), and the fair cover is Wbar/(1 − Rbar):
P(home covers 0.25)=P(M1)112P(M=0)P(\text{home covers}\ -0.25) = \dfrac{P(M\ge 1)}{1 - \tfrac12\,P(M=0)} — a plain −0.5 line is just P(M1)P(M\ge 1)
Both margin legs have Skellam closed forms; the draw leg is a modified-Bessel term:
P(M=0)=e(λ1+λ2)I0 ⁣(2λ1λ2)=e2.364290I0(2.353234)=e2.3642902.944039=0.276787P(M=0) = e^{-(\lambda_1+\lambda_2)}\,I_0\!\left(2\sqrt{\lambda_1\lambda_2}\right) = e^{-2.364290}\,I_0(2.353234) = e^{-2.364290}\cdot 2.944039 = 0.276787
P(home covers 0.25)=0.4172271120.276787=0.4172270.861607=0.484243P(\text{home covers}\ -0.25) = \dfrac{0.417227}{1 - \tfrac12\cdot 0.276787} = \dfrac{0.417227}{0.861607} = 0.484243
One asymmetry from the total: the cover’s win region M ≥ 1 reaches high scorelines, and the page’s N = 5 fold reshapes them — a 6–5 home win folds onto 5–5, a push — so the capped grid reads P(M ≥ 1) = 0.417105 and ½·P(M = 0) = 0.138502, giving the 0.484163 the table shows, about 8×10⁻⁵ below the uncapped 0.484243. The gap is the fold, not the identity, and it shrinks as the grid grows (≈2×10⁻⁸ by N = 8). The total has no such gap because its under-region never folds.
Change the lines and the finite counts shift (a different total moves the “T ≤ 2” cutoff; a whole-number handicap adds its own push), but the two structural facts do not: the total keeps only λ₁ + λ₂ and λ₃, and the margin never carries the shock.
The winner
λ₃the winner of 33 recorded trials (6 feasible scan points, then golden-section)final golden bracket [0.439953, 0.439954] — the best trial seen anywhere ships0.439953
λ₁λ₂the adjustment — λ₁ 1.608939 → 1.226178, λ₂ 1.065121 → 0.653620the shock counts twice in E[total] = λ₁ + λ₂ + 2λ₃ = 1.879798 + 0.879906 = 2.759704; the re-solve pulls λ₁ + λ₂ down as λ₃ rises to keep P(over L) pinned — the anchor probability is held, not the meanΣ 1.879798 + 2λ₃ 0.879906
μmarginal goal means of the fitted engineeach side’s mean is its own stream plus the shared one: μ = λᵢ + λ₃μₕ 1.666131 · μₐ 1.093573
1X2achieved split vs the targetsΔ home -9.24e-3 (anchor-pinned book gap — the fit cannot move it) · Δ draw -4.35e-7 · Δ away +9.24e-30.500000 · 0.302297 · 0.197703
both hard anchors on the fitted gridheld on every accepted trial — the shape knob never trades them|Δ| 6.0e-11 · 6.6e-11