How we test

Updated 11 October 2026

What we publish, how we tested it, and what the evidence does and does not show — including where it is not flattering.

What is live today

Race card ratings
Live from 1 Oct 2026. Ratings for every runner, locked 4 minutes before each race. Ratings, not betting calls.
V1 live model
Retired 27 Sep 2026 after we found it misread HKJC odds. Its 51 bets stay published unchanged on the results page.
Sunday V2 test
One-meeting shadow test on 27 Sep 2026: 2 bets, both lost. Archived in full on the results page.

The test

854 races the model never saw

We split the historical data by date. The model learned from Sept 2022–July 2024, settings were chosen on Sept 2024–July 2025, and it was then scored once on 2025-09-07 to 2026-07-15 — 854 races with a single winner and full prices. Nothing from the test season was used to build or tune it.

The market comparison uses final HKJC win odds. That is a fair yardstick for how well the market predicts winners, but it is not a price you could always have taken before the race, so the returns below are indicative only.

The test used final prices. Our ratings lock 4 minutes before the off, when the market is less sharp, so live results are expected to come in below the test.

Result 1 · picking winners

The blended top pick matches the favourite; the model alone trails it

Backing one runner every raceWonPlaced top 3Return at level stakes
Blend of model and market, 50/50 (Top Rated from 7 Oct 2026)28.1%58.8%-15.1%
Market favourite (shortest odds)28.0%60.0%-20.9%
Model alone (race card model, before the blend)23.1%52.8%-17.8%
Gradient-boosted candidate (V3, not used)21.8%51.4%-28.5%

The blend is 50% model, 50% market, with the weight fixed in advance and not tuned on this test season: its top pick won 240 of 854 races, against 239 for the favourite — no meaningful difference. Every approach loses at level stakes, mainly because HKJC takes a cut from each win pool. On average the model’s top three ratings contained 1.30 placed horses; the market’s top three contained 1.51.

Result 2 · prediction accuracy

The market is the better forecaster

Scoring how much probability each method gave the actual winner (log loss; lower is better): market 2.050, race card model 2.269, gradient-boosted candidate 2.269. When we let the tuning season decide how much to trust the model versus the market, it chose to give the model 0% weight. The live Top Rated rating instead uses a fixed 50/50 blend; on the same test races it scored 2.115 — better than the model alone, not better than the market.

Result 3 · betting rules

No rule we tested made money

RuleBetsWonReturn95% rangeFavourites
V1 rule as it actually ran (odds error)83628.9%-18.3%-27.7% to -8.6%96%
V2 rule (top-rated runner, EV ≥ 10%)33312.3%-26.1%-47.2% to -3.2%10%
V3 candidate, EV ≥ 10%8134.2%-36.3%-59.8% to -10.9%0%

“95% range” is a bootstrap interval: where the return would plausibly land with this much luck involved. All three ranges sit below zero. V1’s odds error made short-priced runners look like value, which is why nearly all its picks were favourites.

Two different V1 figures: the results page shows its 51 live paper bets in Sep 2026 (−4.12%, at the price when each bet triggered); this table replays the same rule over the whole 2025/26 season at final odds (−18.3%, 836 bets). Different samples and price bases — both lose.

Result 4 · Calibration

Do our percentages mean what they say?

We put every runner in the 854 test races into a band by its model win %, then counted how often that band actually won. Each dot is one band: if a dot sits on the dashed line, runners rated that way won about that often. Lines are 95% ranges.

2025/26 test season: 10,687 runners in 854 races the model never sawRated = won
0%0%10%10%20%20%30%30%40%40%30%+ band: rated 35%, won 30%rated = wonModel win % (band average)Actual win rate

The top band (30%+) was over-rated: we rated those runners at about 35% on average and they won about 30%. Lower bands sit close to the line. This is the model before running style was added.

Table view
Model win % bandRunnersWonRated (avg)Won (actual)95% range
0–2%1,066171.4%1.6%1.0–2.5%
2–4%2,252673.0%3.0%2.3–3.8%
4–6%2,0191005.0%5.0%4.1–6.0%
6–8%1,5511186.9%7.6%6.4–9.0%
8–10%1,0841088.9%10.0%8.3–11.9%
10–13%96411711.4%12.1%10.2–14.4%
13–17%7349614.9%13.1%10.8–15.7%
17–22%4799219.2%19.2%15.9–23.0%
22–30%3488225.5%23.6%19.4–28.3%
30%+1905735.3%30.0%23.9–36.9%

What this means

Ratings, not tips

The race card shows how our model rates each runner and how that compares with the market. It is there to save you time and show a transparent, locked record — not to tell you what to bet. Where the model rates a horse above the market, that is information only: in testing, backing those horses lost money. We will say so plainly until a tested version does better.

Model updates

Q/QP box: in 2025/26 testing (854 races), boxing our top 3 lost money on both Quinella and Quinella Place, and so did boxing the market’s top 3, which lost less. The box line is there for convenience, not as a betting strategy.