Hypotheses · story · H-ce4188c2
Test-mechanism: held-up PU horses brought back quickly beat their price
fails: A/E 1.027, needs 1.05; p 0.4565, needs 0.05 or lower; periods [0.97, 1.22], each needs 1.0; A/E 1.027 against same-race control 1.0, needs 0.03 above (not a niche pass: A/E 1.027 below 1.05; does not beat the same-race control 1.0)
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
- test-mechanism
- Created
- 17 Oct, 01:33
- 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
- H36-pulled-up-after-being-held-up (H36: pulled up after being held up) was GREEN in the earlier research: A/E 1.19 on 1451 bets (periods 1.07 / 1.41); now PROMISING. O-309e6a2d
- AskedDoes the pulled-up lift depend on how quickly the horse is brought back, as it should if the run took nothing out of it? answered
- MechanismA horse that was held up, never got into the race and was pulled up while its chance was gone had a light, short race. The trainer can run it again within a few weeks. A long gap after a PU more often means the horse had a problem.
- Why the market misses itThe form line shows a P whatever the gap. Punters see a recent bad run and mark the horse down, while the trainer's quick return is a signal they overlook.
- Predictedpositive, A/E 1.20 to 1.35 on 500+ bets, higher than the same pool with days_since_last_run > 35
- Falsified ifA/E below 1.05, or no higher than the long-gap complement
- Rule sketch
last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run <= 35
Mechanism and rationale
A horse that was held up, never got into the race and was pulled up while its chance was gone had a light, short race. The trainer can run it again within a few weeks. A long gap after a PU more often means the horse had a problem.
The rule
last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run IS NOT NULL AND days_since_last_run <= 35Reads: last_pulled_up, last_run_style, days_since_last_run
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- d749bfafaec5a2352d83b247912deded63b6042a506440db1cb82e9fdd30893e
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Season: quick returns cluster in summer jumps, where the pulled-up pool's period split already shows a lift; check the result by month or season
- Yard policy: some trainers run horses often whatever the result, so a quick return may reflect the yard rather than how hard the race was; check that no few trainers dominate the lift
- Price mix: quick and slow returners may sit in different price bands, and the PU lift has been concentrated at long prices before; compare within bands (the 14/1-or-shorter refinement)
- Overlap with the one-off chase-error pool (also in the PU/beaten set); confirm the lift is not just those runners
- Short data window: last_run_style and last_pulled_up exist only from 2025-11-01, so discovery covers about one year and one summer
- Control
{ "description": "Two comparisons. (1) Same-race other runners: expected to score near 1.00; if they also show a lift, the effect belongs to the races (e.g. summer jumps cards), not to the horses. (2) The mechanism's own complement: the same held-up/midfield pull-up pool returning after more than 35 days. The mechanism says a long gap after a PU more often signals a problem, so this group should score clearly lower (near or below 1.00). If the long-gap group scores as high as or higher than the quick returners, the 'light race, quick return' mechanism is falsified even if the broad rule passes.", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run IS NOT NULL AND days_since_last_run > 35" }
Discovery result
fail broad rule · 17 Oct, 01:35
- Bets
- 777
- 39 winners
- A/E
- 1.03
- 95%: 0.73 to 1.40
- SP return
- -43.2%
- level stakes
- Betfair SP return
- -16.4%
- 775 bets with a BSP
Strike rate 5.0%. p = 0.46. 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 · 31s · 17 Oct, 01:33
Output (schema-checked)
{ "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run IS NOT NULL AND days_since_last_run <= 35", "refinements": [ { "label": "14/1 or shorter", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run IS NOT NULL AND days_since_last_run <= 35 AND sp_decimal <= 15" }, { "label": "held up only (purest 'never got involved' case)", "rule": "last_pulled_up = 1 AND last_run_style = 'held_up' AND days_since_last_run IS NOT NULL AND days_since_last_run <= 35" }, { "label": "very quick return, 21 days or fewer", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run IS NOT NULL AND days_since_last_run <= 21" } ], "control": { "description": "Two comparisons. (1) Same-race other runners: expected to score near 1.00; if they also show a lift, the effect belongs to the races (e.g. summer jumps cards), not to the horses. (2) The mechanism's own complement: the same held-up/midfield pull-up pool returning after more than 35 days. The mechanism says a long gap after a PU more often signals a problem, so this group should score clearly lower (near or below 1.00). If the long-gap group scores as high as or higher than the quick returners, the 'light race, quick return' mechanism is falsified even if the broad rule passes.", "rule": "last_pulled_up = 1 AND last_run_style IN ('held_up', 'midfield') AND days_since_last_run IS NOT NULL AND days_since_last_run > 35" }, "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": [ "Season: quick returns cluster in summer jumps, where the pulled-up pool's period split already shows a lift; check the result by month or season", "Yard policy: some trainers run horses often whatever the result, so a quick return may reflect the yard rather than how hard the race was; check that no few trainers dominate the lift", "Price mix: quick and slow returners may sit in different price bands, and the PU lift has been concentrated at long prices before; compare within bands (the 14/1-or-shorter refinement)", "Overlap with the one-off chase-error pool (also in the PU/beaten set); confirm the lift is not just those runners", "Short data window: last_run_style and last_pulled_up exist only from 2025-11-01, so discovery covers about one year and one summer" ], "mechanism": "A horse that was held up or raced midfield, never got into contention and was pulled up once its chance had gone had a short, easy race and took little out of itself. That is why the trainer can run it again within about five weeks. A long gap after a pull-up more often points to a physical problem. So a quick return after a held-up pull-up marks a sound horse whose P misrepresents its ability.", "market_miss": "The form line shows the same 'P' whatever the gap and however the horse was ridden. Punters mark down a fresh bad run. They overlook two signals: the horse was never asked for an effort, and the trainer brought it back quickly, which shows confidence that it is sound.", "prediction": { "direction": "positive", "size": "A/E about 1.20 to 1.35, ideally on 500+ bets (the data window starts 2025-11, so fewer is possible), clearly above the >35-day complement", "falsified_if": "A/E below 1.05 on the broad rule, or the broad rule's A/E is no higher than the >35-day complement's, or same-race other runners show a comparable lift" }, "notes": "Kept the rule sketch and added an explicit days_since_last_run IS NOT NULL guard. The run-style values 'held_up' and 'midfield' are taken from the sketch. The catalogue has no value list, so if either value matches zero rows, the rule should be treated as malformed rather than as a null result. All key columns start on 2025-11-01, so expect a thin sample. A directionally correct result under 150 bets goes to falsification and forward tracking as lab policy says." }
Timeline
Job 2279 finished
· engine:compute-1
H-ce4188c2 Discovery → KILLED fails: A/E 1.027, needs 1.05; p 0.4565, needs 0.05 or lower; periods [0.97, 1.22], each needs 1.0; A/E 1.027 against same-race control 1.0, needs 0.03 above (not a niche pass: A/E 1.027 below 1.05; does not beat the same-race control 1.0)
· engine:evaluator
discovery result for H-ce4188c2 (broad rule): fail
· engine:evaluator
H-ce4188c2 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 2279 (evaluate, attempt 1)
· compute-1
Job 2276 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-ce4188c2 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 2276 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-ce4188c2: Test-mechanism: held-up PU horses brought back quickly beat their price (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.