Hypotheses · seasonal · H-2d115a58
Early-spring four-year-old returners: the lift sits in March and April, before the crop is known
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
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
- sharpen
- Created
- 16 Oct, 13:02
- 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-1a6f83c9 (Fancied lightly raced four-year-old returners: the market flags which ) passed discovery as a niche: A/E 1.21 on 337 bets (p 0.083), same-race control 0.95. O-b22a8ae7
- H-1a6f83c9 (Fancied lightly raced four-year-old returners: the market flags which ) met the sealed vault supportive: A/E 1.11 on 1567 bets (p 0.0484, threshold 0.0031). O-c4322e77
- H-3c53e905 (Short-priced first-time-out four-year-olds: rival to the handicap-mark) passed discovery as a niche: A/E 1.18 on 251 bets (p 0.108), same-race control 0.93. O-da190682
- AskedIs the four-year-old returner lift concentrated in March and April, fading by May when late returners are more likely to be horses that had setbacks and the market has seen how the crop came out of the winter? answered
- MechanismA horse that has strengthened over the winter is still unknown to the market when it first reappears in March or April. By May the four-year-old crop has been seen, trainers' form with returners is visible, and the remaining first-time-out returners include more horses whose return was delayed by a setback.
- Why the market misses itEarly in the season the price for a returner rests on its three-year-old form and its mark. Little current evidence exists on how the crop has developed. Later the market updates from the other returners' results, and the horses still returning are partly those that had problems.
- Predictedpositive, A/E 1.12 to 1.22 on 1000+ bets across all data, with May returners clearly lower (about 1.00)
Mechanism and rationale
A horse that has strengthened over the winter is still unknown to the market when it first reappears in March or April. By May the four-year-old crop has been seen, trainers' form with returners is visible, and the remaining first-time-out returners include more horses whose return was delayed by a setback.
The rule
race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4) 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)
- 9a233b4351b68c47849ee22de130dcb5503d11d4cac6ead290b1843539fa500a
- Frozen
- 16 Oct, 13:15
- Nothing in the definition can change after this.
- Confounders
- The month pattern rests mostly on one discovery spring (2026), so the March-April versus May split may be noise. Each period must point the same way.
- The discovery/vault period boundary (27 April) cuts through the March-April window, so period-level splits do not match the month split exactly.
- The turf season opens in late March, so the surface mix changes by month. The turf and AW refinements check this.
- Big spring handicaps cluster in April at certain courses (e.g. Newmarket Craven, Newbury, Epsom). Course or class concentration could drive the lift. Check the same-race other runners and the course spread.
- The general H126 returner lift (1.12 across March to May) could be spread evenly, with any month differences being sampling variation. The May control has to be clearly lower.
- Selection: May first-time-out returners include more horses held up by setbacks, which is part of the mechanism. They are also later-maturing types, which is a different cause with the same sign.
- Control
{ "description": "The key comparison is the identical profile returning in May: lightly raced four-year-old handicap returners after 150+ days off, first seen in May. The mechanism predicts these score about 1.00, clearly below the March-April rule. If May returners come within 0.05 of the March-April A/E, the timing story is falsified and the lift is just the general H126 returner effect. Same-race other runners should score about 1.00 (slightly under, since the selection takes win share from them). If they also beat their prices, the effect is a property of early-spring handicaps (e.g. big April handicaps at particular courses), not of the returners.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month = 5 AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150" }
Discovery result
pass broad rule (niche) · 16 Oct, 13:07
- Bets
- 322
- 41 winners
- A/E
- 1.29
- 95%: 0.92 to 1.75
- SP return
- -12.5%
- level stakes
- Betfair SP return
- +8.9%
- 322 bets with a BSP
Strike rate 12.7%. p = 0.068. Same-race control: the other runners in these races had A/E 0.95, 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.
- perturbation: Loosen thresholds: 120+ days off, up to 12 prior runspass
460 bets · A/E 1.23 (0.92 to 1.61) · control 0.96 · 16 Oct, 13:15
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-274381.19after 2026-04-2722–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Tighten thresholds: 180+ days off, up to 8 prior runspass
166 bets · A/E 1.22 (0.73 to 1.90) · control 0.97 · 16 Oct, 13:15
Breakdown
Sealed holdout (vault)
- Bets
- 1,548
- 16 Oct, 13:15
- A/E
- 1.02
- p = 0.40
- BH threshold then
- 0.0029
- over every vault test so far
- Outcome
- Failed
- vault query (supportive)pass
1,548 bets · A/E 1.02 (0.87 to 1.19) · control 1.00 · 16 Oct, 13:15
Breakdown
betsA/E0.71.01.32020-227471.142023 to Sept 20258010.90
Forward record
- forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}info
0 bets · · 16 Oct, 13:16
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
246 bets · A/E 1.28 (0.87 to 1.82) · control 0.96 · 16 Oct, 13:16
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272341.33after 2026-04-2712–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: <= 10 -> 12 (+20%)pass
384 bets · A/E 1.20 (0.87 to 1.61) · control 0.97 · 16 Oct, 13:16
Breakdown
Lineage
Agent runs
designer v1ok · 45s · 16 Oct, 13:02
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150", "refinements": [ { "label": "Turf only (tests the surface-mix confounder: is the March-April lift really the turf-season opening?)", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND surface = 'Turf'" }, { "label": "All-weather only (if the lift holds here too, the timing story is not a turf-opening artefact)", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND surface = 'AW'" } ], "control": { "description": "The key comparison is the identical profile returning in May: lightly raced four-year-old handicap returners after 150+ days off, first seen in May. The mechanism predicts these score about 1.00, clearly below the March-April rule. If May returners come within 0.05 of the March-April A/E, the timing story is falsified and the lift is just the general H126 returner effect. Same-race other runners should score about 1.00 (slightly under, since the selection takes win share from them). If they also beat their prices, the effect is a property of early-spring handicaps (e.g. big April handicaps at particular courses), not of the returners.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month = 5 AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.08, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "The month pattern rests mostly on one discovery spring (2026), so the March-April versus May split may be noise. Each period must point the same way.", "The discovery/vault period boundary (27 April) cuts through the March-April window, so period-level splits do not match the month split exactly.", "The turf season opens in late March, so the surface mix changes by month. The turf and AW refinements check this.", "Big spring handicaps cluster in April at certain courses (e.g. Newmarket Craven, Newbury, Epsom). Course or class concentration could drive the lift. Check the same-race other runners and the course spread.", "The general H126 returner lift (1.12 across March to May) could be spread evenly, with any month differences being sampling variation. The May control has to be clearly lower.", "Selection: May first-time-out returners include more horses held up by setbacks, which is part of the mechanism. They are also later-maturing types, which is a different cause with the same sign." ], "mechanism": "A lightly raced four-year-old that strengthened over the winter is still unknown to the market when it first reappears in March or April. Its price rests on its three-year-old form and a mark set on that form. By May three things change: the four-year-old crop has been seen, trainers' form with returners is visible, and the horses still making their first run back are more often ones whose return was delayed by a setback. So the returner edge should sit in March-April and fade to about 1.00 in May.", "market_miss": "In March and April there is almost no current evidence of how the four-year-old crop has developed, so bookmakers and punters price a returner from stale three-year-old form and its handicap mark, and they underrate the physical improvement over the winter. As spring goes on, the market updates from other returners' results and trainer strike rates. The later returners are also partly adversely selected (setbacks), so the mispricing closes by May.", "prediction": { "direction": "positive", "size": "A/E 1.12 to 1.22 on the March-April rule (1000+ bets across all data), with the May control about 1.00", "falsified_if": "The March-April rule scores A/E below 1.08, or the May control scores within 0.05 of the March-April A/E, or the lift appears in only one period or one surface while the other is at or below 1.00." }, "notes": "I kept the rule sketch unchanged. It uses only pre-off columns that earlier rules in this thread have already used, and it narrows H126 only by month, which is exactly the question asked. The pass bar is stricter than the lab floor: 300 bets, and A/E 1.08 to match the falsification threshold. That is because the parent H126 already scores 1.12, so a weak result would not separate the timing story from the general returner effect. The forward A/E bar is 1.05 for the same reason. I did not add a price cap: an earlier finding showed the 14/1 cap does not sharpen this edge. Both refinements test the surface confounder rather than slicing further." }
Timeline
Job 1568 finished
· engine:compute-1
forward result for H-2d115a58 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 1568 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 1537 finished
· engine:compute-1
hypothesis note H-2d115a58
· engine:perturb
perturbation result for H-2d115a58 (neighbour: drop: is_handicap = 1): pass
· engine:perturb
perturbation result for H-2d115a58 (neighbour: drop: race_type = 'Flat'): pass
· engine:perturb
perturbation result for H-2d115a58 (neighbour: >= 150 -> 180 (+20%)): pass
· engine:perturb
perturbation result for H-2d115a58 (neighbour: >= 150 -> 120 (-20%)): pass
· engine:perturb
perturbation result for H-2d115a58 (neighbour: <= 10 -> 12 (+20%)): pass
· engine:perturb
perturbation result for H-2d115a58 (neighbour: <= 10 -> 8 (-20%)): pass
· engine:perturb
compute-1 took job 1537 (mutate, attempt 1)
· compute-1
Job 1564 finished
· engine:compute-1
H-2d115a58 Vault → SHADOW vault SUPPORTIVE: A/E 1.023 on 1548 bets, p 0.3968 against BH threshold 0.002857 over 35 vault tests
· engine:orchestrator
vault result for H-2d115a58 (vault query (supportive)): pass
· engine:orchestrator