Hypotheses · seasonal · H-1a3e129f
Lightly raced four-year-old returners in Flat non-handicaps: progress the market doubts, with no mark involved
falsified: IRE A/E 0.861; driven by one price band (up to 3/1): the rest score 1.00
Part of the thread “H126: lightly raced four year old returns” 32 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- test-mechanism
- Created
- 16 Oct, 12:33
- Tests logged
- 15
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-b05a33c3 (Lightly raced four-year-old returners on the all-weather: is the edge ) met the sealed vault supportive: A/E 1.1 on 698 bets (p 0.2014, threshold 0.0032). O-3b4db8ee
- H-568b7703 (Lightly raced four-year-old returners whose mark was raised: improvers) survived falsification: 1 of 1 attacks left it standing; it is frozen for its one vault query. O-6bb82233
- H-568b7703 (Lightly raced four-year-old returners whose mark was raised: improvers) passed discovery as a niche: A/E 1.38 on 41 bets (p 0.231), same-race control 0.94. O-f62c7b90
- AskedIs the lift a property of the handicap mark, or does it also show in Flat non-handicaps, where there is no mark to lag? testing
- MechanismA lightly raced four-year-old can keep strengthening over the winter. The market anchors on its last visible three-year-old form whatever the race conditions, so the progress should be underpriced in conditions races too.
- Why the market misses itThe form book shows only three-year-old runs that are months old, and there is no fresh evidence of the winter's development. In non-handicaps, the weight-for-age and penalty structure hides this further.
- Predictedpositive, A/E 1.05 to 1.12 on 300+ bets
- Falsified ifA/E below 1.00 on 300+ bets. That would tie the effect to handicaps and the mark, not to underrated progress.
- Rule sketch
race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150
Mechanism and rationale
A lightly raced four-year-old can keep strengthening over the winter. The market anchors on its last visible three-year-old form whatever the race conditions, so the progress should be underpriced in conditions races too.
The rule
race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150
Reads: race_type, is_handicap, month, age, prior_runs, days_since_last_run
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 6e6b202ab0e373b710e6390f1fd99dad85e5b19218ec0eabfead43d273ad61a0
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Group and Listed races are dominated by top yards and short-priced, well-known horses, where progress is already priced in. race_class cannot separate them in Ireland before 2026, so check the result by price band.
- Maidens hold a weaker, different population of four-year-olds (horses that have not yet won), so check the maiden/non-maiden split
- The field size, class and price mix of non-handicaps differs from handicaps, so compare against same-race runners, not against the handicap result
- Long-priced runners in conditions races can drag A/E down or inflate it on a few wins. In earlier discovery samples 16/1+ returners went 0 from 48.
- Region mix: Irish spring conditions races are dominated by big yards. Check GB and IRE separately.
- Top yards may give winter-developed horses targeted spring returns, so a trainer effect could be mistaken for horse progress
- Control
{ "description": "Main comparison: the other runners in the same races. If the mechanism holds they should be near A/E 1.00 (or slightly under) while the four-year-old returners are above it. If the other runners show a similar lift, the effect belongs to the races (spring conditions races, field mix), not to the horses. Second comparison: the same profile in spring Flat handicaps (the original H126 rule). That is already measured at 1.12 on 2958 and acts as the reference the non-handicap result is read against, so no new control rule is needed.", "rule": null }
Discovery result
pass broad rule (niche) · 16 Oct, 12:35
- Bets
- 182
- 26 winners
- A/E
- 1.07
- 95%: 0.70 to 1.57
- SP return
- -1.7%
- level stakes
- Betfair SP return
- +54.5%
- 182 bets with a BSP
Strike rate 14.3%. p = 0.38. 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. 4 of 5 survived.
- partition: 14/1 or shorter only: strip the 2 long-price winnerspass
118 bets · A/E 1.04 (0.67 to 1.54) · control 0.96 · 16 Oct, 12:43
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27610.97after 2026-04-27571.13Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - partition: Non-maidens only: horses with winning formpass
134 bets · A/E 1.14 (0.72 to 1.71) · control 0.93 · 16 Oct, 12:43
Sealed holdout (vault)
Not queried. Only a frozen idea can spend its one query against the 2020-25 holdout.
Forward record
No forward record. Shadow tracking starts after the vault and counts only races run after the freeze.
Other experiments
- neighbour: <= 10 -> 8 (-20%)pass
171 bets · A/E 1.12 (0.72 to 1.65) · control 0.95 · 16 Oct, 12:43
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27941.06after 2026-04-27771.19Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: <= 10 -> 12 (+20%)pass
189 bets · A/E 1.04 (0.68 to 1.52) · control 0.97 · 16 Oct, 12:43
Breakdown
Lineage
Agent runs
designer v1ok · 30s · 16 Oct, 12:34
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150", "refinements": [ { "label": "14/1 or shorter", "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND sp_decimal <= 15" }, { "label": "Non-maidens only", "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND is_maiden = 0" }, { "label": "Non-maidens at 14/1 or shorter", "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND is_maiden = 0 AND sp_decimal <= 15" } ], "control": { "description": "Main comparison: the other runners in the same races. If the mechanism holds they should be near A/E 1.00 (or slightly under) while the four-year-old returners are above it. If the other runners show a similar lift, the effect belongs to the races (spring conditions races, field mix), not to the horses. Second comparison: the same profile in spring Flat handicaps (the original H126 rule). That is already measured at 1.12 on 2958 and acts as the reference the non-handicap result is read against, so no new control rule is needed.", "rule": null }, "pass_criteria": { "min_bets": 300, "min_ae": 1.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1, "max_p": 0.2 }, "confounders": [ "Group and Listed races are dominated by top yards and short-priced, well-known horses, where progress is already priced in. race_class cannot separate them in Ireland before 2026, so check the result by price band.", "Maidens hold a weaker, different population of four-year-olds (horses that have not yet won), so check the maiden/non-maiden split", "The field size, class and price mix of non-handicaps differs from handicaps, so compare against same-race runners, not against the handicap result", "Long-priced runners in conditions races can drag A/E down or inflate it on a few wins. In earlier discovery samples 16/1+ returners went 0 from 48.", "Region mix: Irish spring conditions races are dominated by big yards. Check GB and IRE separately.", "Top yards may give winter-developed horses targeted spring returns, so a trainer effect could be mistaken for horse progress" ], "mechanism": "A lightly raced four-year-old (10 or fewer career runs) can keep strengthening physically over the winter. On its first run back after 150+ days in spring, the market anchors on its months-old three-year-old form. If the underpricing comes from doubt about continued progress rather than from a lagging handicap mark, it should also appear in non-handicaps, where there is no mark. This matters more because the rating_change split went against the mark-lag account: the not-raised version scored 0.95.", "market_miss": "The only visible form is stale three-year-old form, and there is no public evidence of the winter's development. In conditions races, weight-for-age allowances and penalties are fixed by the conditions and do not reflect improvement, so bettors read the four-year-old against older rivals through old form and underrate it.", "prediction": { "direction": "positive", "size": "A/E 1.05 to 1.12 on 300+ bets, with the lift concentrated at 14/1 or shorter", "falsified_if": "A/E below 1.00 on 300+ bets, or same-race other runners showing an equal or larger lift. Either would tie the returner effect to handicaps and the mark (or to the races), not to underrated progress." }, "notes": "I kept the rule sketch unchanged: every column is pre-off, and it differs from H126 only in is_handicap = 0, so it answers question Q-39f14d17 directly. I set min_bets at 300 (stricter than the floor) to match the predicted sample. The refinements follow from the earlier findings (no edge at 16/1+) and from the maiden confounder. I did not add a race_class refinement because Irish race_class only starts in 2026-07." }
Timeline
Job 1390 finished
· engine:compute-1
hypothesis note H-1a3e129f
· engine:perturb
perturbation result for H-1a3e129f (neighbour: drop: is_handicap = 0): pass
· engine:perturb
perturbation result for H-1a3e129f (neighbour: drop: race_type = 'Flat'): fail
· engine:perturb
perturbation result for H-1a3e129f (neighbour: >= 150 -> 180 (+20%)): pass
· engine:perturb
perturbation result for H-1a3e129f (neighbour: >= 150 -> 120 (-20%)): pass
· engine:perturb
perturbation result for H-1a3e129f (neighbour: <= 10 -> 12 (+20%)): pass
· engine:perturb
perturbation result for H-1a3e129f (neighbour: <= 10 -> 8 (-20%)): pass
· engine:perturb
compute-1 took job 1390 (mutate, attempt 1)
· compute-1
Job 1416 finished
· engine:compute-1
H-1a3e129f Falsification → KILLED falsified: IRE A/E 0.861; driven by one price band (up to 3/1): the rest score 1.00
· engine:falsification
falsification result for H-1a3e129f (control: Control: same four-year-olds that are not returners (14 to 60 days)): fail
· engine:evaluator
compute-1 took job 1416 (attack, attempt 1)
· compute-1
Job 1415 finished
· engine:compute-1
falsification result for H-1a3e129f (perturbation: Looser thresholds: 12 or fewer runs, 120+ days off): pass
· engine:evaluator
compute-1 took job 1415 (attack, attempt 1)
· compute-1