Hypotheses · story · H-6f7a705a
Generalise: GB jumps handicappers heavily beaten in a higher class, any field size
falsified: 2 of 5 attacks broke it; IRE: too few bets to judge
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
- generalise
- Created
- 17 Oct, 03:37
- 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-0bdb9150 (Rival: the big-field lift is a class drop out of valuable handicaps) passed discovery as a niche: A/E 1.25 on 176 bets (p 0.159), same-race control 0.98. O-3d6939aa
- AskedDoes a class drop carry the heavy-beating lift independently of last-time field size in GB jumps handicaps? testing
- MechanismA heavy beating in a better race reflects the opposition, not the horse's ability. Today it meets weaker rivals off a mark that is often unchanged.
- Why the market misses itThe punter sees a 20-length defeat. The class of the race that produced it is less visible than the margin.
- Predictedpositive, A/E 1.10 to 1.20 on 800+ bets, above the broad parent's 1.081
- Falsified ifA/E at or below 1.081, which would mean the class drop adds nothing and field size is the driver
- Rule sketch
region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class > last_race_class - question idQ-39c6bd32
- operatorgeneralise
- agent
Mechanism and rationale
A heavy beating in a better race reflects the opposition, not the horse's ability. Today it meets weaker rivals off a mark that is often unchanged.
The rule
region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class > last_race_classReads: region, is_handicap, race_type, last_beaten_lengths, race_class, last_race_class
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- a5f4383652605c15e29b284fe39e8b9309b1e6aeece377e2552b1a7e2b1c4215
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Class drops cluster after festival and big-meeting handicaps, which are big fields. The small-last-field refinement separates this from the known big-field lift.
- Trainer placement policy: yards that deliberately run in a hot race and then drop for an easier target
- Handicap mark changes: the mark may have been dropped after the beating, which is a separate lift
- Price band: the family's lift lives under about 14/1, and 16/1 or bigger is consistently below par
- GB-only, because IRE race_class data only starts in 2026-07
- Seasonality: spring festivals followed by summer jumps at lower class
- Control
{ "description": "The other runners in the same races should come out near A/E 1.0. If they also beat their prices, the lift belongs to the race (for example weak lower-class handicap markets), not to the class-dropper. The control rule is the same heavily beaten GB jumps handicappers who are NOT dropping in class (same or higher class today). It should come out near the broad parent (about 1.08) or lower. The class-drop rule must clearly beat it to show that the drop, not the heavy beating alone, carries the effect.", "rule": "region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class <= last_race_class" }
Discovery result
pass broad rule (niche) · 17 Oct, 03:42
- Bets
- 1,271
- 137 winners
- A/E
- 1.16
- 95%: 0.97 to 1.37
- SP return
- -9.7%
- level stakes
- Betfair SP return
- +10.4%
- 1,267 bets with a BSP
Strike rate 10.8%. p = 0.053. 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. 3 of 5 survived.
- perturbation: Tighter beating threshold: 25 lengths or morepass
1,013 bets · A/E 1.18 (0.96 to 1.43) · control 0.98 · 17 Oct, 03:50
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-277311.19after 2026-04-272821.15Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - partition: Small last-time field (<12): separate from the big-field liftpass
935 bets · A/E 1.08 (0.87 to 1.33) · control 1.00 · 17 Oct, 03:50
Sealed holdout (vault)
Not queried. Only a frozen idea can spend its one query against the 2020-25 holdout.
Forward record
No forward record. Shadow tracking starts after the vault and counts only races run after the freeze.
Other experiments
- neighbour: >= 20 -> 16 (-20%)pass
1,490 bets · A/E 1.15 (0.98 to 1.34) · control 0.98 · 17 Oct, 03:42
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271,0641.11after 2026-04-274261.25Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: >= 20 -> 24 (+20%)pass
1,062 bets · A/E 1.19 (0.98 to 1.43) · control 0.98 · 17 Oct, 03:42
Breakdown
Lineage
Agent runs
designer v1ok · 44s · 17 Oct, 03:38
Output (schema-checked)
{ "rule": "region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class > last_race_class", "refinements": [ { "label": "14/1 or shorter", "rule": "region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class > last_race_class AND sp_decimal < 16" }, { "label": "Small last-time field (field size not the driver)", "rule": "region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class > last_race_class AND last_field_size IS NOT NULL AND last_field_size < 12" }, { "label": "Drop of two classes or more", "rule": "region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class >= last_race_class + 2" } ], "control": { "description": "The other runners in the same races should come out near A/E 1.0. If they also beat their prices, the lift belongs to the race (for example weak lower-class handicap markets), not to the class-dropper. The control rule is the same heavily beaten GB jumps handicappers who are NOT dropping in class (same or higher class today). It should come out near the broad parent (about 1.08) or lower. The class-drop rule must clearly beat it to show that the drop, not the heavy beating alone, carries the effect.", "rule": "region = 'GB' AND is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND race_class IS NOT NULL AND last_race_class IS NOT NULL AND race_class <= last_race_class" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.08, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1, "max_p": 0.2 }, "confounders": [ "Class drops cluster after festival and big-meeting handicaps, which are big fields. The small-last-field refinement separates this from the known big-field lift.", "Trainer placement policy: yards that deliberately run in a hot race and then drop for an easier target", "Handicap mark changes: the mark may have been dropped after the beating, which is a separate lift", "Price band: the family's lift lives under about 14/1, and 16/1 or bigger is consistently below par", "GB-only, because IRE race_class data only starts in 2026-07", "Seasonality: spring festivals followed by summer jumps at lower class" ], "mechanism": "A heavy beating in a better-class race shows how strong the opposition was more than how able the horse is. Today the horse meets weaker rivals in a lower class, often off a mark that has barely moved, so its true chance is better than the margin suggests.", "market_miss": "Punters and form summaries put weight on the 20-length margin. The class of the race that produced it is less visible, so a horse dropping in class after a heavy defeat goes off at too long a price.", "prediction": { "direction": "positive", "size": "A/E 1.10 to 1.20 on 800+ bets, above the broad heavy-beating parent's 1.081", "falsified_if": "A/E at or below 1.081, or not clearly above the control (heavily beaten, no class drop). Either would mean the class drop adds nothing over the heavy beating and field size is the driver. Also falsified if the lift exists only in last-time fields of 12 or more." }, "notes": "I kept the draft rule and added explicit NOT NULL guards on both class columns. Refinements: the price cap follows the family finding that 16/1 or bigger is below par. The small-field cut answers the question directly ('whatever the field size'). Two or more classes down tests whether a bigger drop gives a bigger effect. The 1.08 A/E bar is set at the parent's figure, because the hypothesis claims to add to it." }
Timeline
Job 2760 finished
· engine:compute-1
H-6f7a705a Falsification → KILLED falsified: 2 of 5 attacks broke it; IRE: too few bets to judge
· engine:falsification
falsification result for H-6f7a705a (partition: Hurdles only): pass
· engine:evaluator
compute-1 took job 2760 (attack, attempt 1)
· compute-1
Job 2759 finished
· engine:compute-1
falsification result for H-6f7a705a (control: Control: class droppers that were NOT heavily beaten (under 8 lengths)): fail
· engine:evaluator
compute-1 took job 2759 (attack, attempt 1)
· compute-1
Job 2758 finished
· engine:compute-1
falsification result for H-6f7a705a (partition: Mark not dropped since the beating): fail
· engine:evaluator
compute-1 took job 2758 (attack, attempt 1)
· compute-1
Job 2757 finished
· engine:compute-1
falsification result for H-6f7a705a (partition: Small last-time field (<12): separate from the big-field lift): pass
· engine:evaluator
compute-1 took job 2757 (attack, attempt 1)
· compute-1
Job 2756 finished
· engine:compute-1
falsification result for H-6f7a705a (perturbation: Tighter beating threshold: 25 lengths or more): pass
· engine:evaluator
compute-1 took job 2756 (attack, attempt 1)
· compute-1
Job 2741 finished
· engine:ai-1
Queued attack on the compute lane: attack: Hurdles only
· engine:scheduler
Queued attack on the compute lane: attack: Control: class droppers that were NOT heavily beaten (under 8 lengths)
· engine:scheduler
Queued attack on the compute lane: attack: Mark not dropped since the beating
· engine:scheduler