Hypotheses · story · H-7183f1dc
Rival: the GB heavy-beating lift needs no class drop
fails: A/E 1.007, needs 1.05; p 0.4697, needs 0.05 or lower; A/E 1.007 against same-race control 1.008, needs 0.03 above (not a niche pass: A/E 1.007 below 1.05; does not beat the same-race control 1.008)
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
- rival-explanation
- Created
- 17 Oct, 03:44
- Tests logged
- 1
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) survived falsification: 4 of 5 attacks left it standing; it is frozen for its one vault query. O-b650f2b7
- H-6f7a705a (Generalise: GB jumps handicappers heavily beaten in a higher class, an) passed discovery as a niche: A/E 1.16 on 1271 bets (p 0.053), same-race control 0.98. O-bc2f6f2e
- AskedAmong GB jumps handicappers beaten 20+ lengths, does dropping in class beat staying at the same class, or is the 1.155 just the GB heavy-beating base rate? answered
- MechanismIf the lift comes from a heavy beating looking worse in the form book than the horse really is, it should not depend on whether the trainer drops the horse in class. If class relief is the cause, the same-class group should sit near par.
- Why the market misses itPunters read a 20+ length beating as a horse out of form whatever the class. The margin, not the class move, is what puts them off. If the same-class group also beats its price, the market is mispricing the margin itself.
- Predictedpositive, A/E 1.08 to 1.15 on 1500+ bets if the rival holds
- Falsified ifA/E at or below 1.03, or more than 0.08 below the class-drop group's 1.155, which would mean the class drop itself carries the lift
Mechanism and rationale
If the lift comes from a heavy beating looking worse in the form book than the horse really is, it should not depend on whether the trainer drops the horse in class. If class relief is the cause, the same-class group should sit near par.
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)
- 2403e39764d939855d29c6a395a62bace313e15521ed8771f6fc4cbb0b33dd71
- Frozen
- not frozen
- The definition can still change.
- Confounders
- The class-drop group has more big last fields; any gap between same-class and class-drop may be field size, not class relief
- Valuable festival handicaps: same-class runners from big meetings may have been beaten 20+ lengths in very deep races
- Marks falling after the beating: the handicapper's drop, not the class move, may supply the relief in both groups
- Longshot bias at 16/1 or bigger drags A/E down; the price-band mix may differ between the same-class and class-drop groups
- Mixed hurdle/chase composition and going changes since the last run
- Control
{ "description": "The lab's same-race control (other runners in the same races) should sit near par (about 0.97 to 1.00, as the class-drop finding's control was 0.98); a lift there would mean a race-level property, not the heavy beating. The key comparison group is the class-drop sibling: GB jumps handicappers beaten 20+ lengths and now running in a lower class (higher race_class number), previously 1.155 on 1271. The rival holds if the same-class group is within 0.08 of that group and above 1.03.", "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" }- Designer
designer@v1
Discovery result
fail broad rule · 17 Oct, 03:50
- Bets
- 2,392
- 197 winners
- A/E
- 1.01
- 95%: 0.87 to 1.16
- SP return
- -23.7%
- level stakes
- Betfair SP return
- -2.1%
- 2,389 bets with a BSP
Strike rate 8.2%. p = 0.47. Same-race control: the other runners in these races had A/E 1.01, so the selection did not beat its own races. Zone: discovery. Evaluator eval-1.0, data 6a4e98be18e83933
By period
Falsification
No attacks yet. Only promising ideas are attacked.
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.
Lineage
Agent runs
designer v1ok · 26s · 17 Oct, 03:44
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 (effect lives under about 14/1 in prior cuts)", "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 IS NOT NULL AND sp_decimal <= 15" }, { "label": "Same class, last race was a handicap too (beating came under comparable conditions, so the mark read is like-for-like)", "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_is_handicap = 1" } ], "control": { "description": "The lab's same-race control (other runners in the same races) should sit near par (about 0.97 to 1.00, as the class-drop finding's control was 0.98); a lift there would mean a race-level property, not the heavy beating. The key comparison group is the class-drop sibling: GB jumps handicappers beaten 20+ lengths and now running in a lower class (higher race_class number), previously 1.155 on 1271. The rival holds if the same-class group is within 0.08 of that group and above 1.03.", "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.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1, "max_p": 0.2 }, "confounders": [ "The class-drop group has more big last fields; any gap between same-class and class-drop may be field size, not class relief", "Valuable festival handicaps: same-class runners from big meetings may have been beaten 20+ lengths in very deep races", "Marks falling after the beating: the handicapper's drop, not the class move, may supply the relief in both groups", "Longshot bias at 16/1 or bigger drags A/E down; the price-band mix may differ between the same-class and class-drop groups", "Mixed hurdle/chase composition and going changes since the last run" ], "mechanism": "A 20+ length beating overstates how badly a jumps handicapper ran: the margin swells once a beaten horse is eased or tires late, and in a big field it can come from trouble. If that misreading of the margin causes the lift, it should show up when the horse runs again at the same class, with no class relief. If class relief is the cause, the same-class group should sit near par.", "market_miss": "Punters read a 20+ length beating as a horse out of form whatever the class. The raw margin, not the class move, is what puts them off, so the horse drifts. If the same-class group also beats its price, the market is mispricing the margin itself and not missing a class drop.", "prediction": { "direction": "positive", "size": "A/E about 1.08 to 1.15 on 1500+ bets", "falsified_if": "A/E at or below 1.03, or more than 0.08 below the class-drop group (about 1.155), which would mean the class drop itself carries the lift" }, "notes": "I kept the rule sketch as written: it uses only pre-off columns, and region = 'GB' avoids the IRE race_class window, which starts in 2026-07. Class 1 is the top class, so a class drop is race_class > last_race_class. That is how the control rule is written. The refinements come from the reasoning: the finding that the effect lives under about 14/1, and like-for-like handicap form. I raised min_bets to 300 because the prediction expects 1500+ bets." }
Timeline
Job 2754 finished
· engine:compute-1
H-7183f1dc Discovery → KILLED fails: A/E 1.007, needs 1.05; p 0.4697, needs 0.05 or lower; A/E 1.007 against same-race control 1.008, needs 0.03 above (not a niche pass: A/E 1.007 below 1.05; does not beat the same-race control 1.008)
· engine:evaluator
discovery result for H-7183f1dc (broad rule): fail
· engine:evaluator
H-7183f1dc Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2754 (evaluate, attempt 1)
· compute-1
Job 2752 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-7183f1dc Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2752 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-7183f1dc: Rival: the GB heavy-beating lift needs no class drop (rival-explanation)
· agent:investigator@v1
Every change is an event with an actor: an agent and its version, an engine, a human, or the importer. Current stage: Killed.