Veredus Analytics

7 September 2026 · Data

Putting every horse in the context of its race

Until this week, every one of our computed features described a horse in isolation: its form, its connections, its breeding, its rating. Useful — but the question a reader actually brings to a racecard is different. Is a VPR of 92 good in this race? That question cannot be answered from one horse's row. It needs the field. This release adds 44 fields that answer it, taking the dataset to 224 computed features per runner — and, as with everything we publish, the analysis that shaped the definitions is part of the story.

1. The gap we kept feeling

A row with 180 numbers on it can still be strangely silent. VPR 92, official rating 86, course form strong, trainer in form — interesting facts, none of which say where the horse stands today, against these rivals. Everyone who used the data seriously — including us, building our own race pages — ended up doing the same join: fetch the whole field, line the ratings up, compute the gaps. When every consumer re-implements the same comparison, the dataset is missing a family of fields. That observation, put to us bluntly in an external review of the plan — "the biggest missing dimension isn't another horse-level metric; it's context" — became this release.

2. In this race: the field-relative family

Each runner now carries its standing against the field it was declared against: vprRankInField (with ratedRunnerCount as its denominator), vprVsTop — the gap in pounds to the field's best — vprVsField, orVsField against the official ratings, weightVsFieldAvg, and freshness against the field's median. Two race-level values ride with them: runnersWithin5LbOfTop — how many rated runners sit within 5 lb of the best, our preferred competitiveness measure — and the raw top-to-bottom vprSpread. A race where five horses sit within 5 lb of the top is a genuinely different proposition from one where the best stands alone, and until now nothing in the dataset made that visible.

One definition changed between design and shipping, and it's worth showing why. The obvious reference for "vs field" is the mean. But a field's ratings carry a low tail — young horses with one or two rated runs and low-confidence figures — and a mean follows that tail. When we replayed both definitions across the archive, the mean and the median differed by two pounds or more in nearly half of all races, and 11% of runners flipped sign — above the field by one definition, below it by the other. So vprVsField measures against the median, the reference that a single outlier cannot drag. The rank and gap-to-top fields are immune to the choice either way.

3. The gap to the official rating — and the number we had to be honest about

The field we were most excited about is also the one the archive taught us to present differently. vprMinusOr is the gap between our measured rating and the official handicap mark — our independent measurement against the handicapper's. We imagined headlines like "runs off 78, we measure 86". Then we computed the gap across 2.7 million runner rows, and the distribution said otherwise: the median gap is about −15 lb, and only one runner in ten sits at or above its official rating at all — stable across confidence bands, career stages and every decade since 1990.

That is not a defect; it is what the two numbers mean. VPR reflects every performance — bad days subtract — while the official rating calibrates to demonstrated best form. The gap is real information, but it reads comparatively: the horse whose recent performances sit closest to its mark, in a field where everyone else runs well below theirs, is the story. We ship the raw value, publish the distribution on the methodology page, and present it on race pages with that context attached. We also analysed — and rejected — a career-best version of the gap: the maximum of a noisy difference grows with how many runs a horse has had, so it would quietly measure exposure rather than ability. It stays unpublished, and the reasoning stays public.

Alongside the gap come the handicap-position fields racing readers already compute by hand: orVsLastWin (above or below the mark it last won off), orTrajectory (has the handicapper been raising or easing it), orVsCareerHigh, and the recency of the horse's career-best figure.

4. A denominator beside every rate

The least glamorous part of the release may be the most important. A win rate without its sample size can lie: "0% on soft going" means one thing from forty runs and nothing at all from one. Twenty-six new count fields (jockeyCourseRuns, sireTurfRuns, trainer14DayRuns, …) now sit beside the rates they qualify, computed with exactly the same filters. We think of them less as features than as metadata the existing features always owed you — and from here on, that is dataset policy: rates ship with denominators.

5. What it looks like

On race pages, the new fields lead: a three-panel comparison shows the whole field on one lbs scale — each runner's VPR dotted along the axis with the within-5-lb band shaded, the gap to the official rating as bars around zero, and the handicapper's recent direction beside it. The daily insights page gains a "Most competitive races" section built on the same measurements, and horse profiles now chart VPR against the official rating run by run. API subscribers get every field on the existing analytics endpoint — the full reference is on the API page, and the field-level changes are in the changelog.

As ever: these are descriptive measurements of what has already happened, computed strictly from data available before each race's off-time. We don't predict outcomes, and nothing here is betting advice. The direction of the dataset from here is the one this release starts: fewer new statistics about horses in isolation, more honest relationships between the measurements we already make.