Methodology
The rating model
Every rating on this site comes from one statistical model, evaluated the only honest way: scoring races it had never seen.
What the backtest honestly shows
Read honestly: the model is far better than chance and its probabilities are well calibrated, but the Hong Kong pari-mutuel market is sharper still. Simulated bets on the model's disagreements with the market lost money in every backtested season.
How it works
1 · Features
~50 point-in-time facts per runner — form, ratings, draw, fitness, people, and the overnight market — computed strictly from data available before the race. Final SP is never an input.
2 · Boosted trees
A LightGBM classifier learns from ~137,000 historical runs which combinations of those facts precede a win.
3 · Win probabilities
A per-race softmax turns scores into probabilities that sum to exactly 100% within each race; the rated price is 1 ÷ probability.
For every runner the model sees only what was knowable before the race: recent form, par-adjusted final times, official rating and its trend, weight and body-weight moves, draw, class moves, distance and course fit, jockey and trainer strike rates, gear changes, the market's historical esteem from earlier starting prices, and — from races since Dec 2021 — the overnight market for the race itself (opening and pre-dawn win odds, plus how they moved). The final starting price is never an input.
A gradient-boosted classifier scores each runner, and a per-race softmax turns scores into win probabilities that sum to exactly 100% within each race. The rated price is simply 1 divided by the win probability.
Evaluation is walk-forward by season: for every season since 2019/20 the model is retrained from scratch on earlier data only, then scores that season blind. Those out-of-sample scores — not retrofitted ones — are what the boards on this site show.
What the model weighs
The ten most influential inputs, by share of the model's total gain — recent form measured against today's field dominates.
Walk-forward results
Chance baseline
2.487
This model
2.155
Market (final odds)
2.008
Model + market
2.006
Lower log-loss = better probability estimates. The model comfortably beats a no-information baseline, but the public win market is sharper still — blending the two adds nothing reliable.
■ This model · ■ Market (final odds) · ┄ Chance baseline — per-season walk-forward log-loss (lower = better)
Calibration
Predicted win probability vs realized win rate by decile, pooled across all out-of-sample seasons.
Dots on the dashed line = perfectly calibrated. Predicted (x) vs actual (y) win rate per decile.
Data table
| Decile | Predicted | Actual | Runners |
|---|---|---|---|
| 1 | 1.1% | 0.8% | 7,144 |
| 2 | 2.2% | 1.9% | 7,144 |
| 3 | 3.1% | 3.5% | 7,144 |
| 4 | 4.1% | 4.0% | 7,144 |
| 5 | 5.2% | 5.7% | 7,144 |
| 6 | 6.5% | 6.9% | 7,143 |
| 7 | 8.2% | 8.6% | 7,144 |
| 8 | 10.6% | 10.5% | 7,144 |
| 9 | 14.9% | 14.9% | 7,144 |
| 10 | 26.5% | 25.7% | 7,144 |
See it in action
Recent settled races with their full rated boards — every past board is public.
When the advisory launches, a live pick ledger will publish here — every pick frozen and hash-chained at publish time, settled in public.
Want the rated boards for upcoming meetings?
Join the waitlistNothing on this page is betting advice. Any future advisory product will be judged on live, published, tamper-evident picks — not on this backtest.
HKJC Guru is an independent statistics service and is not affiliated with, endorsed by, or connected to The Hong Kong Jockey Club.