Hypotheses · story · H-c9d4fd57
Replicate: Flat handicappers heavily beaten and never involved in a big field last time
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H36: pulled up after being held up” 60 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- replicate
- Created
- 17 Oct, 04:06
- Tests logged
- 15
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-7358e6fb (Replicate: Flat handicappers heavily beaten in a big field last time b) was predicted positive but came out the other way: A/E 0.95 on 1560 bets (p 0.29 for the opposite direction). O-0cca5f69
- H-f956317c (Test-mechanism: big-field heavy beatings where the horse was never inv) passed discovery: A/E 1.32 on 1215 bets (p 0.005), same-race control 0.98. O-86a41341
- AskedDo Flat handicappers beaten 20+ lengths in a 14+ field and marked 'never involved' beat their price? The removed-race_type neighbour implies about 1.22 on roughly 539 non-jumps bets. answered
- MechanismIn a big field, a horse that is never in contention is often allowed to coast home once its chance has gone, whatever the code. A 20+ length margin then measures how little was asked of it, not its ability. The earlier Flat test missed this because it had no comment flag and used 8+ lengths, which mixes in horses that were ridden out.
- Why the market misses itThe form line shows a heavy beating plus 'never involved', and readers count them as two pieces of bad evidence. They are one event, and the double penalty pushes the price out too far.
- Predictedpositive, A/E 1.10 to 1.25 on 300+ bets
- Falsified ifA/E below 1.05, or no higher than the same rule with last_never_involved = 0, or the lift only at 16/1 or bigger
Mechanism and rationale
In a big field, a horse that is never in contention is often allowed to coast home once its chance has gone, whatever the code. A 20+ length margin then measures how little was asked of it, not its ability. The earlier Flat test missed this because it had no comment flag and used 8+ lengths, which mixes in horses that were ridden out.
The rule
race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1
Reads: race_type, is_handicap, last_race_type, last_beaten_lengths, last_field_size, last_never_involved
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- bb821917d2d011124626731c3dda7dd8591ad1d5d2347b46d19889c744f77937
- Frozen
- 17 Oct, 04:10
- Nothing in the definition can change after this.
- Confounders
- 20+ length Flat margins are rare and may cluster at long trips (staying handicaps) or on heavy/soft ground, so the lift could be a trip or going effect
- horses that last ran over jumps are excluded by last_race_type = 'Flat', but dual-code horses with recent jumps form may still be present
- longshot bias at 16/1 or bigger; the lift must show below 16/1 (refinement) and not only at long prices
- comment-writer style for 'never involved' may differ between Flat and jumps and between GB and IRE; check that both regions point the same way
- big-field Flat handicaps concentrate at festivals and heritage meetings, where pricing and field strength differ
- the mark is likely to have dropped after a 20+ length beating, so mark relief rather than the comment could carry any lift
- Control
{ "description": "Primary control is the same rule with last_never_involved = 0: Flat handicappers beaten 20+ lengths in a 14+ field last time whose comment did not say 'never involved'. The mechanism says these were more often ridden out, so their margin is real evidence and they should score about 1.0 or below. The lab's same-race comparison (other runners in the same races) should sit near 1.0; if they also show a lift, the effect belongs to the race type (big Flat handicaps, festival meetings), not to the horse.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 0" }
Discovery result
pass broad rule (niche) · 17 Oct, 04:09
- Bets
- 463
- 29 winners
- A/E
- 1.31
- 95%: 0.88 to 1.88
- SP return
- +2.6%
- level stakes
- Betfair SP return
- +51.8%
- 459 bets with a BSP
Strike rate 6.3%. p = 0.091. Same-race control: the other runners in these races had A/E 0.98, 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.
- price_band: Cap the longshots at 33/1: is the lift just a few huge-price winners?pass
294 bets · A/E 1.26 (0.83 to 1.85) · control 0.98 · 17 Oct, 04:10
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27761.24after 2026-04-272181.27Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Loosen thresholds: 16+ lengths, 12+ runner fieldpass
1,178 bets · A/E 1.05 (0.80 to 1.35) · control 1.00 · 17 Oct, 04:10
Sealed holdout (vault)
Not queried. Only a frozen idea can spend its one query against the 2020-25 holdout.
Forward record
- forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}info
0 bets · · 17 Oct, 04:10
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: >= 20 -> 16 (-20%)pass
735 bets · A/E 1.27 (0.93 to 1.70) · control 0.98 · 17 Oct, 04:10
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271801.51after 2026-04-275551.20Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: >= 20 -> 24 (+20%)pass
311 bets · A/E 1.33 (0.80 to 2.07) · control 0.98 · 17 Oct, 04:10
Breakdown
Lineage
Agent runs
designer v1ok · 24s · 17 Oct, 04:06
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1", "refinements": [ { "label": "Below 16/1 (jumps lift sat below 16/1; tests that the edge is not a longshot artefact)", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 1 AND sp_decimal < 17" } ], "control": { "description": "Primary control is the same rule with last_never_involved = 0: Flat handicappers beaten 20+ lengths in a 14+ field last time whose comment did not say 'never involved'. The mechanism says these were more often ridden out, so their margin is real evidence and they should score about 1.0 or below. The lab's same-race comparison (other runners in the same races) should sit near 1.0; if they also show a lift, the effect belongs to the race type (big Flat handicaps, festival meetings), not to the horse.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 20 AND last_field_size >= 14 AND last_never_involved = 0" }, "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": [ "20+ length Flat margins are rare and may cluster at long trips (staying handicaps) or on heavy/soft ground, so the lift could be a trip or going effect", "horses that last ran over jumps are excluded by last_race_type = 'Flat', but dual-code horses with recent jumps form may still be present", "longshot bias at 16/1 or bigger; the lift must show below 16/1 (refinement) and not only at long prices", "comment-writer style for 'never involved' may differ between Flat and jumps and between GB and IRE; check that both regions point the same way", "big-field Flat handicaps concentrate at festivals and heritage meetings, where pricing and field strength differ", "the mark is likely to have dropped after a 20+ length beating, so mark relief rather than the comment could carry any lift" ], "mechanism": "In a big field, a horse that is never in contention is often eased or allowed to coast home once its chance has gone. A 20+ length margin then measures how little was asked of it, not its ability. In jumps handicaps, horses with both ingredients scored 1.324 on 1215 bets while heavily beaten horses without the flag scored 1.001. The earlier Flat test had no comment flag and used 8+ lengths, which mixed in horses that were ridden out. This tests whether the same mechanism works on the Flat.", "market_miss": "The form line shows a heavy beating plus 'never involved', and readers count them as two separate pieces of bad evidence. They are one event: the horse was out of it early and so was not pushed, which made the margin large. Counting it twice pushes the price out too far, which is what the jumps result showed. Flat punters are used to smaller margins, so a 20+ length beating may look even worse to them.", "prediction": { "direction": "positive", "size": "A/E 1.10 to 1.25 on roughly 150 to 400 bets", "falsified_if": "The rule is falsified if the broad rule scores A/E below 1.05, or if it scores no higher than the last_never_involved = 0 control, or if the lift appears only at 16/1 or bigger (the sp_decimal < 17 cut scoring at or below 1.0)." }, "notes": "I kept the rule sketch unchanged. Every column in it is pre-off. The jumps finding showed that both the never-involved comment and the 20+ length margin are needed, so neither is dropped. There is one refinement, a price cap below 16/1, because the jumps lift sat below 16/1. Flat beatings of 20+ lengths are rarer than jumps ones, so the bet count may fall short of 150. In that case the floor rule applies: a thin result that points the right way goes on to falsification and forward tracking." }
Timeline
Job 2819 finished
· engine:compute-1
hypothesis note H-c9d4fd57
· engine:perturb
perturbation result for H-c9d4fd57 (neighbour: drop: is_handicap = 1): pass
· engine:perturb
perturbation result for H-c9d4fd57 (neighbour: drop: race_type = 'Flat'): pass
· engine:perturb
perturbation result for H-c9d4fd57 (neighbour: >= 14 -> 17 (+20%)): pass
· engine:perturb
perturbation result for H-c9d4fd57 (neighbour: >= 14 -> 11 (-20%)): fail
· engine:perturb
perturbation result for H-c9d4fd57 (neighbour: >= 20 -> 24 (+20%)): pass
· engine:perturb
perturbation result for H-c9d4fd57 (neighbour: >= 20 -> 16 (-20%)): pass
· engine:perturb
compute-1 took job 2819 (mutate, attempt 1)
· compute-1
Job 2816 finished
· engine:compute-1
forward result for H-c9d4fd57 (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2816 (forward_check, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2814 finished
· engine:compute-1
H-c9d4fd57 Frozen → SHADOW vault skipped: last_beaten_lengths, last_never_involved do not exist before the discovery zone; track it forward instead
· engine:orchestrator