Hypotheses · story · H-98bdc7e0
Rival: chase lift comes from any one-off jumping blip in the last three runs, not an error that cost the last run
fails: A/E 1.019, needs 1.05; p 0.4419, needs 0.05 or lower; A/E 1.019 against same-race control 1.005, needs 0.03 above (not a niche pass: A/E 1.019 below 1.05; does not beat the same-race control 1.005)
Part of the thread “H24: one off jumping error well beaten” 27 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 17 Oct, 01:37
- 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-a014e900 (Rival: chase-error drift is mechanical (a bigger field), not a market ) survived falsification: 4 of 5 attacks left it standing; it is frozen for its one vault query. O-641c28ba
- H-a014e900 (Rival: chase-error drift is mechanical (a bigger field), not a market ) passed discovery as a niche: A/E 1.46 on 132 bets (p 0.083), same-race control 0.96. O-bb2a576b
- AskedDoes a single jumping error two or three runs back, followed by a clean heavy defeat last time, carry the same chase lift as an error last time? answered
- MechanismRival cause: a chaser with a single jumping remark in recent form is discounted as a poor jumper, whenever the error happened. Its heavy defeat last time, without an error, would then be underrated too. If that holds, the timing of the error does not matter.
- Why the market misses itBettors and compilers mark down any jumping remark in recent form. Under the rival, the markdown overshoots whenever the horse has otherwise jumped cleanly. Under the original mechanism, a clean heavy defeat last time is genuine, and the price is fair.
- Predictedpositive, Rival predicts A/E 1.20+ on about 250 bets; the original mechanism predicts 0.95 to 1.05
- Falsified ifA/E of 1.05 or lower. That would rule the rival out and confirm that the error has to come in the last run, the one it cost.
Mechanism and rationale
Rival cause: a chaser with a single jumping remark in recent form is discounted as a poor jumper, whenever the error happened. Its heavy defeat last time, without an error, would then be underrated too. If that holds, the timing of the error does not matter.
The rule
race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 0 AND (last_position IS NULL OR last_beaten_lengths > 10)
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, last_beaten_lengths
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 28ac482703db48c4d9161dc9c0facd20f2852e44c8f8a7cfa3f10df63e901734
- Frozen
- not frozen
- The definition can still change.
- Confounders
- The clean heavy defeat last time may come with a class rise, a trip change or a going change, so it may not reflect the horse's level, independent of any error history
- GB and IRE have run opposite ways in related chase-error pools (IRE replicates lose money), so a pooled figure can hide a split; report each region
- Small pool: remarked_last3 starts in November 2025, so the whole sample is under 12 months and overlaps the same months as the original chase-error discoveries
- Earlier errors may cluster in novice chasers, who improve their jumping with experience, so a lift could be novice progression rather than an over-marked jumping remark
- Selection overlap: horses with an error two or three runs back and a clean heavy defeat last time may differ in days off and fitness from last-run-error horses
- Control
{ "description": "The main comparison is the original pool, run on the same window: one-off chase error in the LAST run, well beaten (race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10)). It has scored about 1.36 to 1.50. If the rival is right, this rule matches it (1.20+). If the original mechanism is right, this rule sits near par (0.95 to 1.05), like the clean-jumping well-beaten chasers (1.09 on 658, GB 0.84). The other runners in the same races should be close to 1.0. If they are lifted too, the result reflects the races, not the selection.", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10)" }
Discovery result
fail broad rule · 17 Oct, 01:41
- Bets
- 938
- 97 winners
- A/E
- 1.02
- 95%: 0.83 to 1.24
- SP return
- -13.2%
- level stakes
- Betfair SP return
- +28.3%
- 932 bets with a BSP
Strike rate 10.3%. p = 0.44. Same-race control: the other runners in these races had A/E 1.00, 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 · 28s · 17 Oct, 01:38
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 0 AND (last_position IS NULL OR last_beaten_lengths > 10)", "refinements": [ { "label": "GB only", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 0 AND (last_position IS NULL OR last_beaten_lengths > 10) AND region = 'GB'" }, { "label": "Under 16/1 at the off", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 0 AND (last_position IS NULL OR last_beaten_lengths > 10) AND sp_decimal < 17" }, { "label": "Not a novice chase", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 0 AND (last_position IS NULL OR last_beaten_lengths > 10) AND is_novice = 0" } ], "control": { "description": "The main comparison is the original pool, run on the same window: one-off chase error in the LAST run, well beaten (race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10)). It has scored about 1.36 to 1.50. If the rival is right, this rule matches it (1.20+). If the original mechanism is right, this rule sits near par (0.95 to 1.05), like the clean-jumping well-beaten chasers (1.09 on 658, GB 0.84). The other runners in the same races should be close to 1.0. If they are lifted too, the result reflects the races, not the selection.", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10)" }, "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": [ "The clean heavy defeat last time may come with a class rise, a trip change or a going change, so it may not reflect the horse's level, independent of any error history", "GB and IRE have run opposite ways in related chase-error pools (IRE replicates lose money), so a pooled figure can hide a split; report each region", "Small pool: remarked_last3 starts in November 2025, so the whole sample is under 12 months and overlaps the same months as the original chase-error discoveries", "Earlier errors may cluster in novice chasers, who improve their jumping with experience, so a lift could be novice progression rather than an over-marked jumping remark", "Selection overlap: horses with an error two or three runs back and a clean heavy defeat last time may differ in days off and fitness from last-run-error horses" ], "mechanism": "Rival cause: a chaser with a single jumping remark anywhere in its last three runs is marked down as a poor jumper, whenever the error came. If that holds, a heavy defeat last time without an error is also underrated, because the market still blames the horse's jumping, and the lift does not depend on the error coming in the last run. Under the original mechanism, the lift exists only because last time's error explains the heavy defeat, so the bad run overstates how poor the horse is. A clean heavy defeat is genuine form and should be priced fairly.", "market_miss": "Under the rival, bettors and compilers apply a flat markdown to any jumping remark in recent form and do not let it fade when the horse has since jumped cleanly. The markdown overshoots, so the horse beats its price. Under the original mechanism, the market correctly reads a clean heavy defeat as real, and there is no mispricing to find here.", "prediction": { "direction": "positive", "size": "Rival predicts A/E 1.20+ on roughly 250 bets; the original mechanism predicts 0.95 to 1.05", "falsified_if": "The rival is ruled out, and the error must come in the last run (the one it cost), if A/E is 1.05 or lower. The same applies if the lift appears only in one region with the other below 1.0, or only at 16/1+ on a handful of winners." }, "notes": "I kept the rule sketch unchanged: every column in it is pre-off, it does not read the result, and it changes only the timing of the error (last_jumping_error = 0) compared with the original pool. I deliberately left out the original's last-run price-drift condition, because the rival makes no claim about drift, and the findings show drift acts as a selector with no dose-response. All three refinements come from the reasoning: GB only (GB and IRE have split in this family), under 16/1 (earlier hurdle lifts sat in 16/1+ on few winners), and not a novice chase (the novice-clustering confounder). This is a discriminating test, and a result near par is informative because it supports the original mechanism." }
Timeline
Job 2309 finished
· engine:compute-1
H-98bdc7e0 Discovery → KILLED fails: A/E 1.019, needs 1.05; p 0.4419, needs 0.05 or lower; A/E 1.019 against same-race control 1.005, needs 0.03 above (not a niche pass: A/E 1.019 below 1.05; does not beat the same-race control 1.005)
· engine:evaluator
discovery result for H-98bdc7e0 (broad rule): fail
· engine:evaluator
H-98bdc7e0 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2309 (evaluate, attempt 1)
· compute-1
Job 2307 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-98bdc7e0 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2307 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-98bdc7e0: Rival: chase lift comes from any one-off jumping blip in the last three runs, not an error that cost the last run (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.