Hypotheses · negative · H-c9937ec9
Generalise: chasers who finished in the first three last time despite a bottom-third Jump Index are over-bet
fails: A/E 1.013, needs 0.95 or lower; p 0.5832 (lower tail), needs 0.05; periods [1.03, 0.96], each needs 0.99 or lower; A/E 1.013 against same-race control 1.004, needs 0.03 below
Part of the thread “Chase-bound winners that jumped poorly when winning are over-bet” 5 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- generalise
- Created
- 16 Oct, 16:50
- Tests logged
- 1
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-bfcb9669 (Chase-bound winners that jumped poorly when winning are over-bet) pointed the predicted way but failed the bar: A/E 0.78 on 240 bets (p 0.951), control 1.07. O-7acbc407
- AskedDoes a good last-time result (first to third) that hid poor jumping lead to chase runners running below their price? answered
- MechanismA horse that makes ground-losing jumping errors but still finishes in the first three had the race fall its way. Today's chase, against similar or better rivals, punishes the same errors more often, through lost ground or falls and unseats.
- Why the market misses itThe form figure (1, 2 or 3) is what punters and the market see. The jumping inefficiency only shows up in sectional and jump data, not in the result or the rating.
- Predictednegative, A/E 0.82 to 0.93 on 500+ bets
- Falsified ifA/E 0.97 or higher on 300+ bets, or no lower than the same pool with last_jump_index_pct >= 0.67
- Rule sketch
race_type = 'Chase' AND last_position <= 3 AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct <= 0.33
Mechanism and rationale
A horse that makes ground-losing jumping errors but still finishes in the first three had the race fall its way. Today's chase, against similar or better rivals, punishes the same errors more often, through lost ground or falls and unseats.
The rule
race_type = 'Chase' AND last_position <= 3 AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct <= 0.33Reads: race_type, last_position, last_race_type, last_jump_index_pct
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 3d5e8822b3e14c50edddb339918338f12075d3d4bb5684ad4510efa04dc2e1e5
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Price band: the poor-jumping winner deficit sat at 16/1+ (0 from 20), so a broad negative could be favourite-longshot bias. The refinement capped at 14/1 and the same-race control check this.
- Field size: bigger fields make jumping errors cost more and push Jump Index percentiles around, because the percentile is relative to the last field.
- Novice versus experienced chasers: a horse coming from hurdles (last_race_type = 'Hurdle') is a chase debutant whose hurdle Jump Index may not carry over to fences.
- Going: soft ground amplifies the cost of a poor jump.
- Country and data window: Jump Index data starts in GB in 2023-03 and in IRE in 2024-01. IRE was much weaker in the winner-only test (0.45), so check both regions.
- Form-figure effect: last-time placed horses may be over-bet whatever their jumping. The good-jumper control (pct >= 0.67) separates this.
- Control
{ "description": "The same-race control (the other runners in these chases) should sit near par (about 1.0 to 1.07, as in the poor-jumping winner test, where it was 1.07). That shows the deficit belongs to the selected horses and not to the races. The main comparison is the same pool with good jumping last time (last_jump_index_pct >= 0.67). It isolates jumping from the effect of a top-three form figure. The hypothesis needs the poor-jumper pool's A/E to be clearly below this control, by at least about 0.05. If it is not lower, the hypothesis is falsified.", "rule": "race_type = 'Chase' AND last_position <= 3 AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct >= 0.67" }
Discovery result
fail broad rule · 16 Oct, 16:53
- Bets
- 921
- 161 winners
- A/E
- 1.01
- 95%: 0.86 to 1.18
- SP return
- -20.5%
- level stakes
- Betfair SP return
- -7.8%
- 899 bets with a BSP
Strike rate 17.5%. p = 0.45. Same-race control: the other runners in these races had A/E 1.00, so the selection beat its own races. Zone: discovery. Evaluator eval-1.0, data 6a4e98be18e83933
By period
Falsification
No attacks yet. Only promising ideas are attacked.
Sealed holdout (vault)
Not queried. Only a frozen idea can spend its one query against the 2020-25 holdout.
Forward record
No forward record. Shadow tracking starts after the vault and counts only races run after the freeze.
Lineage
Agent runs
designer v1ok · 53s · 16 Oct, 16:50
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND last_position <= 3 AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct <= 0.33", "refinements": [ { "label": "14/1 or shorter (not favourite-longshot bias)", "rule": "race_type = 'Chase' AND last_position <= 3 AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct <= 0.33 AND sp_decimal <= 15" }, { "label": "Placed but not won last time (the new part of the generalisation)", "rule": "race_type = 'Chase' AND last_position IN (2, 3) AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct <= 0.33" }, { "label": "Last run was itself a chase (same fences, same errors)", "rule": "race_type = 'Chase' AND last_position <= 3 AND last_race_type = 'Chase' AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct <= 0.33" } ], "control": { "description": "The same-race control (the other runners in these chases) should sit near par (about 1.0 to 1.07, as in the poor-jumping winner test, where it was 1.07). That shows the deficit belongs to the selected horses and not to the races. The main comparison is the same pool with good jumping last time (last_jump_index_pct >= 0.67). It isolates jumping from the effect of a top-three form figure. The hypothesis needs the poor-jumper pool's A/E to be clearly below this control, by at least about 0.05. If it is not lower, the hypothesis is falsified.", "rule": "race_type = 'Chase' AND last_position <= 3 AND last_race_type IN ('Chase', 'Hurdle') AND last_jump_index_pct IS NOT NULL AND last_jump_index_pct >= 0.67" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.05, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1, "max_p": 0.2 }, "confounders": [ "Price band: the poor-jumping winner deficit sat at 16/1+ (0 from 20), so a broad negative could be favourite-longshot bias. The refinement capped at 14/1 and the same-race control check this.", "Field size: bigger fields make jumping errors cost more and push Jump Index percentiles around, because the percentile is relative to the last field.", "Novice versus experienced chasers: a horse coming from hurdles (last_race_type = 'Hurdle') is a chase debutant whose hurdle Jump Index may not carry over to fences.", "Going: soft ground amplifies the cost of a poor jump.", "Country and data window: Jump Index data starts in GB in 2023-03 and in IRE in 2024-01. IRE was much weaker in the winner-only test (0.45), so check both regions.", "Form-figure effect: last-time placed horses may be over-bet whatever their jumping. The good-jumper control (pct >= 0.67) separates this." ], "mechanism": "If a chaser finished first to third despite a bottom-third Jump Index (losing ground at its fences relative to its field), the race fell its way: the pace, rivals' mistakes or a forgiving track covered its jumping. Jumping inefficiency persists from run to run. In today's chase, against similar or better rivals, the same errors cost ground more often, or end in falls and unseats. So its true win chance is below what its recent form figure implies.", "market_miss": "Punters and the market price off the form figure (1, 2 or 3) and the official rating, and neither records how the horse jumped. Jumping inefficiency only shows up in RaceiQ sectional and jump data, which few market participants use. So the placed effort is taken at face value.", "prediction": { "direction": "negative", "size": "A/E 0.82 to 0.93 on 500+ bets, with the same-race control near 1.0", "falsified_if": "A/E 0.97 or higher on 300+ bets, or A/E not lower than the good-jumper control pool (same rule with last_jump_index_pct >= 0.67)" }, "notes": "The rule sketch is kept unchanged: all its columns are pre-off and it does not read the result. Jump Index data is available from 2023-03 in GB and 2024-01 in IRE, so the sample is restricted to that window. This generalises H-bfcb9669 (winners only: 0.78 on 240, killed on size) to first-to-third finishers, to get the sample needed. min_bets is raised to 300 to match the predicted 500+ pool. Read the result by price band and by region, given the earlier long-price concentration and the IRE weakness." }
Timeline
Job 2062 finished
· engine:compute-1
H-c9937ec9 Discovery → KILLED fails: A/E 1.013, needs 0.95 or lower; p 0.5832 (lower tail), needs 0.05; periods [1.03, 0.96], each needs 0.99 or lower; A/E 1.013 against same-race control 1.004, needs 0.03 below
· engine:evaluator
discovery result for H-c9937ec9 (broad rule): fail
· engine:evaluator
H-c9937ec9 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2062 (evaluate, attempt 1)
· compute-1
Job 2060 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-c9937ec9 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2060 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-c9937ec9: Generalise: chasers who finished in the first three last time despite a bottom-third Jump Index are over-bet (generalise)
· agent:investigator@v1
Every change is an event with an actor: an agent and its version, an engine, a human, or the importer. Current stage: Killed.