Hypotheses · story · H-8caad71f
Rival: the complement's lift is a longshot artefact; test it at 14/1 or shorter
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H20: wide early and got back into it” 14 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 17 Oct, 04:32
- Tests logged
- 16
Reasoning
Why this hypothesis exists: what the lab saw, the question it asked, the mechanism it proposed, what it predicted, and the result that would prove it wrong. Written before the test was run.
- Observed
- H-46173ef7 (Rival: the broad wide-trip lift is a longshot artefact; test it at 14/) passed discovery: A/E 1.18 on 915 bets (p 0.015), same-race control 0.96. O-2af9c9fd
- H-3cac18e4 (Rival complement: wide-trip narrow Flat defeats without the early-setb) passed discovery: A/E 1.16 on 786 bets (p 0.05), same-race control 0.97. O-91ddf89c
- H-3cac18e4 (Rival complement: wide-trip narrow Flat defeats without the early-setb) survived falsification: 5 of 6 attacks left it standing; it is frozen for its one vault query. O-cf94e89a
- AskedDoes the complement (wide-trip narrow defeats without the early-setback-and-recovery story) still beat its prices at 14/1 or shorter, once the 8 longshot winners are taken out? answered
- MechanismAny horse that raced wide covered extra ground, so a narrow defeat understates its ability even when it was not caught wide early and did not have to fight back into the race.
- Why the market misses itThe form line reads as a plain close defeat. Comment-level trip detail gets little weight in the price unless the comment tells the dramatic story of being caught wide early and fighting back.
- Predictedpositive, A/E 1.05 to 1.15 on about 600 to 700 bets
- Falsified ifA/E at or below 1.02 on 500+ bets, or no better than its same-race control. Either result would mean the trip edge needs the early-setback story and the complement's lift came from a few longshots.
Mechanism and rationale
Any horse that raced wide covered extra ground, so a narrow defeat understates its ability even when it was not caught wide early and did not have to fight back into the race.
The rule
race_type = 'Flat' AND last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND sp_decimal <= 15 AND (last_early_setback IS NULL OR last_early_setback = 0 OR last_recovered IS NULL OR last_recovered = 0 OR last_slow_start IS NULL OR last_slow_start = 1)
Reads: race_type, last_raced_wide, last_position, last_beaten_lengths, sp_decimal, last_early_setback, last_recovered, last_slow_start
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- e07a4741b5e4a2fb0eec298472bbbb8d487f4ec2731c023142f96f57e2513dff
- Frozen
- 17 Oct, 04:41
- Nothing in the definition can change after this.
- Confounders
- The 14/1 cap may remove most of the complement's ROI. Earlier work found the 16/1+ band carried much of the broad rule's lift (1.95 on 204 from 11 wins).
- The rule overlaps the frozen broad ≤14/1 rule. It is a subset of that rule's runners, so a pass is not independent confirmation.
- A share of IRE runners could inflate the pooled figure (GB alone was 1.086 for the bare wide trip). The GB-only refinement checks this.
- A general close-defeat or runner-up effect could stand in for the wide trip. The not-wide control checks this.
- The raced-wide flag depends on how comments are written. Its coverage and wording may vary by period or by comment writer.
- Control
{ "description": "The same-race runners should score about 0.96 to 1.00, as they did for the broad wide-trip rule, so the lift is not a property of the races. A second control is needed to separate the wide-trip effect from a plain close-defeat effect: Flat runners beaten 5 lengths or less last time that did NOT race wide, at 14/1 or shorter. If the wide-trip complement does not clearly beat this group, the edge belongs to close defeats in general, not to ground lost.", "rule": "race_type = 'Flat' AND (last_raced_wide IS NULL OR last_raced_wide = 0) AND last_position > 1 AND last_beaten_lengths <= 5 AND sp_decimal <= 15" }
Discovery result
pass broad rule (niche) · 17 Oct, 04:36
- Bets
- 701
- 132 winners
- A/E
- 1.09
- 95%: 0.91 to 1.29
- SP return
- -4.6%
- level stakes
- Betfair SP return
- +13.0%
- 701 bets with a BSP
Strike rate 18.8%. p = 0.17. Same-race control: the other runners in these races had A/E 0.98, so the selection beat its own races. Zone: discovery. Evaluator eval-1.0, data 6a4e98be18e83933
By period
Falsification
Each attack is a deliberate attempt to kill the idea. 4 of 6 survived.
- price_band: Strip the 9/1-14/1 band: 8/1 or shorter onlypass
482 bets · A/E 1.04 (0.86 to 1.26) · control 0.98 · 17 Oct, 04:41
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272020.96after 2026-04-272801.10Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - control: Not-wide close defeats in the same 9/1-14/1 bandfail
6,129 bets · A/E 0.98 (0.89 to 1.07) · control 1.00 · 17 Oct, 04:41
Sealed holdout (vault)
Not queried. Only a frozen idea can spend its one query against the 2020-25 holdout.
Forward record
- forward vs bar {'min_bets': 150, 'min_ae': 1.0, 'max_p': 0.2}info
0 bets · · 17 Oct, 04:41
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: > 1 -> 0 (-20%)pass
901 bets · A/E 1.10 (0.94 to 1.27) · control 0.98 · 17 Oct, 04:41
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-273841.10after 2026-04-275171.10Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 1 -> 2 (+20%)pass
516 bets · A/E 1.17 (0.95 to 1.43) · control 0.97 · 17 Oct, 04:41
Breakdown
Lineage
Agent runs
designer v1ok · 30s · 17 Oct, 04:32
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND sp_decimal <= 15 AND (last_early_setback IS NULL OR last_early_setback = 0 OR last_recovered IS NULL OR last_recovered = 0 OR last_slow_start IS NULL OR last_slow_start = 1)", "refinements": [ { "label": "GB only (removes IRE share confounder)", "rule": "race_type = 'Flat' AND last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND sp_decimal <= 15 AND (last_early_setback IS NULL OR last_early_setback = 0 OR last_recovered IS NULL OR last_recovered = 0 OR last_slow_start IS NULL OR last_slow_start = 1) AND region = 'GB'" } ], "control": { "description": "The same-race runners should score about 0.96 to 1.00, as they did for the broad wide-trip rule, so the lift is not a property of the races. A second control is needed to separate the wide-trip effect from a plain close-defeat effect: Flat runners beaten 5 lengths or less last time that did NOT race wide, at 14/1 or shorter. If the wide-trip complement does not clearly beat this group, the edge belongs to close defeats in general, not to ground lost.", "rule": "race_type = 'Flat' AND (last_raced_wide IS NULL OR last_raced_wide = 0) AND last_position > 1 AND last_beaten_lengths <= 5 AND sp_decimal <= 15" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1, "max_p": 0.2 }, "confounders": [ "The 14/1 cap may remove most of the complement's ROI. Earlier work found the 16/1+ band carried much of the broad rule's lift (1.95 on 204 from 11 wins).", "The rule overlaps the frozen broad ≤14/1 rule. It is a subset of that rule's runners, so a pass is not independent confirmation.", "A share of IRE runners could inflate the pooled figure (GB alone was 1.086 for the bare wide trip). The GB-only refinement checks this.", "A general close-defeat or runner-up effect could stand in for the wide trip. The not-wide control checks this.", "The raced-wide flag depends on how comments are written. Its coverage and wording may vary by period or by comment writer." ], "mechanism": "A horse that raced wide covered extra ground. A defeat by 5 lengths or less therefore understates its ability, even if it was not caught wide early and did not have to fight back into the race. The lost ground is a cost that can be measured and does not repeat, so the horse should run closer to its true level next time.", "market_miss": "The form line reads as a plain close defeat. Bettors and odds compilers give comment-level trip detail little weight unless the comment tells the dramatic story of being caught wide early and fighting back. A quiet 'raced wide' note on a close beaten run is underpriced, including at shorter prices where most money goes.", "prediction": { "direction": "positive", "size": "A/E 1.05 to 1.15 on about 600 to 700 bets at 14/1 or shorter", "falsified_if": "Falsified if A/E is at or below 1.02 on 500 or more bets, or no better than the same-race control or the not-wide close-defeat control. Either result would mean the trip edge needs the early-setback story and the complement's lift came from longshots." }, "notes": "I made one fix to the sketch. The parent rule required last_slow_start = 0, so a correct complement must also keep runners whose last_slow_start is NULL. I added 'last_slow_start IS NULL' to the OR clause. I left out a tighter price-band refinement: this test is about the ≤14/1 cap itself, and adding a narrower band would be slicing." }
Timeline
Job 3009 finished
· engine:compute-1
forward result for H-8caad71f (forward vs bar {'min_bets': 150, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 3009 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2976 finished
· engine:compute-1
hypothesis note H-8caad71f
· engine:perturb
perturbation result for H-8caad71f (neighbour: <= 15 -> 18 (+20%)): pass
· engine:perturb
perturbation result for H-8caad71f (neighbour: <= 15 -> 12 (-20%)): pass
· engine:perturb
perturbation result for H-8caad71f (neighbour: <= 5 -> 6 (+20%)): pass
· engine:perturb
perturbation result for H-8caad71f (neighbour: <= 5 -> 4 (-20%)): pass
· engine:perturb
perturbation result for H-8caad71f (neighbour: > 1 -> 2 (+20%)): pass
· engine:perturb
perturbation result for H-8caad71f (neighbour: > 1 -> 0 (-20%)): pass
· engine:perturb
compute-1 took job 2976 (mutate, attempt 1)
· compute-1
Job 3004 finished
· engine:compute-1
H-8caad71f Frozen → SHADOW vault skipped: last_raced_wide, last_beaten_lengths, last_early_setback, last_recovered, last_slow_start do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 3004 (vault, attempt 1)
· compute-1