Hypotheses · seasonal · H-0b35ec92
Fancied spring returners in non-handicaps are priced right: the lift needs a handicap mark
fails: A/E 0.998, needs 0.95 or lower; p 0.5144 (lower tail), needs 0.05; periods [0.99, 1.01], each needs 0.99 or lower; A/E 0.998 against same-race control 0.975, needs 0.03 below
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
- rival-explanation
- Created
- 16 Oct, 13:30
- 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-71a94a07 (Rival: short-priced spring handicap returners pay at any age, so H126') passed discovery as a niche: A/E 1.1 on 141 bets (p 0.271), same-race control 0.95. O-21cb941f
- AskedDoes the spring returner lift need a handicap (a mark that lags the horse's progress), or does a rust discount alone produce it in non-handicaps too? testing
- MechanismIn a handicap, a horse that has strengthened over the winter runs off a mark set on its old form, so it is better than its weight says. In a non-handicap there is no mark to lag, and the only possible mispricing is rust. If the lift is about the mark, non-handicap fancied returners should score about 1.0.
- Why the market misses itThe handicap mark is visible but is read as current ability. In a non-handicap, the market prices the horse on its form and the yard's signal, with no stale weight to mislead it.
- Predictednegative, A/E 0.90 to 1.02 on 300+ bets, well below the handicap version
- Falsified ifA/E of 1.08 or higher on 300+ bets, which would make rust, not the mark, the driver
- Rule sketch
race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8
Mechanism and rationale
In a handicap, a horse that has strengthened over the winter runs off a mark set on its old form, so it is better than its weight says. In a non-handicap there is no mark to lag, and the only possible mispricing is rust. If the lift is about the mark, non-handicap fancied returners should score about 1.0.
The rule
race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8
Reads: race_type, is_handicap, month, days_since_last_run, sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 426213eb46007d86a9d664c26430034424f8e93e3330ec7016dbe0fecd297a19
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Non-handicaps include maidens and novice races, where unraced or once-raced rivals and first-season dynamics differ from those of exposed returners (refinement 1 removes maidens)
- Group and Listed races in spring have their own market dynamics: deep, well-informed markets with top yards, which may price returners more efficiently than lower-grade races
- Short prices in non-handicaps contain many odds-on favourites, where favourite-longshot bias pulls A/E toward 1.0 (refinement 2 excludes odds-on runners)
- Age mix: non-handicap returners are more often three-year-olds, and the handicap lift was concentrated at age four (refinement 3 matches the profile)
- Earlier work showed the dilution from 1.10 to 1.02 when handicaps were added, so this rule overlaps that result. A near-1.0 result partly repeats what is already known and is not fully independent evidence
- Irish splits have been unreadable in this thread, and the region mix may differ between handicaps and non-handicaps
- Control
{ "description": "The key comparison is the handicap version of the same rule (same months, same layoff, same 7/1-or-shorter cap). Earlier work found short-priced spring handicap returners at about 1.10. If the mark is the cause, this control should come in at 1.05 or above while the non-handicap rule sits near 1.0. If both are near 1.0, the handicap lift was noise. If both are lifted, rust (or a general returner discount) is the cause and the mark is not. Other runners in the same non-handicap races should come in near 1.0 or a little below, so any lift in returners is not a race-level artefact.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8" }
Discovery result
fail broad rule · 16 Oct, 13:34
- Bets
- 536
- 148 winners
- A/E
- 1.00
- 95%: 0.84 to 1.17
- SP return
- -13.3%
- level stakes
- Betfair SP return
- +0.8%
- 536 bets with a BSP
Strike rate 27.6%. p = 0.52. Same-race control: the other runners in these races had A/E 0.97, so the selection 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 · 33s · 16 Oct, 13:30
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8", "refinements": [ { "label": "Exclude maidens: returners that have already won, so first-season maiden dynamics do not drive the result", "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8 AND is_maiden = 0" }, { "label": "Exclude odds-on runners, where favourite-longshot bias pulls A/E toward 1.0 regardless of mechanism", "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal > 2 AND sp_decimal <= 8" }, { "label": "Like-for-like with the handicap thread: lightly raced four-year-olds, the profile where the handicap lift was strongest", "rule": "race_type = 'Flat' AND is_handicap = 0 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8 AND age = 4 AND prior_runs <= 10" } ], "control": { "description": "The key comparison is the handicap version of the same rule (same months, same layoff, same 7/1-or-shorter cap). Earlier work found short-priced spring handicap returners at about 1.10. If the mark is the cause, this control should come in at 1.05 or above while the non-handicap rule sits near 1.0. If both are near 1.0, the handicap lift was noise. If both are lifted, rust (or a general returner discount) is the cause and the mark is not. Other runners in the same non-handicap races should come in near 1.0 or a little below, so any lift in returners is not a race-level artefact.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND month IN (3, 4, 5) AND days_since_last_run >= 150 AND sp_decimal <= 8" }, "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": [ "Non-handicaps include maidens and novice races, where unraced or once-raced rivals and first-season dynamics differ from those of exposed returners (refinement 1 removes maidens)", "Group and Listed races in spring have their own market dynamics: deep, well-informed markets with top yards, which may price returners more efficiently than lower-grade races", "Short prices in non-handicaps contain many odds-on favourites, where favourite-longshot bias pulls A/E toward 1.0 (refinement 2 excludes odds-on runners)", "Age mix: non-handicap returners are more often three-year-olds, and the handicap lift was concentrated at age four (refinement 3 matches the profile)", "Earlier work showed the dilution from 1.10 to 1.02 when handicaps were added, so this rule overlaps that result. A near-1.0 result partly repeats what is already known and is not fully independent evidence", "Irish splits have been unreadable in this thread, and the region mix may differ between handicaps and non-handicaps" ], "mechanism": "A horse that strengthens over the winter runs in a spring handicap off a mark set on its old, weaker form. It is better than its weight says, and that creates the returner lift seen in handicaps. In a non-handicap there is no mark to lag. Horses carry weights fixed by conditions, so the only possible mispricing is a rust discount for the layoff. If the lift comes from the stale mark, fancied non-handicap spring returners (150+ days off, 7/1 or shorter) should score about 1.0 at SP.", "market_miss": "In handicaps, bettors read the visible official mark as current ability and under-credit winter improvement. In non-handicaps the market prices the horse on its form, its class and the yard's signal, with no stale weight to mislead it. Any rust discount should be small, because layoffs are routine in spring and well understood.", "prediction": { "direction": "negative", "size": "A/E between 0.90 and 1.02 on 300+ bets, clearly below the handicap control (about 1.10)", "falsified_if": "A/E of 1.08 or higher on 300+ bets, or an A/E within 0.03 of the handicap control. Either would make rust or a general returner discount, not the handicap mark, the driver." }, "notes": "This is a rival-explanation test: the null-like outcome (near 1.0) supports the handicap-mark mechanism. It is registered as negative because the hypothesis predicts no lift, so the vault should treat an A/E at or below about 1.02 as supporting the prediction. min_bets is raised to 300 to match the prediction's sample size. The sp_decimal <= 8 cap matches the band (4/1 to 7/1) where the handicap returner lift was concentrated. Refinements are to be read only if the broad rule shows a lift: they check whether that lift is a maiden, odds-on or age-mix artefact." }
Timeline
Job 1620 finished
· engine:compute-1
H-0b35ec92 Discovery → KILLED fails: A/E 0.998, needs 0.95 or lower; p 0.5144 (lower tail), needs 0.05; periods [0.99, 1.01], each needs 0.99 or lower; A/E 0.998 against same-race control 0.975, needs 0.03 below
· engine:evaluator
discovery result for H-0b35ec92 (broad rule): fail
· engine:evaluator
H-0b35ec92 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 1620 (evaluate, attempt 1)
· compute-1
Job 1618 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-0b35ec92 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 1618 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-0b35ec92: Fancied spring returners in non-handicaps are priced right: the lift needs a handicap mark (rival-explanation)
· 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.