Hypotheses · story · H-dd3724ed
Test-mechanism: easy handicap winners raised 6 lb or more and back within 14 days beat their price
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H34: won easily last time” 18 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- test-mechanism
- Created
- 16 Oct, 16: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-528222df (Raised easy handicap winners turned out within 14 days beat their pric) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-0b5ef7f4
- H-a81fea8a (Sharpen: easy handicap winners back within 14 days after a small rise ) pointed the predicted way but failed the bar: A/E 1.12 on 100 bets (p 0.329), control 0.97. O-b635b594
- AskedAmong easy handicap winners back within 14 days, does the lift rise with the size of the official rating rise (6 lb or more versus 1 to 5 lb)? answered
- MechanismA horse that wins easily and still earns a big rise has improved past its old mark by more than even the margin shows. Turned out quickly, it runs at its new level before the next reassessment.
- Why the market misses itPunters see a big weight rise in the form figures and treat the horse as handicapped out of it. The easy-win comment, which says the margin understated the horse, gets less weight than the headline number of pounds raised.
- Predictedpositive, A/E 1.30 to 1.60 on 120+ bets
- Falsified ifA/E at or below 1.15, or below 1 in either period, or no better than 0.03 above the same-race control
- Rule sketch
Mechanism and rationale
A horse that wins easily and still earns a big rise has improved past its old mark by more than even the margin shows. Turned out quickly, it runs at its new level before the next reassessment.
The rule
last_position = 1 AND last_won_easily = 1 AND days_since_last_run IS NOT NULL AND days_since_last_run <= 14 AND is_handicap = 1 AND last_is_handicap = 1 AND rating_change IS NOT NULL AND rating_change >= 6
Reads: last_position, last_won_easily, days_since_last_run, is_handicap, last_is_handicap, rating_change
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 84075fc04fa38b0decce343fdc316fb2d7cfe3415b6a9a5ab01277678966e283
- Frozen
- 16 Oct, 16:34
- Nothing in the definition can change after this.
- Confounders
- Lightly raced improvers: few prior runs mean the handicapper and the market are both still guessing, which is not the same thing as discounting the rise; check prior_runs
- Young horses (3yo flat, novice-age jumpers) whose improvement is generic, not tied to the easy-win signal
- Class step-up after the rise: the horse may run in a higher class, which changes what the field looks like
- Sample is small: about 130 bets are expected (231 raised in the parent minus about 100 small-rise bets), which is under the 150-bet floor, so the result may only qualify as a niche or thin pass
- Rating and easy-win columns only exist from November 2025, so the window is short and one period could dominate (the small-rise slice already showed this)
- Overlap with the parent shadow H-528222df: this rule is a subset of it, so it is not independent evidence
- Rises of 6 lb or more may cluster in particular yards or in race types (flat vs jumps), which would make it a trainer-pattern effect
- Control
{ "description": "Same-race other runners should sit near the parent's control (about 0.90), so the rule's lift isn't a property of the races these horses run in. The question is whether the lift sits in big rises rather than small ones, so the main comparison is the small-rise slice: easy handicap winners back within 14 days in a handicap after a 1 to 5 lb rise. Earlier work put that slice at about 1.12 on 100. Support requires the 6 lb+ rule to beat the small-rise slice clearly (by at least 0.15 A/E) as well as the same-race runners.", "rule": "last_position = 1 AND last_won_easily = 1 AND days_since_last_run IS NOT NULL AND days_since_last_run <= 14 AND is_handicap = 1 AND last_is_handicap = 1 AND rating_change IS NOT NULL AND rating_change BETWEEN 1 AND 5" }
Discovery result
pass broad rule (niche) · 16 Oct, 16:30
- Bets
- 131
- 46 winners
- A/E
- 1.47
- 95%: 1.08 to 1.96
- SP return
- +24.2%
- level stakes
- Betfair SP return
- +42.6%
- 130 bets with a BSP
Strike rate 35.1%. p = 0.0081. Same-race control: the other runners in these races had A/E 0.85, 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: Rise threshold loosened to 5 lbpass
168 bets · A/E 1.46 (1.11 to 1.90) · control 0.86 · 16 Oct, 16:34
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27791.33after 2026-04-27891.58Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Rise tightened to 7 lb and turnaround to 12 dayspass
68 bets · A/E 1.37 (0.88 to 2.04) · control 0.87 · 16 Oct, 16:34
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 · · 16 Oct, 16:34
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: <= 14 -> 11 (-20%)pass
65 bets · A/E 1.30 (0.80 to 2.02) · control 0.91 · 16 Oct, 16:34
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-2732–after 2026-04-2733–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: <= 14 -> 17 (+20%)pass
192 bets · A/E 1.38 (1.05 to 1.77) · control 0.89 · 16 Oct, 16:34
Breakdown
bets
Lineage
Agent runs
designer v1ok · 42s · 16 Oct, 16:27
Output (schema-checked)
{ "rule": "last_position = 1 AND last_won_easily = 1 AND days_since_last_run IS NOT NULL AND days_since_last_run <= 14 AND is_handicap = 1 AND last_is_handicap = 1 AND rating_change IS NOT NULL AND rating_change >= 6", "refinements": [ { "label": "14/1 or shorter", "rule": "last_position = 1 AND last_won_easily = 1 AND days_since_last_run IS NOT NULL AND days_since_last_run <= 14 AND is_handicap = 1 AND last_is_handicap = 1 AND rating_change IS NOT NULL AND rating_change >= 6 AND sp_decimal IS NOT NULL AND sp_decimal <= 15" }, { "label": "GB only", "rule": "last_position = 1 AND last_won_easily = 1 AND days_since_last_run IS NOT NULL AND days_since_last_run <= 14 AND is_handicap = 1 AND last_is_handicap = 1 AND rating_change IS NOT NULL AND rating_change >= 6 AND region = 'GB'" } ], "control": { "description": "Same-race other runners should sit near the parent's control (about 0.90), so the rule's lift isn't a property of the races these horses run in. The question is whether the lift sits in big rises rather than small ones, so the main comparison is the small-rise slice: easy handicap winners back within 14 days in a handicap after a 1 to 5 lb rise. Earlier work put that slice at about 1.12 on 100. Support requires the 6 lb+ rule to beat the small-rise slice clearly (by at least 0.15 A/E) as well as the same-race runners.", "rule": "last_position = 1 AND last_won_easily = 1 AND days_since_last_run IS NOT NULL AND days_since_last_run <= 14 AND is_handicap = 1 AND last_is_handicap = 1 AND rating_change IS NOT NULL AND rating_change BETWEEN 1 AND 5" }, "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": [ "Lightly raced improvers: few prior runs mean the handicapper and the market are both still guessing, which is not the same thing as discounting the rise; check prior_runs", "Young horses (3yo flat, novice-age jumpers) whose improvement is generic, not tied to the easy-win signal", "Class step-up after the rise: the horse may run in a higher class, which changes what the field looks like", "Sample is small: about 130 bets are expected (231 raised in the parent minus about 100 small-rise bets), which is under the 150-bet floor, so the result may only qualify as a niche or thin pass", "Rating and easy-win columns only exist from November 2025, so the window is short and one period could dominate (the small-rise slice already showed this)", "Overlap with the parent shadow H-528222df: this rule is a subset of it, so it is not independent evidence", "Rises of 6 lb or more may cluster in particular yards or in race types (flat vs jumps), which would make it a trainer-pattern effect" ], "mechanism": "A handicap win earned easily and still given a rise of 6 lb or more means the horse has improved past its old mark by more than the winning margin shows. The handicapper rated the visible margin, but an easy win hides how much was left. Brought back within 14 days in another handicap, the horse runs at its new level before the handicapper can reassess it again, so even the raised mark may underrate it.", "market_miss": "Punters read the headline rise (6 lb or more) as handicapped out of it and price the horse down. They give less weight to the 'won easily' comment, which says the margin understated the horse. The bigger the rise, the bigger the visual deterrent, so any under-pricing should be biggest here, not among small rises.", "prediction": { "direction": "positive", "size": "A/E 1.30 to 1.60 on roughly 120 to 150 bets", "falsified_if": "A/E at or below 1.15; or A/E below 1.0 in either period (split at 27 April 2026); or no more than 0.03 above the same-race control; or not clearly above the 1 to 5 lb rise control slice (gap under 0.10), which would mean the lift is not in the big rises" }, "notes": "The columns were checked in the catalogue: rating_change, last_won_easily and last_official_rating are pre-off from November 2025 in both GB and IRE. I added IS NOT NULL guards on days_since_last_run and rating_change to match the parent rule's form. The refinements come from the reasoning and the findings. The 14/1 cap is there because raised easy winners went 0 from 17 at 16/1 or bigger, and the parent 0 from 24. The GB-only cut is there because IRE is too thin to judge and most bets are GB. The min A/E is set at 1.15 to match the falsification line. The bet floor stays at the lab's 150 even though about 130 bets are expected; a thin result pointing the right way goes to falsification and forward tracking." }
Timeline
Job 2036 finished
· engine:compute-1
forward result for H-dd3724ed (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2036 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2016 finished
· engine:compute-1
hypothesis note H-dd3724ed
· engine:perturb
perturbation result for H-dd3724ed (neighbour: drop: last_won_easily = 1): pass
· engine:perturb
perturbation result for H-dd3724ed (neighbour: drop: last_position = 1): pass
· engine:perturb
perturbation result for H-dd3724ed (neighbour: >= 6 -> 7 (+20%)): pass
· engine:perturb
perturbation result for H-dd3724ed (neighbour: >= 6 -> 5 (-20%)): pass
· engine:perturb
perturbation result for H-dd3724ed (neighbour: <= 14 -> 17 (+20%)): pass
· engine:perturb
perturbation result for H-dd3724ed (neighbour: <= 14 -> 11 (-20%)): pass
· engine:perturb
compute-1 took job 2016 (mutate, attempt 1)
· compute-1
Job 2034 finished
· engine:compute-1
H-dd3724ed Frozen → SHADOW vault skipped: last_won_easily, rating_change do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 2034 (vault, attempt 1)
· compute-1