Hypotheses · story · H-40a72e24
Sharpen: recent jumps winners whose 20+ length beating came at a short last price
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H36: pulled up after being held up” 60 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- sharpen
- Created
- 17 Oct, 04:34
- 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-32b815ff (Test-mechanism: recent winners beaten only 8 to 19 lengths should show) passed discovery as a niche: A/E 1.12 on 828 bets (p 0.117), same-race control 0.99. O-2ecb16ca
- H-32b815ff (Test-mechanism: recent winners beaten only 8 to 19 lengths should show) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-4cd42568
- AskedWithin the recent-winner jumps rebound, is the lift largest when the heavy beating came at a short last price, i.e. a fancied winner that flopped? answered
- MechanismA recent winner sent off fancied and then beaten 20+ lengths most likely had a one-off problem (ground, a mistake, a bleed, being eased once beaten). Its ability is unchanged, and the yard's confidence before that run was real information.
- Why the market misses itThe form line shows a big margin, and punters drift off a horse that 'flopped when fancied'. The dose-response (1.12 at 8 to 19 lengths, 1.34 at 20+) suggests the size of the margin drives the overreaction, and a fancied flop makes it look worse.
- Predictedpositive, A/E 1.35 to 1.60 on 250+ bets
- Falsified ifA/E below 1.15, or no higher than the same rule with last_sp_decimal > 6
- Rule sketch
Mechanism and rationale
A recent winner sent off fancied and then beaten 20+ lengths most likely had a one-off problem (ground, a mistake, a bleed, being eased once beaten). Its ability is unchanged, and the yard's confidence before that run was real information.
The rule
is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten = 0 AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 6Reads: is_handicap, race_type, last_beaten_lengths, best_last3_beaten, last_sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 19270914c17350cc49c2661d59fee62caa35ca9b025de0aa96cc91484b69058d
- Frozen
- 17 Oct, 04:41
- Nothing in the definition can change after this.
- Confounders
- Heavy overlap with the parent winner-rebound rule (1.34 on 669). This is a subset, not independent evidence, so it must beat the last_sp_decimal > 6 complement and not just the floor.
- Price band today: horses fancied last time may still be short today. A short price narrows the possible A/E, and the parent's lift sat below 16/1, so both rules should be read by price band.
- Known injury or bleed behind the flop (pulled up, eased or lame). Those that return quickly may differ from those given long breaks, so check days_since_last_run.
- Thin window: best_last3_beaten exists only from 2025-11-01, so the sample is small and seasonal (one jumps season).
- A class or rating drop after the flop (handicapper relief) rather than market overreaction.
- Region mix: GB and IRE behave differently in earlier rebound findings.
- Control
{ "description": "Same-race other runners should be near 0.95-1.0, so the lift belongs to the selected horses and not to the races. The comparison that decides the question is the same winner-rebound rule with an unfancied last run (last_sp_decimal > 6). The hypothesis holds only if the broad rule's A/E is clearly above this control's. If the two are equal, last-run price adds nothing to the parent rebound.", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten = 0 AND last_sp_decimal IS NOT NULL AND last_sp_decimal > 6" }
Discovery result
pass broad rule (niche) · 17 Oct, 04:36
- Bets
- 226
- 32 winners
- A/E
- 1.18
- 95%: 0.81 to 1.66
- SP return
- +62.2%
- level stakes
- Betfair SP return
- +168.2%
- 225 bets with a BSP
Strike rate 14.2%. p = 0.20. Same-race control: the other runners in these races had A/E 0.99, 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.
- price_band: Cap today's price at 15/1 or shorterpass
182 bets · A/E 1.00 (0.66 to 1.47) · control 1.01 · 17 Oct, 04:41
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27970.90after 2026-04-27851.14Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Perturb looser: last SP 7.0 or shorter, beaten 17+ lengthspass
357 bets · A/E 1.31 (0.98 to 1.70) · control 0.97 · 17 Oct, 04:41
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, 04:41
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: >= 20 -> 16 (-20%)pass
303 bets · A/E 1.21 (0.88 to 1.61) · control 0.98 · 17 Oct, 04:41
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271661.08after 2026-04-271371.36Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: >= 20 -> 24 (+20%)pass
165 bets · A/E 1.20 (0.75 to 1.81) · control 0.99 · 17 Oct, 04:41
Breakdown
Lineage
Agent runs
designer v1ok · 30s · 17 Oct, 04:34
Output (schema-checked)
{ "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten = 0 AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 6", "refinements": [ { "label": "today 15/1 or shorter", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten = 0 AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 6 AND sp_decimal < 16" }, { "label": "heavily fancied last time (9/4 or shorter)", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten = 0 AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 3.25" } ], "control": { "description": "Same-race other runners should be near 0.95-1.0, so the lift belongs to the selected horses and not to the races. The comparison that decides the question is the same winner-rebound rule with an unfancied last run (last_sp_decimal > 6). The hypothesis holds only if the broad rule's A/E is clearly above this control's. If the two are equal, last-run price adds nothing to the parent rebound.", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten = 0 AND last_sp_decimal IS NOT NULL AND last_sp_decimal > 6" }, "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": [ "Heavy overlap with the parent winner-rebound rule (1.34 on 669). This is a subset, not independent evidence, so it must beat the last_sp_decimal > 6 complement and not just the floor.", "Price band today: horses fancied last time may still be short today. A short price narrows the possible A/E, and the parent's lift sat below 16/1, so both rules should be read by price band.", "Known injury or bleed behind the flop (pulled up, eased or lame). Those that return quickly may differ from those given long breaks, so check days_since_last_run.", "Thin window: best_last3_beaten exists only from 2025-11-01, so the sample is small and seasonal (one jumps season).", "A class or rating drop after the flop (handicapper relief) rather than market overreaction.", "Region mix: GB and IRE behave differently in earlier rebound findings." ], "mechanism": "A jumps handicapper that won within its last three runs, was then sent off fancied (6.0 or shorter) and beaten 20+ lengths most likely had a one-off problem: ground, a jumping mistake, a bleed, or being eased once beaten. Its ability is unchanged. The short last price shows the yard and market rated it highly on information that the single bad run does not cancel.", "market_miss": "The form line shows a big losing margin, and the narrative 'flopped when fancied' pushes punters away. The parent dose-response (1.12 at 8 to 19 lengths, 1.34 at 20+) suggests the size of the margin drives the overreaction, and the disappointment of a fancied flop adds to it. Meanwhile the recent win and the prior market confidence are under-weighted.", "prediction": { "direction": "positive", "size": "A/E 1.35 to 1.60 on roughly 150 to 300 bets", "falsified_if": "Falsified if the broad rule's A/E is below 1.15, or no higher than the control rule (same rule with last_sp_decimal > 6)." }, "notes": "I added `last_sp_decimal IS NOT NULL` for explicit NULL handling; otherwise the sketch rule is unchanged. `best_last3_beaten = 0` means a win in the last three runs, and because the last run was a 20+ length beating, that win came two or three runs back. Pass min_ae is raised to 1.15 to match the stated falsifier. The column window from 2025-11 may leave fewer than 150 bets. If so, a thin positive result goes to falsification and forward tracking as the lab's policy allows." }
Timeline
Job 3011 finished
· engine:compute-1
forward result for H-40a72e24 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 3011 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2977 finished
· engine:compute-1
hypothesis note H-40a72e24
· engine:perturb
perturbation result for H-40a72e24 (neighbour: drop: race_type IN ('Hurdle', 'Chase')): pass
· engine:perturb
perturbation result for H-40a72e24 (neighbour: drop: is_handicap = 1): pass
· engine:perturb
perturbation result for H-40a72e24 (neighbour: <= 6 -> 7 (+20%)): pass
· engine:perturb
perturbation result for H-40a72e24 (neighbour: <= 6 -> 5 (-20%)): pass
· engine:perturb
perturbation result for H-40a72e24 (neighbour: >= 20 -> 24 (+20%)): pass
· engine:perturb
perturbation result for H-40a72e24 (neighbour: >= 20 -> 16 (-20%)): pass
· engine:perturb
compute-1 took job 2977 (mutate, attempt 1)
· compute-1
Job 3006 finished
· engine:compute-1
H-40a72e24 Frozen → SHADOW vault skipped: last_beaten_lengths, best_last3_beaten do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 3006 (vault, attempt 1)
· compute-1