Hypotheses · seasonal · H-d1543740
Lightly raced four-year-old returns whose mark has not been raised
fails: A/E 0.953, needs 1.1; p 0.606, needs 0.05 or lower; periods [1.04, 0.86], each needs 1.0; A/E 0.953 against same-race control 1.01, needs 0.03 above (not a niche pass: A/E 0.953 below 1.1; p 0.6059551900052518 above 0.5; does not beat the same-race control 1.01; a period points the other way
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:13
- Tests logged
- 1
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-ef8fb404 (Lightly raced five-year-olds back from a break: is age the cause?) pointed the predicted way but failed the bar: A/E 0.76 on 89 bets (p 0.795), control 1.03. O-cee491b3
- H-625f1f2d (Fewest prior runs: the mark has the least information) passed discovery as a niche: A/E 1.18 on 218 bets (p 0.236), same-race control 0.98. O-e2338df0
- AskedIs the edge strongest when the handicapper has left the mark unchanged since the three-year-old evidence, as a lagging-mark mechanism requires? answered
- MechanismIf the edge comes from improvement the mark has not caught up with, it should be largest where the mark is unchanged or lower than last time. It should be smaller where the handicapper has already raised the horse over the winter.
- Why the market misses itPunters treat an unchanged mark after a long break as neutral, and the long absence makes the horse look rusty. Neither shows the physical improvement the horse has made over the winter.
- Predictedpositive, A/E 1.15 to 1.25 on 250+ bets
- Falsified ifA/E at or below 1.10 on 250+ bets, or raised-mark returners score as high
- Rule sketch
Mechanism and rationale
If the edge comes from improvement the mark has not caught up with, it should be largest where the mark is unchanged or lower than last time. It should be smaller where the handicapper has already raised the horse over the winter.
The rule
race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND rating_change <= 0
Reads: race_type, is_handicap, month, age, prior_runs, days_since_last_run, rating_change
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 1fc6f697d7a8010822b2fd6ccb29b0be8692e9fa7f626771594ab59298c3da48
- Frozen
- not frozen
- The definition can still change.
- Confounders
- rating_change exists only from November 2025 (GB and IRE), so discovery covers a single spring (2026). The sample will be thin, and the split by period is also an early (all-weather, March) versus late (turf, April–May) split. Check surface before reading any concentration in one period as instability.
- rating_change is null when the last run was unrated (e.g. a maiden or novice before the horse got a mark). Those horses are excluded by the predicate, so the rule covers only horses that already had a mark last time. This is a different population from H126's.
- Last-time winners are nearly always raised, so the rating_change <= 0 group is mostly horses beaten last time. This overlaps the 'beaten last time' longshot lift seen across the lab (A/E > 1.10 at 16/1+). The 14/1-or-shorter refinement and the raised-mark control guard against this.
- A dropped mark often follows poor form or a problem, so rating_change < 0 may mix genuine leniency with declining horses.
- Field size and race class: unraised returners may be running in weaker or bigger fields than raised ones.
Discovery result
fail broad rule · 16 Oct, 12:20
- Bets
- 151
- 14 winners
- A/E
- 0.95
- 95%: 0.52 to 1.60
- SP return
- -35.5%
- level stakes
- Betfair SP return
- -21.7%
- 151 bets with a BSP
Strike rate 9.3%. p = 0.61. Same-race control: the other runners in these races had A/E 1.01, so the selection did not beat its own races. Zone: discovery. Evaluator eval-1.0, data 6a4e98be18e83933
By period
Falsification
No attacks yet. Only promising ideas are attacked.
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.
Lineage
Agent runs
designer v1ok · 1m 17s · 16 Oct, 12:15
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND rating_change <= 0", "refinements": [ { "label": "14/1 or shorter", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND rating_change <= 0 AND sp_decimal <= 15" }, { "label": "5 or fewer prior runs (least-exposed mark)", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 5 AND days_since_last_run >= 150 AND rating_change <= 0" } ], "control": { "description": "Primary control is the same H126 base where the handicapper has already raised the mark (rating_change > 0). The mechanism predicts these score clearly lower than the unchanged-or-dropped group, near H126's base or below; if they score as high or higher, the edge is freshness/age, not a lagging mark, and the hypothesis is falsified. The other runners in the same races are expected to show A/E about 0.95 to 1.0, as they did for H126 (0.98), so the edge is not a property of those races.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND age = 4 AND prior_runs <= 10 AND days_since_last_run >= 150 AND rating_change > 0" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "rating_change exists only from November 2025 (GB and IRE), so discovery covers a single spring (2026). The sample will be thin, and the split by period is also an early (all-weather, March) versus late (turf, April–May) split. Check surface before reading any concentration in one period as instability.", "rating_change is null when the last run was unrated (e.g. a maiden or novice before the horse got a mark). Those horses are excluded by the predicate, so the rule covers only horses that already had a mark last time. This is a different population from H126's.", "Last-time winners are nearly always raised, so the rating_change <= 0 group is mostly horses beaten last time. This overlaps the 'beaten last time' longshot lift seen across the lab (A/E > 1.10 at 16/1+). The 14/1-or-shorter refinement and the raised-mark control guard against this.", "A dropped mark often follows poor form or a problem, so rating_change < 0 may mix genuine leniency with declining horses.", "Field size and race class: unraised returners may be running in weaker or bigger fields than raised ones.", "Trainer/yard concentration: a few yards that place lightly raced four-year-olds well in spring could drive the result." ], "mechanism": "Lightly raced four-year-olds put on physical strength over the winter between their three- and four-year-old seasons. Their official mark still reflects three-year-old form. Where the handicapper has not raised the mark since then (rating_change <= 0), all of that improvement is unpriced by the weights, so the H126 edge should be concentrated there. Where the mark has already been raised, part of the improvement is taken back and the edge should shrink.", "market_miss": "Punters read an unchanged or lower mark after a long absence as neutral or negative, and they discount the horse for the layoff as 'needing the run'. Neither cue shows the winter physical development, so the price is set off three-year-old form and a rusty-returner discount. Earlier findings show the H126 edge is a selection edge that is thin at SP (BSP ROI +1.6% against SP ROI -19.6%), so the mispricing is modest and best taken at exchange prices.", "prediction": { "direction": "positive", "size": "A/E 1.15 to 1.25. The prediction is for 250+ bets, but the single-spring window may give fewer.", "falsified_if": "A/E at or below 1.10 on 150+ bets, or the raised-mark control (rating_change > 0) scoring the same or higher A/E than the rule." }, "notes": "The draft rule is kept unchanged: every column is pre_off, and rating_change is in the catalogue (official rating against last time, from 2025-11-01). The null-rating case is handled implicitly, because the predicate excludes nulls. Refinements were limited to two that the lab's findings support: the longshot artefact (14/1 or shorter) and the least-exposed cut (prior_runs <= 5, which gave A/E 1.18 in H-625f1f2d). The minimum A/E was raised to 1.10 to match the falsification threshold. Expect a thin sample: with one spring of data, a result that points the right way but falls short of 150 bets should go to falsification and forward tracking, not be read as a failure." }
Timeline
Job 1292 finished
· engine:compute-1
H-d1543740 Discovery → KILLED fails: A/E 0.953, needs 1.1; p 0.606, needs 0.05 or lower; periods [1.04, 0.86], each needs 1.0; A/E 0.953 against same-race control 1.01, needs 0.03 above (not a niche pass: A/E 0.953 below 1.1; p 0.6059551900052518 above 0.5; does not beat the same-race control 1.01; a period points the other way [1.04, 0.86])
· engine:evaluator
discovery result for H-d1543740 (broad rule): fail
· engine:evaluator
H-d1543740 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 1292 (evaluate, attempt 1)
· compute-1
Job 1289 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-d1543740 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 1289 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-d1543740: Lightly raced four-year-old returns whose mark has not been raised (test-mechanism)
· agent:investigator@v1
Every change is an event with an actor: an agent and its version, an engine, a human, or the importer. Current stage: Killed.