Hypotheses · track-stamina · H-2b483ac5
Generalise: last run over further (not just last win) pays in stiff Flat sprints at 14/1 or shorter
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H181: proven over further at a stiff track” 15 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- generalise
- Created
- 16 Oct, 13:05
- Tests logged
- 19
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-4e7be756 (Rival: the stiff-sprint system's lift is a 16/1+ longshot effect) met the sealed vault supportive: A/E 1.64 on 141 bets (p 0.0068, threshold 0.0029). O-7a52c39b
- H-4e7be756 (Rival: the stiff-sprint system's lift is a 16/1+ longshot effect) passed discovery as a niche: A/E 1.34 on 31 bets (p 0.29), same-race control 0.95. O-9ebcf76a
- H-4e7be756 (Rival: the stiff-sprint system's lift is a 16/1+ longshot effect) survived falsification: 2 of 3 attacks left it standing; it is frozen for its one vault query. O-aee9dc89
- AskedDoes the stiff-sprint edge need a past win over further, or does any recent run over further (last_distance_yards) carry the same signal? answered
- MechanismAn uphill finish turns a sprint into a stamina test. A horse whose last run was over at least a furlong and a half further has shown it can stay the extra distance, and that stamina becomes speed up the climb, whether or not it won.
- Why the market misses itBeaten over further, the horse looks out of form and short of speed for a sprint. Punters read the drop in trip as a desperate move, and the result last time makes it look worse than it is.
- Predictedpositive, A/E 1.10 to 1.25 on 300+ bets
- Falsified ifA/E at or below 1.02 at 14/1 or shorter, which would mean the past win (a class or form signal), not the stamina, carries the live system
Mechanism and rationale
An uphill finish turns a sprint into a stamina test. A horse whose last run was over at least a furlong and a half further has shown it can stay the extra distance, and that stamina becomes speed up the climb, whether or not it won.
The rule
race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 1 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15
Reads: race_type, distance_yards, track_stiff_finish, last_distance_yards, sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 3a4c3bcd4b9727288c2dfaace5d4b08cbb1eb0e7379bc148aa429f4ea1ef240e
- Frozen
- 16 Oct, 13:15
- Nothing in the definition can change after this.
- Confounders
- Overlap with the live system's last-win runners: part of the broad rule is the live system itself, so refinement 1 (no win over the further trip) is the decisive test of the generalisation
- Course concentration: a handful of stiff sprint courses may carry the result, so check by course and require that no one course drives it
- Draw bias on straight 5f to 6f courses: the result could come from stalls position rather than stamina; the same-race control and a draw split help to check this
- Form decay: horses beaten heavily over further may simply be out of form, which would push A/E down for the beaten group and hide a real stamina effect
- Price-band artefact: earlier trip-drop rivals got their lift at 16/1 and bigger; the 14/1 cap is pre-registered to stop that
- Seasonality: earlier lifts clustered after April; check the split by period
- Last run on a different code (for example a hurdle or a bumper over a much longer trip) is a different signal from a Flat run over 7f to 1m
- Control
{ "description": "Same-race control: the other runners in the same stiff-track Flat sprints should show A/E near 1.0 (about 0.97 to 1.02). If they also beat their prices, the lift is a property of these races or courses (e.g. a course or draw quirk), not of the stamina signal. A second, specific comparison is the same profile at non-stiff tracks: if runners whose last run was over 330+ yards further also pay at 14/1 or shorter in non-stiff Flat sprints, the hill is not the mechanism. Earlier work found the last-win version at non-stiff tracks scored only 0.69 at 14/1 or shorter, so this control should come in at or below 1.0.", "rule": "race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 0 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15" }
Discovery result
pass broad rule (niche) · 16 Oct, 13:07
- Bets
- 83
- 15 winners
- A/E
- 1.54
- 95%: 0.86 to 2.53
- SP return
- +35.3%
- level stakes
- Betfair SP return
- +60.6%
- 80 bets with a BSP
Strike rate 18.1%. p = 0.072. Same-race control: the other runners in these races had A/E 0.92, 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 6 survived.
- perturbation: Looser trip gap: last run 260+ yards furtherpass
139 bets · A/E 1.26 (0.79 to 1.90) · control 0.95 · 16 Oct, 13:15
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-2736–after 2026-04-271031.26Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Tighter trip gap: last run 400+ yards furtherpass
72 bets · A/E 1.64 (0.90 to 2.76) · control 0.90 · 16 Oct, 13:15
Breakdown
Sealed holdout (vault)
- Bets
- 415
- 16 Oct, 13:15
- A/E
- 1.17
- p = 0.12
- BH threshold then
- 0.0028
- over every vault test so far
- Outcome
- Failed
- vault query (supportive)pass
415 bets · A/E 1.17 (0.90 to 1.50) · control 0.98 · 16 Oct, 13:15
Breakdown
betsA/E0.71.01.32020-221991.162023 to Sept 20252161.18
Forward record
- forward vs bar {'min_bets': 100, 'min_ae': 1.0, '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: <= 1340 -> 1072 (-20%)fail
0 bets · · 16 Oct, 13:15
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-270–after 2026-04-270–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: <= 1340 -> 1608 (+20%)pass
146 bets · A/E 1.23 (0.78 to 1.84) · control 0.96 · 16 Oct, 13:15
Breakdown
betsA/E
Lineage
Agent runs
designer v1ok · 43s · 16 Oct, 13:05
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 1 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15", "refinements": [ { "label": "Excluding the live system's last-win runners (isolates the generalisation)", "rule": "race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 1 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15 AND (last_win_distance_yards IS NULL OR last_win_distance_yards < distance_yards + 330)" }, { "label": "Beaten last time over further (the market-miss case)", "rule": "race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 1 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15 AND (last_position IS NULL OR last_position > 1)" }, { "label": "Beaten but showed it stayed: placed 2nd to 6th over further last time", "rule": "race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 1 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15 AND last_position BETWEEN 2 AND 6" } ], "control": { "description": "Same-race control: the other runners in the same stiff-track Flat sprints should show A/E near 1.0 (about 0.97 to 1.02). If they also beat their prices, the lift is a property of these races or courses (e.g. a course or draw quirk), not of the stamina signal. A second, specific comparison is the same profile at non-stiff tracks: if runners whose last run was over 330+ yards further also pay at 14/1 or shorter in non-stiff Flat sprints, the hill is not the mechanism. Earlier work found the last-win version at non-stiff tracks scored only 0.69 at 14/1 or shorter, so this control should come in at or below 1.0.", "rule": "race_type = 'Flat' AND distance_yards <= 1340 AND track_stiff_finish = 0 AND last_distance_yards >= distance_yards + 330 AND sp_decimal <= 15" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1, "max_p": 0.2 }, "confounders": [ "Overlap with the live system's last-win runners: part of the broad rule is the live system itself, so refinement 1 (no win over the further trip) is the decisive test of the generalisation", "Course concentration: a handful of stiff sprint courses may carry the result, so check by course and require that no one course drives it", "Draw bias on straight 5f to 6f courses: the result could come from stalls position rather than stamina; the same-race control and a draw split help to check this", "Form decay: horses beaten heavily over further may simply be out of form, which would push A/E down for the beaten group and hide a real stamina effect", "Price-band artefact: earlier trip-drop rivals got their lift at 16/1 and bigger; the 14/1 cap is pre-registered to stop that", "Seasonality: earlier lifts clustered after April; check the split by period", "Last run on a different code (for example a hurdle or a bumper over a much longer trip) is a different signal from a Flat run over 7f to 1m" ], "mechanism": "An uphill finish turns a 5f to 6f sprint into a test of stamina in the final furlong. A horse whose last run was over at least 330 yards (1.5f) further has been prepared and conditioned for the longer trip and has shown it can get it. On the climb, horses with only sprint speed run out of steam and the stayer keeps going, whether or not it won over the further trip. If the edge comes from stamina, any recent run over further should carry it. If only last-time winners over further pay, the live system is reading class or form, not stamina.", "market_miss": "Dropped in trip after a defeat over further, the horse looks out of form and short of speed for a sprint. Punters and odds-compilers read the drop as a desperate move or a trainer's guess, mark it down for the poor result last time, and look at its speed figures rather than the finish of today's course. They do not account for the stiff finish turning the race into a stamina test that suits it.", "prediction": { "direction": "positive", "size": "A/E 1.10 to 1.25 on 300+ bets at 14/1 or shorter. The non-last-win subset should be above 1.05.", "falsified_if": "A/E at or below 1.02 at 14/1 or shorter, or the subset with no win over the further trip at or below 1.02. Either would mean the past win (a class or form signal), not the stamina, carries the live system." }, "notes": "The rule sketch is sound: every column is pre-off (last_distance_yards and last_win_distance_yards are both in the catalogue; last_win_distance_yards is available from September 2020). Refinement 1 is the real answer to Q-01c2afe7, because the broad rule contains the live system's runners and would inherit its 1.64. Read refinement 1 even if the broad rule only just passes. Do not combine with track_testing_ground: that combination returned 0 bets before. If refinement 1 is thin, it goes to falsification and forward tracking rather than being killed." }
Timeline
Job 1569 finished
· engine:compute-1
forward result for H-2b483ac5 (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 1569 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 1536 finished
· engine:compute-1
hypothesis note H-2b483ac5
· engine:perturb
perturbation result for H-2b483ac5 (neighbour: drop: distance_yards <= 1340): pass
· engine:perturb
perturbation result for H-2b483ac5 (neighbour: drop: race_type = 'Flat'): pass
· engine:perturb
perturbation result for H-2b483ac5 (neighbour: <= 15 -> 18 (+20%)): pass
· engine:perturb
perturbation result for H-2b483ac5 (neighbour: <= 15 -> 12 (-20%)): pass
· engine:perturb
perturbation result for H-2b483ac5 (neighbour: <= 1340 -> 1608 (+20%)): pass
· engine:perturb
perturbation result for H-2b483ac5 (neighbour: <= 1340 -> 1072 (-20%)): fail
· engine:perturb
compute-1 took job 1536 (mutate, attempt 1)
· compute-1
Job 1565 finished
· engine:compute-1
H-2b483ac5 Vault → SHADOW vault SUPPORTIVE: A/E 1.169 on 415 bets, p 0.1238 against BH threshold 0.002778 over 36 vault tests
· engine:orchestrator
vault result for H-2b483ac5 (vault query (supportive)): pass
· engine:orchestrator