Hypotheses · story · H-514cfd70
Test-mechanism: one-off chase error that ended the last run (non-completion), under 16/1
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
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
- test-mechanism
- Created
- 17 Oct, 01:56
- 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-3cc36f8a (Rival: the 8/1 to 14/1 chase lift is generic to well-beaten chasers wi) pointed the predicted way but failed the bar: A/E 1.18 on 302 bets (p 0.237), control 0.99. O-026ae1a6
- H-c66cb8b5 (Rival: chase-error lift is an 8/1 to 14/1 price-band effect, not a dri) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-929a781d
- AskedIs the one-off chase-error lift carried by horses that failed to finish after the error (fell, unseated, pulled up) rather than by completed heavy defeats? testing
- MechanismA chaser that jumped cleanly in two runs, then made one mistake that put it on the floor or forced it to be pulled up, has lost none of its ability. The run left no form evidence about its ability, only an F, U or P in the form figures. Completed heavy defeats are different: the horse was really beaten, and the beaten distance is fair evidence.
- Why the market misses itForm figures show F, U or P, which the market reads as a jumping liability or lost form. The two clean runs before it and the single-error remark are not weighted, and there is no beaten distance to anchor a fair rating, so the price drifts too far.
- Predictedpositive, A/E 1.35 to 1.80 on about 100 to 150 bets, both periods above 1.1
- Falsified ifA/E of 1.15 or lower, or not above the in-band finisher figure (1.14), or a period at or below 1.0
Mechanism and rationale
A chaser that jumped cleanly in two runs, then made one mistake that put it on the floor or forced it to be pulled up, has lost none of its ability. The run left no form evidence about its ability, only an F, U or P in the form figures. Completed heavy defeats are different: the horse was really beaten, and the beaten distance is fair evidence.
The rule
race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL AND sp_decimal < 17
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 8e0eb61cf1101f39da7907be649edf453147399d783b6ee697e2b2b7b58eb188
- Frozen
- 17 Oct, 01:59
- Nothing in the definition can change after this.
- Confounders
- Small pool: the error and remark columns only start in November 2025, so expect about 100 to 150 bets. That is under the 150 floor, so at best a niche that goes on to falsification and forward tracking.
- Post-hoc partition: the edge was put on non-finishers by subtraction after seeing H-c66cb8b5's partition attack (about 7 wins on about 3 expected from about 44 runners). Discovery overlaps the data that produced the idea, so only forward evidence is clean.
- The 16/1 cap is borrowed from earlier thread findings (outsiders at 16/1 or bigger never beat par), not derived independently.
- Fallers and unseaters may be lightly raced novice chasers whose prices are noisy. Check novice and prior_runs splits.
- Late-period skew: sibling cuts were near par before 27 April 2026 and strong after. Both periods must clear 1.1.
- last_position IS NULL can include brought-down or carried-out runners, where the error was not the horse's own. The F/UR refinement isolates the horse's own error.
- Before 2025 every non-finisher is coded PU, but this pool only exists from November 2025, so the code is reliable here.
Discovery result
pass broad rule (niche) · 17 Oct, 01:58
- Bets
- 97
- 19 winners
- A/E
- 1.39
- 95%: 0.84 to 2.17
- SP return
- +36.1%
- level stakes
- Betfair SP return
- +54.9%
- 97 bets with a BSP
Strike rate 19.6%. p = 0.099. Same-race control: the other runners in these races had A/E 0.95, 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. 4 of 6 survived.
- perturbation: Price cap widened to 20/1 (sp < 21)pass
105 bets · A/E 1.43 (0.87 to 2.21) · control 0.95 · 17 Oct, 01:59
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27541.41after 2026-04-27511.45Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - price_band: Shorter than 8/1 only: does the 8/1-14/1 band carry everything?pass
53 bets · A/E 1.13 (0.58 to 1.98) · control 1.00 · 17 Oct, 01:59
Sealed holdout (vault)
Not queried. Only a frozen idea can spend its one query against the 2020-25 holdout.
Forward record
- forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}info
0 bets · · 17 Oct, 01:59
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: < 17 -> 14 (-20%)pass
90 bets · A/E 1.35 (0.80 to 2.14) · control 0.96 · 17 Oct, 01:59
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27461.34after 2026-04-27441.36Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: < 17 -> 20 (+20%)pass
105 bets · A/E 1.43 (0.87 to 2.21) · control 0.95 · 17 Oct, 01:59
Breakdown
Lineage
Agent runs
designer v1ok · 48s · 17 Oct, 01:56
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL AND sp_decimal < 17", "refinements": [ { "label": "Error put it on the floor (fell or unseated), not pulled up", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL AND sp_decimal < 17 AND last_non_finish_code IN ('F', 'UR')" }, { "label": "Thread's 8/1 to 14/1 band, where the one-off-error lift held in both periods", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL AND sp_decimal >= 9 AND sp_decimal < 16" } ], "control": { "description": "Same-race other runners should score about par (around 0.97, as in the sibling band pool), so any lift is not a property of the races. The key comparison for the question is completed heavy defeats from the same one-off-error pool at the same price cap. The mechanism predicts they score clearly lower (thread figure about 1.14). The non-finisher pool has to beat them, not only beat par.", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NOT NULL AND last_beaten_lengths > 10 AND sp_decimal < 17" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Small pool: the error and remark columns only start in November 2025, so expect about 100 to 150 bets. That is under the 150 floor, so at best a niche that goes on to falsification and forward tracking.", "Post-hoc partition: the edge was put on non-finishers by subtraction after seeing H-c66cb8b5's partition attack (about 7 wins on about 3 expected from about 44 runners). Discovery overlaps the data that produced the idea, so only forward evidence is clean.", "The 16/1 cap is borrowed from earlier thread findings (outsiders at 16/1 or bigger never beat par), not derived independently.", "Fallers and unseaters may be lightly raced novice chasers whose prices are noisy. Check novice and prior_runs splits.", "Late-period skew: sibling cuts were near par before 27 April 2026 and strong after. Both periods must clear 1.1.", "last_position IS NULL can include brought-down or carried-out runners, where the error was not the horse's own. The F/UR refinement isolates the horse's own error.", "Before 2025 every non-finisher is coded PU, but this pool only exists from November 2025, so the code is reliable here." ], "mechanism": "Take a chaser that jumped cleanly in two of its last three runs, then made a single remarked jumping error last time that ended the run (fell, unseated or pulled up). It has shown no loss of ability. The incomplete run gives no evidence about its ability, only an F, U or P in its form figures. A completed heavy defeat is different: the horse was really outrun, and the beaten distance is fair evidence against it.", "market_miss": "The market reads F, U or P in the form figures as a jumping liability or lost form. It gives too little weight to the clean runs before it and to the fact that there was only one error. With no beaten distance to anchor a rating, the price drifts too far. Outsiders at 16/1 or bigger are excluded because the thread shows they never beat par.", "prediction": { "direction": "positive", "size": "A/E 1.35 to 1.80 on about 100 to 150 bets, with both periods (before and after 27 April 2026) above 1.1", "falsified_if": "Any one of these: overall A/E of 1.15 or lower; A/E not above the in-band completed-heavy-defeat control (about 1.14); either period at or below 1.0." }, "notes": "I kept the rule sketch: every column is pre-off, and remarked_last3, jumping_errors_last3 and last_jumping_error are all available from November 2025. last_jumping_error = 1 guarantees there was a last run, so last_position IS NULL means it did not finish. I set the forward A/E bar a little above the floor, at 1.05, because the idea comes from a post-hoc partition. The expected pool is under the 150 discovery floor, so this will probably be read as a niche." }
Timeline
Job 2399 finished
· engine:compute-1
hypothesis note H-514cfd70
· engine:perturb
perturbation result for H-514cfd70 (neighbour: drop: last_jumping_error = 1): pass
· engine:perturb
perturbation result for H-514cfd70 (neighbour: drop: jumping_errors_last3 = 1): pass
· engine:perturb
perturbation result for H-514cfd70 (neighbour: drop: remarked_last3 = 3): pass
· engine:perturb
perturbation result for H-514cfd70 (neighbour: drop: race_type = 'Chase'): pass
· engine:perturb
perturbation result for H-514cfd70 (neighbour: < 17 -> 20 (+20%)): pass
· engine:perturb
perturbation result for H-514cfd70 (neighbour: < 17 -> 14 (-20%)): pass
· engine:perturb
compute-1 took job 2399 (mutate, attempt 1)
· compute-1
Job 2397 finished
· engine:compute-1
forward result for H-514cfd70 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2397 (forward_check, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2395 finished
· engine:compute-1
H-514cfd70 Frozen → SHADOW vault skipped: remarked_last3, jumping_errors_last3, last_jumping_error do not exist before the discovery zone; track it forward instead
· engine:orchestrator