Hypotheses · overlay · H-503a093f
Wide and prominent last time: covered extra ground while doing the pace work
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
- rival-explanation
- Created
- 16 Oct, 12:31
- 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-edbf6921 (Wide trip in a big field last time loses more ground, so pays more) passed discovery: A/E 1.23 on 621 bets (p 0.02), same-race control 0.96. O-242bf049
- H-4e7cc5f4 (Wide trip after a turf sprint (no bends) still pays: the tag is not ab) survived falsification: 4 of 5 attacks left it standing; it is frozen for its one vault query. O-b2fa5813
- H-1eed6021 (Like-for-like: ground-on-bends test inside the full parent base (sharp) passed discovery: A/E 1.21 on 571 bets (p 0.033), same-race control 0.96. O-e8696ab5
- AskedIf last-time track sharpness makes no difference, does 'raced wide' still pay where there are no bends, i.e. after turf sprints on straight courses? testing
- MechanismA horse racing wide on or near the pace has no cover. It covers extra ground and takes the wind for the whole race, so the effort lost is spread over the whole trip, not just the bends. That fits both the straight-course result and the null on track shape.
- Why the market misses itThe bare result looks like a horse that 'weakened' or did not stay after being prominent. Punters mark it down as a non-stayer instead of crediting the effort.
- Predictedpositive, A/E 1.25 to 1.40 on 400+ bets, above wide runners that were held up or in midfield
- Falsified if
Mechanism and rationale
A horse racing wide on or near the pace has no cover. It covers extra ground and takes the wind for the whole race, so the effort lost is spread over the whole trip, not just the bends. That fits both the straight-course result and the null on track shape.
The rule
last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_run_style IN ('led', 'prominent')Reads: last_raced_wide, last_position, last_beaten_lengths, last_slow_start, last_run_style
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 8990df0b2ba4d0c4c3199a4241860fe41438091d275ae6d79eba7737a9affa41
- Frozen
- 16 Oct, 12:43
- Nothing in the definition can change after this.
- Confounders
- Course pace bias: front-runners are already helped at tracks that favour the pace (last_track_pace_bias, track_pace_bias). The edge may reflect today's pace-favouring course, not lost effort last time. Check by splitting on track_pace_bias.
- Price mix: prominent runners are shorter in the betting, so A/E should be compared with the held-up/midfield control in the same price bands (capped at 14/1). Raw ROI is not a fair comparison.
- Longshot artefact: in earlier subsets the 16/1+ band scored about 2.0 on very few wins. Judge at 14/1 or shorter.
- Uneven parent base: the parent's NOT(midfield/held_up AND race_tilt >= 0.2) clause removed some held-up runners. This rule and its control have no such clause, so they are compared like-for-like.
- Window: last_run_style only exists from 2025-11-01, so the sample is short. Look for stability across the April 2026 split and across GB/IRE.
- Race-type mix: 'wide' and 'prominent' tags may mean different things on the Flat and over jumps. Check that the effect is not carried by one code.
- Control
Discovery result
pass broad rule · 16 Oct, 12:35
- Bets
- 426
- 82 winners
- A/E
- 1.27
- 95%: 1.01 to 1.58
- SP return
- +30.0%
- level stakes
- Betfair SP return
- +56.8%
- 425 bets with a BSP
Strike rate 19.2%. p = 0.020. Same-race control: the other runners in these races had A/E 0.95, 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.
- control: Control: wide held-up/midfield runners at 14/1 or shorterpass
550 bets · A/E 1.16 (0.95 to 1.39) · control 0.96 · 16 Oct, 12:43
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272751.12after 2026-04-272751.19Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - partition: Led only, 14/1 or shorter (no cover at all, takes the wind)info
26 bets · A/E 0.98 (0.27 to 2.51) · control 1.01 · 16 Oct, 12:43
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:43
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
620 bets · A/E 1.22 (1.01 to 1.45) · control 0.96 · 16 Oct, 12:43
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272641.16after 2026-04-273561.26Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 1 -> 2 (+20%)pass
301 bets · A/E 1.34 (1.00 to 1.76) · control 0.95 · 16 Oct, 12:43
Breakdown
Lineage
Agent runs
designer v1ok · 43s · 16 Oct, 12:31
Output (schema-checked)
{ "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_run_style IN ('led', 'prominent')", "refinements": [ { "label": "14/1 or shorter", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_run_style IN ('led', 'prominent') AND sp_decimal <= 15" } ], "control": { "description": "Two comparisons. (1) The lab's standard check: the other runners in the same races should score about A/E 0.95, as they did for the parent base, so a 1.25+ result here is not a property of the races. (2) The comparison that answers the question: the wide runners in the same base that were held up or in midfield last time. Run this control rule over the same window. The hypothesis needs the led/prominent group to beat it clearly, by at least 0.10 A/E at 14/1 or shorter. If the held-up/midfield wide runners score the same or higher, the edge belongs to the wide tag, not to running position.", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_run_style IN ('midfield', 'held_up')" }, "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": [ "Course pace bias: front-runners are already helped at tracks that favour the pace (last_track_pace_bias, track_pace_bias). The edge may reflect today's pace-favouring course, not lost effort last time. Check by splitting on track_pace_bias.", "Price mix: prominent runners are shorter in the betting, so A/E should be compared with the held-up/midfield control in the same price bands (capped at 14/1). Raw ROI is not a fair comparison.", "Longshot artefact: in earlier subsets the 16/1+ band scored about 2.0 on very few wins. Judge at 14/1 or shorter.", "Uneven parent base: the parent's NOT(midfield/held_up AND race_tilt >= 0.2) clause removed some held-up runners. This rule and its control have no such clause, so they are compared like-for-like.", "Window: last_run_style only exists from 2025-11-01, so the sample is short. Look for stability across the April 2026 split and across GB/IRE.", "Race-type mix: 'wide' and 'prominent' tags may mean different things on the Flat and over jumps. Check that the effect is not carried by one code." ], "mechanism": "A horse that races wide while leading or prominent has no cover. It covers extra ground and takes the wind for the whole trip, not only on the bends. So the effort it loses is larger and more evenly spread than for a wide hold-up horse, which can tuck in or meet the wind only late. That explains the null on track shape (sharp vs galloping) and the edge after straight-course sprints. A finish within 5 lengths after that trip understates the horse's ability.", "market_miss": "The form reads 'prominent, weakened' or 'led, headed, no extra'. Punters and compilers take that as a non-stayer or a horse that folds, and mark it down. They do not credit the extra ground and wind it took without cover. The wide tag is in-running detail that rarely reaches the headline form line.", "prediction": { "direction": "positive", "size": "A/E 1.25 to 1.40 on 400+ bets, at least 0.10 above the wide held-up/midfield runners in the same base", "falsified_if": "A/E below 1.15 at 14/1 or shorter, or no higher than the held-up/midfield wide control in the same base, or the edge appears only in the 16/1+ band" }, "notes": "I kept the rule as sketched. last_run_style starts on 2025-11-01; the values 'led', 'prominent', 'midfield' and 'held_up' match how the parent rule used this column. The single refinement (14/1 or shorter) follows the family finding that the 16/1+ band inflates results. The main test of the question is the comparison with the held-up/midfield control, not the pass on its own: passing the bar while matching the control means the hypothesis is falsified as a rival explanation." }
Timeline
Job 1428 finished
· engine:compute-1
forward result for H-503a093f (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 1428 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 1391 finished
· engine:compute-1
hypothesis note H-503a093f
· engine:perturb
perturbation result for H-503a093f (neighbour: drop: last_position > 1): pass
· engine:perturb
perturbation result for H-503a093f (neighbour: drop: last_raced_wide = 1): pass
· engine:perturb
perturbation result for H-503a093f (neighbour: <= 5 -> 6 (+20%)): pass
· engine:perturb
perturbation result for H-503a093f (neighbour: <= 5 -> 4 (-20%)): pass
· engine:perturb
perturbation result for H-503a093f (neighbour: > 1 -> 2 (+20%)): pass
· engine:perturb
perturbation result for H-503a093f (neighbour: > 1 -> 0 (-20%)): pass
· engine:perturb
compute-1 took job 1391 (mutate, attempt 1)
· compute-1
Job 1425 finished
· engine:compute-1
H-503a093f Frozen → SHADOW vault skipped: last_raced_wide, last_beaten_lengths, last_slow_start, last_run_style do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 1425 (vault, attempt 1)
· compute-1