Hypotheses · trajectory · H-dcbc54fb
Rival: the going-well chase edge is carried by actual fallers, not unseaters
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
- rival-explanation
- Created
- 17 Oct, 02:36
- Tests logged
- 13
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-48103daf (Rival: GB fallers going well vs GB fallers not going well, the going-w) was predicted negative but came out the other way: A/E 1.03 on 191 bets (p 0.466 for the opposite direction). O-09d0efa4
- H-2ac5dd09 (Test-mechanism: unseated (not fell) chasers not going well carry the g) passed discovery as a niche: A/E 1.26 on 190 bets (p 0.157), same-race control 0.97. O-98ba927e
- AskedWithin the going-well chase system, is the lift carried by fallers (F) or by unseaters (UR)? If it is UR-only, the 'hidden good run' and the 'unseat over-punished' mechanisms are the same thing. answered
- MechanismIf the hidden-good-run mechanism is real, a horse that fell while travelling well ran a good race the result hides. That should pay even when the error was the horse's own. If the lift instead disappears for true falls, the system is just the unseat over-punishment effect seen in H-2ac5dd09.
- Why the market misses itThe F beside the name reads as failure and as a jumping risk. Punters do not see the in-running position before the fall, so a good run that ended on the floor is discounted twice.
- Predictedpositive, A/E 1.15 to 1.30 on 80+ bets
- Falsified ifGoing-well fallers score A/E at or below 1.02 while going-well unseaters carry the system's lift.
Mechanism and rationale
If the hidden-good-run mechanism is real, a horse that fell while travelling well ran a good race the result hides. That should pay even when the error was the horse's own. If the lift instead disappears for true falls, the system is just the unseat over-punishment effect seen in H-2ac5dd09.
The rule
race_type = 'Chase' AND last_fell_going_well = 1 AND last_non_finish_code = 'F'
Reads: race_type, last_fell_going_well, last_non_finish_code
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 28746c2f0633e51298842e11008d82b296e71b37a5f70b7db4346376ce33970e
- Frozen
- 17 Oct, 02:44
- Nothing in the definition can change after this.
- Confounders
- The F/UR non-finish code only exists from 2025-01, so the sample will be small (probably under 150). A thin result goes to falsification on its direction, not its significance.
- GB/IRE mix: the going-well chase edge has failed in IRE (0.92 on 53, sharpen 0.78), so a pooled result may hide a GB-only effect or be dragged down by IRE.
- The system's returns rest on a few long-priced winners (4 from 37 at 16/1 or bigger), so A/E can be driven by one or two results. The 14/1-or-shorter refinement checks this.
- Race readers word 'going well' differently, so last_fell_going_well may be tagged unevenly between regions and courses.
- Fallers are more likely than unseaters to have been hurt or knocked in confidence, which could lower their next run for reasons unrelated to market pricing.
- Faller and unseater groups may differ in trainer or class mix (e.g. novice chasers fall more), which confounds the F vs UR comparison.
- Control
{ "description": "Main comparison: going-well chase UNSEATERS (same system, last_non_finish_code = 'UR'), measured over the same F/UR-coded window (from 2025-01). If the hidden-good-run mechanism holds, fallers should score at least as well as these unseaters. If fallers sit near 1.0 and unseaters carry the lift, the system is just the unseat effect (H-2ac5dd09). As usual the lab also measures the other runners in the same races, and they should sit near 0.97–1.00, which rules out a race-level property.", "rule": "race_type = 'Chase' AND last_fell_going_well = 1 AND last_non_finish_code = 'UR'" }
Discovery result
pass broad rule (niche) · 17 Oct, 02:43
- Bets
- 85
- 15 winners
- A/E
- 1.26
- 95%: 0.70 to 2.07
- SP return
- +58.7%
- level stakes
- Betfair SP return
- +164.0%
- 85 bets with a BSP
Strike rate 17.6%. p = 0.22. Same-race control: the other runners in these races had A/E 0.96, 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: 14/1 or shorter: strip the long-priced winnerspass
70 bets · A/E 1.13 (0.60 to 1.93) · control 0.98 · 17 Oct, 02:44
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-27491.32after 2026-04-2721–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Perturb the price cap to 20/1 or shorterpass
77 bets · A/E 1.19 (0.65 to 1.99) · control 0.97 · 17 Oct, 02:44
Breakdown
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
195 bets · A/E 1.09 (0.71 to 1.60) · control 0.99 · 17 Oct, 02:58
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271301.15after 2026-04-27650.93Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: drop: last_fell_going_well = 1pass
253 bets · A/E 1.12 (0.78 to 1.56) · control 0.99 · 17 Oct, 02:58
Breakdown
Lineage
Agent runs
designer v1ok · 24s · 17 Oct, 02:36
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND last_fell_going_well = 1 AND last_non_finish_code = 'F'", "refinements": [ { "label": "GB only: the going-well edge has failed in IRE twice (0.92 on 53, 0.78 on 47)", "rule": "race_type = 'Chase' AND last_fell_going_well = 1 AND last_non_finish_code = 'F' AND region = 'GB'" }, { "label": "14/1 or shorter: tests whether the faller edge survives without a few long-priced winners", "rule": "race_type = 'Chase' AND last_fell_going_well = 1 AND last_non_finish_code = 'F' AND sp_decimal <= 15.0" } ], "control": { "description": "Main comparison: going-well chase UNSEATERS (same system, last_non_finish_code = 'UR'), measured over the same F/UR-coded window (from 2025-01). If the hidden-good-run mechanism holds, fallers should score at least as well as these unseaters. If fallers sit near 1.0 and unseaters carry the lift, the system is just the unseat effect (H-2ac5dd09). As usual the lab also measures the other runners in the same races, and they should sit near 0.97–1.00, which rules out a race-level property.", "rule": "race_type = 'Chase' AND last_fell_going_well = 1 AND last_non_finish_code = 'UR'" }, "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": [ "The F/UR non-finish code only exists from 2025-01, so the sample will be small (probably under 150). A thin result goes to falsification on its direction, not its significance.", "GB/IRE mix: the going-well chase edge has failed in IRE (0.92 on 53, sharpen 0.78), so a pooled result may hide a GB-only effect or be dragged down by IRE.", "The system's returns rest on a few long-priced winners (4 from 37 at 16/1 or bigger), so A/E can be driven by one or two results. The 14/1-or-shorter refinement checks this.", "Race readers word 'going well' differently, so last_fell_going_well may be tagged unevenly between regions and courses.", "Fallers are more likely than unseaters to have been hurt or knocked in confidence, which could lower their next run for reasons unrelated to market pricing.", "Faller and unseater groups may differ in trainer or class mix (e.g. novice chasers fall more), which confounds the F vs UR comparison." ], "mechanism": "A chaser that fell while travelling well ran a good race, and the result hides it. If the hidden-good-run mechanism is real, it should pay even when the error was the horse's own (a true fall), not only when the rider came off. If the lift disappears for true fallers but stays for unseaters, the going-well system is just the unseat over-punishment effect (H-2ac5dd09: chase unseaters not going well scored 1.26 on 190), not hidden form.", "market_miss": "Punters read the 'F' beside the name twice over: as a failed run and as a jumping risk. Most do not look at where the horse was in running when it fell, so a good run that ended on the floor gets discounted twice. That leaves the price too long when the horse was travelling well at the time.", "prediction": { "direction": "positive", "size": "A/E 1.15 to 1.30 on roughly 80+ bets (sample limited by the F/UR code starting in 2025-01)", "falsified_if": "Going-well chase fallers score A/E at or below 1.02 while going-well chase unseaters (the control) carry the system's lift (A/E at least 1.10). Also falsified if the faller A/E above 1.05 comes entirely from winners at 16/1 or bigger, with the 14/1-or-shorter cut at or below 1.0." }, "notes": "I kept the rule sketch: it uses only pre-off columns and slices no more than the question needs. Expect fewer than 150 bets, so this will probably not pass discovery on size. What matters is the direction against the UR control, which answers Q-d275473a. The refinements come straight from the stated confounders: GB-only because the IRE edge has failed, and 14/1-or-shorter because returns rest on long-priced winners." }
Timeline
Job 2547 finished
· engine:compute-1
hypothesis note H-dcbc54fb
· engine:perturb
perturbation result for H-dcbc54fb (neighbour: drop: last_non_finish_code = 'F'): pass
· engine:perturb
perturbation result for H-dcbc54fb (neighbour: drop: last_fell_going_well = 1): pass
· engine:perturb
perturbation result for H-dcbc54fb (neighbour: drop: race_type = 'Chase'): pass
· engine:perturb
compute-1 took job 2547 (mutate, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Job 2542 finished
· engine:compute-1
forward result for H-dcbc54fb (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2542 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2537 finished
· engine:compute-1
H-dcbc54fb 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 2537 (vault, attempt 1)
· compute-1
Job 2521 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-dcbc54fb Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-dcbc54fb (partition: Handicaps only): pass
· engine:evaluator