Hypotheses · story · H-3a4c45cd
Rival: H24 chase edge is only the faller/unseater story; finishers beaten 10L+ do not beat their price
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:03
- Tests logged
- 17
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
- H24-one-off-jumping-error-well-beaten (H24: one off jumping error well beaten) was GREEN in the earlier research: A/E 1.17 on 1570 bets (periods 1.12 / 1.23); now PROMISING. O-6e6fe2b6
- AskedDoes the H24 chase edge come from finishers beaten more than 10 lengths, or from runners that did not finish (fell, unseated, pulled up)? answered
- MechanismIf the jumping-error remark is what misleads the market, completed runs where the mistake left the horse well beaten should carry the lift too. If not, the edge comes from fallers and unseaters, whose zero in the form figures is a known mispricing that has nothing to do with this remark.
- Why the market misses itA finisher beaten 15 lengths shows a poor figure and a big beaten distance. Punters read that as a lack of ability, not as the one mistake in the remark.
- Predictedpositive, A/E 1.10 to 1.20 on 250+ bets if the remark-based story is real
- Falsified ifA/E of 1.03 or lower on the finishers-only pool, while the full system stays above 1.15. That would mean the lift belongs to non-finishers.
- Rule sketch
race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NOT NULL AND last_beaten_lengths > 10
Mechanism and rationale
If the jumping-error remark is what misleads the market, completed runs where the mistake left the horse well beaten should carry the lift too. If not, the edge comes from fallers and unseaters, whose zero in the form figures is a known mispricing that has nothing to do with this remark.
The rule
race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NOT NULL AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths > 10
Reads: race_type, remarked_last3, jumping_errors_last3, last_jumping_error, last_position, last_beaten_lengths
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 6e25930b504b39ce2fe26c7fed34ddaaf078e76a43078100ebb69381f7897e3c
- Frozen
- 17 Oct, 01:08
- Nothing in the definition can change after this.
- Confounders
- Non-finishers' prices are already discounted for the fall/unseat, so the zero in the form figures is a separate, known mispricing; it must not be mixed into this pool (hence last_position IS NOT NULL)
- Field size of the last race: big beaten distances are easier in big, strung-out fields
- Going on the last run: heavy-ground chases inflate beaten distances regardless of the error
- Class of the last race: a class drop today can carry the lift on its own
- Price level: in this family the lift sits at 7/1 and shorter and dies at 16/1+, so a long-price-heavy finisher pool can dilute a real effect
- Overlap with the hurdle/flat jumping-error data is excluded by race_type = 'Chase'; the 2025-11 start of the remark columns makes the sample short and season-bound
- Control
{ "description": "Same-race other runners should sit near A/E 1.0; if they are also above 1.0 the lift is a property of the races (e.g. small chase fields), not the remark. The rival comparison is the non-finisher arm of the same H24 chase system (fell/unseated/pulled up last time after the one remarked error): the rival says the lift lives there and not in the beaten-10L+ finishers. Read the two arms side by side against the full chase system (1.224 on 536).", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL" }
Discovery result
pass broad rule (niche) · 17 Oct, 01:04
- Bets
- 389
- 53 winners
- A/E
- 1.18
- 95%: 0.89 to 1.55
- SP return
- -8.5%
- level stakes
- Betfair SP return
- +11.9%
- 388 bets with a BSP
Strike rate 13.6%. p = 0.13. Same-race control: the other runners in these races had A/E 0.98, 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. 6 of 6 survived.
- perturbation: Beaten-lengths cut raised to 12.5Lpass
354 bets · A/E 1.17 (0.86 to 1.55) · control 0.99 · 17 Oct, 01:08
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271681.05after 2026-04-271861.26Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Beaten-lengths cut lowered to 8Lpass
443 bets · A/E 1.07 (0.81 to 1.38) · control 1.00 · 17 Oct, 01:08
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, 01:08
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
443 bets · A/E 1.07 (0.81 to 1.38) · control 1.00 · 17 Oct, 01:04
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272100.98after 2026-04-272331.14Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 10 -> 12 (+20%)pass
359 bets · A/E 1.20 (0.88 to 1.58) · control 0.98 · 17 Oct, 01:04
Breakdown
Lineage
Agent runs
designer v1ok · 36s · 17 Oct, 01:03
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 NOT NULL AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths > 10", "refinements": [ { "label": "14/1 or shorter", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NOT NULL AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths > 10 AND sp_decimal IS NOT NULL AND sp_decimal <= 15" }, { "label": "well beaten but not tailed off (10-30L)", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NOT NULL AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths > 10 AND last_beaten_lengths <= 30" } ], "control": { "description": "Same-race other runners should sit near A/E 1.0; if they are also above 1.0 the lift is a property of the races (e.g. small chase fields), not the remark. The rival comparison is the non-finisher arm of the same H24 chase system (fell/unseated/pulled up last time after the one remarked error): the rival says the lift lives there and not in the beaten-10L+ finishers. Read the two arms side by side against the full chase system (1.224 on 536).", "rule": "race_type = 'Chase' AND remarked_last3 = 3 AND jumping_errors_last3 = 1 AND last_jumping_error = 1 AND last_position IS NULL" }, "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": [ "Non-finishers' prices are already discounted for the fall/unseat, so the zero in the form figures is a separate, known mispricing; it must not be mixed into this pool (hence last_position IS NOT NULL)", "Field size of the last race: big beaten distances are easier in big, strung-out fields", "Going on the last run: heavy-ground chases inflate beaten distances regardless of the error", "Class of the last race: a class drop today can carry the lift on its own", "Price level: in this family the lift sits at 7/1 and shorter and dies at 16/1+, so a long-price-heavy finisher pool can dilute a real effect", "Overlap with the hurdle/flat jumping-error data is excluded by race_type = 'Chase'; the 2025-11 start of the remark columns makes the sample short and season-bound" ], "mechanism": "A single remarked jumping error in the last run, with clean remarks in the two before it, explains a poor run without saying anything about ability. If that remark is what the market under-weights, chasers that completed but were beaten more than 10 lengths after the one mistake should beat their price, because the big beaten distance is mostly the cost of the error.", "market_miss": "A finisher beaten 15+ lengths shows a poor figure and a big beaten distance in the form. Punters and compilers read that as a lack of ability and lengthen the price, missing the one-off mistake named in the remark that cost the ground. Unlike fallers, whose zero is widely known to hide ability, a plain well-beaten finish carries no such signal.", "prediction": { "direction": "positive", "size": "A/E 1.10 to 1.20 on roughly 200-300 bets if the remark-based story is real", "falsified_if": "A/E of 1.03 or lower on this finishers-beaten-10L+ pool while the full H24 chase system stays above 1.15 and the non-finisher control arm carries the lift; that would mean the edge belongs to fallers/unseaters, not the remark." }, "notes": "The remark columns (remarked_last3, jumping_errors_last3, last_jumping_error, last_beaten_lengths) are only available from 2025-11-01 in GB and IRE, so the discovery sample is short and the bet count may fall below 150. A thin result that points the right way goes on to falsification and forward tracking. I added last_beaten_lengths IS NOT NULL so the rule is explicit about missing distances; otherwise the rule sketch is kept as it was. Given the family's finding that the edge exists only at BSP, read the A/E at BSP as well as at SP." }
Timeline
Job 2157 finished
· engine:compute-1
forward result for H-3a4c45cd (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2157 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2154 finished
· engine:compute-1
H-3a4c45cd 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
compute-1 took job 2154 (vault, attempt 1)
· compute-1
Job 2148 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler
H-3a4c45cd Falsification → FROZEN survived falsification
· engine:falsification
falsification result for H-3a4c45cd (partition: Handicap chases only): pass
· engine:evaluator
compute-1 took job 2148 (attack, attempt 1)
· compute-1
Job 2147 finished
· engine:compute-1
falsification result for H-3a4c45cd (partition: Last race a small field (10 or fewer runners)): pass
· engine:evaluator
compute-1 took job 2147 (attack, attempt 1)
· compute-1
Job 2146 finished
· engine:compute-1
falsification result for H-3a4c45cd (price_band: 7/1 or shorter only): pass
· engine:evaluator
compute-1 took job 2146 (attack, attempt 1)
· compute-1
Job 2145 finished
· engine:compute-1
falsification result for H-3a4c45cd (control: Control: same finishers beaten 10L+ with clean remarks (no jumping error)): pass
· engine:evaluator