Why Non‑Runners Matter
Most guys scrap non‑runners as noise, but that’s a rookie mistake. When a horse gets pulled, the odds cascade, and savvy bettors can spot the ripple. Look: the market overreacts, and you can ride the swing.
Gathering the Right Data
Start with the official race cards, scrape the last‑minute scratches, then merge with historical form. You need timestamps, not just “withdrawn”. By the way, feed the data into a time‑series DB to keep the sequence intact.
Sources That Don’t Sleep
Official racing boards, betting exchange feeds, and even social‑media chatter. The trick is to filter out false alarms—use a sanity check that the horse’s sire and trainer actually exist in your master list.
Feature Engineering on the Fly
Turn a simple “non‑runner flag” into a gradient. Assign weight based on the horse’s pre‑scrape odds, the distance of the race, and the number of remaining runners. And here is why: a high‑odds horse being pulled inflates the remaining fields dramatically.
Dynamic Odds Adjustments
Re‑calculate implied probabilities after every scratch. A quick formula: new odds = old odds / (1‑sum(of scratched odds)). That gives you a live market snapshot, not a stale snapshot.
Choosing the Model
Linear regression won’t cut it when odds are volatile. Go for gradient‑boosted trees or a shallow neural net that can ingest the sudden spikes. They love non‑linear relationships, which is exactly what a non‑runner creates.
Regularisation with a Twist
Apply L1 to curb over‑fitting to rare events, but keep a small L2 term so the model still respects the underlying form. Too much shrinkage, and you’ll erase the very signal you’re chasing.
Back‑Testing and Validation
Split your dataset by race date, not by random rows. You want to see how the model performs when a non‑runner appears in the test fold. Simulate a live feed: drop the horse at the last second, then let the model recompute.
Performance Metrics
Track ROI, but also monitor the “non‑runner edge”—the extra profit when a race had at least one scratch. If that metric is flat, you’re missing the prize.
Deploying the Model
Wrap the engine in a microservice, trigger it on every bookmaker feed update. Use a watchdog that alerts you when a non‑runner flag flips, then push the new odds to your betting console.
Final Actionable Advice
Never let the model sit idle after a scratch; force an immediate recalculation and place a bet within the next 15 seconds, otherwise the window disappears.
Recent Comments