Hypotheses · overlay · H-dc80c356
Small field last time, bigger field today: is the small-field wide edge a last-run reading or today's market?
forward A/E 0.0 on 0 bets, SP ROI None%, BSP ROI None% (p None)
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:38
- Tests logged
- 16
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-5ef5773d (Wide trip in a small field last time should pay less if lost ground is) passed discovery: A/E 1.39 on 349 bets (p 0.003), same-race control 0.92. O-5b199cb4
- H-edbf6921 (Wide trip in a big field last time loses more ground, so pays more) survived falsification: 6 of 6 attacks left it standing; it is frozen for its one vault query. O-b3fbb7e0
- AskedDoes the small-field wide-trip edge belong to last time's small field, or to today's race also being small (a property of today's market)? answered
- MechanismIf the edge comes from how the last run reads, the horse carries it into any race. If it comes from small-field markets today (fewer runners, different price structure), it vanishes once today's field is big.
- Why the market misses itA beaten-under-five run in a small field, marked 'wide', looks like ordinary exposed form. In a big field today it gets no extra credit. A today-field artefact would instead show up only where today's race is small.
- Predictedpositive, A/E 1.20 to 1.35 on 120+ bets
- Falsified ifA/E 1.05 or lower, which would put the small-field lift on today's race, not on last time's run
- Rule sketch
Mechanism and rationale
If the edge comes from how the last run reads, the horse carries it into any race. If it comes from small-field markets today (fewer runners, different price structure), it vanishes once today's field is big.
The rule
last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_field_size <= 8 AND field_size >= 10
Reads: last_raced_wide, last_position, last_beaten_lengths, last_slow_start, last_field_size, field_size
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- ccb21ab343410bd434306e9f1a94de49109b83db8e1bed727f5f7d0039665a43
- Frozen
- 16 Oct, 12:49
- Nothing in the definition can change after this.
- Confounders
- Few bets: last-small/today-big is an uncommon pairing, so the base may fall short of 150 bets. Read it as a direction test and send it to falsification if it is thin.
- Class rise into bigger, more competitive handicap fields can depress A/E independently of the mechanism (refinement 2 holds class level).
- Surface switches (all-weather small fields to turf big fields) change the race between runs and may change what 'wide' meant.
- The 16/1+ band is thin and noisy (about 2.0 on few wins in sibling subsets). Judge at 14/1 or shorter (sp_decimal <= 15).
- Big fields today carry longer prices on average, so price mix differs from the today-small control. Compare like-for-like inside the 14/1 cap.
- One of many splits of the wide-trip base, so allow for multiple comparisons when reading a marginal p.
- Control
{ "description": "Same-race control: the other runners in these big-field races should score about 0.92-0.97, as in every wide-trip subset so far. If they also score well above 1.0, the lift belongs to the races, not the horses. Rival comparison group: the same last-run profile (wide, small field last time) run today in a small field of 9 or fewer. This is the reading the hypothesis sets against the main rule. If the lift sits only in the today-small group (about 1.4 or higher there, 1.05 or lower in the main rule), the small-field edge is a today-market artefact. If both groups are similar, it is a last-run reading.", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_field_size <= 8 AND field_size <= 9" }
Discovery result
pass broad rule (niche) · 16 Oct, 12:43
- Bets
- 148
- 27 winners
- A/E
- 1.57
- 95%: 1.04 to 2.29
- SP return
- +51.0%
- level stakes
- Betfair SP return
- +85.9%
- 148 bets with a BSP
Strike rate 18.2%. p = 0.017. Same-race control: the other runners in these races had A/E 0.92, 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. 4 of 5 survived.
- perturbation: Tighter field cut-offs (last <=7, today >=12)info
49 bets · A/E 1.94 (0.89 to 3.68) · control 0.90 · 16 Oct, 12:49
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-2714–after 2026-04-2735–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - perturbation: Looser field cut-offs (last <=9, today >=9)pass
302 bets · A/E 1.40 (1.06 to 1.82) · control 0.94 · 16 Oct, 12:49
Breakdown
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.0, 'max_p': 0.2}info
0 bets · · 16 Oct, 12:51
Breakdown
betsA/E0.71.01.3forward0–Bars grow from 1.00, the market. Faded bars have fewer than 40 bets.
Other experiments
- neighbour: > 1 -> 0 (-20%)pass
217 bets · A/E 1.38 (0.98 to 1.90) · control 0.94 · 16 Oct, 12:51
Breakdown
betsA/E0.71.01.32025-10-01 to 2026-04-271001.20after 2026-04-271171.57Bars grow from 1.00, the market. Faded bars have fewer than 40 bets. - neighbour: > 1 -> 2 (+20%)pass
101 bets · A/E 1.60 (0.93 to 2.56) · control 0.93 · 16 Oct, 12:51
Breakdown
Lineage
Agent runs
designer v1ok · 28s · 16 Oct, 12:38
Output (schema-checked)
{ "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_field_size <= 8 AND field_size >= 10", "refinements": [ { "label": "14/1 or shorter", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_field_size <= 8 AND field_size >= 10 AND sp_decimal <= 15" }, { "label": "same class or lower today (removes class-rise confounder), 14/1 or shorter", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_field_size <= 8 AND field_size >= 10 AND sp_decimal <= 15 AND race_class >= last_race_class" } ], "control": { "description": "Same-race control: the other runners in these big-field races should score about 0.92-0.97, as in every wide-trip subset so far. If they also score well above 1.0, the lift belongs to the races, not the horses. Rival comparison group: the same last-run profile (wide, small field last time) run today in a small field of 9 or fewer. This is the reading the hypothesis sets against the main rule. If the lift sits only in the today-small group (about 1.4 or higher there, 1.05 or lower in the main rule), the small-field edge is a today-market artefact. If both groups are similar, it is a last-run reading.", "rule": "last_raced_wide = 1 AND last_position > 1 AND last_beaten_lengths <= 5 AND last_slow_start = 0 AND last_field_size <= 8 AND field_size <= 9" }, "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": [ "Few bets: last-small/today-big is an uncommon pairing, so the base may fall short of 150 bets. Read it as a direction test and send it to falsification if it is thin.", "Class rise into bigger, more competitive handicap fields can depress A/E independently of the mechanism (refinement 2 holds class level).", "Surface switches (all-weather small fields to turf big fields) change the race between runs and may change what 'wide' meant.", "The 16/1+ band is thin and noisy (about 2.0 on few wins in sibling subsets). Judge at 14/1 or shorter (sp_decimal <= 15).", "Big fields today carry longer prices on average, so price mix differs from the today-small control. Compare like-for-like inside the 14/1 cap.", "One of many splits of the wide-trip base, so allow for multiple comparisons when reading a marginal p." ], "mechanism": "The wide-trip edge is strongest after a small-field run (1.39 on 349). If that lift comes from how the last run reads (a narrowly beaten run, marked wide, underrated as exposed form), the horse carries it into any race, including a 10+ runner field today. If instead it comes from today's small-field markets (fewer runners, a different overround and price structure), it should vanish when today's field is big.", "market_miss": "A beaten-under-five-lengths run in a small field, marked 'wide', looks like ordinary exposed form. Bettors in a big, crowded market today give it no extra credit, so the price does not reflect the hidden merit of the last run. A today-field artefact would show up only where today's race is also small.", "prediction": { "direction": "positive", "size": "A/E about 1.20 to 1.35 on the broad rule (likely 120 to 250 bets), and about 1.15 or higher at 14/1 or shorter", "falsified_if": "A/E of 1.05 or lower on the broad rule or at 14/1 or shorter, while the today-small control holds about 1.3 or higher. That would place the small-field lift on today's race, not on the last run." }, "notes": "The rule sketch is kept unchanged. All columns are pre-off and were used in earlier wide-trip rules. field_size >= 10 leaves a gap of 9 runners from the 'small' definition (8 or fewer) on purpose, so the contrast is clean. The control rule covers today's field of 9 or fewer, so the two groups split the parent base completely. Pass criteria are left at the lab floor because the pairing is uncommon. A thin result that points the right way should go on to falsification and not be read as a kill." }
Timeline
Job 1468 finished
· engine:compute-1
forward result for H-dc80c356 (forward vs bar {'min_bets': 100, 'min_ae': 1.0, 'max_p': 0.2}): info
· engine:evaluator
compute-1 took job 1468 (forward_check, attempt 1)
· compute-1
Queued forward_check on the compute lane: daily forward check of a shadow system
· engine:scheduler
Job 1430 finished
· engine:compute-1
hypothesis note H-dc80c356
· engine:perturb
perturbation result for H-dc80c356 (neighbour: <= 8 -> 10 (+20%)): pass
· engine:perturb
perturbation result for H-dc80c356 (neighbour: <= 8 -> 6 (-20%)): pass
· engine:perturb
perturbation result for H-dc80c356 (neighbour: <= 5 -> 6 (+20%)): pass
· engine:perturb
perturbation result for H-dc80c356 (neighbour: <= 5 -> 4 (-20%)): pass
· engine:perturb
perturbation result for H-dc80c356 (neighbour: > 1 -> 2 (+20%)): pass
· engine:perturb
perturbation result for H-dc80c356 (neighbour: > 1 -> 0 (-20%)): pass
· engine:perturb
compute-1 took job 1430 (mutate, attempt 1)
· compute-1
Job 1446 finished
· engine:compute-1
H-dc80c356 Frozen → SHADOW vault skipped: last_raced_wide, last_beaten_lengths, last_slow_start do not exist before the discovery zone; track it forward instead
· engine:orchestrator
compute-1 took job 1446 (vault, attempt 1)
· compute-1
Job 1437 finished
· engine:compute-1