Hypotheses · story · H-6c3baaba
Rival: the held-up PU lift sits in lone pull-ups, not attritional races
fails: p 0.1063, needs 0.05 or lower; periods [0.94, 1.69], each needs 1.0 (not a niche pass: a period points the other way [0.94, 1.69])
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, 01:40
- 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-d61d2109 (Sharpen: held-up PU in an attritional race where many failed to finish) passed discovery as a niche: A/E 1.15 on 921 bets (p 0.157), same-race control 0.99. O-04d808cb
- H-d61d2109 (Sharpen: held-up PU in an attritional race where many failed to finish) survived falsification: 5 of 5 attacks left it standing; it is frozen for its one vault query. O-befbdb80
- AskedDo lone held-up pull-ups (few other non-finishers in the race) beat their price more than pull-ups in attritional races? answered
- MechanismWhen many runners pull up, the P tells you about the race, and the market discounts it anyway. When a held-up horse is one of few to pull up, it had a horse-specific, often transient or fixable issue and was nursed home rather than ground out. That issue is gone next time.
- Why the market misses itA lone P looks worse to the market than a P in a race where half the field failed, so lone pull-ups drift further, but the underlying cause is often temporary.
- Predictedpositive, A/E 1.20 to 1.40 on 350+ bets
- Falsified ifA/E below 1.10, or not above the attritional cut's 1.145
- Rule sketch
last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share < 0.25 - question id
The question's answer so far: Not reliably. The lone-PU cut scored 1.28 on 530 (p 0.106) against the attritional cut's 1.145 on 921, the intervals overlap, and the lone-PU lift sits wholly after April 2026 (0.94 before).
Mechanism and rationale
When many runners pull up, the P tells you about the race, and the market discounts it anyway. When a held-up horse is one of few to pull up, it had a horse-specific, often transient or fixable issue and was nursed home rather than ground out. That issue is gone next time.
The rule
last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share < 0.25Reads: last_pulled_up, last_run_style, last_race_dnf_share
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 9a66e2bd470b0df840bb7acd501b24793ad83d2ee1ce063f745e203556b6dd7f
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Last-race field size: small fields mechanically give a low DNF share, because one PU in 5 runners is already 20%. The 8+ runner refinement checks this.
- Summer jumps on good ground: few horses pull up, so lone PUs cluster in summer, with different horses and markets.
- Period instability: the parent H36 scored 1.07 then 1.41, so the result must be checked by period.
- Overlap with the long-gap pool: the H36 lift sat in longer absences, so a lone-PU lift could be a layoff effect.
- Overlap with parent H36 (1.198 on 1329): the lone cut is about 1329 minus the attritional 921, so it is not an independent sample.
- last_run_style is only available from 2025-11-01, which leaves a short window with possible single-season effects.
- Price: lift at long prices may not survive the SP/BSP take (H36 lost money at SP).
- Control
{ "description": "Same-race other runners should score about 1.0 (the H36 control was 1.01), so any lift is horse-specific and not a property of the race. The rival comparison is the attritional complement: held-up/midfield pull-ups from races where 25% or more of the field failed to finish. The hypothesis needs the lone cut to beat that complement and the attritional sharpen's 1.145. The control rule below gives the complement, measured on the same window.", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share >= 0.25" }
Discovery result
fail broad rule · 17 Oct, 01:42
- Bets
- 530
- 30 winners
- A/E
- 1.28
- 95%: 0.86 to 1.83
- SP return
- -43.9%
- level stakes
- Betfair SP return
- -24.9%
- 528 bets with a BSP
Strike rate 5.7%. p = 0.11. 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
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 · 33s · 17 Oct, 01:40
Output (schema-checked)
{ "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share < 0.25", "refinements": [ { "label": "Lone PU from a proper-sized field (8+ runners last time)", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share < 0.25 AND last_field_size IS NOT NULL AND last_field_size >= 8" }, { "label": "Lone PU at 14/1 or shorter", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share < 0.25 AND sp_decimal <= 15" } ], "control": { "description": "Same-race other runners should score about 1.0 (the H36 control was 1.01), so any lift is horse-specific and not a property of the race. The rival comparison is the attritional complement: held-up/midfield pull-ups from races where 25% or more of the field failed to finish. The hypothesis needs the lone cut to beat that complement and the attritional sharpen's 1.145. The control rule below gives the complement, measured on the same window.", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_dnf_share IS NOT NULL AND last_race_dnf_share >= 0.25" }, "pass_criteria": { "min_bets": 200, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Last-race field size: small fields mechanically give a low DNF share, because one PU in 5 runners is already 20%. The 8+ runner refinement checks this.", "Summer jumps on good ground: few horses pull up, so lone PUs cluster in summer, with different horses and markets.", "Period instability: the parent H36 scored 1.07 then 1.41, so the result must be checked by period.", "Overlap with the long-gap pool: the H36 lift sat in longer absences, so a lone-PU lift could be a layoff effect.", "Overlap with parent H36 (1.198 on 1329): the lone cut is about 1329 minus the attritional 921, so it is not an independent sample.", "last_run_style is only available from 2025-11-01, which leaves a short window with possible single-season effects.", "Price: lift at long prices may not survive the SP/BSP take (H36 lost money at SP)." ], "mechanism": "When many runners pull up, the P reflects the race (testing ground, a strong pace, attrition) and says little about the horse. When a held-up or midfield horse is one of few to pull up, the cause is usually specific to that horse and often temporary or fixable: a bad blood-test day, breathing, a lost shoe, ground it disliked. Because it was held up, it was usually nursed home early rather than ground into exhaustion, so it comes back with little physical cost. The issue is gone next time.", "market_miss": "A lone P reads worse on form than a P in a race where half the field failed, so punters and compilers mark the horse down harder and it drifts. The market does not tell a transient, horse-specific cause apart from a lack of ability, so lone pull-ups go off at prices longer than their true chance.", "prediction": { "direction": "positive", "size": "A/E 1.20 to 1.40 on 350+ bets", "falsified_if": "A/E below 1.10 on the broad rule, or not above the attritional cut's 1.145 and the attritional control complement. The prediction also fails if the lift disappears in last-race fields of 8+ runners, which would mean it was a small-field artefact." }, "notes": "I kept the rule sketch as written. last_race_dnf_share and last_run_style are both pre_off, and last_run_style starts 2025-11-01, which limits the window. I left out a layoff refinement because the reasoning treats the long gap as a confounder, not part of the mechanism. Treat this as a split of H36, not an independent test." }
Timeline
Job 2313 finished
· engine:compute-1
H-6c3baaba Discovery → KILLED fails: p 0.1063, needs 0.05 or lower; periods [0.94, 1.69], each needs 1.0 (not a niche pass: a period points the other way [0.94, 1.69])
· engine:evaluator
discovery result for H-6c3baaba (broad rule): fail
· engine:evaluator
H-6c3baaba Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2313 (evaluate, attempt 1)
· compute-1
Job 2311 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-6c3baaba Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2311 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-6c3baaba: Rival: the held-up PU lift sits in lone pull-ups, not attritional races (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.