Hypotheses · trajectory · H-2ac5dd09
Test-mechanism: unseated (not fell) chasers not going well carry the general F/U lift
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H85: fell when going well” 20 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- test-mechanism
- Created
- 17 Oct, 02:33
- Tests logged
- 14
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-f2244c8b (Rival: chase fallers/unseaters NOT going well show the same lift) passed discovery as a niche: A/E 1.08 on 270 bets (p 0.356), same-race control 0.99. O-39a98a2c
- H-f2244c8b (Rival: chase fallers/unseaters NOT going well show the same lift) survived falsification: 5 of 5 attacks left it standing; it is frozen for its one vault query. O-82b05d73
- AskedIs the small general lift on non-going-well chase F/U carried by unseated riders (often rider error) rather than fallers (horse error)? answered
- MechanismAn unseat is often a rider losing balance at a minor mistake. The horse may have jumped adequately and been fit to continue, so its ability is intact. A fall is a horse error and more often a real sign of poor jumping.
- Why the market misses itForm figures print U next to F and punters treat both as a failed run. The market discounts both much the same, though the unseat carries less information about the horse.
- Predictedpositive, A/E 1.10 to 1.20 on 120+ bets, with fallers in the same pool near 1.0
- Falsified ifUnseaters score A/E at or below 1.02, or fallers score as high as unseaters.
- Rule sketch
Mechanism and rationale
An unseat is often a rider losing balance at a minor mistake. The horse may have jumped adequately and been fit to continue, so its ability is intact. A fall is a horse error and more often a real sign of poor jumping.
The rule
race_type = 'Chase' AND last_non_finish_code = 'UR' AND COALESCE(last_fell_going_well, 0) = 0
Reads: race_type, last_non_finish_code, last_fell_going_well
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 78ca980f9e731a527a05e323c617596a00ed2527d1e93fe4b9443f0501b701e7
- Frozen
- 17 Oct, 02:43
- Nothing in the definition can change after this.
- Confounders
- Rider quality: claimers and amateurs unseat more often, and a change to a stronger jockey next time could explain any lift (look at last_jockey vs jockey)
- The going-well exclusion only works from 2025-11. last_fell_going_well is NULL before then, so from 2025-01 to 2025-10 the COALESCE lets going-well unseaters into the pool (refinement 1 isolates the clean window)
- last_non_finish_code only exists from 2025-01 (before that every non-finisher is PU), so the sample covers about 21 months and at most two winters
- GB/IRE split: earlier chase-error and fell-going-well edges were GB-led, with IRE at or below par
- Long-price dependence: earlier F/U lifts came from a few winners at 16/1+ and lost money at BSP
- Field size and race class of the last race (big handicap chases bring more incidental unseats from interference)
- Overlap with the general F/U bounce-back already measured (H-f2244c8b, A/E 1.085 on 270)
- Control
{ "description": "Same-race other runners should sit near A/E 1.0. The control that tests the mechanism is chase fallers (code F) that were not going well, over the same window. The prediction is that they score near 1.0 (about 0.95 to 1.03), clearly below the unseaters. If fallers match or beat the unseaters, the unseat-vs-fall mechanism is falsified even if the main rule passes.", "rule": "race_type = 'Chase' AND last_non_finish_code = 'F' AND COALESCE(last_fell_going_well, 0) = 0" }
Discovery result
pass broad rule (niche) · 17 Oct, 02:35
- Bets
- 190
- 23 winners
- A/E
- 1.26
- 95%: 0.80 to 1.90
- SP return
- +16.8%
- level stakes
- Betfair SP return
- +132.1%
- 190 bets with a BSP
Strike rate 12.1%. p = 0.16. 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
Each attack is a deliberate attempt to kill the idea. 5 of 5 survived.
- control: Control: chase fallers (F) not going well, same windowpass
168 bets · A/E 1.03 (0.63 to 1.60) · control 1.01 · 17 Oct, 02:43
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271200.81after 2026-04-27481.58Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - partition: Clean flag window: going-well flag explicitly 0 (not NULL)pass
190 bets · A/E 1.26 (0.80 to 1.90) · control 0.97 · 17 Oct, 02:43
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, 02:58
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: drop: race_type = 'Chase'pass
516 bets · A/E 1.07 (0.79 to 1.42) · control 0.99 · 17 Oct, 02:35
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272681.13after 2026-04-272481.00Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: drop: last_non_finish_code = 'UR'fail
13,078 bets · A/E 1.00 (0.95 to 1.05) · control 1.30 · 17 Oct, 02:35
Breakdown
Lineage
Agent runs
designer v1ok · 33s · 17 Oct, 02:33
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND COALESCE(last_fell_going_well, 0) = 0", "refinements": [ { "label": "going-well flag populated (2025-11 on)", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND COALESCE(last_fell_going_well, 0) = 0 AND last_fell_or_unseated = 1" }, { "label": "GB only", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND COALESCE(last_fell_going_well, 0) = 0 AND region = 'GB'" }, { "label": "shorter than 16/1", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND COALESCE(last_fell_going_well, 0) = 0 AND sp_decimal < 17" } ], "control": { "description": "Same-race other runners should sit near A/E 1.0. The control that tests the mechanism is chase fallers (code F) that were not going well, over the same window. The prediction is that they score near 1.0 (about 0.95 to 1.03), clearly below the unseaters. If fallers match or beat the unseaters, the unseat-vs-fall mechanism is falsified even if the main rule passes.", "rule": "race_type = 'Chase' AND last_non_finish_code = 'F' AND COALESCE(last_fell_going_well, 0) = 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": [ "Rider quality: claimers and amateurs unseat more often, and a change to a stronger jockey next time could explain any lift (look at last_jockey vs jockey)", "The going-well exclusion only works from 2025-11. last_fell_going_well is NULL before then, so from 2025-01 to 2025-10 the COALESCE lets going-well unseaters into the pool (refinement 1 isolates the clean window)", "last_non_finish_code only exists from 2025-01 (before that every non-finisher is PU), so the sample covers about 21 months and at most two winters", "GB/IRE split: earlier chase-error and fell-going-well edges were GB-led, with IRE at or below par", "Long-price dependence: earlier F/U lifts came from a few winners at 16/1+ and lost money at BSP", "Field size and race class of the last race (big handicap chases bring more incidental unseats from interference)", "Overlap with the general F/U bounce-back already measured (H-f2244c8b, A/E 1.085 on 270)" ], "mechanism": "An unseat is often the rider losing balance at a minor mistake, or after interference. The horse may have jumped adequately and been fit to continue, so the run says little about its ability or jumping. A fall is a horse error and more often a real sign of poor jumping. So the general bounce-back after a chase F/U (A/E 1.085 on 270 for runners not going well) should come mainly from unseaters, with fallers near par.", "market_miss": "Form figures print U next to F, and punters and the price-making process treat both as a failed run with a similar discount. The unseat carries less negative information about the horse, so unseaters are underpriced next time compared with fallers.", "prediction": { "direction": "positive", "size": "A/E about 1.10 to 1.20 for chase unseaters not going well, on 150+ bets, with the faller control near 1.0", "falsified_if": "The unseater rule scores A/E at or below 1.02, or the faller control (code F, not going well) scores as high as or higher than the unseaters." }, "notes": "The draft rule is kept: every column is pre_off. Caveat: last_fell_going_well starts 2025-11 but last_non_finish_code starts 2025-01, so for 2025-01 to 2025-10 the exclusion is a no-op. Refinement 1 (last_fell_or_unseated = 1, available from 2025-11) gives the clean window where the exclusion really applies. The hypothesis predicted 120+ bets, but the lab floor of 150 is used. If the result is thin but points the right way, it goes to falsification and forward tracking. Report SP and BSP ROI, plus the 16/1+ split, because earlier F/U lifts were profitable only at BSP and were driven by long-priced winners." }
Timeline
Job 2541 finished
· engine:compute-1
forward result for H-2ac5dd09 (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2541 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2512 finished
· engine:compute-1
H-2ac5dd09 Frozen → SHADOW vault skipped: last_fell_going_well do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 2512 (vault, attempt 1)
· compute-1
Job 2505 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-2ac5dd09 Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-2ac5dd09 (partition: Unseat came in a chase last time (true jumping-context unseat)): pass
· engine:evaluator
compute-1 took job 2505 (attack, attempt 1)
· compute-1
Job 2504 finished
· engine:compute-1
falsification result for H-2ac5dd09 (partition: Handicap chases only): pass
· engine:evaluator
compute-1 took job 2504 (attack, attempt 1)
· compute-1
Job 2503 finished
· engine:compute-1
falsification result for H-2ac5dd09 (partition: Same jockey as the unseat run (no rider upgrade)): pass
· engine:evaluator
compute-1 took job 2503 (attack, attempt 1)
· compute-1
Job 2502 finished
· engine:compute-1
falsification result for H-2ac5dd09 (partition: Clean flag window: going-well flag explicitly 0 (not NULL)): pass
· engine:evaluator