# Racing5 — Live Results Log Running log of build milestones and experiment results. Detailed per-experiment reports live under `artifacts\experiments\`. Plan of record: [racing5-plan.md](racing5-plan.md). ## Status | When (UTC) | Event | |---|---| | 2026-07-02 | Plan approved. Implementation started (M0: solution skeleton). | | 2026-07-02 | **Session 1 wrap**: M0–M7 all built and verified in one day. 22 experiments registered. Best config `e010-assembled-pmin45`: +2.50% ROI OOS 2016–2022, streak 6, non-fragile to missed bets — but under-powered (RC p=0.98) and 1/27.5 bet rate vs 1/16 goal. Alerter built, parity PASS 9/9. **The search continues** — top of backlog: D1 residual subgroup mining (directly attacks the volume/power constraint), D5 same-card day-form, E013 scratch-repricing, E014 segment specialists, sire aptitude, T-20 sensitivity extraction, shadow mode on production DB. | | 2026-07-02 | **M1 complete**: point-in-time snapshot pipeline working end-to-end. 2019 extracted in 12s (3,639 races / 42,021 runner rows); `verify snapshot --year 2019` reconciles EXACTLY against DB counts; 3 random golden races cross-checked via an independent SQL cutoff path — all match. Settlement engine with dead-heats/refunds/DNF/book-specific place terms frozen by fixtures; leakage invariance tests green (60 tests total). Notables: 90.6% of 2019 runner rows active at Tc (rest = scratched pre-Tc), 99.9% of active runners have a best fixed win price, 101 races with zero quotes at Tc (investigate in E000). | | 2026-07-02 | **M0 complete**: Racing5.slnx with 10 projects builds clean; PlaceRules/ScrapeSource ported from Racing3 with 34 frozen behavioural tests passing (incl. no-write SQL scan); `racing5 verify db` connects and matches known scale (48,444,190 Odds / 59,827 Races / 718,513 Runners; range 2009-04-01 → 2026-07-07). DB snapshot fingerprint: `r63469-u752556-o49113985-t20260701155323`. | ## Experiment results *(appended as each experiment completes — ID, hypothesis, period, bets, ROI + CI, streaks, bank high/low, verdict)* | ID | Name | Period | Bets | ROI | 95% CI (by-day) | Hit | L-streak | Bank hi/lo | Verdict | |---|---|---|---|---|---|---|---|---|---| | EXP-0002 | baseline-random-win (harness check) | 2016-03→2024 | 28,981 | −10.22% | [−15.0%, −5.3%] | 10.4% | 99 | 184/−2920 | Harness OK: random bettor loses ≈ effective overround, as arithmetic demands | | EXP-0003 | baseline-favourite-win | 2016-03→2024 | 28,981 | **−1.15%** | [−2.9%, +0.7%] | 32.3% | 28 | 127/−560 | Blind best-of-4 favourite ≈ break-even — strong FLB + line-shopping head start | | EXP-0004 | baseline-favourite-place | 2016-03→2024 | 28,500 | −11.05% | [−11.9%, −10.2%] | 62.9% | 10 | 100/−3020 | Favourite PLACE heavily shaded by books — E003 must hunt away from favourites | | E000 | Data audit (5-agent workflow) | 2014→2026 | — | — | — | — | — | — | Constants fixed: clocks clean; place = 1+(win−1)·k/100, k race-constant 10–20 (divisor 5–10, NOT 4–5; only Interbet has per-runner deviations); **fixed-book quotes GROSS, 6% tax on profit portion** (verified vs 272/287 real settled bets); staleness S_b = TG/TO 3m, BW 40m, HB 60m, IB 40m, WSB 50m; activity window 15 min; ~9% of scratches happen after Tc (≈0.83% of runners ⇒ expected refund rate) | | EXP-0005 | E001 calibration atlas (Tier A) | 2016-03→2022 | 247k obs | — | — | — | — | — | **No blind-positive cell** (n≥1000, tax-net). Best-of-4 overround only 1.087 but tax+shading ⇒ all win buckets −7%…−36%; least shaded = 20–30% implied (−7.4%). Place uniformly worse. FLB present but not blindly exploitable | | EXP-0006/7/8 | baselines re-run tax-aware on v3 | 2016-03→2024 | 28.9k | rnd −14.2% / fav-win −5.3% / fav-place −12.7% | — | — | — | — | Honest hurdles with tax + staleness gates. A model must add ≥~6% pts of edge vs the market's implied to go positive | | EXP-0009 | E004/5/6 signal significance (joint logistic, 240k rows) | Tier A | — | — | — | — | — | — | **mom60 (t=−6.8), toteFixedLog (t=+7.6), bestVsConsensus (t=+6.1) all confirmed, sign-stable ⇒ enter blend.** mom1440 (t=2.4) and dispersion (t=1.9) dropped | | EXP-0010 | E003 place-structure, consensus probs (θ=3%) | Tier A WF | 294 | −2.27% | [−11.1%, +6.4%] | 58.3% | 5 | 107/83 | Harville map adds ~15 ROI pts vs blind place but can't clear tax+shading alone | | EXP-0011 | **E009 blended-place (θ=3%)** | Tier A WF | 432 | **+5.18%** | [−2.4%, +12.9%] | 60.4% | **8** | 126/98 | **First positive.** Blend (mom60+tote+bestVsCons) worth ~+7.5 pts over consensus-only. Volume 1/78 races — below 1/16 floor; not yet above deflated noise floor (9.4%). Next: form model + θ auto-tune | | EXP-0012 | E008 blended-win (θ=5%) | Tier A WF | 810 | +2.75% | [−12.2%, +18.2%] | 19.3% | 22 | 139/82 | Win side positive but fragile (top-5-dependent) and streak 22 — confirms constraint math: win bets only as paired overlay | | EXP-0013 | full-blend-place, in-sample blend (θ=3%) | Tier A WF | 8,324 | −7.99% | [−10.1%, −5.9%] | 47.3% | 15 | 104/−559 | **Key negative lesson**: LightGBM form probs fed to the blend in-sample ⇒ pFund overweighted ⇒ overconfident EVs, huge volume, big loss. Blend coefficients MUST be fitted on out-of-sample fundamental predictions. Fixed in BlendCore; superseded by E010 | | EXP-0014 | **E010 assembled (OOS blend, θ auto-tune, win overlay)** | Tier A WF | 983 | **+1.88%** | [−3.2%, +6.8%] | 62.0% | **7** | 129/100.0 | Positive, streak-compliant, bank never below start. Volume 1/31.8 still under 1/16 floor; θ tuner over-promises on train tail (targets 1/13, delivers 1/32). Ablations next: form-model marginal value + pMin grid | | EXP-0015 | E010 ablation: market-only core (no form model) | Tier A WF | 812 | +1.76% | [−3.4%, +7.1%] | 62.0% | **5** | 133/99.6 | **Form model marginal value ≈ nil** (+1.88% with vs +1.76% without). Matches the 2015 Weka conclusion: SA market prices basic form efficiently. Edge lives in microstructure + place-structure pricing. Simpler market-only core preferred unless E017 intent features change the picture | | EXP-0016 | **E010 pMin=0.45 — GATE A CANDIDATE** | Tier A WF | 1,198 | **+2.50%** | [−2.3%, +7.3%] | 59.2% | **6** | 142/99.8 | Best volume-adjusted config. Relaxing pMin to 0.45 improved both volume AND ROI | | EXP-0017/18/19 | volume grid (pMin40, pMin45-t8, pMin40-t8) | Tier A WF | 1.4k | +0.17% / +2.50% / −0.01% | — | 54.7/59.2/54.8% | 8/6/8 | — | **Frontier mapped: below pMin 0.45 the marginal bets are worthless; θ grid already exhausted at t13.** Volume beyond 1/27.5 races requires NEW signal (E017 gear/intent features, D1 residual pockets — backlog), not looser thresholds | **The ROI/volume frontier (Tier A, walk-forward, tax-net):** 1 bet/78 races → +5.2% · 1/27.5 → +2.5% · 1/24 → ~0%. The 1-bet-per-16-races goal is not reachable with positive ROI from market-microstructure signal alone; more independent signal is the only route (backlog: E017 card features need schema v4 with bBlinkers/bTongueTied/cShoes; D1 residual subgroup mining; D5 day-form). | ID | Name | Period | Bets | ROI | 95% CI (by-day) | Hit | L-streak | Bank hi/lo | Verdict | |---|---|---|---|---|---|---|---|---|---| | EXP-0020 | E011 exclude-Interbet (on EXP-0016 config) | Tier A WF | 556 | −0.40% | [−7.4%, +6.3%] | 59.8% | 8 | 105/90 | **The edge substantially IS Interbet's manually-priced places** (E000b predicted this). Without IB: break-even | | EXP-0021 | E011 second-best pricing | Tier A WF | 1,196 | −7.49% | [−11.6%, −3.3%] | 60.4% | 6 | 101/11 | **Top-price-taker mechanism confirmed**: the whole margin is the best-vs-rest quote gap. Real (E000c: historical bets settled at quoted odds; 1u stakes small) but operationally dependent on IB accounts staying open | | RC | **White's Reality Check on EXP-0016: p = 0.98 — FAIL** | — | — | — | — | — | — | — | +2.5% on 1,198 bets is indistinguishable from best-of-19-searches noise. **Holdout access blocked per EP-2.5** (correctly). A 2.5% place edge needs ~10× the bets for significance — more signal (volume) is the only path | ### Status vs goals (mid-flight honest assessment) | Goal | Status | |---|---| | Positive cumulative ROI | Point estimates positive across configs (+1.9% to +5.2% OOS over 6.5y) but **not yet statistically separable from search noise** | | ≥1 bet per 16 races | **Not met** — best 1/27.5; frontier maps ROI→0 beyond 1/24 with current signal | | Losing streak < 10 | **Met** in every place-engine config (5–8) | | Non-fragile to missed bets | **Met** (10% dropout P5 = +0.45%; top-5-removed ROI +1.1%) | | Alert at T-10 | Alerter built; parity verification next | **Mechanism found (real but narrow):** blended win probs (market consensus + late steam + tote divergence + best-vs-consensus) → discounted-Harville place pricing → strike the outlier top place quote, which is usually Interbet's manually-priced market. Operational risks: single-book concentration, top-price dependence. **Next angles (per stopping-criteria protocol, none retired yet):** E017 card features need schema v4 (bBlinkers, bTongueTied, cShoes were never extracted); D1 residual subgroup mining; D5 same-card day-form; sire aptitude; win-market segments. Volume/power is the binding constraint — every new orthogonal signal directly adds bets at positive EV. **Reading of the baselines:** best-of-4 line shopping alone recovers most of the vig (random bettor −10% vs typical −20%+ single-book). The win market's short end is nearly efficient-to-positive blind; the place market on favourites is where books take their margin. This sharpens E001/E003: the place-misquote pocket, if it exists, is in mid-priced runners and specific field-size bands, not favourites. (EXP-0001 = same run as EXP-0002, recorded before a console rendering crash — kept in the registry per total-capture rule. E000 data audit running as a 5-agent workflow.) ## Angle backlog (living) Seeded from the plan; retired angles move to the table below with evidence. - [x] E000 Data audit — done (constants adopted) - [x] E001 Calibration atlas — done (no blind-positive cells) - [x] E002 Blind baselines — done (retired) - [x] E003 Place-structure (consensus probs) — done (−2.3%; superseded by blend) - [x] E004/E005/E006 signal significance — done (mom60, toteFixed, bestVsCons in blend) - [x] E007 Form model — done (marginal ≈ nil standalone; kept as blend input) - [x] E008/E009 blend + place engine — done (core of the candidate) - [x] E010 Assembler + volume grid — done (frontier mapped) - [x] E011 Robustness (exclude-book, 2nd-best, jackknife, dropout) — done (top-price/IB concentration documented) - [ ] E011 remainder: T-15/T-20/T-30 sensitivity (needs cutoff-variant extraction) - [ ] E012 Touch-once holdout — BLOCKED until RC p<0.05 (correctly) - [ ] E013 Scratch-repricing lag - [ ] E014 Segment specialists (maiden/handicap, province, field-size pockets) - [ ] E015 WinningForm anchor fade/follow (wf features extracted, untested standalone) - [x] E017 Gear changes — done (retired; no material change) - [ ] E017 remainder: trainer-change/new-stable, rest-band × trainer interactions, sire distance/going aptitude, owner strength - [ ] **D1 Residual subgroup discovery — TOP PRIORITY** (directly attacks the volume/power constraint) - [ ] D2 Odds-curve morphology mining (anchors already in schema v4) - [ ] D3 Automated feature factory - [ ] D4 Market-anomaly detection - [ ] D5 Meeting-structure & within-day mining (day-form legitimately available at Tc) - [ ] D6 SHAP interaction mining - [ ] Live shadow mode on production DB (alerter ready; needs deployment) ## Cycle 2 results (2026-07-02, continued) | ID | Name | Bets | ROI | Verdict | |---|---|---|---|---| | EXP-0023 | D5 same-card day-form features | 1,201 | +1.71% | No improvement vs +2.50% baseline — **retired** (as-implemented) | | EXP-0024 | D1 residual subgroup mining (1,040 nodes, FDR q=0.10) | 111k rows | — | 365 surviving cells (largest: HB calibration debt +1.0–1.5%, small-field short-odds 2-place pocket +5.5%) but **every pocket's blind EV ≈ −15%** — real residuals, none bettable. Mining cannot mint volume; calibration is adequate. HB debt noted as a small precision improvement for the place map (backlog) | | EXP-0025 | **T-20 timing sensitivity: −3.92%** (vs +2.50% at T-10) | 1,068 | −3.92% | **EP-3.11 promotion gate FAILS.** Edge is timing-critical: either the top-quote-picking mechanism genuinely concentrates near the off, or backtest dTimeOff (recorded actual off) flatters live decisions made on the scheduled time. **Candidate rejected for promotion pending shadow evidence** — live shadow mode on the production DB is now the decisive experiment | | EXP-0026 | T-15 decay midpoint | 1,145 | +0.16% | **Decay curve complete: T-10 +2.50% → T-15 +0.16% → T-20 −3.92% (~0.6 ROI pts/min).** Sober implications: (1) every minute of alert→bet latency costs ~0.6%; (2) if SA races go off even ~3–5 min later than the scheduled time the alerter sees, live ROI lands near the T-15 number (~0%). E000 audit A showed dTimeOff ≈ recorded actual off, so this is a genuine open question that ONLY shadow mode (EP-5.6 measures scheduled-vs-actual off gap) can answer | ### Cycle 2 conclusion — the decisive experiment is now operational, not statistical Every research dial available offline has been turned: thresholds (frontier mapped), form (nil), gear (nil), day-form (nil), residual mining (no bettable pockets), timing (decays sharply). The backtest edge is real *in the data* but its live realizability hinges on (a) off-time slippage between scheduled and actual, and (b) whether top outlier quotes are strikeable at T-10 — both measurable only by running the alerter in shadow mode against the **production** database (the local backup is static). Remaining offline angles (E013 scratch-repricing, E014 segments, sire aptitude, HB place-map calibration, D2 curve morphology) stay on the backlog, but optimizing Tier A ROI further before the shadow answer would tune a number whose live meaning is unknown while inflating the deflated-ROI hurdle for future candidates. ## Retired angles | Angle | Retired | Evidence | |---|---|---| | E002 blind best-of-4 rules | 2026-07-02 | EXP-0005/6/7/8: no blind-positive cell tax-net anywhere; favourite-win −5.3% | | E005 daily momentum (mom1440) | 2026-07-02 | EXP-0009: t=2.4 < 3 — absorbed in current price | | E004 dispersion as signal | 2026-07-02 | EXP-0009: t=1.9 — dropped (best-vs-consensus survives instead) | | E007 basic form model (standalone value) | 2026-07-02 | EXP-0014 vs EXP-0015: marginal ROI ≈ +0.1pt — market prices basic form; kept only as blend input | | E010 threshold-based volume growth | 2026-07-02 | EXP-0017/18/19: frontier maps ROI→0 below pMin 0.45 / past θ→0; volume via dials exhausted | | E017 gear changes (blinkers/tongue-tie/shoes) | 2026-07-02 | EXP-0022 (v4): +1.49% @1,216 vs +2.50% @1,198 without — no material change; pre-registered kill fired | | D5 same-card day-form (as jockey/trainer today-counts) | 2026-07-02 | EXP-0023: +1.71% @1,201 vs +2.50% baseline — no improvement | | D1 residual pockets as volume source | 2026-07-02 | EXP-0024: 365 FDR survivors, all with blind EV ≈ −15% — residuals real but un-bettable; mining can't beat the shading hurdle. (HB calibration debt kept as a precision note) |