Method
What the on-site model uses, when picks are sealed, and how /record is scored — no accuracy-lead claims; not betting advice
What the model uses
The on-site model (raceprob-v1.0) ranks runners with offline LightGBM dual picks from pre-race public card-related features only: about 173 features, explained via six factor groups (horse form/ability, trip/going/weight fit, pace/field, jockey partnership, trainer combinations, draw interactions). Odds are not inputs; we do not mirror HKJC odds or official tables.
Features & explain frame
- Pre-race public card / form history (no odds)
- ~173 features → winner-rank dual pick (#1 + #2)
- Six-factor relative contributions for explain — not fixed weights or causality
- Score is a model / factor score, not win probability
When predictions are sealed
Dual picks are generated offline with LightGBM, written into static meetings.json, then deployed. Cloudflare Workers only read sealed JSON — no live inference. After race day we only append settlement to records; sealed picks never change. Each race page shows the seal timestamp (generatedAt). If a day has no seal, the site falls back to the card-factor pipeline (raceprob-factors-v0.1).
How /record is scored
Settlement runs only after race day against official finishing order. We do not invent results or show sample hit rates.
- Win hit: sealed pick #1 finishes 1st.
- Dual hit: sealed dual-pick covers the actual top-2 in any order.
What we explicitly do not do
- Score ≠ win probability; explain factors ≠ accuracy
- No accuracy-lead claims or return promises
- Not betting advice; no bets accepted; no proxy betting; no paid tips
- No mirrored HKJC odds; official cards and odds stay on HKJC