TUTORIAL
What the numbers mean and how to use them.
1. What this dashboard is
Every page on this site is trying to answer one question: who should win today's race, and what would a fair price look like?
There are two layers of modeling behind the answer:
- A speed figure for every horse, rebuilt after every race day. It tells you how fast a horse actually is, stripped of context — the track's speed that day, the jockey, the distance, the surface, the class of the race.
- A win-probability model that starts from the morning line and then adjusts every horse up or down based on figure history, pace, the jockey/trainer behind them, and how they fit this specific field.
You compare the probability the model assigns against the price the track is offering. If the model gives a horse a 40% chance and the board has them at 3-to-1 (implied 25%), that's a bet with positive expected value.
2. Four ways to view a card
Every race card on the site can be viewed at four levels of detail. Pick the one that matches how you want to engage with racing — the buttons live next to each card on the Cards page.
BEGINNER
A plain-English $100 wager plan. We pick the races with a clear edge, size the bets with fractional Kelly, and skip the races where the model agrees with the market. No figures, no probabilities you have to parse — just "bet $X on #Y because Z."
INTERMEDIATE
The handicapper's baseline. Past performances for every runner (last 5 starts, DRF-shaped), today's projected figure, win probability, fair odds, morning line, pace projection. Top-3 cheat sheet at the top of each race. No model internals.
EXPERT
Full model internals. For each horse: the projected figure broken down into ability + jockey + trainer + class contributions; confidence band on the ability estimate; a ridgeline chart of the whole field's projected distributions; jockey × trainer combo record; pure-speed Monte Carlo probabilities alongside the ranker's.
QUANT
Dense numeric table per race with every primitive: α, σα, κJ, κT, class β, projected figure, MC %, MODEL %, ML implied %, edge, EV per $1, Kelly fraction. Card-level portfolio totals at the top.
Common across all four views: a track-switcher strip under the main nav lets you hop between tracks running on the same date without losing your level. Click a track code and you stay in Beginner (or Intermediate, Expert, Quant).
3. Where the numbers come from
The data behind the figures is every official result from every US thoroughbred race going back roughly two years — about 400,000 individual performances across 117 tracks. Each race contributes a finishing time, a finishing position, beaten lengths, jockey, trainer, distance, surface, track condition, and — where charts include it — fractional times at the quarter, half, and stretch calls.
Every night:
- Yesterday's results are parsed and added to the history.
- The speed-figure model is re-fit on the full updated history.
- Tomorrow's entries are fetched (horses, jockeys, trainers, posts, morning lines).
- The win-probability model scores each horse against the field.
- The dashboard pulls everything together.
Everything you see is a pre-computed number, not a guess generated at page load, which is why pages render instantly.
4. The speed figure
Raw finishing times are not directly comparable. Six furlongs on a muddy Aqueduct Tuesday is not the same as six furlongs on a fast Saratoga Saturday — a horse running 1:10.5 in one might be a standout and in the other might be moderate. A speed figure rebalances all of this onto a single scale, so a horse's number today is directly comparable to a horse's number six months ago at a different track.
Our figures are calibrated so that 80 is an average thoroughbred performance. Higher is faster. One figure point is roughly one length at a typical distance:
- 105+ — Top-class (major stakes winners)
- 95–105 — Graded-stakes / top allowance
- 85–95 — Solid allowance
- 75–85 — Claiming / maiden
- Below 75 — Bottom level
What gets adjusted out
A horse's raw speed is the sum of a lot of things at once: how fast the horse is, the track's condition that day, who's on top, who trains them, the distance and surface, the weight carried, the post, the pace of the race, and luck. The model estimates all of these simultaneously and then subtracts the ones that don't belong to the horse:
- Track variant — pooled across every race at the same track on the same day with the same surface. One dominant horse in a weak race can't corrupt its own variant.
- Distance and surface — each distance and surface runs at systematically different speeds.
- A distance-bucket correction — small additional tilt for specific distances (5½f turf, 12f routes, etc.) that the distance spline can't catch cleanly.
- Pace shape — a contested early pace depresses raw speed; a tactical slow pace inflates it.
- Post position, weight, days off, equipment, age×sex — each carries a measurable effect on raw time.
What stays
What's left in the figure is just the parts attributable to the horse and their connections:
figure = 80 + 10 × (ability + jockey + trainer + race class)
- Ability (α) — the horse's estimated talent on this surface. Shrinks toward the population average when there's little data; settles on a sharp value as starts pile up.
- Jockey (κJ) and trainer (κT) — fps contributions, typically small (±1–2 figure points for the extremes).
- Race class — the kind of race (stakes, allowance, claiming) carries its own modest lift.
On the full-card view, every horse's PROJ FIG shows this decomposition so you can see exactly where the figure comes from — e.g., "95 = 80 + 12.3 ability + 2.1 jockey + 0.8 trainer − 0.2 class." If the number looks low but the ability is high, it's the connections dragging it down; if it looks high but the ability is middling, a hot jockey or trainer is pulling the weight.
Confidence
Every figure carries a confidence band. A horse with two career starts has a wide band (posterior uncertainty on their ability is high). A horse with thirty starts has a narrow one. The density chart at the top of every race visualizes this directly — the bell shape for each horse shows where today's figure is likely to land.
The confidence chip reads TIGHT / NORMAL / WIDE / VERY WIDE. Wide means to trust the projection less — it's statistically honest, but sparser data means the horse's real ability could still be anywhere in a broad band.
Outliers
Really bad races (trouble at the break, lost action, equipment failure) are down-weighted automatically. The model treats residual noise as heavy-tailed rather than Gaussian, so one disaster race doesn't drag a horse's ability down the way a simple average would.
Identifiability note
Horses with one trainer and very few starts get a
THIN DATA badge. With only one trainer on file the model can't fully separate "good horse" from "good trainer" — the sum is identified but the split isn't. The figure is still correct on average, but trust it less than the headline number suggests.
5. The win-probability model
The speed figure tells you how fast a horse is. The win-probability model goes the extra step — it converts that, plus everything else about today's race, into the probability this specific horse wins this specific race.
It starts from the morning line — the track handicapper's opening price, already a rough consensus — and adjusts each horse up or down based on about 50 features:
- Figure history — last figure, average of the last three and five, best of the last three, figure trend.
- Context-specific history — figures at today's distance, today's track, today's class level.
- Figure versus par — how each recent race stacked up against what the typical horse at that class level runs.
- Today's context — distance, surface, draw, weight, field size.
- Transitions — days off, weight change, class move, distance change, surface switch.
- Connection premiums — month-by-month form of the jockey and trainer.
- Pace — projected opening pace of this race plus each horse's typical running style.
- Field dynamics — where this horse ranks in the field by figures, whether it's the lone speed, whether it's a closer sitting behind a speed duel.
The output is the MODEL % column. The morning-line anchor keeps predictions honest — the model can't drift arbitrarily far from market consensus on thin evidence — but when it sees strong signals it does move aggressively.
6. Number glossary
Every number you'll see on a horse row, in plain English.
MODEL %
The win-probability model's headline answer for this horse. This is the number that drives bet flags.
MODEL FAIR
What the odds would be at the model probability, with no track takeout. Model says 25% → fair odds 3-to-1.
EDGE vs ML
MODEL % minus the morning-line implied %. Positive = the model thinks the market is underestimating this horse. This is your main "value" signal.
M/L
Morning line — the track handicapper's opening odds estimate. Not live tote.
PROJ FIG
The horse's projected speed figure for today. Breaks down as 80 + ability + jockey + trainer + class.
MC %
Pure-speed win probability. Simulates the race 20,000 times using only the projected figures and their uncertainty — no market input. Useful as a sanity check: a big gap between MC % and MODEL % means the market is pricing something beyond raw speed.
MC FAIR
Fair odds corresponding to MC %.
CONFIDENCE
How narrow the horse's ability estimate is. TIGHT = heavy history, narrow spread. VERY WIDE = sparse history, broad spread. Shown as a chip next to the sanity row; the underlying number (σα) is the posterior standard deviation on ability.
α / κJ / κT
The model's internal horse-ability, jockey, and trainer contributions (in fps). Multiplied by 10 they become figure-point contributions. Displayed in the PROJ FIG breakdown line.
LAST / AVG / STARTS
Recent-form snapshot. Last figure (color-coded), average of recent figures, career starts on record.
7. Beginner
Opens the $100 daily plan for the selected track. We only suggest bets where the model shows a clear edge over the morning line (≥10 percentage points in our favor) and where the model gives the horse at least a 15% chance. Every other race is explicitly skipped — if the model and market agree, there's no reason to bet.
Stake sizes come from fractional Kelly on the morning-line net odds, scaled so the plan deploys all $100. Single bet can be up to 40% of the bankroll; minimum bet $2. You get a hero banner showing plays, total wagered, and expected profit; each play is a card with a one-sentence English rationale (no figures or math exposed).
9. Expert
Full model internals for handicappers who want to see the machinery. Same race-by-race navigation as Intermediate, plus:
- Ridgeline distribution chart at the top of each race — one shaded curve per horse showing the predictive distribution of today's figure. Width = uncertainty, mean = expected figure. Sorted by MODEL % top-to-bottom.
- Decision row per horse: MODEL %, MODEL FAIR, EDGE vs ML, M/L.
- Figure decomposition: 80 + ability + jockey + trainer + class, with each contribution in figure points so you can see why the figure is what it is.
- Sanity row: MC % (pure-speed baseline, no market input) and a CONFIDENCE chip (TIGHT / NORMAL / WIDE / VERY WIDE) derived from the horse's σα.
- Connection detail: jockey and trainer with their κ contributions plus the historical record of this specific jockey × trainer pairing.
- Same last-5 PPs as Intermediate.
10. Quant
Everything as numbers. A dense table per race with every primitive the other views paper over:
- Greek columns: α (horse ability, fps), σα (posterior SD), κJ, κT, class β.
- Derived columns: projected figure, MC %, MC fair, MODEL %, MODEL fair, ML implied %, edge.
- Betting columns: EV per $1 at morning-line odds, Kelly fraction (uncapped), bet flag.
At the top of the card is a portfolio banner: count of positive-EV plays, sum of EV-per-$1 across those top picks, sum of Kelly fractions (unscaled — divide by this to allocate a bankroll), count of flagged horses.
11. Horse page
Deep dive on one horse. You get the entire race history with the speed figure of each race, plus pace fractions where available (early, mid, late fps), beaten lengths, and a decomposition of each figure — ability vs jockey vs trainer vs class vs race-day noise. The decomposition answers "why is this figure this high or low?" at a glance.
12. Rankings
Top 50 horses on each surface (dirt / turf / synthetic) by peak form — the average of each horse's three highest figures on that surface. This is the handicapping-standard "best form" sort, not a pure-ability ranking. Horses with fewer than 4 starts on the surface and horses with only one trainer on file are filtered out so the list reflects proven performers.
Each row shows TOP-3 average, career best figure, all-starts average, most recent figure, and career start count. Click a horse to jump to their Horse page.
13. Derby 2026
A curated view of this year's Kentucky Derby contenders. For each contender: summary stats (career starts, peak figure, top-3 average, last figure, latest ability estimate) and a full table of their prior races.
Contenders are sorted by top-3 observed figure — same peak-form sort the Rankings page uses. Contenders with a THIN DATA flag are the ones to trust the headline figure on with extra skepticism.
14. Flags & badges
Bet flags
The model tags horses with a bet flag when they fall into a model-probability-by-odds cell that has backtested profitably across every month of the 2026 holdout:
| Badge | Rule | Backtest ROI | Notes |
| ★ PRIME |
Model gives 50%+ AND odds in 2-to-1 to 4-to-1 range |
+55% flat bet |
Profitable every month of holdout |
| ★ VALUE |
Model gives 20–30% AND odds in 4-to-1 to 8-to-1 range |
+29% flat bet |
Profitable most months |
| LONGSHOT |
Model gives 20–30% AND odds in 8-to-1 to 20-to-1 range |
+69% flat bet |
High ROI but small sample — treat as watch-only |
Pace projection
Each race gets a pace label inferred from the field's running styles. The model looks at the two most front-running horses and averages their typical early-pace tendency:
| Label | What it means |
| FAST | Multiple speed horses; expect a contested, tiring early pace. Closers benefit. |
| QUICK | A couple of speed horses — lively but not crazy. |
| NEUTRAL | Balanced field. |
| EASY | Few speed horses; a lone leader could get an easy lead. |
| SLOW | All closers; whoever makes the pace gets a dream trip. |
Other markers
? (flag)
Horse has no matching history — either a true first-time starter or a name-spelling issue. The model falls back on the morning line with neutral adjustments.
≠ (surface)
Cross-surface ability transfer — using the horse's turf record to rate them on dirt (or vice versa). Less confident than same-surface projection.
THIN DATA
One trainer on file AND few career starts — ability estimate is statistically entangled with the trainer's effect. Headline figure is correct on average but carries extra uncertainty.
Pace style (E / EP / P / S / C)
Running style: Early, Early-Presser, Presser, Stalker, Closer — based on the horse's average first-call position in the field.
15. Using the numbers to bet
The model is calibrated on the 2026 January–April holdout:
- Pairwise ranking accuracy 76% — the model correctly picks the winner against each other horse in the field 76% of the time.
- Disagree-with-market edge +22% return on flat bets over 1,317 races where the model's top pick differed from the market favorite.
Practical use
- Flat-bet every ★ PRIME and ★ VALUE — small stakes, let the edges compound.
- Larger stake on strong EDGE vs ML (+10 points or more) especially when paired with a bet flag.
- Avoid flat-betting top picks at very short prices (under 3-to-2). Historically −11% return on that band.
- Kelly at 0.10× on sweet-spot bets. Full Kelly draws down the bankroll badly before compounding kicks in.
Variance warning
Positive expected value ≠ a smooth equity curve. Even +20% ROI strategies can see 30–50% drawdowns over 100–200 bet windows. Size bets so you can stomach the low points.
16. What it can't do
- Sample size at rare cells. Two years of data sounds like a lot, but the effective sample for a specific (track × class × surface × distance) combo is modest. Predictions at unusual combinations are noisier than the overall accuracy suggests.
- Live tote odds aren't used. The model anchors on the morning line. On races where the morning line is wildly off reality (big scratches, obvious handicapper errors), predictions can drift.
- True debutants. A first-time starter has no figure history. The model falls back on class-level averages and the morning line — first-time runners with sharp works or pedigree edge are genuinely hard to price.
- Shippers. A horse changing tracks or surfaces gets less signal from their figure history; the track and surface adjustments cover most of it but not all.
- Pace is projected, not measured. If the actual pace of today's race differs materially from the projection (scratches, rider tactics), the figure expectation shifts.
- Takeout and breakage. All "fair" odds on the dashboard are pre-takeout. Real win/place/show takeout in US racing is 15–22%; you're fighting that on every bet.