Hypotheses · story · H-fb3f7532
Sharpen: H24 chase pool priced 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
- sharpen
- Created
- 17 Oct, 01:06
- 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-3a4c45cd (Rival: H24 chase edge is only the faller/unseater story; finishers bea) passed discovery as a niche: A/E 1.18 on 389 bets (p 0.128), same-race control 0.98. O-07de040e
- H-5bdc794e (Test-mechanism: one-off chase error that the sectionals show cost grou) passed discovery as a niche: A/E 1.29 on 243 bets (p 0.093), same-race control 0.97. O-9d7a47ef
- AskedInside the H24 chase pool, is the whole lift below 16/1, as in the other story pools? answered
- MechanismThe forgiveness edge needs a horse whose ability is intact apart from the error. At 16/1+ the market is right that something beyond the mistake is wrong (class, form, age), so only respected horses gain from the forgiveness. The same cap shows up in every story pool in the lab.
- Why the market misses itFor runners still in the market, the remark and beaten distance push the price out further than the error alone justifies. For true outsiders the long price is already right.
- Predictedpositive, A/E 1.30 to 1.45 on about 420 bets
- Falsified ifA/E at or below the parent's 1.224, or the 16/1+ complement scoring 1.0 or higher on the full pool.
- Rule sketch
Mechanism and rationale
The forgiveness edge needs a horse whose ability is intact apart from the error. At 16/1+ the market is right that something beyond the mistake is wrong (class, form, age), so only respected horses gain from the forgiveness. The same cap shows up in every story pool in the lab.
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 sp_decimal IS NOT NULL AND sp_decimal < 17
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, last_beaten_lengths, sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 83d654c61ce6a3b44edbeaee9b6bb1c053bd11e9ab086b003659b0229ec2d99b
- Frozen
- 17 Oct, 01:12
- Nothing in the definition can change after this.
- Confounders
- Selection: the 16/1 cap was found by looking at the same subsets it is tested on, so in-sample lift is partly guaranteed. Only the forward record and the period split count as independent evidence
- Price basis: the cap uses SP but the edge is paid at BSP (SP ROI -14% against BSP +15% in the parent). A price-capped pool may still lose money at SP
- Favourite-longshot bias: removing 16/1+ runners lifts A/E in almost any chase pool. The same-race and complement controls must show the lift is bigger than this baseline effect
- Field size: big fields hold more long-priced runners, so the cap also skews the pool toward smaller fields
- remarked_last3 and jumping_errors_last3 are only available from 2025-11, so the discovery window is short and could be dominated by a single season
- Mix of fallers/unseaters and completed horses: the faller share may differ between price bands
- Control
{ "description": "Two comparisons. (1) Same-race other runners: expected near A/E 0.95-1.0, showing the lift is not a property of the races. (2) The 16/1+ complement of the same parent pool (the control rule): expected well below 1.0 (about 0.5-0.8, as in the earlier subsets). The hypothesis needs the capped pool clearly above both, and above the parent's 1.224.", "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 sp_decimal IS NOT NULL AND sp_decimal >= 17" }
Discovery result
pass broad rule · 17 Oct, 01:08
- Bets
- 386
- 70 winners
- A/E
- 1.26
- 95%: 0.98 to 1.59
- SP return
- +13.4%
- level stakes
- Betfair SP return
- +33.4%
- 385 bets with a BSP
Strike rate 18.1%. p = 0.036. 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. 5 of 5 survived.
- perturbation: Cap tightened to under 12/1 (sp_decimal < 13)pass
329 bets · A/E 1.22 (0.94 to 1.55) · control 0.96 · 17 Oct, 01:12
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271621.05after 2026-04-271671.39Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Cap loosened to under 20/1 and beaten-lengths cut moved to 8Lpass
464 bets · A/E 1.15 (0.90 to 1.44) · control 0.98 · 17 Oct, 01:12
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:12
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
432 bets · A/E 1.16 (0.91 to 1.45) · control 0.98 · 17 Oct, 01:08
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272031.05after 2026-04-272291.26Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 10 -> 12 (+20%)pass
361 bets · A/E 1.27 (0.98 to 1.61) · control 0.96 · 17 Oct, 01:08
Breakdown
Lineage
Agent runs
designer v1ok · 39s · 17 Oct, 01:06
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 sp_decimal IS NOT NULL AND sp_decimal < 17", "refinements": [ { "label": "8/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 sp_decimal IS NOT NULL AND sp_decimal <= 9" }, { "label": "under 16/1 and a completed, well-beaten run (no faller/unseater)", "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 IS NOT NULL AND sp_decimal < 17" } ], "control": { "description": "Two comparisons. (1) Same-race other runners: expected near A/E 0.95-1.0, showing the lift is not a property of the races. (2) The 16/1+ complement of the same parent pool (the control rule): expected well below 1.0 (about 0.5-0.8, as in the earlier subsets). The hypothesis needs the capped pool clearly above both, and above the parent's 1.224.", "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 sp_decimal IS NOT NULL AND sp_decimal >= 17" }, "pass_criteria": { "min_bets": 200, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Selection: the 16/1 cap was found by looking at the same subsets it is tested on, so in-sample lift is partly guaranteed. Only the forward record and the period split count as independent evidence", "Price basis: the cap uses SP but the edge is paid at BSP (SP ROI -14% against BSP +15% in the parent). A price-capped pool may still lose money at SP", "Favourite-longshot bias: removing 16/1+ runners lifts A/E in almost any chase pool. The same-race and complement controls must show the lift is bigger than this baseline effect", "Field size: big fields hold more long-priced runners, so the cap also skews the pool toward smaller fields", "remarked_last3 and jumping_errors_last3 are only available from 2025-11, so the discovery window is short and could be dominated by a single season", "Mix of fallers/unseaters and completed horses: the faller share may differ between price bands" ], "mechanism": "A chaser whose only recent blemish is one jumping error, and who was beaten 10L+ or failed to finish because of it, keeps its underlying ability. Forgiving the error only pays when that ability is still real. At under 16/1 the market still rates the horse, so the error-driven drift is an overreaction. At 16/1+ the long price reflects real decline (class, form, age), and forgiveness adds nothing.", "market_miss": "For runners still in the betting, the bad remark and big beaten distance (or the non-finish) push the price out further than the one-off error justifies, because bettors read the bare result. For true outsiders the long price is already correct, so the mispricing sits only in the band below 16/1.", "prediction": { "direction": "positive", "size": "A/E about 1.30 to 1.45 on roughly 400-450 bets", "falsified_if": "Capped-pool A/E at or below the parent's 1.224, or failing pass criteria, or the 16/1+ complement scoring A/E 1.0 or higher on the full pool, or the lift failing to hold in both periods." }, "notes": "The rule sketch is kept and only an explicit sp_decimal IS NOT NULL guard is added. sp_decimal < 17 excludes 16/1 itself, which matches the earlier '16/1+ fails' band. Refinements: the shorter cap (8/1, i.e. decimal 9 or less) tests whether the lift keeps rising toward the front of the market, as in other story pools. The completed-only cut uses the finding that the edge is not just the faller story. The pass bar is set above the floor because the cap was selected in-sample. The forward bar is A/E 1.05, judged at BSP." }
Timeline
Job 2174 finished
· engine:compute-1
forward result for H-fb3f7532 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2174 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2171 finished
· engine:compute-1
H-fb3f7532 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 2171 (vault, attempt 1)
· compute-1
Job 2170 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-fb3f7532 Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-fb3f7532 (control: Control: same price cap, well beaten, but no jumping error): pass
· engine:evaluator
compute-1 took job 2170 (attack, attempt 1)
· compute-1
Job 2169 finished
· engine:compute-1
falsification result for H-fb3f7532 (partition: Handicap chases only): pass
· engine:evaluator
compute-1 took job 2169 (attack, attempt 1)
· compute-1
Job 2168 finished
· engine:compute-1
falsification result for H-fb3f7532 (price_band: Respected runners only: 7/1 or shorter): pass
· engine:evaluator
compute-1 took job 2168 (attack, attempt 1)
· compute-1
Job 2167 finished
· engine:compute-1
falsification result for H-fb3f7532 (perturbation: Cap loosened to under 20/1 and beaten-lengths cut moved to 8L): pass
· engine:evaluator