Hypotheses · story · H-373590f6
Test-mechanism: one-off chase error, well beaten, price drifted from last run
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
- 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-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
- AskedIs the one-off chase-error edge concentrated in runners whose price lengthened from last time (sp_decimal > last_sp_decimal), where the market has visibly marked them down for the bad run? answered
- MechanismThe error was a one-off, so the horse's real ability is unchanged. A price drift since the last run means the market has marked it down for the bad run.
- Why the market misses itThe market prices off the latest form figure and beaten distance. The cause, a single blunder after two clean rounds, sits in the in-running comments, which most bettors do not weigh.
- Predictedpositive, A/E 1.30 to 1.45 on about 250 to 350 bets
- Falsified ifA/E at or below 1.224, or runners whose price shortened scoring the same or higher
- Rule sketch
Mechanism and rationale
The error was a one-off, so the horse's real ability is unchanged. A price drift since the last run means the market has marked it down for the bad run.
The 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) AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, last_beaten_lengths, last_sp_decimal, sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 1d20a808ee08338286fb8e0e7706df6ac338e1f770b9c135e673b4466de027c2
- Frozen
- 17 Oct, 01:35
- Nothing in the definition can change after this.
- Confounders
- Class rises and tougher races lengthen prices by themselves. A drift may mark a harder task rather than a market overreaction, so check the result by whether race_class went up against last_race_class (GB only, since IRE class data starts July 2026).
- Drift pushes runners into 16/1+, where chase error pools have scored near zero (IRE 0 from 64). The broad result can be dragged down or made noisy by longshots, which is why there is a 14/1-or-shorter refinement.
- Field size: bigger fields lengthen every price, so some of the drift is mechanical. Compare field_size with last_field_size.
- Period effect: remarked_last3 only exists from November 2025, so the window is short and one season could drive the result. Check the split before and after April 2026.
- Overlap: this is another subset of the one-off chase-error pool, which has already passed in several overlapping forms. A pass here is not independent confirmation of the base edge. It only adds information if the drift and shortened groups separate.
- Region mix: GB (1.24) and IRE (1.19) pools differ a little. Report both regions.
Discovery result
pass broad rule · 17 Oct, 01:28
- Bets
- 263
- 31 winners
- A/E
- 1.50
- 95%: 1.02 to 2.13
- SP return
- +4.2%
- level stakes
- Betfair SP return
- +28.9%
- 262 bets with a BSP
Strike rate 11.8%. p = 0.020. Same-race control: the other runners in these races had A/E 0.96, 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. 6 of 6 survived.
- perturbation: Perturb beaten-lengths cut to 8 and require a 10%+ driftpass
271 bets · A/E 1.28 (0.84 to 1.88) · control 0.99 · 17 Oct, 01:35
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271281.49after 2026-04-271431.11Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Perturb beaten-lengths cut to 12.5 with any driftpass
246 bets · A/E 1.51 (1.01 to 2.18) · control 0.96 · 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
287 bets · A/E 1.39 (0.95 to 1.97) · control 0.97 · 17 Oct, 01:28
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271331.44after 2026-04-271541.35Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 10 -> 12 (+20%)pass
248 bets · A/E 1.54 (1.04 to 2.20) · control 0.96 · 17 Oct, 01:28
Breakdown
Lineage
Agent runs
designer v1ok · 35s · 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 NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal", "refinements": [ { "label": "drifted, 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 NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND sp_decimal > last_sp_decimal AND sp_decimal <= 15" }, { "label": "clear drift (25%+ longer than last SP)", "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) AND last_sp_decimal IS NOT NULL AND sp_decimal >= 1.25 * last_sp_decimal" } ], "control": { "description": "Other runners in the same races should score about 0.95 to 1.0, as in earlier chase-error tests, which shows the lift is not a property of the races. The mechanism's own test is the same one-off-error pool whose price shortened or stayed the same since its last run. If drift is what marks the market's overreaction, this group should score clearly below the drifted group, at or under the whole-pool A/E of about 1.22. If the shortened group scores the same or higher, the drift mechanism 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 OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND sp_decimal <= last_sp_decimal" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.15, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Class rises and tougher races lengthen prices by themselves. A drift may mark a harder task rather than a market overreaction, so check the result by whether race_class went up against last_race_class (GB only, since IRE class data starts July 2026).", "Drift pushes runners into 16/1+, where chase error pools have scored near zero (IRE 0 from 64). The broad result can be dragged down or made noisy by longshots, which is why there is a 14/1-or-shorter refinement.", "Field size: bigger fields lengthen every price, so some of the drift is mechanical. Compare field_size with last_field_size.", "Period effect: remarked_last3 only exists from November 2025, so the window is short and one season could drive the result. Check the split before and after April 2026.", "Overlap: this is another subset of the one-off chase-error pool, which has already passed in several overlapping forms. A pass here is not independent confirmation of the base edge. It only adds information if the drift and shortened groups separate.", "Region mix: GB (1.24) and IRE (1.19) pools differ a little. Report both regions." ], "mechanism": "A single jumping error after two clean rounds, followed by a heavy defeat (beaten more than 10 lengths or failing to finish), says little about the horse's real ability. Its true chance today is close to what its earlier form implied. When the price has lengthened since the last run, the market has visibly marked the horse down for that bad run. Those runners should carry the largest gap between price and true chance, so the one-off-error edge should be concentrated in them.", "market_miss": "The market prices off the latest form figure and beaten distance. A bad figure lengthens the price. The cause, one blunder after two clean jumping rounds, sits in the in-running comments, which most bettors do not weigh. So the drift reflects the result and not the reason for it.", "prediction": { "direction": "positive", "size": "A/E 1.30 to 1.45 on about 250 to 350 bets, against about 1.22 for the whole one-off-error pool", "falsified_if": "A/E at or below 1.224 for the drifted pool, or the control group (price shortened or unchanged) scoring the same or higher than the drifted pool" }, "notes": "The rule sketch is kept unchanged. All columns are pre_off, and remarked_last3 limits the window to November 2025 onward in both regions. sp_decimal against last_sp_decimal compares today's starting price with the last run's. Both are known at the off, so the result is not read. min_ae is raised to 1.15 because the base pool already scores about 1.22. A pass only means something if the drift group clearly beats the shortened-price control." }
Timeline
Job 2299 finished
· engine:compute-1
forward result for H-373590f6 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2299 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2283 finished
· engine:compute-1
H-373590f6 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 2283 (vault, attempt 1)
· compute-1
Job 2274 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-373590f6 Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-373590f6 (partition: Handicaps only): pass
· engine:evaluator
compute-1 took job 2274 (attack, attempt 1)
· compute-1
Job 2273 finished
· engine:compute-1
falsification result for H-373590f6 (partition: GB drifters not rising in class): pass
· engine:evaluator
compute-1 took job 2273 (attack, attempt 1)
· compute-1
Job 2272 finished
· engine:compute-1
falsification result for H-373590f6 (partition: Drift not caused by a bigger field): pass
· engine:evaluator
compute-1 took job 2272 (attack, attempt 1)
· compute-1
Job 2271 finished
· engine:compute-1
falsification result for H-373590f6 (control: Control: drifted after a heavy chase defeat with NO jumping error): pass
· engine:evaluator