Hypotheses · story · H-f956317c
Test-mechanism: big-field heavy beatings where the horse was never involved
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H36: pulled up after being held up” 60 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- test-mechanism
- Created
- 17 Oct, 03:44
- Tests logged
- 17
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-52702d58 (Test-mechanism: big-field jumps beatings where the horse was eased car) pointed the predicted way but failed the bar: A/E 1.76 on 18 bets (p 0.314), control 0.96. O-1d81d740
- AskedIs the big-field heavy-beating lift jumps-only because jumps margins are inflated by easing and tiredness once beaten, which Flat races largely lack? testing
- MechanismIn big jumps fields, a horse that is never involved is usually allowed to come home in its own time once beaten. That inflates the beaten distance well beyond its real merit, which is the easing mechanism the 18-bet test was too narrow to measure.
- Why the market misses itThe form book shows a 20+ length beating and a 'never involved' comment, and both read as a horse with no ability. The margin reflects how little effort was asked for, not ability.
- Predictedpositive, A/E 1.20 to 1.35 on 400+ bets, at or above the big-field parent's 1.187
- Falsified ifA/E below 1.10, or no higher than big-field heavily beaten runners with last_never_involved = 0
- Rule sketch
is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1
Mechanism and rationale
In big jumps fields, a horse that is never involved is usually allowed to come home in its own time once beaten. That inflates the beaten distance well beyond its real merit, which is the easing mechanism the 18-bet test was too narrow to measure.
The rule
is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1Reads: is_handicap, race_type, last_beaten_lengths, last_field_size, last_never_involved
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 4f98680d4f1568c0efe7750e1b63eb27d7f479419b52da0531688db47fd08855
- Frozen
- 17 Oct, 03:51
- Nothing in the definition can change after this.
- Confounders
- last_never_involved is only recorded from 2025-11-01, so the sample is about one season and may be thin
- horses that really are out of form or badly handicapped, whose 'never involved' comment is accurate
- longshot bias at 16/1 or bigger, where earlier big-field cuts all ran below par
- IRE festival big fields with different market depth and race make-up
- class drops today, which partly overlap the heavy-beating lift found earlier
- comment-writer style: how often 'never involved' is used may differ by course and region
- Control
{ "description": "Same-race other runners are expected near par (about 0.95 to 1.0), as in earlier big-field cuts (control 0.98). The decisive comparison is the big-field heavily beaten handicap jumpers whose last run was NOT marked 'never involved', over the same window (last_never_involved is only recorded from 2025-11-01): the mechanism requires the never-involved group to beat that group's A/E. If never-involved is no higher than the never_involved = 0 group, the easing story fails even if the broad rule is above 1.", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 0" }- Designer
designer@v1
Discovery result
pass broad rule · 17 Oct, 03:50
- Bets
- 1,215
- 94 winners
- A/E
- 1.32
- 95%: 1.07 to 1.62
- SP return
- -9.2%
- level stakes
- Betfair SP return
- +39.5%
- 1,215 bets with a BSP
Strike rate 7.7%. p = 0.0052. 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. 5 of 6 survived.
- perturbation: Loosen thresholds: beaten 16+ lengths, last field 12+pass
1,930 bets · A/E 1.21 (1.02 to 1.43) · control 0.99 · 17 Oct, 03:51
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271,0751.23after 2026-04-278551.19Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Tighten thresholds: beaten 24+ lengths, last field 16+pass
629 bets · A/E 1.44 (1.06 to 1.90) · control 0.98 · 17 Oct, 03:51
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.0, 'max_p': 0.2}info
0 bets · · 17 Oct, 04:05
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: >= 20 -> 16 (-20%)pass
1,352 bets · A/E 1.24 (1.01 to 1.51) · control 0.98 · 17 Oct, 04:05
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-277171.23after 2026-04-276351.26Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: >= 20 -> 24 (+20%)pass
1,071 bets · A/E 1.41 (1.13 to 1.75) · control 0.97 · 17 Oct, 04:05
Breakdown
Lineage
Agent runs
designer v1ok · 31s · 17 Oct, 03:45
Output (schema-checked)
{ "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1", "refinements": [ { "label": "14/1 or shorter", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1 AND sp_decimal <= 15" }, { "label": "GB only (exclude IRE festival big fields)", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1 AND region = 'GB'" } ], "control": { "description": "Same-race other runners are expected near par (about 0.95 to 1.0), as in earlier big-field cuts (control 0.98). The decisive comparison is the big-field heavily beaten handicap jumpers whose last run was NOT marked 'never involved', over the same window (last_never_involved is only recorded from 2025-11-01): the mechanism requires the never-involved group to beat that group's A/E. If never-involved is no higher than the never_involved = 0 group, the easing story fails even if the broad rule is above 1.", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 0" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1, "max_p": 0.2 }, "prediction": { "direction": "positive", "size": "A/E 1.20 to 1.35, at or above the big-field parent's 1.187; bet count probably under 400 because the flag only exists from 2025-11-01", "falsified_if": "A/E below 1.10, or A/E no higher than the control group (same rule with last_never_involved = 0) over the same window, or the lift exists only at 16/1 or bigger" }, "confounders": [ "last_never_involved is only recorded from 2025-11-01, so the sample is about one season and may be thin", "horses that really are out of form or badly handicapped, whose 'never involved' comment is accurate", "longshot bias at 16/1 or bigger, where earlier big-field cuts all ran below par", "IRE festival big fields with different market depth and race make-up", "class drops today, which partly overlap the heavy-beating lift found earlier", "comment-writer style: how often 'never involved' is used may differ by course and region" ], "mechanism": "In big jumps handicap fields, a horse that is never in contention is usually allowed to come home in its own time once its chance has gone. The 20+ length margin therefore measures how little effort was asked for, not its ability, and it pushes the horse's next price out beyond its real chance. This tests the easing mechanism (Q-d422b625) that the 18-bet last_eased test was too narrow to measure.", "market_miss": "Punters and price-makers read a 20+ length beating plus a 'never involved' comment as two independent signs of no ability. In fact they are one event: a horse that was never involved was not ridden out, so the margin is inflated and the double penalty over-lengthens its price, mainly in the under-14/1 band.", "notes": "I kept the rule sketch as it was: every column is pre_off and none reads the result. Watch the window: last_never_involved only exists from 2025-11-01 in both GB and IRE, so the discovery sample is short and a thin result that points the right way should go to falsification and forward tracking rather than be killed. The 14/1-or-shorter refinement (sp_decimal <= 15) comes from the family finding that big-field lifts live under about 14/1. The GB refinement follows from the IRE festival confounder." }
Timeline
Job 2791 finished
· engine:compute-1
hypothesis note H-f956317c
· engine:perturb
perturbation result for H-f956317c (neighbour: drop: race_type IN ('Hurdle', 'Chase')): pass
· engine:perturb
perturbation result for H-f956317c (neighbour: drop: is_handicap = 1): pass
· engine:perturb
perturbation result for H-f956317c (neighbour: >= 14 -> 17 (+20%)): pass
· engine:perturb
perturbation result for H-f956317c (neighbour: >= 14 -> 11 (-20%)): pass
· engine:perturb
perturbation result for H-f956317c (neighbour: >= 20 -> 24 (+20%)): pass
· engine:perturb
perturbation result for H-f956317c (neighbour: >= 20 -> 16 (-20%)): pass
· engine:perturb
compute-1 took job 2791 (mutate, attempt 1)
· compute-1
Job 2790 finished
· engine:compute-1
forward result for H-f956317c (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2790 (forward_check, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2788 finished
· engine:compute-1
H-f956317c Frozen → SHADOW vault skipped: last_beaten_lengths, last_never_involved do not exist before the discovery zone; track it forward instead
· engine:orchestrator