Hypotheses · story · H-f0aa49df
Rival: any pull-up switching code beats its price, held-up or not
fails: A/E 0.869, needs 1.05; p 0.706, needs 0.05 or lower; periods [0.56, 1.2], each needs 1.0; A/E 0.869 against same-race control 1.011, needs 0.03 above (not a niche pass: A/E 0.869 below 1.05; p 0.7060174416015405 above 0.5; does not beat the same-race control 1.011; a period points the other w
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, 02:13
- 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-070b2026 (Rival: held-up PU lift comes from a switch of race code since the pull) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-4aec4e49
- H-525d10d2 (Generalise: a fall or unseat followed by a switch of race code) was predicted positive but came out the other way: A/E 0.75 on 188 bets (p 0.211 for the opposite direction). O-d9f14aca
- AskedIs the code-switch lift specific to pull-ups that were held up, or does any last-time pull-up (including prominent or front-running ones) that switches code beat its price? answered
- MechanismRival view: the market over-penalises any pull-up, and a switch of code resets the form so that run counts for less. If so, prominent and front-running pull-ups that switch code should also beat their price. The held-up mechanism predicts they will not, because they were not looked after and their pull-up reflects real weakness.
- Why the market misses itUnder the rival, the P figure is marked down the same way whatever the run style, while a change of code makes it irrelevant.
- Predictedpositive, A/E 1.20+ on 150+ bets if the rival holds
- Falsified ifA/E at or below 1.05, which would rule out the rival and support the held-up mechanism
Mechanism and rationale
Rival view: the market over-penalises any pull-up, and a switch of code resets the form so that run counts for less. If so, prominent and front-running pull-ups that switch code should also beat their price. The held-up mechanism predicts they will not, because they were not looked after and their pull-up reflects real weakness.
The rule
last_pulled_up = 1 AND last_run_style IS NOT NULL AND last_run_style NOT IN ('held_up', 'midfield') AND last_race_type IS NOT NULL AND race_type <> last_race_typeReads: last_pulled_up, last_run_style, last_race_type, race_type
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- a29d924f76fe3507abf345c934bb6791a4fa0675c57a8b2b0d8a03fc58f76b56
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Front-runners pulled up after setting or chasing a strong pace: their pull-up may come from the race shape rather than weakness, which would make a lift here look rival-like even if the held-up mechanism is right
- Small sample: last_run_style only exists from 1 November 2025, and prominent or front-running pull-ups switching code will be fewer than the 304 in the held-up pool
- Calendar skew: most held-up pull-up cuts carry their lift only after 27 April 2026, so any lift here must hold in both periods to count
- Price band: the parent switch lift sits under 16/1 only, and 16/1+ pull-ups are at or below par, so a few long-priced winners can swing the broad figure
- The direction of the switch (hurdle to chase or chase to hurdle, and Flat or Bumper involvement) differs in mix between run styles
- Control
{ "description": "The lab's same-race control (other runners in the same races) should sit near A/E 1.0, as it did for the held-up switch pool (about 1.02). The comparison that answers the question is the held-up/midfield pull-up code-switch pool measured in the same window: the rival needs this prominent/front-running pool to match it (around 1.2 to 1.36); the held-up mechanism needs it at or below 1.05 while the held-up pool stays lifted. Read the two side by side, split before and after 27 April 2026.", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_type IS NOT NULL AND race_type <> last_race_type" }
Discovery result
fail broad rule · 17 Oct, 02:15
- Bets
- 161
- 9 winners
- A/E
- 0.87
- 95%: 0.40 to 1.65
- SP return
- -24.8%
- level stakes
- Betfair SP return
- +14.0%
- 160 bets with a BSP
Strike rate 5.6%. p = 0.71. 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 · 30s · 17 Oct, 02:14
Output (schema-checked)
{ "rule": "last_pulled_up = 1 AND last_run_style IS NOT NULL AND last_run_style NOT IN ('held_up', 'midfield') AND last_race_type IS NOT NULL AND race_type <> last_race_type", "refinements": [ { "label": "under 16/1", "rule": "last_pulled_up = 1 AND last_run_style IS NOT NULL AND last_run_style NOT IN ('held_up', 'midfield') AND last_race_type IS NOT NULL AND race_type <> last_race_type AND sp_decimal < 17" }, { "label": "turned out after a rest (not a quick return)", "rule": "last_pulled_up = 1 AND last_run_style IS NOT NULL AND last_run_style NOT IN ('held_up', 'midfield') AND last_race_type IS NOT NULL AND race_type <> last_race_type AND days_since_last_run IS NOT NULL AND days_since_last_run > 14" } ], "control": { "description": "The lab's same-race control (other runners in the same races) should sit near A/E 1.0, as it did for the held-up switch pool (about 1.02). The comparison that answers the question is the held-up/midfield pull-up code-switch pool measured in the same window: the rival needs this prominent/front-running pool to match it (around 1.2 to 1.36); the held-up mechanism needs it at or below 1.05 while the held-up pool stays lifted. Read the two side by side, split before and after 27 April 2026.", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND last_race_type IS NOT NULL AND race_type <> last_race_type" }, "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 }, "confounders": [ "Front-runners pulled up after setting or chasing a strong pace: their pull-up may come from the race shape rather than weakness, which would make a lift here look rival-like even if the held-up mechanism is right", "Small sample: last_run_style only exists from 1 November 2025, and prominent or front-running pull-ups switching code will be fewer than the 304 in the held-up pool", "Calendar skew: most held-up pull-up cuts carry their lift only after 27 April 2026, so any lift here must hold in both periods to count", "Price band: the parent switch lift sits under 16/1 only, and 16/1+ pull-ups are at or below par, so a few long-priced winners can swing the broad figure", "The direction of the switch (hurdle to chase or chase to hurdle, and Flat or Bumper involvement) differs in mix between run styles" ], "mechanism": "Rival to the held-up explanation: the market marks down any pull-up (the P in the form figures) regardless of how the horse was ridden, and a change of race code makes that last run less relevant to today's task. If the rival holds, pull-ups that raced prominently or made the running and now switch code should beat their price as much as held-up ones do. The held-up mechanism says they should not: a prominent horse that was pulled up was not being looked after, so the P reflects real weakness and the market is right to mark it down.", "market_miss": "Under the rival, the market applies the same pull-up penalty whatever the run style and does not discount it when the horse moves to a different code, where that run says little. Under the held-up mechanism there is no miss for prominent or front-running pull-ups.", "prediction": { "direction": "positive", "size": "A/E 1.20+ on 150+ bets if the rival holds (comparable to the held-up switch pool at 1.36)", "falsified_if": "A/E at or below 1.05, or a lift that appears only after 27 April 2026 or only at 16/1+. That would rule out the rival and support the held-up mechanism, provided the held-up control pool stays above 1.15 in the same window." }, "notes": "I kept the rule sketch unchanged. It uses only pre-off columns, and last_run_style is available from 1 November 2025 in both GB and IRE. This is a rival test, so its direction is positive under the rival, and a null or negative result is the informative outcome for the held-up thread. Refinements: under 16/1 matches the parent lift's price band, and over 14 days removes the quick-return cut that has already been killed. They are only read if the broad rule shows evidence. The bet count may fall short of 150. In that case, judge the rival on the A/E direction against the held-up control rather than on significance." }
Timeline
Job 2450 finished
· engine:compute-1
H-f0aa49df Discovery → KILLED fails: A/E 0.869, needs 1.05; p 0.706, needs 0.05 or lower; periods [0.56, 1.2], each needs 1.0; A/E 0.869 against same-race control 1.011, needs 0.03 above (not a niche pass: A/E 0.869 below 1.05; p 0.7060174416015405 above 0.5; does not beat the same-race control 1.011; a period points the other way [0.56, 1.2])
· engine:evaluator
discovery result for H-f0aa49df (broad rule): fail
· engine:evaluator
H-f0aa49df Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2450 (evaluate, attempt 1)
· compute-1
Job 2448 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-f0aa49df Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2448 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-f0aa49df: Rival: any pull-up switching code beats its price, held-up or not (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.