Hypotheses · trajectory · H-f2244c8b
Rival: chase fallers/unseaters NOT going well show the same 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
- rival-explanation
- Created
- 17 Oct, 02:07
- 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
- H85-fell-when-going-well (H85: fell when going well) was GREEN in the earlier research: A/E 1.13 on 405 bets (periods 1.15 / 1.11); now PROMISING. O-add18290
- AskedDoes the chase lift need the horse to have been going well when it fell or unseated, or do all last-time chase fallers and unseaters beat their price? answered
- MechanismIf punters simply over-penalise an F or U, the bounce-back would show in every chaser that failed to complete through a fall or unseat, whatever its position at the time.
- Why the market misses itForm figures show F or U the same way whether the horse was going well or already beaten. So if the market overreacts to the letter itself, it overreacts to both groups.
- Predictedpositive, A/E 1.00 to 1.05 on 400+ bets if the mechanism is specific (the rival fails). A/E 1.15+ would mean the rival holds.
- Falsified ifThe rival is ruled out if A/E is at or below 1.05 with the same-race control near 1.0, which supports 'going well' as the active ingredient.
- Rule sketch
race_type = 'Chase' AND last_fell_or_unseated = 1 AND last_fell_going_well = 0
Mechanism and rationale
If punters simply over-penalise an F or U, the bounce-back would show in every chaser that failed to complete through a fall or unseat, whatever its position at the time.
The rule
race_type = 'Chase' AND last_fell_or_unseated = 1 AND COALESCE(last_fell_going_well, 0) = 0
Reads: race_type, last_fell_or_unseated, last_fell_going_well
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- f83ce1cef4e7771721145bd8453454b50460278a8bec7aab4619e8999dbc2d84
- Frozen
- 17 Oct, 02:11
- Nothing in the definition can change after this.
- Confounders
- Horses that fell or unseated early never showed their ability, so their form is uninformative rather than over-penalised. That dilutes any lift and may mix in horses that jump poorly by habit.
- Price band: horses not going well when they fell are likely longer-priced next time, and edges die at 16/1+ (prior finding), so a pooled A/E can hide an effect that exists only at shorter prices.
- Field size: big handicap chases produce more F/U and more bystander unseats (brought down, hampered), and have different A/E baselines.
- Region: the chase-error edge so far is GB-led (IRE non-finishers 0.433 on 23), so a mix of regions could mask or manufacture a difference.
- Calendar: the data window starts on 1 Nov 2025 (last_fell_* availability), so this covers one season. Late-period skews seen elsewhere in this thread (after 27 April 2026) could drive the result.
- General bounce-back by well-beaten chasers (fancied, well-beaten no-error chasers 1.112 on 397) may lift any last-time disappointment, whether or not it was an F/U.
- last_fell_going_well may be NULL when not coded. COALESCE treats NULL as 'not going well', which could put unknown-status fallers into this group.
Discovery result
pass broad rule (niche) · 17 Oct, 02:09
- Bets
- 270
- 29 winners
- A/E
- 1.08
- 95%: 0.73 to 1.56
- SP return
- -41.6%
- level stakes
- Betfair SP return
- -32.5%
- 270 bets with a BSP
Strike rate 10.7%. p = 0.36. Same-race control: the other runners in these races had A/E 0.99, 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.
- partition: Explicit not-going-well only (drop NULL-coded fallers)pass
270 bets · A/E 1.08 (0.73 to 1.56) · control 0.99 · 17 Oct, 02:11
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271881.03after 2026-04-27821.24Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - partition: F/U came over fences last timepass
244 bets · A/E 1.19 (0.80 to 1.71) · control 0.98 · 17 Oct, 02:11
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:11
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
958 bets · A/E 1.09 (0.87 to 1.37) · control 0.99 · 17 Oct, 02:11
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-275291.06after 2026-04-274291.15Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: drop: last_fell_or_unseated = 1fail
13,078 bets · A/E 1.00 (0.95 to 1.05) · control 1.30 · 17 Oct, 02:11
Breakdown
Lineage
Agent runs
designer v1ok · 59s · 17 Oct, 02:07
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND last_fell_or_unseated = 1 AND COALESCE(last_fell_going_well, 0) = 0", "refinements": [ { "label": "GB only", "rule": "race_type = 'Chase' AND last_fell_or_unseated = 1 AND COALESCE(last_fell_going_well, 0) = 0 AND region = 'GB'" }, { "label": "14/1 or shorter", "rule": "race_type = 'Chase' AND last_fell_or_unseated = 1 AND COALESCE(last_fell_going_well, 0) = 0 AND sp_decimal <= 15.0" }, { "label": "F/U was over fences", "rule": "race_type = 'Chase' AND last_fell_or_unseated = 1 AND COALESCE(last_fell_going_well, 0) = 0 AND last_race_type = 'Chase'" } ], "control": { "description": "The lab's standard comparison is the other runners in the same chases. They should come out near A/E 1.0; if they are well above 1.0, the lift belongs to the races and not to the F/U. The comparison that settles the question is the fell-going-well chase group (the parent edge, A/E 1.297 on 165), measured over the same window. The rival holds only if this not-going-well group gets close to that figure. If this group sits near par while the going-well group is above it, 'going well' is what drives the edge.", "rule": "race_type = 'Chase' AND last_fell_or_unseated = 1 AND last_fell_going_well = 1" }, "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": [ "Horses that fell or unseated early never showed their ability, so their form is uninformative rather than over-penalised. That dilutes any lift and may mix in horses that jump poorly by habit.", "Price band: horses not going well when they fell are likely longer-priced next time, and edges die at 16/1+ (prior finding), so a pooled A/E can hide an effect that exists only at shorter prices.", "Field size: big handicap chases produce more F/U and more bystander unseats (brought down, hampered), and have different A/E baselines.", "Region: the chase-error edge so far is GB-led (IRE non-finishers 0.433 on 23), so a mix of regions could mask or manufacture a difference.", "Calendar: the data window starts on 1 Nov 2025 (last_fell_* availability), so this covers one season. Late-period skews seen elsewhere in this thread (after 27 April 2026) could drive the result.", "General bounce-back by well-beaten chasers (fancied, well-beaten no-error chasers 1.112 on 397) may lift any last-time disappointment, whether or not it was an F/U.", "last_fell_going_well may be NULL when not coded. COALESCE treats NULL as 'not going well', which could put unknown-status fallers into this group." ], "mechanism": "If punters simply over-penalise the F or U letter in the form figures, the bounce-back should show in every chaser whose last run ended in a fall or unseat, whatever its position at the time. If the lift exists only for horses that were going well, the edge comes from hidden ability: the horse was running well enough to win and the market cannot see that behind the letter. This test separates the two by measuring the F/U chasers that were NOT going well.", "market_miss": "Form figures show F or U the same way whether the horse was travelling strongly or already beaten. If the market reacts to the letter itself, it will under-price both groups equally. If it reads the race comments, only the going-well group, whose ability is hidden, will be mispriced.", "prediction": { "direction": "positive", "size": "Expected A/E 1.00–1.05 on roughly 300–500 bets if the edge is specific to going well (the rival fails). A/E 1.15 or more would mean the rival holds.", "falsified_if": "The rival is ruled out if A/E is at or below 1.05 while the same-race control is near 1.0 and the going-well control stays clearly above it. That would make 'going well' the active ingredient. The rival is supported only if A/E is 1.15 or more with p ≤ 0.05." }, "notes": "This is a rival-explanation test. The expected outcome is a FAIL, and a fail is informative because it backs the specificity of SYS-fell-when-going-well-chase. The NULL handling for last_fell_going_well is the only change from the sketch. The window starts on 2025-11-01 (one season), so any pass needs forward confirmation across a second winter. Read the result at BSP as well as SP, because the parent edge paid only at BSP." }
Timeline
Job 2442 finished
· engine:compute-1
hypothesis note H-f2244c8b
· engine:perturb
perturbation result for H-f2244c8b (neighbour: drop: COALESCE(last_fell_going_well, 0) = 0): pass
· engine:perturb
perturbation result for H-f2244c8b (neighbour: drop: last_fell_or_unseated = 1): fail
· engine:perturb
perturbation result for H-f2244c8b (neighbour: drop: race_type = 'Chase'): pass
· engine:perturb
compute-1 took job 2442 (mutate, attempt 1)
· compute-1
Job 2441 finished
· engine:compute-1
forward result for H-f2244c8b (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2441 (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 2439 finished
· engine:compute-1
H-f2244c8b Frozen → SHADOW vault skipped: last_fell_or_unseated, last_fell_going_well do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 2439 (vault, attempt 1)
· compute-1
Job 2432 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-f2244c8b Falsification → FROZEN survived falsification
· engine:falsification