Who can use it: Enterprise and above.
What is Trip Predictor?
Trip Predictor finds every horse's optimal trip — the conditions where they perform best. For any horse it analyses every prior run and surfaces preferred going, distance, class, surface and field size with confidence levels and a form trend. The aim is simple: when today's race fits the horse's optimal trip, you know.
Where to find it
- Open any horse's profile and click the Trip E tab in the profile tab bar (right after Command Centre).
- Available on horse profiles only — trainers, jockeys, sires etc. are out of scope by design.
The hero cards
The top of the tab shows a row of cards, each with the horse's optimal pick for one dimension and a confidence pill (high / med / low):
- Going (Turf) — best turf going (e.g. Soft, Good to Firm). Computed only over runs on turf.
- Going (Polytrack) — best going on Polytrack courses (Kempton, Lingfield, Chelmsford City, Dundalk).
- Going (Tapeta) — best going on Tapeta courses (Newcastle, Southwell, Wolverhampton). A horse may genuinely prefer one synthetic surface over the other, so we keep them separate.
- Distance — best distance band (e.g. 6f, 1m1f-1m2f, 2m1f-2m4f). Uses the same bands as Form Expert.
- Class — best race class (1 highest grade, 7 lowest).
- Surface — best surface preference: Turf vs Polytrack vs Tapeta vs Laytown.
Going cards are stratified by surface because turf goings (Soft, Good etc.) and AW goings (Standard, Slow) are not directly comparable — lumping them together would surface a misleading "optimal going" for any horse with mixed-surface runs. A card only appears if the horse has at least 3 runs on that surface.
The trend strip
Below the hero cards is a one-line summary:
- Total runs — how many finished runs the profile is built on (in this code).
- Confidence — the worst confidence across the optimal picks for going (best of the three surface dims), distance, class and surface. Field size is excluded (it's supplementary, not a core trip dimension).
- Trend — ↑ improving, → peak, ↓ declining, or ? unknown. Computed via linear regression on the horse's RaceMetrics Rating over the last 8 runs. Slope > +1.5 = improving, < -1.5 = declining, otherwise peak. Horses with fewer than 8 valid recent rating points get "unknown".
- Peak age — the age at which the horse's RaceMetrics Rating peaked (requires at least 2 runs at that age).
- Career PRB — recency-weighted average % of rivals beaten across all runs. Used internally as the Bayesian shrinkage prior.
- Best field — preferred field-size band (1-7, 8-15, 16+). Supplementary signal — some horses simply win more often when fields are weaker.
Breakdowns
Each dimension expands into a table showing every bucket the horse has run enough in (3+ runs minimum), with the optimal bucket marked with a gold star (★) and highlighted in green:
- Runs / W / P — runs, wins, places (places use the same field-size-aware cutoff as Race Workout: top 2 for 5-7 runners, top 3 for 8-15, top 4 for 16+).
- Avg PRB — raw recency-weighted average percentage of rivals beaten in this bucket.
- Shrunk — the same number after Bayesian shrinkage toward the horse's career mean (k=4 prior). This is what drives optimal-bucket selection — it stops a tiny lucky sample dominating.
- ΔRating — mean RaceMetrics Rating points gained per run in this bucket. Coloured green/red.
- Conf — sample-size based: low (3-5 runs), med (6-12), high (13+).
Multi-code horses
Some horses run across disciplines (e.g. a National Hunt horse with chase, hurdle and NHF runs). These are split into separate code profiles — you'll see CHASE / HURDLE / NHF buttons at the top of the tab, each with its own run count. Click any button to switch the entire view to that code's profile. Going cards, distance, class, breakdowns — everything updates.
How the algorithm works
- PRB (% rivals beaten) =
((field_size - finish_position) / (field_size - 1)) × 100. Non-finishers (pulled up, fell, unseated etc.) score 0. - Recency weighting — runs in the last 12 months count fully (1.0×), 12-24 months get 0.7×, anything older 0.4×. Captures the fact that a 3yo's form at age 8 isn't as relevant as last month's run.
- Bayesian shrinkage (k=4) — each bucket's average is pulled toward the horse's career mean PRB. Effect: a 3-run "best" bucket can't dominate a 20-run merely-good bucket without strong evidence.
- Trend slope — linear regression on RaceMetrics Rating over the last 8 finished runs. Requires the full 8-run window before reporting a slope, otherwise "unknown".
Confidence at a glance
- high — 13+ runs in the optimal bucket. The signal is reliable.
- med — 6-12 runs. Solid signal, treat as indicative.
- low — 3-5 runs. Take with a grain of salt — small samples can mislead.
Buckets with fewer than 3 runs are excluded entirely — we don't pretend to know something based on 1 or 2 races.
"No trip profile yet"
If a horse has too few runs in any single bucket (typically a horse with 3-4 lifetime runs spread across different goings, distances or classes) you'll see a No trip profile yet message instead of cards. This is the engine being honest — we'd rather say nothing than say something unreliable.
On the racecard: Trip Fit column
Every racecard view (Ratings, At-a-Glance, Form Expert in horse mode) gains a Trip Fit column showing how today's race conditions match each runner's optimal trip. The column is also click-to-sort on the Ratings view.
- Stars — filled stars = matching dimensions (going-by-surface, distance, class, surface). Empty stars (☆) = non-matching. The fit score is shown as
score / outOfe.g.3/4means 3 of 4 counted dimensions matched. - Star colour by ratio:
- ★★★★ emerald — every counted dim matches (ratio = 100%, e.g. 4/4, 3/3, 2/2)
- ★★★☆ cyan — most match (66%+, e.g. 3/4 or 2/3)
- ★★☆☆ amber — some match (40%+, e.g. 2/4 or 1/2)
- ★☆☆☆ gray — few or none (under 40%, e.g. 1/4, 1/3, 0/4)
- Hover — tooltip shows per-dim breakdown (today's value vs the horse's optimal) plus trend and runs.
- "low conf" — shown when no dimension reaches med+ confidence. Don't rely on a fit assessment until you've got reliable signal.
- "no data" — horse has too few runs to compute a profile.
Sorting tip: Click the Trip Fit header on Ratings view to sort by fit. The 1 / 2 / 3 rank badges stay on the Combined-Rating top 3 regardless of sort, so when you sort by Trip Fit you can spot the disconnect at a glance: if the gold-#1 horse is now down at row 6, that's the strongest horse on rating but a poor fit for today's conditions.
Best Fits view
Alongside Ratings / Form Expert / At-a-Glance there's a Best Fits view that ranks the field by how well today's race matches each horse's optimal trip:
- Top 3 get gold/silver/bronze rank badges and an amber row tint — here the badges DO reflect Trip Fit ranking (unlike the Ratings view above)
- Match Detail column shows ✓/✗ per dimension (Going / Dist / Class / Surf) with each horse's optimal value — you instantly see why the fit is what it is
- Trend arrow shows form direction: ↗ improving, → peak, ↘ declining, ? unknown
- Banner at the top reminds you what today's conditions are (surface, going, distance, class, field band)
- Excluded footer lists horses with no profile or low confidence so you know who's missing from the ranking and why
The view is sorted strictly by fit ratio — a 3/3 horse always beats a 3/4 horse. Combined RaceMetrics rating is shown for context but doesn't drive the order. This means the rating top pick can rank low here, which is the point: Best Fits answers "who suits these conditions?", not "who's the strongest horse?".
Best Fits Today (cross-race daily feed)
The standalone Best Fits Today page shows the day's top trip-fit picks across every race in one ranked table, with a date picker to look ahead at upcoming declared days, sortable columns, and filters by course / fit / trend. Past dates are deliberately blocked because the engine reads current profiles — showing yesterday's "fit" would use post-race results that weren't available before the race ran.
Confidence gating — why the fit score might be x/3 instead of x/4
The fit score only counts dimensions whose optimal pick has at least med confidence. If a horse only has 4 runs at their preferred class, that dim has low confidence and is silently excluded from the score — the denominator drops by 1.
Without this guard, a horse with one fluky 3-run "best class" would get a misleading green badge. The trade-off: you sometimes see denominators of 2 or 3 instead of 4 — that's a feature, not a bug. Hover the badge to see exactly which dimensions counted.
Tier & access
Trip Predictor (the profile tab and the racecard column / Best Fits view) is exclusive to the Enterprise plan and above. Lower tiers see the controls but get the upgrade prompt when they click. Admin users always have access for validation.