Hypotheses · story · H-48da1bb8
Test-mechanism: one-off chase error after a close run, where the mistake hid real form
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:09
- 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-4eed61bb (Rival: market over-penalises any last-time chase error, not only a one) pointed the predicted way but failed the bar: A/E 1.04 on 670 bets (p 0.375), control 1.0. O-90e5e9e8
- H-3a4c45cd (Rival: H24 chase edge is only the faller/unseater story; finishers bea) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-a9c92d16
- H-fb3f7532 (Sharpen: H24 chase pool priced under 16/1) passed discovery: A/E 1.26 on 386 bets (p 0.036), same-race control 0.96. O-e2f22409
- AskedDoes the one-off error edge need the earlier clean runs to have shown real form (a close finish), or is a clean jumping record alone enough? answered
- MechanismA chaser that ran close in a recent clean run and then made one mistake and was well beaten has shown its level. The mistake, not its ability, explains the last run. Without a close earlier run, the bad last run may just be the horse's true level.
- Why the market misses itPunters and odds-compilers weight the latest run most heavily. A 10L+ beating or a P/U/F figure pushes the price out even though the earlier close run is the better guide to ability.
- Predictedpositive, A/E 1.30 to 1.45 on 180+ bets
- Falsified ifA/E at or below the parent's 1.224, or below 1.10, on this subset
Mechanism and rationale
A chaser that ran close in a recent clean run and then made one mistake and was well beaten has shown its level. The mistake, not its ability, explains the last run. Without a close earlier run, the bad last run may just be the horse's true level.
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 best_last3_beaten IS NOT NULL AND best_last3_beaten < 5
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, last_beaten_lengths, best_last3_beaten
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- dfc27f330c4c65e52b64fe5f2029c6f558981b2221a75d1d1d41358252c67994
- Frozen
- 17 Oct, 01:15
- Nothing in the definition can change after this.
- Confounders
- class drop after the bad run: close earlier runs may have come in lower grade, so the edge could be a class-relief effect; check last_race_class against race_class
- trainer or jockey change since the error run
- days_since_last_run: a quick return after a mistake versus a long freshening
- price band concentration: the lab's story edges sit at shorter prices and 16/1+ has failed in both H24 subsets, so a few big-priced winners could drive or hide the result
- the close run being a win (best_last3_beaten = 0) can mean an exposed recent winner, which the market already respects, mixed in with genuinely hidden form
- the subset sits inside the parent pool, so a pass partly repeats the parent's 1.224; the complement control must be clearly lower
- BSP dependence: the parent edge exists at BSP and not at bookmaker SP
- Control
{ "description": "Main contrast: the rest of the parent H24 chase pool, where neither earlier clean run was within 5L (best_last3_beaten >= 5). The mechanism predicts this complement scores clearly below the close subset and below the parent's 1.224 (roughly 1.0 to 1.15). If the complement scores as well as the close subset, closeness of an earlier run is not what carries the edge. The lab's same-race other runners should come in near 1.0 (the earlier H24 control was 0.96); if they are also high, the effect is a property of the race and not of the horse.", "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 best_last3_beaten IS NOT NULL AND best_last3_beaten >= 5" }
Discovery result
pass broad rule (niche) · 17 Oct, 01:12
- Bets
- 234
- 41 winners
- A/E
- 1.30
- 95%: 0.94 to 1.77
- SP return
- +23.0%
- level stakes
- Betfair SP return
- +50.1%
- 234 bets with a BSP
Strike rate 17.5%. p = 0.057. 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 tighter: close run under 4L, last beaten over 12Lpass
203 bets · A/E 1.29 (0.90 to 1.80) · control 0.96 · 17 Oct, 01:15
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271091.29after 2026-04-27941.29Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Perturb looser: close run under 6L, last beaten over 8Lpass
272 bets · A/E 1.19 (0.86 to 1.60) · control 0.98 · 17 Oct, 01:15
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:15
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
257 bets · A/E 1.18 (0.85 to 1.60) · control 0.98 · 17 Oct, 01:12
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271331.16after 2026-04-271241.20Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 10 -> 12 (+20%)pass
220 bets · A/E 1.33 (0.95 to 1.82) · control 0.96 · 17 Oct, 01:12
Breakdown
Lineage
Agent runs
designer v1ok · 45s · 17 Oct, 01:09
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 best_last3_beaten IS NOT NULL AND best_last3_beaten < 5", "refinements": [ { "label": "under 16/1", "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 best_last3_beaten IS NOT NULL AND best_last3_beaten < 5 AND sp_decimal IS NOT NULL AND sp_decimal < 17" }, { "label": "very close earlier run (within 2L)", "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 best_last3_beaten IS NOT NULL AND best_last3_beaten <= 2" } ], "control": { "description": "Main contrast: the rest of the parent H24 chase pool, where neither earlier clean run was within 5L (best_last3_beaten >= 5). The mechanism predicts this complement scores clearly below the close subset and below the parent's 1.224 (roughly 1.0 to 1.15). If the complement scores as well as the close subset, closeness of an earlier run is not what carries the edge. The lab's same-race other runners should come in near 1.0 (the earlier H24 control was 0.96); if they are also high, the effect is a property of the race and not of the horse.", "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 best_last3_beaten IS NOT NULL AND best_last3_beaten >= 5" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "class drop after the bad run: close earlier runs may have come in lower grade, so the edge could be a class-relief effect; check last_race_class against race_class", "trainer or jockey change since the error run", "days_since_last_run: a quick return after a mistake versus a long freshening", "price band concentration: the lab's story edges sit at shorter prices and 16/1+ has failed in both H24 subsets, so a few big-priced winners could drive or hide the result", "the close run being a win (best_last3_beaten = 0) can mean an exposed recent winner, which the market already respects, mixed in with genuinely hidden form", "the subset sits inside the parent pool, so a pass partly repeats the parent's 1.224; the complement control must be clearly lower", "BSP dependence: the parent edge exists at BSP and not at bookmaker SP" ], "mechanism": "A chaser that finished within 5 lengths in one of its two clean runs before its latest run has shown a level of ability. When the latest run then holds its only jumping error and a 10L+ beating or a non-finish, the error and not its ability explains the bad figure. Without a close earlier run, a heavy beating may simply be the horse's true level. So the one-off error edge (parent 1.224 on 536 chase bets) should sit mainly in the close-earlier-run subset.", "market_miss": "Punters and odds-compilers weight the latest run most heavily. A 10L+ beating or a P/U/F figure pushes the price out even though the earlier close run is the better guide to ability. Separating a costly one-off mistake from a true loss of form takes reading comments across three runs, which a simple form-figure view does not do.", "prediction": { "direction": "positive", "size": "A/E 1.30 to 1.45 on 150 to 250 bets, with the best_last3_beaten >= 5 complement clearly lower (about 1.0 to 1.15)", "falsified_if": "A/E at or below the parent chase pool's 1.224, or below 1.10, on this subset; or the best_last3_beaten >= 5 complement scoring as high as or higher than the close subset" }, "notes": "All the component columns (remarked_last3, jumping_errors_last3, last_beaten_lengths, best_last3_beaten) start 2025-11-01, so the new condition does not shorten the window beyond the parent's; the pool is thinner only because it is a subset. best_last3_beaten covers the last three runs including the latest. Because the latest run is a 10L+ beating or a non-finish, best_last3_beaten < 5 can only be met by one of the two clean runs before it. IS NOT NULL was added so that horses with no finishing distance cannot get in. min_ae is raised to 1.10 to match the falsification bound. Refinements come from the reasoning: the lab-wide finding that 16/1+ fails in H24, and a tighter closeness test of the dose-response." }
Timeline
Job 2194 finished
· engine:compute-1
forward result for H-48da1bb8 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2194 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2192 finished
· engine:compute-1
H-48da1bb8 Frozen → SHADOW vault skipped: remarked_last3, jumping_errors_last3, last_jumping_error, last_beaten_lengths, best_last3_beaten do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 2192 (vault, attempt 1)
· compute-1
Job 2185 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-48da1bb8 Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-48da1bb8 (price_band: Shorter prices only: SP under 9.0 (up to 8/1)): pass
· engine:evaluator
compute-1 took job 2185 (attack, attempt 1)
· compute-1
Job 2184 finished
· engine:compute-1
falsification result for H-48da1bb8 (partition: Handicap chases only): pass
· engine:evaluator
compute-1 took job 2184 (attack, attempt 1)
· compute-1
Job 2183 finished
· engine:compute-1
falsification result for H-48da1bb8 (partition: No class drop today (race_class <= last_race_class)): pass
· engine:evaluator
compute-1 took job 2183 (attack, attempt 1)
· compute-1
Job 2182 finished
· engine:compute-1
falsification result for H-48da1bb8 (partition: Close run was a placed loss, not a win (best_last3_beaten > 0)): pass
· engine:evaluator