Hypotheses · trajectory · H-4cf8f914
Test-mechanism: chase unseaters rebooked with the same jockey beat their price
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
- test-mechanism
- Created
- 17 Oct, 03:11
- 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
- H-e2cae105 (Rival: the chase unseat lift is a jockey-change effect) passed discovery as a niche: A/E 1.36 on 116 bets (p 0.159), same-race control 0.96. O-421b964b
- H-e2cae105 (Rival: the chase unseat lift is a jockey-change effect) survived falsification: 3 of 3 attacks left it standing; it is frozen for its one vault query. O-b4b2f041
- AskedDo chase unseaters ridden again by the same jockey beat their price more than those with a jockey change? answered
- MechanismWhen a trainer keeps the rider after an unseat, it signals that the unseat was a one-off incident and not a jumping flaw in the horse. Punters, though, remember that the pairing parted company and fade it.
- Why the market misses itThe form line shows 'UR' next to the same jockey's name, which looks like a fragile partnership. The price lengthens, even though the yard's choice to keep the rider is evidence that the horse's run was fine.
- Predictedpositive, A/E 1.25 to 1.50 on 80+ bets
- Falsified ifA/E at or below 1.10, or at or below the changed-jockey pool's 1.36, in which case jockey continuity adds nothing.
- Rule sketch
Mechanism and rationale
When a trainer keeps the rider after an unseat, it signals that the unseat was a one-off incident and not a jumping flaw in the horse. Punters, though, remember that the pairing parted company and fade it.
The rule
race_type = 'Chase' AND last_non_finish_code = 'UR' AND jockey_id = last_jockey_id
Reads: race_type, last_non_finish_code, jockey_id, last_jockey_id
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- cdd228a15f1784fd67c236453642bac8ed530019d1dd3af80e5edf227b306d36
- Frozen
- 17 Oct, 03:21
- Nothing in the definition can change after this.
- Confounders
- Small sample: about 97 bets (213 UR minus 116 changed-jockey, minus rows with a null jockey id), below the 150-bet pass floor. At best this is a thin directional result.
- Retained riders are more often stable or retained jockeys at bigger yards, so any lift may be a yard or jockey quality effect rather than a signal from continuity.
- Price band mix: UR lifts in this family lean on a few big-price winners. The under-16/1 refinement checks this.
- last_non_finish_code only separates UR from 2025-01-01, so the vault cannot test this rule (0 vault bets on all earlier UR rules). Evidence is discovery plus forward only.
- Overlap with the parent pool: same-jockey and changed-jockey together make up the UR pool (1.40), so the two figures are not independent of each other.
- Amateur and conditional riders in hunter or point-to-point style chases may keep rides by default rather than by choice.
- Control
{ "description": "Same-race other runners should sit near par (about 0.95 to 1.0), as in the earlier UR tests. The control that decides the mechanism is the changed-jockey chase unseaters (H-e2cae105, A/E 1.36 on 116), measured over the same window. If keeping the same rider adds information, the same-jockey pool should beat that figure. If it only matches it, the lift is the general UR effect and keeping the rider adds nothing.", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND jockey_id <> last_jockey_id" }
Discovery result
pass broad rule (niche) · 17 Oct, 03:18
- Bets
- 97
- 15 winners
- A/E
- 1.45
- 95%: 0.81 to 2.39
- SP return
- +77.4%
- level stakes
- Betfair SP return
- +259.5%
- 97 bets with a BSP
Strike rate 15.5%. p = 0.10. Same-race control: the other runners in these races had A/E 0.95, 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.
- price_band: Same-jockey chase unseaters at 14/1 or shorterpass
61 bets · A/E 1.26 (0.65 to 2.21) · control 0.95 · 17 Oct, 03:21
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-2736–after 2026-04-2725–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - control: Control: changed-jockey chase unseaters, same windowpass
116 bets · A/E 1.36 (0.74 to 2.28) · control 0.96 · 17 Oct, 03:21
Breakdown
Sealed holdout (vault)
- Bets
- 0
- 17 Oct, 03:21
- A/E
- –
- p = 1.0
- BH threshold then
- 0.0020
- over every vault test so far
- Outcome
- Failed
- vault query (supportive)pass
0 bets · · 17 Oct, 03:21
Breakdown
betsA/E0.71.01.32020-220–2023 to Sept 20250–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Forward record
- forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}info
0 bets · · 17 Oct, 03:21
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
215 bets · A/E 1.07 (0.67 to 1.61) · control 0.99 · 17 Oct, 03:21
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271301.14after 2026-04-27850.93Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: drop: last_non_finish_code = 'UR'pass
6,394 bets · A/E 1.01 (0.95 to 1.08) · control 0.99 · 17 Oct, 03:21
Breakdown
Lineage
Agent runs
designer v1ok · 38s · 17 Oct, 03:11
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND jockey_id = last_jockey_id", "refinements": [ { "label": "Under 16/1: rule out a long-price artefact", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND jockey_id = last_jockey_id AND sp_decimal < 17" }, { "label": "No jumping error recorded last time: the rider kept because the unseat was a one-off, not a jumping flaw", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND jockey_id = last_jockey_id AND COALESCE(last_jumping_error, 0) = 0" } ], "control": { "description": "Same-race other runners should sit near par (about 0.95 to 1.0), as in the earlier UR tests. The control that decides the mechanism is the changed-jockey chase unseaters (H-e2cae105, A/E 1.36 on 116), measured over the same window. If keeping the same rider adds information, the same-jockey pool should beat that figure. If it only matches it, the lift is the general UR effect and keeping the rider adds nothing.", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND jockey_id <> last_jockey_id" }, "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": [ "Small sample: about 97 bets (213 UR minus 116 changed-jockey, minus rows with a null jockey id), below the 150-bet pass floor. At best this is a thin directional result.", "Retained riders are more often stable or retained jockeys at bigger yards, so any lift may be a yard or jockey quality effect rather than a signal from continuity.", "Price band mix: UR lifts in this family lean on a few big-price winners. The under-16/1 refinement checks this.", "last_non_finish_code only separates UR from 2025-01-01, so the vault cannot test this rule (0 vault bets on all earlier UR rules). Evidence is discovery plus forward only.", "Overlap with the parent pool: same-jockey and changed-jockey together make up the UR pool (1.40), so the two figures are not independent of each other.", "Amateur and conditional riders in hunter or point-to-point style chases may keep rides by default rather than by choice." ], "mechanism": "After an unseat, the trainer's choice to keep the same rider is private information. It says the yard saw the unseat as a one-off (being hampered, a slip, a peck on landing) and not a jumping flaw in the horse or a failed partnership. A horse whose last run was fine apart from the unseat should run to its underlying ability, which the UR in its form line hides.", "market_miss": "The form line shows 'UR' next to the same jockey's name, which punters read as a fragile partnership, so they fade it. The price lengthens even though the yard's decision to keep the rider is evidence the horse's run was sound. The market prices the UR letter itself, not the yard's response to it.", "prediction": { "direction": "positive", "size": "A/E 1.25 to 1.50 on about 80 to 100 bets, above the changed-jockey pool's 1.36", "falsified_if": "A/E at or below 1.10, or at or below the changed-jockey pool's A/E over the same window (about 1.36). In either case keeping the rider adds nothing beyond the general chase-UR lift." }, "notes": "I kept the rule sketch: it uses only pre-off columns, and the jockey_id = last_jockey_id equality drops rows with a null id. The pass floors are held at the lab minimum, but the expected sample (about 97) cannot reach 150 bets, so the thin-result path (falsification plus forward tracking) is the realistic outcome. This is a test of the mechanism: the key comparison is against the changed-jockey control, not against par." }
Timeline
Job 2657 finished
· engine:compute-1
hypothesis note H-4cf8f914
· engine:perturb
perturbation result for H-4cf8f914 (neighbour: drop: jockey_id = last_jockey_id): pass
· engine:perturb
perturbation result for H-4cf8f914 (neighbour: drop: last_non_finish_code = 'UR'): pass
· engine:perturb
perturbation result for H-4cf8f914 (neighbour: drop: race_type = 'Chase'): pass
· engine:perturb
compute-1 took job 2657 (mutate, attempt 1)
· compute-1
Queued mutate on the compute lane: parameter stability: do neighbouring thresholds hold?
· engine:scheduler
Job 2651 finished
· engine:compute-1
forward result for H-4cf8f914 (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 2651 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 2647 finished
· engine:compute-1
H-4cf8f914 Vault → SHADOW vault SUPPORTIVE: A/E None on 0 bets, p 1 against BH threshold 0.001961 over 51 vault tests
· engine:orchestrator
vault result for H-4cf8f914 (vault query (supportive)): pass
· engine:orchestrator
H-4cf8f914 Frozen → FROZENvault vault query started
· engine:orchestrator
compute-1 took job 2647 (vault, attempt 1)
· compute-1
Job 2634 finished
· engine:compute-1
Queued vault on the compute lane: frozen: one sealed vault query
· engine:scheduler