Hypotheses · story · H-4013e103
Rival: the undropped lift is raised marks (late win penalties), not marks left unchanged
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
Part of the thread “H36: pulled up after being held up” 60 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 17 Oct, 04:52
- 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
- H-2af132dc (Generalise: an unchanged mark after a heavy beating lifts close-form j) passed discovery: A/E 1.31 on 506 bets (p 0.026), same-race control 0.98. O-388a8a14
- H-6243bb06 (Test-mechanism: undropped recent winners after a heavy beating, given ) passed discovery: A/E 1.42 on 249 bets (p 0.034), same-race control 0.97. O-b3313152
- H-4392b730 (Rival: the jumps winner rebound is mark relief, strongest when the han) passed discovery but was falsified: IRE A/E 0.96. O-d836bfb4
- AskedWithin undropped close-form jumps runners, is the lift carried by marks left exactly unchanged (an excuse accepted) or by marks raised (a win penalty landing late, a horse rated better)? answered
- MechanismIf excuse-reading is the cause, an exactly unchanged mark carries the lift. The rival: a raised mark means the horse's earlier win was reassessed upwards, so these are improvers the handicapper rates better, and the improvement, not the excuse, is the cause.
- Why the market misses itUnder the excuse story, the market sees the margin and not the handicapper's leniency. Under the rival, the market sees a higher mark and a bad last run and underrates a horse that is still improving.
- Predictedpositive, A/E 1.20 to 1.40 on 300+ bets for rating_change = 0
- Falsified if
Mechanism and rationale
If excuse-reading is the cause, an exactly unchanged mark carries the lift. The rival: a raised mark means the horse's earlier win was reassessed upwards, so these are improvers the handicapper rates better, and the improvement, not the excuse, is the cause.
The rule
is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 6 AND rating_change IS NOT NULL AND rating_change = 0Reads: is_handicap, race_type, last_beaten_lengths, best_last3_beaten, rating_change
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 348988af98f8f3fabf50a9b434d66ed3393ea6449529a182988afe564260ea0f
- Frozen
- 17 Oct, 05:01
- Nothing in the definition can change after this.
- Confounders
- Few raised-mark runners: after a 20+ length beating, a rise in mark usually means a delayed win penalty, so the control group may be too small to separate the two stories
- Heavy overlap with H-2af132dc and the frozen unchanged-mark finding (1.31 on 506). This test splits that population and is not an independent confirmation
- IRE marks change less often, so the unchanged group carries more IRE runners. The parent IRE figure (1.55) could drive the lift through composition, which the GB refinement checks
- Short window: rating_change and best_last3_beaten exist only from 2025-11, so the sample is one jumps season
- Price concentration: the lift may rest on a few 16/1+ winners, as happened in H-40a72e24
- Control
{ "description": "The deciding comparison is the raised-mark remainder: the same close-form, 20+ length-beaten jumps handicappers whose mark went up (rating_change > 0, usually a win penalty or an upward reassessment). Under the excuse story the unchanged group beats the raised group. The improver rival is favoured if the raised group scores as high or higher. The other runners in the same races should show about 1.0 (the parent control was 0.98), which confirms the lift is not a property of these races.", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 6 AND rating_change IS NOT NULL AND rating_change > 0" }
Discovery result
pass broad rule · 17 Oct, 05:00
- Bets
- 392
- 53 winners
- A/E
- 1.44
- 95%: 1.08 to 1.89
- SP return
- +34.1%
- level stakes
- Betfair SP return
- +104.2%
- 391 bets with a BSP
Strike rate 13.5%. p = 0.0067. 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. 5 of 6 survived.
- perturbation: Perturb loose: 16+ lengths beaten, close form within 7.5 lengthspass
539 bets · A/E 1.28 (0.99 to 1.63) · control 0.98 · 17 Oct, 05:01
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-273041.35after 2026-04-272351.20Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Perturb tight: 25+ lengths beaten, close form within 5 lengthspass
262 bets · A/E 1.51 (1.05 to 2.11) · control 0.96 · 17 Oct, 05:01
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, 05:01
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: >= 20 -> 16 (-20%)pass
511 bets · A/E 1.33 (1.03 to 1.70) · control 0.97 · 17 Oct, 05:01
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-272891.40after 2026-04-272221.25Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: >= 20 -> 24 (+20%)pass
304 bets · A/E 1.52 (1.09 to 2.06) · control 0.96 · 17 Oct, 05:01
Breakdown
Lineage
Agent runs
designer v1ok · 40s · 17 Oct, 04:53
Output (schema-checked)
{ "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 6 AND rating_change IS NOT NULL AND rating_change = 0", "refinements": [ { "label": "GB only (IRE marks change less often, so check the unchanged-mark lift is not an IRE composition effect)", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 6 AND rating_change IS NOT NULL AND rating_change = 0 AND region = 'GB'" }, { "label": "15/1 or shorter (lift not resting on a few big-priced winners)", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 6 AND rating_change IS NOT NULL AND rating_change = 0 AND sp_decimal <= 16" } ], "control": { "description": "The deciding comparison is the raised-mark remainder: the same close-form, 20+ length-beaten jumps handicappers whose mark went up (rating_change > 0, usually a win penalty or an upward reassessment). Under the excuse story the unchanged group beats the raised group. The improver rival is favoured if the raised group scores as high or higher. The other runners in the same races should show about 1.0 (the parent control was 0.98), which confirms the lift is not a property of these races.", "rule": "is_handicap = 1 AND race_type IN ('Hurdle', 'Chase') AND last_beaten_lengths >= 20 AND best_last3_beaten IS NOT NULL AND best_last3_beaten <= 6 AND rating_change IS NOT NULL AND rating_change > 0" }, "pass_criteria": { "min_bets": 200, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 100, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Few raised-mark runners: after a 20+ length beating, a rise in mark usually means a delayed win penalty, so the control group may be too small to separate the two stories", "Heavy overlap with H-2af132dc and the frozen unchanged-mark finding (1.31 on 506). This test splits that population and is not an independent confirmation", "IRE marks change less often, so the unchanged group carries more IRE runners. The parent IRE figure (1.55) could drive the lift through composition, which the GB refinement checks", "Short window: rating_change and best_last3_beaten exist only from 2025-11, so the sample is one jumps season", "Price concentration: the lift may rest on a few 16/1+ winners, as happened in H-40a72e24" ], "mechanism": "Excuse-reading: a horse with recent close form (beaten 6 lengths or less in its last three runs) is beaten 20+ lengths and the handicapper leaves its mark unchanged, treating the run as an excuse. The horse runs off the same mark as its close-form runs. Bettors anchor on the bad margin, so it is underbet. The rival is that the lift comes from improvers whose mark was raised (an earlier win reassessed upwards), and the cause is improvement, not the excuse. If the excuse story is right, the lift sits in rating_change = 0 and not in rating_change > 0.", "market_miss": "Under the excuse story, the market prices the 20+ length margin on the form line, but does not see that the handicapper ignored the run and left the horse on a mark it was competitive off. Under the rival, the market sees a higher mark on top of a bad run and underrates a horse that is still improving. The control split decides between them.", "prediction": { "direction": "positive", "size": "A/E 1.20 to 1.40 on 300+ bets for rating_change = 0; the raised-mark control near 1.0 to 1.1", "falsified_if": "The unchanged-mark rule scores A/E at or below 1.10, or the rating_change > 0 control scores an A/E at or above the unchanged-mark rule's, which would favour the improver explanation" }, "notes": "I kept the rule sketch and added explicit IS NOT NULL guards on best_last3_beaten and rating_change. Both columns start 2025-11-01 in GB and IRE. The title says raised marks, but the rule tests unchanged marks, because that is the excuse prediction. The rival is judged through the control rule (rating_change > 0). The rule largely reproduces the frozen unchanged-mark finding, so read the forward results together with H-2af132dc and do not count them as independent confirmations." }
Timeline
Job 3132 finished
· engine:compute-1
hypothesis note H-4013e103
· engine:perturb
perturbation result for H-4013e103 (neighbour: drop: race_type IN ('Hurdle', 'Chase')): pass
· engine:perturb
perturbation result for H-4013e103 (neighbour: drop: is_handicap = 1): pass
· engine:perturb
perturbation result for H-4013e103 (neighbour: <= 6 -> 7 (+20%)): pass
· engine:perturb
perturbation result for H-4013e103 (neighbour: <= 6 -> 5 (-20%)): pass
· engine:perturb
perturbation result for H-4013e103 (neighbour: >= 20 -> 24 (+20%)): pass
· engine:perturb
perturbation result for H-4013e103 (neighbour: >= 20 -> 16 (-20%)): pass
· engine:perturb
compute-1 took job 3132 (mutate, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Job 3126 finished
· engine:compute-1
forward result for H-4013e103 (forward vs bar {'min_bets': 100, 'min_ae': 1.05, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 3126 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 3122 finished
· engine:compute-1
H-4013e103 Frozen → SHADOW vault skipped: last_beaten_lengths, best_last3_beaten, rating_change do not exist before the discovery zone; track it forward instead
· engine:orchestrator