Hypotheses · story · H-46c992f8
Replicate: Flat handicappers with a close recent finish after one heavy beating
fails: A/E 1.021, needs 1.05; p 0.4117, needs 0.05 or lower; periods [0.93, 1.04], each needs 1.0; A/E 1.021 against same-race control 1.0, needs 0.03 above (not a niche pass: A/E 1.021 below 1.05; does not beat the same-race control 1.0; a period points the other way [0.93, 1.04])
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:11
- 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-c9d4fd57 (Replicate: Flat handicappers heavily beaten and never involved in a bi) passed discovery as a niche: A/E 1.31 on 463 bets (p 0.091), same-race control 0.98. O-276bf66a
- H-c9d4fd57 (Replicate: Flat handicappers heavily beaten and never involved in a bi) survived falsification: 4 of 5 attacks left it standing; it is frozen for its one vault query. O-463063c7
- H-baef90d8 (Sharpen: never-involved heavy beatings by horses with a recent close f) passed discovery: A/E 1.72 on 236 bets (p 0.003), same-race control 0.95. O-e041a181
- AskedDoes the one-bad-run rebound replicate on the Flat once recent close form is required, moving the Flat lift out of the 16/1+ band? testing
- MechanismThe same cause as over jumps: one bad run after close recent form usually has a temporary cause. Flat margins are compressed, so the cuts are scaled down: 12+ lengths counts as a heavy beating and within 3 lengths counts as close. These cuts were chosen before seeing any numbers.
- Why the market misses itFlat punters are used to small margins, so a 12+ length defeat looks disastrous and dominates the price, even when the horse ran close in one of its two runs before that.
- Predictedpositive, A/E 1.10 to 1.25 on 400+ bets, with the lift present below 16/1
- Falsified if
Mechanism and rationale
The same cause as over jumps: one bad run after close recent form usually has a temporary cause. Flat margins are compressed, so the cuts are scaled down: 12+ lengths counts as a heavy beating and within 3 lengths counts as close. These cuts were chosen before seeing any numbers.
The rule
race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 3
Reads: race_type, is_handicap, last_race_type, last_beaten_lengths, best_last3_beaten
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 5a0f18fb8b4215e3ee484d185846f8304f2a42fbcbf323f03a68ea829e5dc5cb
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Flat 12+ length defeats cluster in staying races and on soft or heavy ground, so the rebound may only be a ground or trip change; check going_group and distance_yards against the last run
- best_last3_beaten exists only from 2025-11-01, so the window is short and mostly winter all-weather plus one turf summer; the window can lean the result toward the surface
- recent winners count as 0 lengths, so the close-form group mixes last-3 winners (raised in the weights) with near-misses
- a bad draw in a big field can cause a one-off heavy beating that the market already discounts
- longshot bias at 16/1 or bigger: the earlier Flat lift sat almost entirely at 16/1+ from few winners
- surface switch (turf to all-weather or back) between the bad run and today can explain both the beating and the rebound
- Control
{ "description": "Same-race rivals should come out near A/E 1.0 (about 0.95 to 1.0 after the overround). If they also show a lift, the effect belongs to the race type (staying or soft-ground Flat handicaps), not to the horse. The second comparison is Flat handicappers beaten 12+ lengths last time without a close recent finish (best_last3_beaten > 3). They should sit at or below 1.0, as the unflagged heavily beaten group did over jumps. A lift that is about as large in this group would mean the close-form condition adds nothing.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten > 3" }
Discovery result
fail broad rule · 17 Oct, 04:12
- Bets
- 2,055
- 149 winners
- A/E
- 1.02
- 95%: 0.86 to 1.20
- SP return
- -16.7%
- level stakes
- Betfair SP return
- +14.1%
- 2,025 bets with a BSP
Strike rate 7.3%. p = 0.41. 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 · 30s · 17 Oct, 04:11
Output (schema-checked)
{ "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 3", "refinements": [ { "label": "Below 16/1: the question is whether the Flat lift moves out of the longshot band", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 3 AND sp_decimal < 17" }, { "label": "Close but not a recent winner (winners count as 0 lengths; over jumps, leaving them out raised the lift)", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten > 0 AND best_last3_beaten <= 3" }, { "label": "Heavy beating marked never involved (the carrier of the comment flag over jumps and on the Flat)", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 3 AND last_never_involved = 1" } ], "control": { "description": "Same-race rivals should come out near A/E 1.0 (about 0.95 to 1.0 after the overround). If they also show a lift, the effect belongs to the race type (staying or soft-ground Flat handicaps), not to the horse. The second comparison is Flat handicappers beaten 12+ lengths last time without a close recent finish (best_last3_beaten > 3). They should sit at or below 1.0, as the unflagged heavily beaten group did over jumps. A lift that is about as large in this group would mean the close-form condition adds nothing.", "rule": "race_type = 'Flat' AND is_handicap = 1 AND last_race_type = 'Flat' AND last_beaten_lengths >= 12 AND best_last3_beaten IS NOT NULL AND best_last3_beaten > 3" }, "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": [ "Flat 12+ length defeats cluster in staying races and on soft or heavy ground, so the rebound may only be a ground or trip change; check going_group and distance_yards against the last run", "best_last3_beaten exists only from 2025-11-01, so the window is short and mostly winter all-weather plus one turf summer; the window can lean the result toward the surface", "recent winners count as 0 lengths, so the close-form group mixes last-3 winners (raised in the weights) with near-misses", "a bad draw in a big field can cause a one-off heavy beating that the market already discounts", "longshot bias at 16/1 or bigger: the earlier Flat lift sat almost entirely at 16/1+ from few winners", "surface switch (turf to all-weather or back) between the bad run and today can explain both the beating and the rebound" ], "mechanism": "A Flat handicapper that finished within 3 lengths in one of its last three runs, then was beaten 12+ lengths last time, has usually met a temporary cause in that bad run: wrong ground or trip, a bad draw, trouble in running, or a one-off off day. Its ability is still about what its close run showed, and its mark has usually been eased or held. Because Flat margins are compressed, the jumps cuts (20+ lengths, within 6) are scaled down to 12+ and within 3. These cuts were fixed before seeing any data.", "market_miss": "Flat punters are used to small margins, so a 12+ length defeat looks disastrous and dominates the price. The close finish one or two runs earlier gets too little weight next to the most recent figure.", "prediction": { "direction": "positive", "size": "A/E 1.10 to 1.25 on 400+ bets, with the lift still present below 16/1 (sp_decimal < 17)", "falsified_if": "Falsified if the broad rule scores A/E below 1.05, or if the sp_decimal < 17 subset scores 1.0 or less (the Flat effect would still be a longshot artefact), or if the control without a close finish (best_last3_beaten > 3) shows a lift about as large." }, "notes": "I kept the rule sketch unchanged. It uses only pre-off columns, does not read the result, and has the minimum slicing the mechanism needs. Because last_beaten_lengths >= 12 is required, last-time non-finishers (NULL) are excluded by design. best_last3_beaten covers the last run as well, but that run is 12+ lengths, so the 3-length cut must come from one of the two runs before it. The best_last3_beaten window starts on 2025-11-01, so the sample may be thin. Under lab policy, a thin positive result goes on to falsification and forward tracking. It is not killed." }
Timeline
Job 2824 finished
· engine:compute-1
H-46c992f8 Discovery → KILLED fails: A/E 1.021, needs 1.05; p 0.4117, needs 0.05 or lower; periods [0.93, 1.04], each needs 1.0; A/E 1.021 against same-race control 1.0, needs 0.03 above (not a niche pass: A/E 1.021 below 1.05; does not beat the same-race control 1.0; a period points the other way [0.93, 1.04])
· engine:evaluator
discovery result for H-46c992f8 (broad rule): fail
· engine:evaluator
H-46c992f8 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2824 (evaluate, attempt 1)
· compute-1
Job 2822 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-46c992f8 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2822 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-46c992f8: Replicate: Flat handicappers with a close recent finish after one heavy beating (replicate)
· 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.