We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Greyhound prediction pipeline
One learning-to-rank model turns each race's field into calibrated win probabilities, then a devig โ edge โ Kelly chain converts those probabilities plus the live market into staked value bets. The stages below run end to end for every priced race on the board.
Current model
Run a backtest โEXGBoost :rank_ndcg ranker
GH_rank_ndcg
A learning-to-rank booster trained with the rank:ndcg objective. It scores every runner in a race and is optimised so the true winner ranks first (NDCG@1). Raw scores are softmax-normalised within each race into win probabilities summing to 1.
Feature families
features
Per-(race, runner) features derived point-in-time from the historical-starts table: recent-form (last-N finishes, days-since-run), career (starts / win & place strike-rate), and physical/box (barrier, distance, weight, grade). ELO is the dominant signal โ a per-runner strength rating updated after every start.
Devig โ edge / EV
signals
Market decimal odds are de-vigged (power / Shin) into no-vig fair probabilities โ the benchmark. Edge = model_prob ร decimal_odds โ 1; EV mirrors it for a 1-unit back bet. A runner is a candidate only with positive edge.
Fractional Kelly staking
kelly
Positive-edge runners are staked by fractional Kelly with slippage + CI-confidence shrinkage, then capped for per-race exposure. Selection = positive edge AND positive Kelly stake, persisted as racing_bets.