Hypotheses · ugly-result-physical-cause · H-af4cfac2
Fast engine, ugly finish: top-quarter top speed but beaten eight lengths or more
fails: A/E 1.019, needs 1.08; p 0.3269, needs 0.05 or lower; periods [1.06, 0.98], each needs 1.0; A/E 1.019 against same-race control 0.996, needs 0.03 above (not a niche pass: A/E 1.019 below 1.08; does not beat the same-race control 0.996)
Starts the thread “Fast engine, ugly finish: top-quarter top speed but beaten eight lengths or more” 1 hypothesis
- Proposed
- Designed
- Discovery
- Promising
- Falsification
- Frozen
- Vault
- Provisional
- Shadow
- Validated
- Live
- Source
- Scout agent, v1
- Made by
- scout
- Created
- 15 Oct, 23:27
- Tests logged
- 1
Mechanism and rationale
Top speed is a physical capacity the horse cannot fake. A horse that hit a top speed in the top quarter of its field and was still beaten far had its result spoiled by something other than lack of ability: wrong trip, unsuitable ground, an error or a bad position. The engine is intact, so the next run regresses towards what that speed implies.
The rule
l_top_speed_pct >= 0.75 AND last_position IS NOT NULL AND last_position > 1 AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths >= 8 AND last_field_size >= 6
Reads: l_top_speed_pct, last_position, last_beaten_lengths, last_field_size
Pre-registration
- Spec hash (sha256 of the canonical pre-spec)
- cd3bb695e63318339140c1a816f29ad3a76f8b38308d1ba9e4d1b03665c0b360
- Frozen
- not frozen
- The definition can still change.
- Confounders
- Front runners hit their top speed early, then fold: high top speed may just mean a leader that went too fast. Overlaps the pace-victim (H-22ef2116, 1.07 SHADOW) and duel-burnt (H-1da60d84) rules. Refinement 1 and the split by last_run_style check this.
- Rising in grade: top quarter of a weaker field last time, or of a stronger field that is being moved up again. A percentile within the field says nothing about absolute speed; split by class change.
- Field size: the top quarter of a small field is a weak signal; the rule asks for 6+ runners and the split by last_field_size should show the effect does not depend only on big fields.
- Change of code (Flat to jumps, hurdle to chase): top speed in one code may not carry to the other; refinement 2 checks this.
- The beaten-far group is cheap and over-represents long prices, where the field-size and price corrections matter most; the comparison with the slow-engine twin and with race-mates guards against a pure price-band effect.
- Nearby slices: the wide-top-speed family only looked at beaten under five lengths; count this as a new test, not a confirmation of that family.
Discovery result
fail broad rule · 15 Oct, 23:28
- Bets
- 6,548
- 579 winners
- A/E
- 1.02
- 95%: 0.94 to 1.11
- SP return
- -29.7%
- level stakes
- Betfair SP return
- -8.6%
- 6,522 bets with a BSP
Strike rate 8.8%. p = 0.33. 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 ef1163efa87ef7d2
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
No parent and no descendants yet. When an agent mutates, generalises or splits this idea, the new hypotheses appear here.
Agent runs
designer v1ok · 37s · 15 Oct, 23:28
Output (schema-checked)
{ "rule": "l_top_speed_pct >= 0.75 AND last_position IS NOT NULL AND last_position > 1 AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths >= 8 AND last_field_size >= 6", "refinements": [ { "label": "not a front runner last time", "rule": "l_top_speed_pct >= 0.75 AND last_position IS NOT NULL AND last_position > 1 AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths >= 8 AND last_field_size >= 6 AND coalesce(last_run_style, '') NOT IN ('led', 'prominent')" }, { "label": "same code as last time", "rule": "l_top_speed_pct >= 0.75 AND last_position IS NOT NULL AND last_position > 1 AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths >= 8 AND last_field_size >= 6 AND l_same_code = 1" }, { "label": "14/1 or shorter", "rule": "l_top_speed_pct >= 0.75 AND last_position IS NOT NULL AND last_position > 1 AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths >= 8 AND last_field_size >= 6 AND sp_decimal <= 15" } ], "control": { "description": "Two checks. (1) The other runners in the same races should come out near the RaceiQ baseline (about 1.03 to 1.05); the rule must beat its own race-mates by a clear margin, not just beat 1.00. (2) The slow-engine twin: horses beaten just as far whose top speed was in the bottom quarter of the field. If the mechanism is real, the twin sits at or below 1.00 and the gap from the broad rule is at least 0.08. If the twin scores the same, the effect comes from 'beaten far' (the drop in the betting), not from the engine.", "rule": "l_top_speed_pct <= 0.25 AND last_position IS NOT NULL AND last_position > 1 AND last_beaten_lengths IS NOT NULL AND last_beaten_lengths >= 8 AND last_field_size >= 6" }, "pass_criteria": { "min_bets": 300, "min_ae": 1.08, "max_p": 0.05 }, "forward_bar": { "min_bets": 150, "min_ae": 1.03, "max_p": 0.2 }, "confounders": [ "Front runners hit their top speed early, then fold: high top speed may just mean a leader that went too fast. Overlaps the pace-victim (H-22ef2116, 1.07 SHADOW) and duel-burnt (H-1da60d84) rules. Refinement 1 and the split by last_run_style check this.", "Rising in grade: top quarter of a weaker field last time, or of a stronger field that is being moved up again. A percentile within the field says nothing about absolute speed; split by class change.", "Field size: the top quarter of a small field is a weak signal; the rule asks for 6+ runners and the split by last_field_size should show the effect does not depend only on big fields.", "Change of code (Flat to jumps, hurdle to chase): top speed in one code may not carry to the other; refinement 2 checks this.", "The beaten-far group is cheap and over-represents long prices, where the field-size and price corrections matter most; the comparison with the slow-engine twin and with race-mates guards against a pure price-band effect.", "Nearby slices: the wide-top-speed family only looked at beaten under five lengths; count this as a new test, not a confirmation of that family.", "RaceiQ coverage leans towards certain tracks and starts in 2023 (GB) and 2024 (IRE), so there is only one or two periods; require both halves to agree.", "Direction of l_top_speed_pct assumed to be 1 = fastest in the field; check by eye on a sample before reading the result. If it is reversed, the rule must be voided, not flipped after seeing the result." ], "mechanism": "Top speed is a physical capacity the horse cannot fake. A horse that reached a top speed in the top quarter of a field of 6+ and was still beaten 8+ lengths had its finish spoiled by something other than lack of engine: wrong trip, ground, an error, a bad position or pace. Those causes are mostly temporary, so the next run should move back towards what the speed implies, and more so than for a horse beaten as far with a slow top speed.", "market_miss": "Punters and the form book see only the position and the beaten distance, so a heavy beating pushes the horse out in the betting next time. Top speed for each horse is RaceiQ-only and not printed in the standard form, so the market cannot tell a well-beaten horse with a big engine from a well-beaten slow one. The edge needs to show at SP after field-size correction, and it must beat the slow-engine twin, which suffers the same drop in the betting.", "notes": "The draft only needed null guards plus last_field_size >= 6 (the field-size confounder; the jumping-error rule in this family used the same floor). Pass criteria are stricter than the floor (300 bets, A/E 1.08) because RaceiQ race-mate controls already run 1.03 to 1.05 and the broad rule should be big. The window is RaceiQ only (GB from 2023-04, IRE from 2024-01), so split into two halves. The refinements are looked at only if the broad rule shows evidence." }
Timeline
Job 53 finished
· engine:compute-1
H-af4cfac2 Discovery → KILLED fails: A/E 1.019, needs 1.08; p 0.3269, needs 0.05 or lower; periods [1.06, 0.98], each needs 1.0; A/E 1.019 against same-race control 0.996, needs 0.03 above (not a niche pass: A/E 1.019 below 1.08; does not beat the same-race control 0.996)
· engine:evaluator
discovery result for H-af4cfac2 (broad rule): fail
· engine:evaluator
H-af4cfac2 Designed → RESEARCHdiscovery measuring on the discovery zone
· engine:orchestrator
compute-1 took job 53 (evaluate, attempt 1)
· compute-1
Job 43 finished
· engine:ai-1
Queued evaluate on the compute lane: discovery run of the broad rule
· engine:scheduler
H-af4cfac2 Proposed → RESEARCHdesigned pre-spec written and hashed
· agent:designer@v1
ai-1 took job 43 (design, attempt 1)
· ai-1
Queued design on the ai lane: write the pre-spec
· engine:scheduler
New idea H-af4cfac2: Fast engine, ugly finish: top-quarter top speed but beaten eight lengths or more (scout)
· agent:scout@v1
Every change is an event with an actor: an agent and its version, an engine, a human, or the importer. Current stage: Killed.