Hypotheses · overlay · H-07d21cb3
Rival: close-beaten runners stepping up from small to big fields, wide tag removed
fails: A/E 0.992, needs 0.95 or lower; p 0.4275 (lower tail), needs 0.05; periods [0.98, 1.0], each needs 0.99 or lower; A/E 0.992 against same-race control 1.003, needs 0.03 below
Part of the thread “IQ140a: wide trip with figures” 21 hypotheses
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Investigator agent, v1
- Made by
- rival-explanation
- Created
- 16 Oct, 12:52
- 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-dc80c356 (Small field last time, bigger field today: is the small-field wide edg) passed discovery as a niche: A/E 1.57 on 148 bets (p 0.017), same-race control 0.92. O-0d2a2141
- H-dc80c356 (Small field last time, bigger field today: is the small-field wide edg) survived falsification: 4 of 4 attacks left it standing; it is frozen for its one vault query. O-8b64d33e
- AskedDoes the small-field-last into bigger-field-today lift need the wide tag, or do all close-beaten runners stepping up in field size beat their price? testing
- MechanismSmall-field races are often tactical and slowly run, so a close defeat there understates a horse. That could lift any small-to-big-field runner, wide or not.
- Why the market misses itThe form book shows a close defeat in a weak-looking small field. The market may discount it whether or not the horse raced wide.
- Predictednegative, A/E 0.95 to 1.08 on 1500+ bets, well below 1.57
- Falsified ifA/E 1.20 or higher without the wide tag. The field-size step would then be the cause and the wide tag mostly incidental.
- Rule sketch
last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0
Mechanism and rationale
Small-field races are often tactical and slowly run, so a close defeat there understates a horse. That could lift any small-to-big-field runner, wide or not.
The rule
last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 0
Reads: last_field_size, field_size, last_position, last_beaten_lengths, last_slow_start, last_raced_wide
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- 46fdbed33824efd4a18c9f4a8103cb9011140124f2c606fead20aec6a0324d95
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Class drop: horses moving from small to big fields may also be dropping in class (race_class > last_race_class), which lifts them on their own. Checked by the GB no-class-drop refinement, since IRE race_class only starts in 2026-07.
- All-weather share: small fields are common on the all-weather, so the step-up may mostly be AW to turf or AW to AW in bigger fields. Checked by the turf-today refinement.
- Longshot band lift: the wide-trip base got much of its edge from the 16/1+ band. Checked by the 15.0 SP cap.
- Window: last_raced_wide and last_slow_start only exist from 2025-11-01, and earlier wide-trip subsets were lifted after April 2026. Report results by period (before and after 2026-04) so the comparison with the wide subset is like-for-like.
- Overlap with the wide subset: wide runners are left out (last_raced_wide = 0), so this rule cannot borrow the 1.57 edge. Rows where the tag is NULL drop out, which keeps the window the same.
- Control
{ "description": "Main comparison is the wide-tagged twin in the same window: the same step-up rule with last_raced_wide = 1 (the known 1.57 on 148 subset, using last_field_size <= 9 here). If the field-size step is the cause, the non-wide rule should score close to the wide one; if the wide tag is the cause, non-wide should sit near 1.0 while wide stays well above. The lab's other runners in the same races should be around 0.95 to 1.0, showing that big fields after small fields are not generally mispriced.", "rule": "last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 1" }
Discovery result
fail broad rule · 16 Oct, 12:56
- Bets
- 5,813
- 633 winners
- A/E
- 0.99
- 95%: 0.92 to 1.07
- SP return
- -23.1%
- level stakes
- Betfair SP return
- -4.2%
- 5,791 bets with a BSP
Strike rate 10.9%. p = 0.59. Same-race control: the other runners in these races had A/E 1.00, 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 · 50s · 16 Oct, 12:52
Output (schema-checked)
{ "rule": "last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 0", "refinements": [ { "label": "15.0 SP or shorter", "rule": "last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 0 AND sp_decimal <= 15.0" }, { "label": "no class drop (GB)", "rule": "last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 0 AND region = 'GB' AND race_class <= last_race_class" }, { "label": "turf today", "rule": "last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 0 AND lower(surface) = 'turf'" } ], "control": { "description": "Main comparison is the wide-tagged twin in the same window: the same step-up rule with last_raced_wide = 1 (the known 1.57 on 148 subset, using last_field_size <= 9 here). If the field-size step is the cause, the non-wide rule should score close to the wide one; if the wide tag is the cause, non-wide should sit near 1.0 while wide stays well above. The lab's other runners in the same races should be around 0.95 to 1.0, showing that big fields after small fields are not generally mispriced.", "rule": "last_field_size <= 9 AND field_size >= 10 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_raced_wide = 1" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.1, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1.05, "max_p": 0.2 }, "confounders": [ "Class drop: horses moving from small to big fields may also be dropping in class (race_class > last_race_class), which lifts them on their own. Checked by the GB no-class-drop refinement, since IRE race_class only starts in 2026-07.", "All-weather share: small fields are common on the all-weather, so the step-up may mostly be AW to turf or AW to AW in bigger fields. Checked by the turf-today refinement.", "Longshot band lift: the wide-trip base got much of its edge from the 16/1+ band. Checked by the 15.0 SP cap.", "Window: last_raced_wide and last_slow_start only exist from 2025-11-01, and earlier wide-trip subsets were lifted after April 2026. Report results by period (before and after 2026-04) so the comparison with the wide subset is like-for-like.", "Overlap with the wide subset: wide runners are left out (last_raced_wide = 0), so this rule cannot borrow the 1.57 edge. Rows where the tag is NULL drop out, which keeps the window the same." ], "mechanism": "Small-field races are often tactical and slowly run, so the finishing margins bunch up and a close defeat (5 lengths or less, no slow start) says little about how good the horse is. Stepping up into a field of 10 or more usually brings a truer pace, where a horse that was held back by a tactical race can show its ability. If this is the cause, the lift should appear in non-wide runners too, not only in those tagged wide last time.", "market_miss": "The form book shows a narrow defeat in a small field that looks weak, and bettors may discount it as lacking substance, whether or not the horse raced wide. The pace context of a small-field race is not in the headline form figures.", "prediction": { "direction": "positive", "size": "Investigator expects little or none: A/E around 0.95 to 1.08 on 1000+ non-wide bets, well below the wide subset's 1.57", "falsified_if": "The step-up mechanism fails if the non-wide rule scores A/E below 1.10, or its CI includes 1.0, while the wide twin stays at 1.3 or higher. Then the wide tag carries the edge. The rival is confirmed only if the non-wide rule scores A/E 1.20 or higher with p < 0.05." }, "notes": "This is a rival-explanation test. The hypothesis labelled its prediction 'negative', but what it predicts is no edge (A/E 0.95 to 1.08), not over-betting. The mechanism being tested, that a close small-field defeat understates the horse, is positive. So the vault judges in the positive direction, and the investigator's expected result is a FAIL. Changes from the sketch: (1) added last_raced_wide = 0, which answers the question directly ('is the lift from the wide tag or the field step alone?') and keeps the 148 wide runners from contaminating the result. It also limits the window to 2025-11 onward, the same as the wide subset. (2) Kept last_field_size <= 9 from the sketch. The earlier wide finding used <= 8, so the wide control here is not the identical 148-bet subset. Pass criteria are stricter than the floor (300 bets, A/E 1.10) because the sample should be large, and anything smaller than 1.10 cannot explain a 1.57 lift." }
Timeline
Job 1481 finished
· engine:compute-1
H-07d21cb3 Discovery → KILLED fails: A/E 0.992, needs 0.95 or lower; p 0.4275 (lower tail), needs 0.05; periods [0.98, 1.0], each needs 0.99 or lower; A/E 0.992 against same-race control 1.003, needs 0.03 below
· engine:evaluator
discovery result for H-07d21cb3 (broad rule): fail
· engine:evaluator
H-07d21cb3 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 1481 (evaluate, attempt 1)
· compute-1
Job 1478 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-07d21cb3 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 1478 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-07d21cb3: Rival: close-beaten runners stepping up from small to big fields, wide tag removed (rival-explanation)
· 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.