Hypotheses · overlay · H-c869bcd0
Wide trip and the price drifted since last time: the market marked the run down
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “IQ140a: wide trip with figures” 21 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- test-mechanism
- Created
- 16 Oct, 12:52
- Tests logged
- 18
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-dc80c356 (Small field last time, bigger field today: is the small-field wide edg) passed discovery as a niche: A/E 1.57 on 148 bets (p 0.017), same-race control 0.92. O-0d2a2141
- H-5ef5773d (Wide trip in a small field last time should pay less if lost ground is) survived falsification: 5 of 6 attacks left it standing; it is frozen for its one vault query. O-4e52aa17
- H-503a093f (Wide and prominent last time: covered extra ground while doing the pac) survived falsification: 4 of 4 attacks left it standing; it is frozen for its one vault query. O-d8906eb4
- AskedIf the edge comes from the 'wide' comment rather than lost ground, is it larger when the horse's price has drifted since last time (the market marked the run down)? answered
- MechanismThe lost-ground tests failed, so the wide tag may mark runs the market undervalues. That undervaluation should show as a longer price today than last time.
- Why the market misses itA wide, beaten run reads as a non-effort. Punters let the horse drift even though the figures show it ran close.
- Predictedpositive, A/E 1.25 to 1.40 on 400+ bets at 15.0 SP or shorter
- Falsified ifA/E at or below the 1.21 of the capped base, or no higher than the shortened-price complement (sp_decimal < last_sp_decimal).
Mechanism and rationale
The lost-ground tests failed, so the wide tag may mark runs the market undervalues. That undervaluation should show as a longer price today than last time.
The rule
last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND sp_decimal <= 15 AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal * 1.2
Reads: last_raced_wide, last_position, last_beaten_lengths, last_slow_start, sp_decimal, last_sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- b631b089cdf2293fc46a65f09d1a4f56270aee87c3837904261415e58e0dfcfa
- Frozen
- 16 Oct, 12:58
- Nothing in the definition can change after this.
- Confounders
- Class rise today: a drift may just reflect a step up in class (race_class < last_race_class), not the market marking the run down. Refinement 1 removes class rises.
- Going change: drift may come from a switch to ground the horse is unproven on. Refinement 2 keeps the going group the same.
- General price drift: any horse whose last SP was long, or which drifts out toward the 15.0 cap, may be exposed to the favourite-longshot bias by mechanics alone. Refinement 3 keeps last runs at 15.0 SP or shorter, and the shortened-price control checks this.
- Overlap with the capped base: the drift subset is part of the 1.21-on-974 base, so a result near 1.21 adds nothing. Only clear separation from the base and from the complement counts.
- Field-size and race-type mix: drift is more common when today's field is bigger or stronger. The earlier small-to-big field result (1.57 on 148) may carry part of any lift.
- Period effect: several wide subsets rose after April 2026, so the result should be checked by period.
- sp_decimal is the price at the off. The rule is evaluable before the off only with an early price; forward tracking must use the same SP convention.
Discovery result
pass broad rule · 16 Oct, 12:56
- Bets
- 260
- 45 winners
- A/E
- 1.47
- 95%: 1.07 to 1.97
- SP return
- +13.0%
- level stakes
- Betfair SP return
- +38.5%
- 260 bets with a BSP
Strike rate 17.3%. p = 0.0086. Same-race control: the other runners in these races had A/E 0.94, 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. 6 of 6 survived.
- perturbation: Drift threshold raised to 40% longerpass
202 bets · A/E 1.58 (1.09 to 2.21) · control 0.93 · 16 Oct, 12:58
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27921.49after 2026-04-271101.65Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Any drift at all (threshold 1.0)pass
326 bets · A/E 1.38 (1.04 to 1.79) · control 0.95 · 16 Oct, 12:58
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': 100, 'min_ae': 1.05, 'max_p': 0.2}info
0 bets · · 16 Oct, 12:58
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
399 bets · A/E 1.25 (0.95 to 1.60) · control 0.96 · 16 Oct, 12:58
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271881.11after 2026-04-272111.37Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 1 -> 2 (+20%)pass
181 bets · A/E 1.52 (1.02 to 2.17) · control 0.94 · 16 Oct, 12:58
Breakdown
Lineage
Agent runs
designer v1ok · 38s · 16 Oct, 12:53
Output (schema-checked)
{ "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND sp_decimal <= 15 AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal * 1.2", "refinements": [ { "label": "drift without a class rise", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND sp_decimal <= 15 AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal * 1.2 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class >= last_race_class" }, { "label": "drift on the same going group", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND sp_decimal <= 15 AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal * 1.2 AND going_group = last_going_group" }, { "label": "drift from a fancied last run (last SP 15.0 or shorter)", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND sp_decimal <= 15 AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal * 1.2 AND last_sp_decimal <= 15" } ], "control": { "description": "Two comparisons. (1) Other runners in the same races: expected near A/E 0.90-0.95, as in earlier wide-trip tests, so a high selection A/E is not a race-level artefact. (2) The deciding control is the shortened-price complement of the same capped wide-trip base: wide-trip runners at 15.0 SP or shorter whose price has shortened since last time. If the mechanism holds (the market marks the wide run down and the drift is the mispricing), the drifters should beat this complement clearly and beat the capped base of 1.21. If the complement scores the same or higher, drift is not the channel.", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND sp_decimal <= 15 AND last_sp_decimal IS NOT NULL AND sp_decimal < last_sp_decimal" }, "pass_criteria": { "min_bets": 200, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Class rise today: a drift may just reflect a step up in class (race_class < last_race_class), not the market marking the run down. Refinement 1 removes class rises.", "Going change: drift may come from a switch to ground the horse is unproven on. Refinement 2 keeps the going group the same.", "General price drift: any horse whose last SP was long, or which drifts out toward the 15.0 cap, may be exposed to the favourite-longshot bias by mechanics alone. Refinement 3 keeps last runs at 15.0 SP or shorter, and the shortened-price control checks this.", "Overlap with the capped base: the drift subset is part of the 1.21-on-974 base, so a result near 1.21 adds nothing. Only clear separation from the base and from the complement counts.", "Field-size and race-type mix: drift is more common when today's field is bigger or stronger. The earlier small-to-big field result (1.57 on 148) may carry part of any lift.", "Period effect: several wide subsets rose after April 2026, so the result should be checked by period.", "sp_decimal is the price at the off. The rule is evaluable before the off only with an early price; forward tracking must use the same SP convention." ], "mechanism": "Lost-ground tests failed: small fields and galloping tracks score as well as big fields and sharp tracks. So the wide-trip edge looks like a reading error about the run rather than ground lost on bends. If punters read a wide, beaten-but-close run as a poor effort, that misreading should appear as a price that has drifted since last time (more than 20% longer). The edge should then be concentrated among drifters, not among horses the market has already backed in.", "market_miss": "A wide, beaten run is read as a non-effort in form summaries (\"raced wide, no extra\"). Punters and layers let the horse drift even though it finished within 5 lengths after a normal start. The drift is the visible sign of the undervaluation, and it is largest when nothing else (class, going) explains it.", "prediction": { "direction": "positive", "size": "A/E 1.25 to 1.40 on 400+ bets at 15.0 SP or shorter, clearly above the shortened-price complement.", "falsified_if": "A/E at or below 1.21 (the capped wide-trip base), or not higher than the shortened-price control (sp_decimal < last_sp_decimal) in the same base, or the lift disappears once class rises are removed." }, "notes": "Kept the rule sketch and added only an explicit last_sp_decimal IS NOT NULL guard. All columns are pre_off and available from 2020-07 in GB and IRE. race_class is IRE-only from 2026-07, so in refinement 1 Irish runners mostly drop out by design (the NULL guard). Pass criteria are stricter than the floor (200 bets, 1.10) because this is a subset of an already measured base, and a weak lift would only restate it." }
Timeline
Job 1517 finished
· engine:compute-1
hypothesis note H-c869bcd0
· engine:perturb
perturbation result for H-c869bcd0 (neighbour: <= 15 -> 18 (+20%)): pass
· engine:perturb
perturbation result for H-c869bcd0 (neighbour: <= 15 -> 12 (-20%)): pass
· engine:perturb
perturbation result for H-c869bcd0 (neighbour: <= 5 -> 6 (+20%)): pass
· engine:perturb
perturbation result for H-c869bcd0 (neighbour: <= 5 -> 4 (-20%)): pass
· engine:perturb
perturbation result for H-c869bcd0 (neighbour: > 1 -> 2 (+20%)): pass
· engine:perturb
perturbation result for H-c869bcd0 (neighbour: > 1 -> 0 (-20%)): pass
· engine:perturb
compute-1 took job 1517 (mutate, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Job 1511 finished
· engine:compute-1
forward result for H-c869bcd0 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 1511 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 1509 finished
· engine:compute-1
H-c869bcd0 Frozen → SHADOW vault skipped: last_raced_wide, last_beaten_lengths, last_slow_start do not exist before the discovery zone; track it forward instead
· engine:orchestrator