Hypotheses · story · H-76996e99
Test-mechanism: one-off chase error where the horse finished well beaten, not fell/UR
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:27
- Tests logged
- 16
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-64933537 (Replicate: one-off chase error, well beaten, in Irish chases) passed discovery as a niche: A/E 1.19 on 189 bets (p 0.249), same-race control 0.98. O-46d844d8
- H-64933537 (Replicate: one-off chase error, well beaten, in Irish chases): the price band 'up to 14/1' carries the effect (A/E 1.4) while the rest score up to 7/1 0.96, 16/1 or bigger 0.0. O-4a751487
- AskedWithin the one-off chase-error pool, do runners that finished well beaten (last_position not null, last_beaten_lengths > 10) beat their price more than those that fell, unseated or were pulled up? answered
- MechanismA mid-race blunder costs momentum and ground, and the jockey often stops pushing. The horse completes but is beaten a long way, so the beaten distance overstates its decline. A fall or unseat records no beaten distance, so it doesn't damage the horse's figures the same way.
- Why the market misses itBettors and ratings read '9th, beaten 28 lengths' as a horse out of form. 'F' or 'UR' is read as an excuse and forgiven. The mispricing should sit with the finishers.
- Predictedpositive, A/E 1.28 to 1.40 on about 300 to 400 bets
- Falsified ifA/E at or below the parent's 1.224, or the non-finisher complement (last_position IS NULL) scoring the same or higher
Mechanism and rationale
A mid-race blunder costs momentum and ground, and the jockey often stops pushing. The horse completes but is beaten a long way, so the beaten distance overstates its decline. A fall or unseat records no beaten distance, so it doesn't damage the horse's figures the same way.
The 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
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)
- 4876c89a77a91803d1e4e1dd92c3747cbf98d5ce490038a2c903cbabb8bb6cd3
- Frozen
- 17 Oct, 01:35
- Nothing in the definition can change after this.
- Confounders
- Price band: finishers may sit at shorter prices than fallers/unseaters, and earlier findings put the chase-error edge under 16/1 in both GB and IRE. Report the result by price band (<=14/1 vs 16/1+)
- Region mix GB/IRE: the parent pool scored 1.24 in GB and 1.19 in IRE. Report each region separately
- Winter 2025-26 period effect (Q-8a79b47f): best_last3_beaten-era columns and the error flags may concentrate the pool in one season. Split the result before and after April 2026
- Class droppers: GB droppers in the parent pool scored about 0.9. A finisher-heavy pool with more droppers would dilute the result. Report the dropper share but do not condition on race_class, which would silently make the rule GB-only
- Overlap: this pool is a near-subset of the frozen one-off chase-error rules (H-48da1bb8, H-c2928b4e, H-8443fa31). A pass is not independent confirmation of those rules. It only decides where inside the pool the edge sits
- Pulled-up runners fall in the non-finisher control along with F/UR, which mixes 'excused' outcomes with genuine non-staying
Discovery result
pass broad rule (niche) · 17 Oct, 01:28
- Bets
- 389
- 53 winners
- A/E
- 1.18
- 95%: 0.89 to 1.55
- SP return
- -8.5%
- level stakes
- Betfair SP return
- +11.9%
- 388 bets with a BSP
Strike rate 13.6%. p = 0.13. 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
Each attack is a deliberate attempt to kill the idea. 5 of 5 survived.
- perturbation: Beaten-distance cut lowered to 8 lengthspass
443 bets · A/E 1.07 (0.81 to 1.38) · control 1.00 · 17 Oct, 01:35
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272100.98after 2026-04-272331.14Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Beaten-distance cut raised to 12 lengthspass
359 bets · A/E 1.20 (0.88 to 1.58) · control 0.98 · 17 Oct, 01:35
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:36
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: > 10 -> 8 (-20%)pass
443 bets · A/E 1.07 (0.81 to 1.38) · control 1.00 · 17 Oct, 01:28
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272100.98after 2026-04-272331.14Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 10 -> 12 (+20%)pass
359 bets · A/E 1.20 (0.88 to 1.58) · control 0.98 · 17 Oct, 01:28
Breakdown
Lineage
Agent runs
designer v1ok · 29s · 17 Oct, 01:27
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 NOT NULL AND last_beaten_lengths > 10", "refinements": [ { "label": "14/1 or shorter", "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 <= 15" }, { "label": "beaten more than 20 lengths (dose-response: bigger misleading margin)", "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 > 20" } ], "control": { "description": "Two comparisons. (1) Other runners in the same races should score about 0.95-1.00, which shows the lift is not a property of the races. (2) The mechanism's own control is the non-finisher complement from the parent pool: one-off chase error last time where the horse fell, unseated or pulled up (last_position IS NULL). The hypothesis predicts this group scores clearly below the finishers, near 1.0 or lower. If it matches or beats the finishers, the 'misleading beaten distance' story is falsified even if the broad rule passes.", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL" }, "pass_criteria": { "min_bets": 200, "min_ae": 1.15, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Price band: finishers may sit at shorter prices than fallers/unseaters, and earlier findings put the chase-error edge under 16/1 in both GB and IRE. Report the result by price band (<=14/1 vs 16/1+)", "Region mix GB/IRE: the parent pool scored 1.24 in GB and 1.19 in IRE. Report each region separately", "Winter 2025-26 period effect (Q-8a79b47f): best_last3_beaten-era columns and the error flags may concentrate the pool in one season. Split the result before and after April 2026", "Class droppers: GB droppers in the parent pool scored about 0.9. A finisher-heavy pool with more droppers would dilute the result. Report the dropper share but do not condition on race_class, which would silently make the rule GB-only", "Overlap: this pool is a near-subset of the frozen one-off chase-error rules (H-48da1bb8, H-c2928b4e, H-8443fa31). A pass is not independent confirmation of those rules. It only decides where inside the pool the edge sits", "Pulled-up runners fall in the non-finisher control along with F/UR, which mixes 'excused' outcomes with genuine non-staying" ], "mechanism": "A mid-race blunder costs a chaser momentum and ground, and the jockey often stops riding it out. The horse completes but is beaten a long way (more than 10 lengths), so the official beaten distance and any rating or speed figure built on it overstate the horse's decline. A fall or unseat records no beaten distance, so it does not damage the horse's form figures in the same way. When the error is a one-off (1 error in the last 3 runs, all 3 with comments) and was last time, the horse's underlying ability is intact and its next price is too long.", "market_miss": "Bettors and form ratings read '9th, beaten 28 lengths' as a horse out of form and drift it in the market. 'F' or 'UR' is read as an excuse and forgiven. So the mispricing should sit with the completed, well-beaten runners, not with the fallers and unseaters.", "prediction": { "direction": "positive", "size": "A/E 1.28 to 1.40 on about 300 to 400 bets", "falsified_if": "A/E at or below the parent pool's 1.224, or the non-finisher control (last_position IS NULL) scoring the same or higher than the finishers, or the lift sitting only in 16/1+ runners on a handful of wins" }, "notes": "The rule sketch is kept unchanged. It uses only pre-off columns, and the parent's OR-branch for non-finishers is removed so the test isolates finishers. Refinements follow the reasoning: a price cap, because every earlier chase-error split paid only under 16/1, and a dose-response check, because if the misleading beaten distance is the mechanism, longer distances should show more lift. No race_class refinement, because it would make the rule GB-only until IRE class data arrives in July 2026. min_ae is set at 1.15, stricter than the floor, because the parent pool already sits at 1.22 and a weaker finisher subset would not support the mechanism." }
Timeline
Job 2298 finished
· engine:compute-1
forward result for H-76996e99 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2298 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2282 finished
· engine:compute-1
H-76996e99 Frozen → SHADOW vault skipped: remarked_last3, jumping_errors_last3, last_jumping_error, last_beaten_lengths do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 2282 (vault, attempt 1)
· compute-1
Job 2268 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-76996e99 Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-76996e99 (control: Control: well-beaten chasers with clean jumping): pass
· engine:evaluator
compute-1 took job 2268 (attack, attempt 1)
· compute-1
Job 2267 finished
· engine:compute-1
falsification result for H-76996e99 (partition: Handicaps only (ratings-driven pricing)): pass
· engine:evaluator
compute-1 took job 2267 (attack, attempt 1)
· compute-1
Job 2266 finished
· engine:compute-1
falsification result for H-76996e99 (partition: 14/1 or shorter only): pass
· engine:evaluator
compute-1 took job 2266 (attack, attempt 1)
· compute-1
Job 2265 finished
· engine:compute-1
falsification result for H-76996e99 (perturbation: Beaten-distance cut raised to 12 lengths): pass
· engine:evaluator