Hypotheses · trajectory · H-ec26713e
Test-mechanism: chase unseaters that shortened or held their last SP are near par
fails: 103 bets, needs 300; A/E 0.953, needs 0.95 or lower; p 0.5094 (lower tail), needs 0.05; periods [1.02, 0.8], each needs 0.99 or lower
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, 04:08
- 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-3ea4ba62 (Test-mechanism: chase fallers that drift from their last SP also beat ) is unstable: 2 of 3 neighbouring rules lose the effect (base A/E 1.06; e.g. drop: race_type = 'Chase' -> 0.8; drop: last_non_finish_code = 'F' -> 0.99). O-5ffa08db
- H-3ea4ba62 (Test-mechanism: chase fallers that drift from their last SP also beat ) passed discovery but was falsified: GB A/E 0.704; driven by one price band (16/1 or bigger): the rest score 0.99; 3 of 5 attacks broke it. O-60aed707
- H-6e4258ac (Test-mechanism: chase unseaters that were well fancied last time beat ) passed discovery as a niche: A/E 1.5 on 76 bets (p 0.064), same-race control 0.91. O-73c95149
- AskedDo chase unseaters that shortened or held their last SP score near par, so that the whole UR lift sits in the drifters, as the drift-as-discount mechanism requires? testing
- MechanismA UR tells you little about ability, but the form figure looks like a failure. Where the market reacts by drifting the horse, it gives away value. Where the horse shortens or holds, the market has already looked past the U, so there is no discount to collect.
- Why the market misses itPunters who read the U as a bad run push the price out. A horse that shortens has been re-rated on its other form, so its price should already be fair.
- Predictednegative, A/E 0.85 to 1.05 on about 100 bets
- Falsified ifA/E at or above 1.20, which would mean the UR lift does not depend on the drift and the drift cut is a fork of a general unseat effect
Mechanism and rationale
A UR tells you little about ability, but the form figure looks like a failure. Where the market reacts by drifting the horse, it gives away value. Where the horse shortens or holds, the market has already looked past the U, so there is no discount to collect.
The rule
race_type = 'Chase' AND last_non_finish_code = 'UR' AND sp_decimal <= last_sp_decimal
Reads: race_type, last_non_finish_code, sp_decimal, last_sp_decimal
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- cbb1a7bc082bc89544e5245cb304be9d1fff0a7bf2a16f378e94e401b3532da5
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Pool overlap with the well-fancied cut (last SP 7.0 or shorter): horses that shortened tend to be short-priced already, so a par result may reflect the favourite-longshot slope, not the market seeing past the U
- Long-price winners: a few 16/1+ winners in a pool of about 100 can swing A/E, so it is checked under 16/1
- Class drop: horses that shorten may be dropping in class, which the market prices correctly
- Field size: a smaller field shortens prices mechanically, without any re-rating
- Last SP missing (NULL) excludes runners silently, so the shortened pool and the drifter pool together may not make up the full 213-runner unseater pool
- Thin pool, few wins: about 100 bets and maybe 20 winners leave a wide CI, so par and a modest lift are hard to tell apart
- Vault blind spot: the sealed vault returns 0 bets on last_non_finish_code rules, so discovery and forward tracking are the only evidence
- Control
{ "description": "The main comparison is the complementary pool: chase unseaters that drifted from their last SP (H-f5df804d, A/E 2.10 on 110). The mechanism needs the drifters to beat the non-drifters clearly, with non-drifters near par. Same-race other runners should be close to 1.0 (earlier UR controls were about 0.91). If they are, a test-rule A/E near 1.0 means the horses are fairly priced and is not an artefact of the races.", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND sp_decimal > last_sp_decimal" }
Discovery result
fail broad rule · 17 Oct, 04:10
- Bets
- 103
- 12 winners
- A/E
- 0.95
- 95%: 0.49 to 1.67
- SP return
- -44.2%
- level stakes
- Betfair SP return
- -36.9%
- 103 bets with a BSP
Strike rate 11.7%. p = 0.60. Same-race control: the other runners in these races had A/E 1.01, so the selection did not 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 · 25s · 17 Oct, 04:08
Output (schema-checked)
{ "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND sp_decimal <= last_sp_decimal", "refinements": [ { "label": "under 16/1 (removes long-price winners)", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND sp_decimal <= last_sp_decimal AND sp_decimal < 17" }, { "label": "well fancied last time (overlap with the H-6e4258ac cut)", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND sp_decimal <= last_sp_decimal AND last_sp_decimal <= 7" } ], "control": { "description": "The main comparison is the complementary pool: chase unseaters that drifted from their last SP (H-f5df804d, A/E 2.10 on 110). The mechanism needs the drifters to beat the non-drifters clearly, with non-drifters near par. Same-race other runners should be close to 1.0 (earlier UR controls were about 0.91). If they are, a test-rule A/E near 1.0 means the horses are fairly priced and is not an artefact of the races.", "rule": "race_type = 'Chase' AND last_non_finish_code = 'UR' AND sp_decimal > last_sp_decimal" }, "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": [ "Pool overlap with the well-fancied cut (last SP 7.0 or shorter): horses that shortened tend to be short-priced already, so a par result may reflect the favourite-longshot slope, not the market seeing past the U", "Long-price winners: a few 16/1+ winners in a pool of about 100 can swing A/E, so it is checked under 16/1", "Class drop: horses that shorten may be dropping in class, which the market prices correctly", "Field size: a smaller field shortens prices mechanically, without any re-rating", "Last SP missing (NULL) excludes runners silently, so the shortened pool and the drifter pool together may not make up the full 213-runner unseater pool", "Thin pool, few wins: about 100 bets and maybe 20 winners leave a wide CI, so par and a modest lift are hard to tell apart", "Vault blind spot: the sealed vault returns 0 bets on last_non_finish_code rules, so discovery and forward tracking are the only evidence" ], "mechanism": "A UR says little about ability (often an early or mid-race mishap), but in the form figures it looks like a failure. Where the market drifts the horse against its last SP, it is penalising the U and gives away value (the drifters scored A/E 2.10). Where the horse shortens or holds its last SP, the market has already looked past the U and re-rated the horse on its other form. Then there is no discount to collect and the runner should be priced near fair.", "market_miss": "Punters who read the U as a bad run push the price out, and that is where the mispricing sits. A horse that holds or shortens has been re-rated on its other evidence (stable confidence, money, class), so the market is not missing anything here. The mechanism predicts no edge in this pool.", "prediction": { "direction": "negative", "size": "A/E 0.85 to 1.05 on about 100 bets, well below the drifter pool's 2.10", "falsified_if": "A/E at or above 1.20 on the broad rule, which would mean the UR lift does not depend on the drift and the drift cut is a fork of a general unseat effect. It is also falsified if the A/E is within 0.3 of the drifter control." }, "notes": "This is a test-mechanism complement to H-f5df804d. Success means the result is near par and clearly below the drifters, not that it beats its prices. The direction is set to negative as the hypothesis registered it, but the predicted size is about par, not strongly over-bet. A 'pass' by the positive-edge floors (A/E 1.05 or more, p 0.05 or less) would count against the hypothesis. The floors are kept as required. Expect about 103 bets, under the 150 floor, so the result goes to falsification as a thin result. The refinements only check whether a par reading is driven by price level or by overlap with the well-fancied pool." }
Timeline
Job 2800 finished
· engine:compute-1
H-ec26713e Discovery → KILLED fails: 103 bets, needs 300; A/E 0.953, needs 0.95 or lower; p 0.5094 (lower tail), needs 0.05; periods [1.02, 0.8], each needs 0.99 or lower
· engine:evaluator
discovery result for H-ec26713e (broad rule): fail
· engine:evaluator
H-ec26713e Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2800 (evaluate, attempt 1)
· compute-1
Job 2799 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-ec26713e Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2799 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-ec26713e: Test-mechanism: chase unseaters that shortened or held their last SP are near par (test-mechanism)
· 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.