Hypotheses · age-stamina · H-d473ec0f
Rival: higher-weighted runners of all ages beat their price in marathon handicap chases
vault CONTRADICTED: A/E 0.981 on 1378 bets, p 0.5948 against BH threshold 0.002439 over 41 vault tests
Part of the thread “H175: young horse in a marathon chase” 20 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 16 Oct, 14:00
- 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-a4349569 (Age boundary: 8 and 9 year olds in marathon handicap chases sit near p) pointed the predicted way but failed the bar: A/E 0.97 on 229 bets (p 0.588), control 1.05. O-089a750b
- H-ebbea470 (Rival: light weight, not youth, carries the marathon handicap chase li) was predicted positive but came out the other way: A/E 0.48 on 124 bets (p 0.08 for the opposite direction). O-ccf039fe
- AskedIn 3m4f+ handicap chases, do the higher-weighted (better-class) runners of every age beat their price, so the young-stayer lift is partly a class effect? answered
- MechanismOver a marathon trip with a tiring finish, class and a proper chasing engine count for more than a few pounds of weight. The better-rated horses higher in the weights keep their jumping and their cruising speed when the low-rated ones are spent.
- Why the market misses itPunters and pundits repeat 'weight stops trains' and mark down horses with big weights over 3m4f+. The low-weighted horses look 'well in' on paper, so money moves from the top of the weights to the bottom.
- Predictedpositive, A/E 1.08 to 1.15 on 600+ bets
- Falsified ifA/E at or below 1.0 on 500+ bets, or older runners in this group scoring no better than the field (the young-stayer lift would then stand alone)
Mechanism and rationale
Over a marathon trip with a tiring finish, class and a proper chasing engine count for more than a few pounds of weight. The better-rated horses higher in the weights keep their jumping and their cruising speed when the low-rated ones are spent.
The rule
race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs > bottom_weight_lbs + 7
Reads: race_type, is_handicap, distance_yards, weight_lbs, bottom_weight_lbs
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 171b2dcbe30aa0ee2bb18e0c1ab4d0786380e7d6376aeb09ec5684aa4fd25e55
- Frozen
- 16 Oct, 14:12
- Nothing in the definition can change after this.
- Confounders
- Young horses (age <= 7) inside the group carry the existing young-stayer lift (1.16 on 618); the age >= 8 refinement must hold for a class effect to stand on its own
- Price mix: higher-weighted runners are shorter-priced, so favourite-longshot bias could produce the lift by itself; check the 14/1-or-shorter band and the lift by price band
- Out-of-the-handicap runners all sit at bottom weight and are long-priced poor horses, which drags the comparison group down and flatters the heavier group against the field
- Festival Nationals (Grand National, Scottish/Irish/Welsh Nationals) have compressed weights and big fields; a few big races could dominate
- Thin sample, with one season or a few big-priced winners able to drive the result; check by period and with the top winners removed
- Overlap with the observation that motivated this: heavier older runners already scored 1.154 on 352 in discovery, so the older refinement is partly seen data and must be confirmed in the vault
- Control
{ "description": "Same-race control: the other runners in these races are mostly the runners within 7 lb of bottom weight (including out-of-the-handicap horses). If class beats weight, they should come out below par (A/E around 0.85–0.95), and the heavier group should beat them by a clear margin. If the same-race control is also at or above 1.0, the lift is a property of the races (e.g. a pool-wide price effect), not of weight position. The second control rule isolates youth from class: older horses near the bottom of the weights in the same race type. They have already scored 0.48 on 124, so the comparison that matters is the age >= 8 refinement measured against the same-race field.", "rule": "race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs <= bottom_weight_lbs + 7" }
Discovery result
pass broad rule (niche) · 16 Oct, 14:05
- Bets
- 338
- 35 winners
- A/E
- 1.21
- 95%: 0.84 to 1.68
- SP return
- -21.0%
- level stakes
- Betfair SP return
- +1.0%
- 338 bets with a BSP
Strike rate 10.4%. p = 0.16. Same-race control: the other runners in these races had A/E 0.60, 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 5 survived.
- perturbation: Weight cut-off raised from 7 lb to 9 lb above bottom weightpass
294 bets · A/E 1.35 (0.94 to 1.88) · control 0.48 · 16 Oct, 14:12
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272691.37after 2026-04-2725–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - partition: Older horses only (age 8+): strip out the young-stayer liftpass
253 bets · A/E 1.18 (0.75 to 1.77) · control 0.87 · 16 Oct, 14:12
Breakdown
Sealed holdout (vault)
- Bets
- 1,378
- 16 Oct, 14:12
- A/E
- 0.98
- p = 0.59
- BH threshold then
- 0.0024
- over every vault test so far
- Outcome
- Failed
- vault query (contradicted)fail
1,378 bets · A/E 0.98 (0.81 to 1.18) · control 1.08 · 16 Oct, 14:12
Breakdown
betsA/E0.71.01.32020-226770.932023 to Sept 20257011.02
Forward record
No forward record. Shadow tracking starts after the vault and counts only races run after the freeze.
Other experiments
- neighbour: >= 6160 -> 4928 (-20%)pass
3,006 bets · A/E 1.02 (0.92 to 1.14) · control 0.98 · 16 Oct, 14:17
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272,1681.03after 2026-04-278381.00Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: >= 6160 -> 7392 (+20%)pass
33 bets · A/E 1.33 (0.16 to 4.82) · control 0.00 · 16 Oct, 14:17
Breakdown
Lineage
Agent runs
designer v1ok · 39s · 16 Oct, 14:00
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs > bottom_weight_lbs + 7", "refinements": [ { "label": "older horses only (strip the young-stayer lift)", "rule": "race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs > bottom_weight_lbs + 7 AND age >= 8" }, { "label": "14/1 or shorter (price-mix / favourite-longshot check)", "rule": "race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs > bottom_weight_lbs + 7 AND sp_decimal <= 15" }, { "label": "top of the weights: 14 lb+ above bottom weight (dose-response)", "rule": "race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs > bottom_weight_lbs + 14" } ], "control": { "description": "Same-race control: the other runners in these races are mostly the runners within 7 lb of bottom weight (including out-of-the-handicap horses). If class beats weight, they should come out below par (A/E around 0.85–0.95), and the heavier group should beat them by a clear margin. If the same-race control is also at or above 1.0, the lift is a property of the races (e.g. a pool-wide price effect), not of weight position. The second control rule isolates youth from class: older horses near the bottom of the weights in the same race type. They have already scored 0.48 on 124, so the comparison that matters is the age >= 8 refinement measured against the same-race field.", "rule": "race_type = 'Chase' AND is_handicap = 1 AND distance_yards >= 6160 AND weight_lbs <= bottom_weight_lbs + 7" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.07, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.03, "max_p": 0.2 }, "confounders": [ "Young horses (age <= 7) inside the group carry the existing young-stayer lift (1.16 on 618); the age >= 8 refinement must hold for a class effect to stand on its own", "Price mix: higher-weighted runners are shorter-priced, so favourite-longshot bias could produce the lift by itself; check the 14/1-or-shorter band and the lift by price band", "Out-of-the-handicap runners all sit at bottom weight and are long-priced poor horses, which drags the comparison group down and flatters the heavier group against the field", "Festival Nationals (Grand National, Scottish/Irish/Welsh Nationals) have compressed weights and big fields; a few big races could dominate", "Thin sample, with one season or a few big-priced winners able to drive the result; check by period and with the top winners removed", "Overlap with the observation that motivated this: heavier older runners already scored 1.154 on 352 in discovery, so the older refinement is partly seen data and must be confirmed in the vault" ], "mechanism": "In 3m4f+ handicap chases with a tiring finish, class and a proper chasing engine (jumping, cruising speed) count for more than the few pounds of weight they cost. Higher-rated horses carrying more than 7 lb above bottom weight keep going when the low-rated horses are spent, so the handicap's weight compensation over-corrects at marathon trips. If so, part of the young-stayer lift is a class effect shared by better horses of every age.", "market_miss": "'Weight stops trains' is repeated most loudly over marathon trips, so punters mark down the horses high in the weights and back the low-weighted ones that look 'well in' on paper. Money moves from the top of the weights to the bottom, and the prices of better-class horses drift past their true chance.", "prediction": { "direction": "positive", "size": "A/E 1.08 to 1.15 on 600+ bets; the age >= 8 subset around 1.10, with the same-race lower-weighted runners below par", "falsified_if": "A/E at or below 1.0 on 500+ bets, or the age >= 8 refinement scoring no better than its same-race field (the young-stayer lift then stands alone), or the lift existing only beyond 14/1 (a few longshot winners, not class)" }, "notes": "I kept the rule sketch unchanged: it uses only pre-off columns, and weight_lbs and bottom_weight_lbs were already used in H-ebbea470. I made the pass criteria stricter (300 bets, A/E 1.07) because the population should be large, so a thin pass would be suspicious. The age >= 8 refinement is the one that actually answers the rival question. The weight-position split mirrors H-ebbea470 (0.48 on 124 for light-weighted older horses), so the heavier and lighter groups should be read side by side." }
Timeline
Job 1745 finished
· engine:compute-1
hypothesis note H-d473ec0f
· engine:perturb
perturbation result for H-d473ec0f (neighbour: drop: weight_lbs > bottom_weight_lbs + 7): pass
· engine:perturb
perturbation result for H-d473ec0f (neighbour: drop: distance_yards >= 6160): fail
· engine:perturb
perturbation result for H-d473ec0f (neighbour: drop: is_handicap = 1): pass
· engine:perturb
perturbation result for H-d473ec0f (neighbour: drop: race_type = 'Chase'): pass
· engine:perturb
perturbation result for H-d473ec0f (neighbour: >= 6160 -> 7392 (+20%)): pass
· engine:perturb
perturbation result for H-d473ec0f (neighbour: >= 6160 -> 4928 (-20%)): pass
· engine:perturb
compute-1 took job 1745 (mutate, attempt 1)
· compute-1
Job 1769 finished
· engine:compute-1
H-d473ec0f Vault → KILLEDfailed the vault vault CONTRADICTED: A/E 0.981 on 1378 bets, p 0.5948 against BH threshold 0.002439 over 41 vault tests
· engine:orchestrator
vault result for H-d473ec0f (vault query (contradicted)): fail
· engine:orchestrator
H-d473ec0f Frozen → FROZENvault vault query started
· engine:orchestrator
compute-1 took job 1769 (vault, attempt 1)
· compute-1
Job 1763 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler