Hypotheses · story · H-e6eaa9ed
Rival: one-off chase-error edge is carried by horses fancied last time, not by today's drift
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H24: one off jumping error well beaten” 27 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 17 Oct, 01:37
- Tests logged
- 18
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-a014e900 (Rival: chase-error drift is mechanical (a bigger field), not a market ) survived falsification: 4 of 5 attacks left it standing; it is frozen for its one vault query. O-641c28ba
- H-373590f6 (Test-mechanism: one-off chase error, well beaten, price drifted from l) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-8a269021
- H-a014e900 (Rival: chase-error drift is mechanical (a bigger field), not a market ) passed discovery as a niche: A/E 1.46 on 132 bets (p 0.083), same-race control 0.96. O-bb2a576b
- AskedIs the drifted-runner lift really a sign that the horse was fancied before its blunder (short last_sp_decimal), rather than a reaction to today's drift? answered
- MechanismA horse sent off fancied last time was rated by the market before the error. If one blunder caused the heavy defeat, its ability is intact. Drift selects these horses because a short last price leaves room to drift, which would explain why a larger drift adds nothing.
- Why the market misses itToday's market reads the big beaten distance and poor form figure. It forgets that the same horse was well backed last time and was beaten by a one-off mistake, not by a lack of ability.
- Predictedpositive, A/E 1.25 to 1.45 on about 200 to 250 bets, regardless of drift
- Falsified if
Mechanism and rationale
A horse sent off fancied last time was rated by the market before the error. If one blunder caused the heavy defeat, its ability is intact. Drift selects these horses because a short last price leaves room to drift, which would explain why a larger drift adds nothing.
The rule
race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 7
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, last_beaten_lengths, last_sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- de6493df833bbc2f080fbb80b5bb2d47df1758ff7845b15b6ba5bd4ceaf44f5c
- Frozen
- 17 Oct, 01:42
- Nothing in the definition can change after this.
- Confounders
- Class drop today: horses fancied last time may be dropping in grade, so relief rather than restored form could explain the lift (GB race_class only; IRE race_class from July 2026)
- Region mix: GB carries the error edge and IRE replicates lose money at SP/BSP, so a pooled result may hide an IRE failure
- Overlap with the frozen drift subset H-373590f6: a short last price leaves more room to drift, so the two pools share runners and are not independent evidence
- Short window: remarked_last3 only exists from November 2025, so this is one season of the same chase-error pool with no forward bets
- Today's price: fancied-last-time horses are probably shorter today, and A/E may differ by price band whatever the mechanism
- Pulled-up or unseated runners (last_position NULL) behave differently from finishers beaten more than 10 lengths
- Control
{ "description": "The same one-off chase-error, well-beaten pool where the horse was NOT fancied last time (last_sp_decimal > 7). If the last-time price carries the edge, this group should sit near par (A/E about 1.0 to 1.10), clearly below the main rule. If it scores as well as the main rule, the hypothesis is falsified. Other runners in the same races should show A/E near or slightly below 1.0, so the lift is not a property of the races.", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal > 7" }
Discovery result
pass broad rule (niche) · 17 Oct, 01:41
- Bets
- 204
- 37 winners
- A/E
- 1.22
- 95%: 0.86 to 1.68
- SP return
- +12.2%
- level stakes
- Betfair SP return
- +37.0%
- 203 bets with a BSP
Strike rate 18.1%. p = 0.13. 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 6 survived.
- partition: Not drifted today: direct test of the rival claiminfo
49 bets · A/E 0.86 (0.45 to 1.51) · control 1.06 · 17 Oct, 01:42
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-2724–after 2026-04-2725–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - control: Fancied last time, beaten, but no jumping error (ingredient control)pass
397 bets · A/E 1.11 (0.85 to 1.43) · control 0.98 · 17 Oct, 01:42
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.05, 'max_p': 0.2}info
0 bets · · 17 Oct, 01:42
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: > 10 -> 8 (-20%)pass
233 bets · A/E 1.14 (0.81 to 1.55) · control 0.99 · 17 Oct, 01:46
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271121.20after 2026-04-271211.08Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 10 -> 12 (+20%)pass
188 bets · A/E 1.24 (0.86 to 1.73) · control 0.97 · 17 Oct, 01:46
Breakdown
Lineage
Agent runs
designer v1ok · 31s · 17 Oct, 01:37
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 7", "refinements": [ { "label": "Not drifted today (direct test of the rival)", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 7 AND sp_decimal IS NOT NULL AND sp_decimal <= last_sp_decimal" }, { "label": "GB only (region carrying the error edge)", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 7 AND region = 'GB'" }, { "label": "Under 16/1 today (edges die at big prices)", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal <= 7 AND sp_decimal IS NOT NULL AND sp_decimal < 17" } ], "control": { "description": "The same one-off chase-error, well-beaten pool where the horse was NOT fancied last time (last_sp_decimal > 7). If the last-time price carries the edge, this group should sit near par (A/E about 1.0 to 1.10), clearly below the main rule. If it scores as well as the main rule, the hypothesis is falsified. Other runners in the same races should show A/E near or slightly below 1.0, so the lift is not a property of the races.", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND (last_position IS NULL OR last_beaten_lengths > 10) AND last_sp_decimal IS NOT NULL AND last_sp_decimal > 7" }, "pass_criteria": { "min_bets": 150, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Class drop today: horses fancied last time may be dropping in grade, so relief rather than restored form could explain the lift (GB race_class only; IRE race_class from July 2026)", "Region mix: GB carries the error edge and IRE replicates lose money at SP/BSP, so a pooled result may hide an IRE failure", "Overlap with the frozen drift subset H-373590f6: a short last price leaves more room to drift, so the two pools share runners and are not independent evidence", "Short window: remarked_last3 only exists from November 2025, so this is one season of the same chase-error pool with no forward bets", "Today's price: fancied-last-time horses are probably shorter today, and A/E may differ by price band whatever the mechanism", "Pulled-up or unseated runners (last_position NULL) behave differently from finishers beaten more than 10 lengths" ], "mechanism": "If the market fancied a chaser (SP 6/1 or shorter) before its last run, that is independent evidence it had the ability. If a single jumping error then caused a heavy defeat or a non-finish, and it has no history of repeated errors, the ability is intact. The edge sits with the horse's last-time market standing. Today's drift is only a selector: a short last price leaves room to drift, which explains why bigger drifts add nothing.", "market_miss": "Today's market prices off the big beaten distance or the PU/F/UR figure and the poor recent form line. It underweights the fact that the horse was well backed last time and lost to a one-off blunder, not a lack of ability.", "prediction": { "direction": "positive", "size": "A/E 1.25 to 1.45 on about 200 to 250 bets, holding whether or not the horse drifted today", "falsified_if": "A/E of 1.10 or lower on the main rule, or the control (last_sp_decimal > 7) scoring as well as or better than the main rule. Either means the last-time price does not carry the edge." }, "notes": "The rule sketch is kept unchanged. All its columns are pre-off and it does not read the result. The 'not drifted' refinement is the direct test of the rival: a lift there backs the last-price explanation over the drift explanation. Because the pool overlaps heavily with H-373590f6, a pass here should be read as a re-explanation of the same discovery result, not as an independent confirmation. min_ae is raised to 1.10 to match the falsification threshold." }
Timeline
Job 2330 finished
· engine:compute-1
hypothesis note H-e6eaa9ed
· engine:perturb
perturbation result for H-e6eaa9ed (neighbour: drop: remarked_last3 = 3): pass
· engine:perturb
perturbation result for H-e6eaa9ed (neighbour: drop: race_type = 'Chase'): pass
· engine:perturb
perturbation result for H-e6eaa9ed (neighbour: <= 7 -> 8 (+20%)): pass
· engine:perturb
perturbation result for H-e6eaa9ed (neighbour: <= 7 -> 6 (-20%)): pass
· engine:perturb
perturbation result for H-e6eaa9ed (neighbour: > 10 -> 12 (+20%)): pass
· engine:perturb
perturbation result for H-e6eaa9ed (neighbour: > 10 -> 8 (-20%)): pass
· engine:perturb
compute-1 took job 2330 (mutate, attempt 1)
· compute-1
Job 2328 finished
· engine:compute-1
forward result for H-e6eaa9ed (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2328 (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 2327 finished
· engine:compute-1
H-e6eaa9ed Frozen → SHADOW vault skipped: remarked_last3, jumping_errors_last3, last_jumping_error, last_beaten_lengths do not exist before the discovery zone; track it forward instead
· engine:orchestrator