Hypotheses · story · H-7642e8c0
Rival: the H19 lift lives on turf, not all-weather
fails: A/E 1.021, needs 1.1; p 0.4802, needs 0.05 or lower; periods [1.22], each needs 1.0; A/E 1.021 against same-race control 1.001, needs 0.03 above (not a niche pass: A/E 1.021 below 1.1; does not beat the same-race control 1.001)
Part of the thread “H19: momentum interrupted beaten narrowly” 11 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 16 Oct, 14:54
- 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-c93d63ff (Sharpen: troubled narrow losers in handicaps, where the mark did not c): the period 'after 2026-04-27' carries the effect (A/E 1.29) while the rest score 2025-10-01 to 2026-04-27 0.96. O-4f8a87cc
- H-c93d63ff (Sharpen: troubled narrow losers in handicaps, where the mark did not c) passed discovery as a niche: A/E 1.15 on 190 bets (p 0.226), same-race control 0.98. O-90d10151
- AskedIs the H19 lift a turf-season effect? Handicap H19 scored 1.29 after late April 2026 but 0.96 from October to April, when Flat racing is mostly all-weather. testing
- MechanismOn turf, the big fields, straight courses and wide variety of tracks make a check mid-run rarer and more costly, so a horse that is checked and still finishes within 2 lengths has shown real hidden ability. On tight all-weather ovals, crowding and checks are routine. The same comment-in-running means less there, and regular all-weather punters read it closely.
- Why the market misses itOn turf the close losing margin and the plain finishing position are what the form book shows. The trouble comment is easy to skip, so the price follows the position. On all-weather, regular in-running watchers already allow for routine checks.
- Predictedpositive, Turf H19 A/E 1.20 or more on 120+ bets, with the all-weather H19 runners at about 1.0
- Falsified ifTurf A/E below 1.10, or turf A/E no higher than the all-weather H19 runners, or turf lift present in only one period
Mechanism and rationale
On turf, the big fields, straight courses and wide variety of tracks make a check mid-run rarer and more costly, so a horse that is checked and still finishes within 2 lengths has shown real hidden ability. On tight all-weather ovals, crowding and checks are routine. The same comment-in-running means less there, and regular all-weather punters read it closely.
The rule
last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) = 'turf'
Reads: last_momentum_interrupted, last_position, last_beaten_lengths, last_surface
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- ecf791172c1566f44aaac0a930835d2f813d0c854e598aad3d1fe71b0ee418a6
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Calendar season: flat turf racing runs mainly April to October, so the surface is tied up with the period. Judge the lift within each period, not only pooled.
- Overlap with the H19 discovery and publication window, which fell in the turf season. A turf lift could be an artefact of when H19 was found.
- Bigger fields on turf: more runners mean more traffic and higher prices, which changes what a check means and the base A/E.
- 2-year-old and novice races are concentrated in the summer turf season, where exposed form is thin and the market prices less efficiently.
- Jumps races are all run on turf, so a turf group mixes flat and jumps runners. The Flat refinement isolates the mechanism.
- Last-run surface and today's surface usually match but not always. A change of surface brings its own pricing effects.
- Control
{ "description": "The same-race other runners should be near 1.0 (about 0.95 to 1.02). This tests the race, not the horse. The main control is the rival group: H19 runners whose checked run was NOT on turf (all-weather). The mechanism predicts they come in at about 1.0. If the all-weather group matches or beats the turf group, the surface story is dead. Report both groups by period (before and after 2026-04-27) as well, to separate the surface from the calendar.", "rule": "last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) <> 'turf'" }
Discovery result
fail broad rule · 16 Oct, 14:55
- Bets
- 160
- 29 winners
- A/E
- 1.02
- 95%: 0.68 to 1.47
- SP return
- -9.9%
- level stakes
- Betfair SP return
- +1.4%
- 158 bets with a BSP
Strike rate 18.1%. p = 0.48. Same-race control: the other runners in these races had A/E 1.00, 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 · 39s · 16 Oct, 14:54
Output (schema-checked)
{ "rule": "last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) = 'turf'", "refinements": [ { "label": "Checked on turf and running on turf today (the sketch's seasonal version)", "rule": "last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) = 'turf' AND lower(surface) = 'turf'" }, { "label": "Flat only: the mechanism is about flat turf tracks against all-weather ovals", "rule": "last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) = 'turf' AND race_type = 'Flat'" }, { "label": "14/1 or shorter: hidden-ability edges usually die at big prices", "rule": "last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) = 'turf' AND sp_decimal <= 15" } ], "control": { "description": "The same-race other runners should be near 1.0 (about 0.95 to 1.02). This tests the race, not the horse. The main control is the rival group: H19 runners whose checked run was NOT on turf (all-weather). The mechanism predicts they come in at about 1.0. If the all-weather group matches or beats the turf group, the surface story is dead. Report both groups by period (before and after 2026-04-27) as well, to separate the surface from the calendar.", "rule": "last_momentum_interrupted = 1 AND last_position > 1 AND last_beaten_lengths <= 2 AND lower(last_surface) <> 'turf'" }, "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": [ "Calendar season: flat turf racing runs mainly April to October, so the surface is tied up with the period. Judge the lift within each period, not only pooled.", "Overlap with the H19 discovery and publication window, which fell in the turf season. A turf lift could be an artefact of when H19 was found.", "Bigger fields on turf: more runners mean more traffic and higher prices, which changes what a check means and the base A/E.", "2-year-old and novice races are concentrated in the summer turf season, where exposed form is thin and the market prices less efficiently.", "Jumps races are all run on turf, so a turf group mixes flat and jumps runners. The Flat refinement isolates the mechanism.", "Last-run surface and today's surface usually match but not always. A change of surface brings its own pricing effects." ], "mechanism": "A check mid-race on turf is rarer and more costly because of big fields, straight and galloping tracks, and long runs with no recovery bend. So a horse checked on turf that still finishes within 2 lengths has shown more hidden ability than its margin suggests. On tight all-weather ovals, crowding and checks are routine and cost less, so the same comment carries little extra information. The mechanism is about where the check happened, so the rule conditions on the surface of the last run (last_surface), not today's surface.", "market_miss": "On turf, the form-book reading is dominated by the close losing margin and the plain finishing position. The trouble comment is easy to skip, so the price follows the position and misses the excuse. All-weather is a small, specialist circuit whose regulars watch races closely. Those punters already allow for routine checks, so the all-weather H19 runners should be fairly priced.", "prediction": { "direction": "positive", "size": "Turf-checked H19 runners A/E about 1.20 or more on 120 or more bets; the all-weather H19 runners about 1.0", "falsified_if": "Any one of these falsifies it: turf A/E below 1.10; turf A/E not higher than the all-weather H19 control; the turf lift above 1.0 in only one of the two periods (before and after 2026-04-27)." }, "notes": "I changed the sketch's lower(surface) = 'turf' (today's race) to lower(last_surface) = 'turf'. The mechanism is about how costly and informative the check was in the run where it happened, so the last run's surface is the right test. Today's surface is kept as refinement 1, which answers the question's seasonal version. Both columns are pre-off and available from 2020-07-01 in GB and IRE. H19's parent sample is about 240 bets, so the turf slice may fall below 150. In that case it goes on to falsification as a thin directional result. I raised min_ae to 1.10 to match the prediction's falsification line." }
Timeline
Job 1877 finished
· engine:compute-1
H-7642e8c0 Discovery → KILLED fails: A/E 1.021, needs 1.1; p 0.4802, needs 0.05 or lower; periods [1.22], each needs 1.0; A/E 1.021 against same-race control 1.001, needs 0.03 above (not a niche pass: A/E 1.021 below 1.1; does not beat the same-race control 1.001)
· engine:evaluator
discovery result for H-7642e8c0 (broad rule): fail
· engine:evaluator
H-7642e8c0 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 1877 (evaluate, attempt 1)
· compute-1
Job 1876 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-7642e8c0 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 1876 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-7642e8c0: Rival: the H19 lift lives on turf, not all-weather (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.