Hypotheses · overlay · H-edbf6921
Wide trip in a big field last time loses more ground, so pays more
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
- sharpen
- Created
- 16 Oct, 12:26
- 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-4e7cc5f4 (Wide trip after a turf sprint (no bends) still pays: the tag is not ab): the price band 'up to 7/1' carries the effect (A/E 1.1) while the rest score up to 14/1 0.88. O-24b84ee7
- H-4e7cc5f4 (Wide trip after a turf sprint (no bends) still pays: the tag is not ab) passed discovery as a niche: A/E 1.18 on 129 bets (p 0.261), same-race control 0.97. O-9cf7e027
- H-5b9fa0d3 (Wide trip last time on all-weather today still pays) passed discovery: A/E 1.23 on 462 bets (p 0.029), same-race control 0.95. O-bfd4e54e
- AskedDoes the wide-trip edge grow with last time's field size, where a wide trip usually means being forced further out and losing more ground? answered
- MechanismIn a big field, a horse marked as wide is usually three or more wide, so it covers several lengths extra. In a small field it may be barely off the rail. If the edge comes from ground lost, it should be strongest after big-field runs and fade after small-field runs.
- Why the market misses itComments say 'raced wide' whether the horse was two wide or five wide, and bettors read the beaten distance at face value. The field size that sets how much ground was lost is not worked into the price.
- Predictedpositive, A/E 1.30 to 1.45 on 450+ bets, above the parent's 1.27 and clearly above the same base with last_field_size <= 9
- Falsified if
Mechanism and rationale
In a big field, a horse marked as wide is usually three or more wide, so it covers several lengths extra. In a small field it may be barely off the rail. If the edge comes from ground lost, it should be strongest after big-field runs and fade after small-field runs.
The rule
last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND NOT coalesce(last_run_style IN ('midfield', 'held_up') AND last_race_tilt >= 0.2 AND (last_position - 1.0) / max(last_field_size - 1, 1) <= 0.4, 0) AND l_top_speed_pct IS NOT NULL AND last_field_size >= 10Reads: last_raced_wide, last_position, last_beaten_lengths, last_slow_start, last_run_style, last_race_tilt, last_field_size, l_top_speed_pct
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- e090c60a5367d6296b62a68c5984c828deef19a63fa6767be35059fd61d1add8
- Frozen
- 16 Oct, 12:35
- Nothing in the definition can change after this.
- Confounders
- Season/period: big fields are mostly turf summer handicaps, and sibling wide-trip subsets carry their lift after 2026-04-27. Split the result before and after that date. A lift that exists only after it is not evidence for ground lost.
- Form strength: beaten 5 lengths or less is a better run in a 10+ runner field whether or not the horse was wide. The not-wide big-field close-up losers must sit near 1.0 for the wide tag to be what produces the lift.
- Longshot mix: big-field races carry more 16/1+ runners, and earlier wide subsets were carried by a few big-price winners. The 14/1-or-shorter band must hold the lift.
- Field-size persistence: a big field last time usually means a big field today, so today's race shape (more runners, more longshots, bigger overround) may produce the lift. The refinement with today's field_size <= 11 checks this.
- Run-style overlap: wide trips in big fields are more often held-up or midfield runners. The tilt exclusion in the parent base is kept unchanged so that only the field-size condition differs from the parent.
Discovery result
pass broad rule · 16 Oct, 12:29
- Bets
- 621
- 110 winners
- A/E
- 1.23
- 95%: 1.01 to 1.48
- SP return
- +6.7%
- level stakes
- Betfair SP return
- +28.8%
- 620 bets with a BSP
Strike rate 17.7%. p = 0.020. Same-race control: the other runners in these races had A/E 0.96, 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: Field-size cut moved down to 8+pass
875 bets · A/E 1.23 (1.05 to 1.44) · control 0.96 · 16 Oct, 12:35
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-273951.16after 2026-04-274801.29Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Field-size cut moved up to 12+ (dose-response)pass
355 bets · A/E 1.22 (0.94 to 1.55) · control 0.96 · 16 Oct, 12:35
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.05, 'max_p': 0.2}info
0 bets · · 16 Oct, 12:35
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
829 bets · A/E 1.14 (0.96 to 1.34) · control 0.97 · 16 Oct, 12:58
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-273691.07after 2026-04-274601.20Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 1 -> 2 (+20%)pass
463 bets · A/E 1.25 (0.99 to 1.58) · control 0.96 · 16 Oct, 12:58
Breakdown
Lineage
Agent runs
designer v1ok · 36s · 16 Oct, 12:26
Output (schema-checked)
{ "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND NOT coalesce(last_run_style IN ('midfield', 'held_up') AND last_race_tilt >= 0.2 AND (last_position - 1.0) / max(last_field_size - 1, 1) <= 0.4, 0) AND l_top_speed_pct IS NOT NULL AND last_field_size >= 10", "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 NOT coalesce(last_run_style IN ('midfield', 'held_up') AND last_race_tilt >= 0.2 AND (last_position - 1.0) / max(last_field_size - 1, 1) <= 0.4, 0) AND l_top_speed_pct IS NOT NULL AND last_field_size >= 10 AND sp_decimal <= 15" }, { "label": "dose-response: very big field last time (14+)", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND NOT coalesce(last_run_style IN ('midfield', 'held_up') AND last_race_tilt >= 0.2 AND (last_position - 1.0) / max(last_field_size - 1, 1) <= 0.4, 0) AND l_top_speed_pct IS NOT NULL AND last_field_size >= 14" }, { "label": "big field last time, smaller field today (separates last-time ground loss from today's big-field longshot effect)", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND NOT coalesce(last_run_style IN ('midfield', 'held_up') AND last_race_tilt >= 0.2 AND (last_position - 1.0) / max(last_field_size - 1, 1) <= 0.4, 0) AND l_top_speed_pct IS NOT NULL AND last_field_size >= 10 AND field_size <= 11" } ], "control": { "description": "Main comparison: the same full parent base (IQ140a) with last_field_size <= 9, the small-field complement. The mechanism predicts big-field A/E clearly above this one; if the two are equal, the field-size argument fails. The other runners in the same races, measured as usual, should show about 1.0 (around 0.95 to 1.0). That shows the lift belongs to the wide-trip runners, not to big-field races. As a secondary check on the confounder that 'beaten 5 lengths or less in a big field' is simply strong form, compare against close-up losers from big fields who were NOT marked wide. We expect those near 1.0, as the existing finding showed 1.00 on 8669 for not-wide close-up all-weather losers.", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND NOT coalesce(last_run_style IN ('midfield', 'held_up') AND last_race_tilt >= 0.2 AND (last_position - 1.0) / max(last_field_size - 1, 1) <= 0.4, 0) AND l_top_speed_pct IS NOT NULL AND last_field_size <= 9" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.2, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Season/period: big fields are mostly turf summer handicaps, and sibling wide-trip subsets carry their lift after 2026-04-27. Split the result before and after that date. A lift that exists only after it is not evidence for ground lost.", "Form strength: beaten 5 lengths or less is a better run in a 10+ runner field whether or not the horse was wide. The not-wide big-field close-up losers must sit near 1.0 for the wide tag to be what produces the lift.", "Longshot mix: big-field races carry more 16/1+ runners, and earlier wide subsets were carried by a few big-price winners. The 14/1-or-shorter band must hold the lift.", "Field-size persistence: a big field last time usually means a big field today, so today's race shape (more runners, more longshots, bigger overround) may produce the lift. The refinement with today's field_size <= 11 checks this.", "Run-style overlap: wide trips in big fields are more often held-up or midfield runners. The tilt exclusion in the parent base is kept unchanged so that only the field-size condition differs from the parent.", "Overlap with parent: this is a subset of IQ140a (A/E 1.27 on 1080), so part of any result is inherited. The test is the gap from the complement, not the absolute level." ], "mechanism": "A horse tagged 'raced wide' in a big field (10+ runners) was usually three or more horses off the rail on the bends, so it covered several lengths more than the winner. In a small field the same tag usually means one or two off the rail, at little cost. If the wide-trip overlay comes from ground lost that the beaten distance hides, it should be larger after big-field runs and fade after small-field runs. Today's price is then too long for the horse's real ability.", "market_miss": "Race comments say 'raced wide' whether the horse was two wide or five wide. Bettors and form figures take the beaten distance at face value. The field size, which roughly sets how many horses wide it was and so how much ground it lost, is not adjusted for in the price.", "prediction": { "direction": "positive", "size": "A/E 1.30 to 1.45 on 450+ bets, above the parent's 1.27 and at least 0.10 above the last_field_size <= 9 complement on the same base", "falsified_if": "Falsified if any of these hold: A/E 1.20 or lower; A/E no higher than the small-field complement (last_field_size <= 9) on the same base; or the lift is gone in the 14/1-or-shorter band. Any of these means the wide tag is not measuring lost ground in proportion to field size." }, "notes": "I kept the rule sketch unchanged. It uses the full IQ140a parent base (tilt exclusion, l_top_speed_pct IS NOT NULL) and adds only last_field_size >= 10, which follows the lesson that refinements must keep the parent base. All columns are pre-off last-run fields. The discovery bar is stricter than the floor (300 bets, A/E 1.2) because this is a subset of a parent already at 1.27 on 1080. A pass at the floor would say nothing about field size. The comparison that decides the result is against the complement. Report the split before and after 2026-04-27." }
Timeline
Job 1476 finished
· engine:compute-1
hypothesis note H-edbf6921
· engine:perturb
perturbation result for H-edbf6921 (neighbour: >= 0.2 -> 0.24 (+20%)): pass
· engine:perturb
perturbation result for H-edbf6921 (neighbour: >= 0.2 -> 0.16 (-20%)): pass
· engine:perturb
perturbation result for H-edbf6921 (neighbour: <= 5 -> 6 (+20%)): pass
· engine:perturb
perturbation result for H-edbf6921 (neighbour: <= 5 -> 4 (-20%)): pass
· engine:perturb
perturbation result for H-edbf6921 (neighbour: > 1 -> 2 (+20%)): pass
· engine:perturb
perturbation result for H-edbf6921 (neighbour: > 1 -> 0 (-20%)): pass
· engine:perturb
compute-1 took job 1476 (mutate, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Job 1389 finished
· engine:compute-1
forward result for H-edbf6921 (forward vs bar {'min_bets': 150, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 1389 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 1384 finished
· engine:compute-1
H-edbf6921 Frozen → SHADOW vault skipped: last_raced_wide, last_beaten_lengths, last_slow_start, last_run_style, last_race_tilt do not exist before the discovery zone; track it forward instead
· engine:orchestrator