Derby 2026

Guide

How to Use These Predictions

What the numbers mean, how the model computes them, and how to translate the predicted distribution into an exotic-wager construction. Written for a reader comfortable with first-year probability and rank-based discrete-choice models.

1. The race page, column by column

Each row in the field grid carries seven model-derived values. Here's the provenance of each one.

Pred Fig — predicted BRIS Speed Rating ŷᵢ

A LightGBM regressor fit under Huber loss against 33 per-horse features, trained on ~3,000 (horse, prior race) observations. BRIS Speed Rating is dimensionless on roughly the same scale as Beyer; 100 ≈ top-class allowance/stakes, 90 ≈ solid claiming, 75 ≈ ordinary maiden. Walk-forward 5-fold time-based CV: MAE 5.67 fig points vs. naive baseline of 8.00 (next race ≈ last race).

Win — predicted P(i finishes 1st)

For a race with field 𝓕 = {1, …, N} and predicted strengths si = ŷi, the marginal win probability under a Plackett-Luce model with temperature T is:

P(i wins) = exp(si / T) / Σa∈𝓕 exp(sa / T)

T is the calibration temperature, fit via MLE against reconstructed mini-fields (prior races where 2+ weekend horses competed). For this meet, T̂ = 10.95 fig points. Lower T → sharper distribution; T → ∞ collapses to uniform.

ITM% — predicted P(i finishes top-3)

The marginal in-the-money probability is the sum of three Plackett-Luce marginals:

P(i ∈ top-3) = P(i = 1st) + P(i = 2nd) + P(i = 3rd)

P(i = 2nd) = Σj≠i  P(j wins) · softmax(s𝓕\{j} / T)i

P(i = 3rd) = Σj≠i Σk≠{i,j}  P(j wins) · P(k wins | j removed) · softmax(s𝓕\{j,k} / T)i

The triple sum has worst-case 𝒪(N³) terms but is O(N²) in practice with one softmax per removal level — the implementation lives in brisnet/calibrate.py.

Edge — value vs. morning line

Defined as Edge = P̂(ITM) − P̃(ITM) where the implied ITM probability is computed from the BRIS morning-line decimal-to-1 odds:

P̃(win)  = 1 / (1 + decimal_odds)
P̃(ITM)  = min(1, 3 · P̃(win) · α)        with α = 0.85

The shrink factor α corrects for the empirical fact that morning-line favorites convert to the show pool at less than 3× their win rate (heavy favorites are more likely to win outright than to merely "show"). Field-wide implied probabilities are then renormalized to remove the linemaker's overround.

Chip color: if Edge ≥ +5pp, if Edge ≤ −5pp.

2. The horse page, beyond the numerals

Last-10-races chart

Dual-axis: BRIS Speed Rating (left, blue) and BRIS Speed Par for the prior race's class level (right, purple). The gap between the two is informally a class-relative performance score — a horse running figs above the par for their class is overperforming their level (likely to move up); below par means the opposite. Hover any data point for finish, beaten lengths, and the trip comment.

Why this prediction? (SHAP attributions)

For each upcoming-race row, we compute SHAP values φj(i) via TreeExplainer such that:

ŷi = φ0 + Σj φj(i)

   where φ0 = E[ŷ] over the training set (the "base value")
   and φj(i) ∈ ℝ is the contribution of feature j to row i

The "Pushing prediction up" panel shows the top-5 features with positive φj(i); "Pushing prediction down" shows the top-5 with negative. Bar widths are normalized to the maximum |φ| in either set so you can read the relative magnitudes. Values are in fig-point units — a +2.5 contribution means that feature alone raised the prediction by 2.5 fig points.

3. From marginals to joint probabilities

The marginals on the race page (Win, ITM%) are the right inputs for single-horse straight wagers (W/P/S). For exotics — exacta, trifecta, superfecta — you need the joint distribution over ordered finishes. Plackett-Luce gives this in closed form by sequential softmax with the chosen horse removed from the field at each step.

Trifecta joint (the canonical exotic)

The probability of an ordered finish (i, j, k) — 1st, 2nd, 3rd — is:

                exp(si/T)            exp(sj/T)              exp(sk/T)
P(i,j,k) = ──────────────  ·  ────────────────  ·  ──────────────────────
            Σa exp(sa/T)    Σa≠i exp(sa/T)     Σa≠{i,j} exp(sa/T)

Distribution rough magnitudes

In a typical N-horse field with our model, the most likely trifecta combo tends to be:

The right-tail weight matters: even with a 20-horse field, ≈ 70-75% of all combos individually have probability under 0.1%, which is why blanket coverage is wasteful and structured tickets dominate.

4. Constructing exotic wagers

Three structural archetypes, ranked by sophistication. All assume base stake = $1 (substitute $0.50 where the track allows).

a. Boxed trifecta

Take a set B of horses; cover all permutations. Cost is the number of ordered triples drawn without replacement from B:

Cost(box, |B|=N, stake=s) = N · (N−1) · (N−2) · s
|B|Combos$1 cost$0.50 cost
36$6$3
424$24$12
560$60$30
6120$120$60

When to use: coverage maximization in chaotic fields when you have moderate confidence in a small group. Drawback: you pay a flat tax independent of which permutation hits, capping the upside on favorite-favorite-favorite combos.

b. Win-key (the pro standard)

One A horse on top; spread underneath. Structure A / B / B (with A ∈ B):

Cost(win-key, |B|, s) = |B| · (|B|−1) · s
                       (slot 1 = A, slots 2-3 ∈ B \ slot1)

Example: A = top-1 by P̂(win), B = top-4 by P̂(ITM) including A. Cost = 4 · 3 · $1 = $12.

When to use: when your top win pick is sharp — empirically when P̂(win) ≥ 25% in an 8-horse field, ≥ 15% in 12+ horse fields. Sharper structure than the box because you're concentrating your stake on the permutations consistent with your top conviction.

c. ABC structured part-wheel

Three tiers with separate logic for each slot. The juice in trifectas comes from longshots in the place/show slots — the payoff scales roughly with the product of the three horses' tote odds, so any horse with positive Edge in those slots is +EV against the house take.

A = { top 1-2 by P̂(win) }                  ← chalk you trust
B = { next 2-3 by P̂(ITM) }                 ← solid in-the-money
C = { Edge ≥ 0.08  ∪  ML ≥ 15-1 with ITM ≥ 30% }  ← price plays

Ticket structure:  A / A∪B / A∪B∪C

Cost = |A| · (|A∪B| − 1) · (|A∪B∪C| − 2) · stake

Example for a 10-horse race: |A|=2, |A∪B|=5, |A∪B∪C|=7 → 2 · 4 · 5 = 40 combos, $40 at $1 ($20 at $0.50).

When to use: default exotic strategy for any race where at least one C horse exists. Lower hit rate than a box but substantially higher EV when the C horse hits the board, because you're paid on a tote ticket the public underweights.

Beyond trifecta

5. Bankroll management — fractional Kelly

For a single-leg pari-mutuel wager with our predicted probability p̂ and net decimal odds b (i.e. payoff per $1 staked, post-takeout), the fraction of bankroll to wager that maximizes E[log W] is:

f* = (b · p̂  −  (1 − p̂)) / b      (Kelly criterion)

Full Kelly is variance-reckless and assumes the probability is exactly right. Since our predicted p̂ has finite-sample error and the pari-mutuel pool changes the effective odds at post time, halving the Kelly fraction (f → f/2) preserves long-run growth at a fraction of the variance:

fused  =  (1/2) · f*  =  (b · p̂  −  (1 − p̂)) / (2b)

Approximate growth rate g(f) ≈ p̂ · log(1 + bf) + (1−p̂) · log(1 − f)
For f ≪ 1:  g(f) ≈ f · (b·p̂  −  (1−p̂))  −  (1/2) · f² · (1 + b² · p̂ · (1−p̂))

For exotic tickets, the same logic applies but b is the full payoff multiple and p̂ is the joint probability of the specific permutation hitting. In practice, exotic Kelly fractions are minute (0.01–0.5% of bankroll) because p̂ for a single permutation is small.

None of this is wagering advice — it's the underlying math, presented for reference. Track takeout (typically 15–25% on exotic pools at North American tracks) is built into b post-fact, but is large enough that the average bettor's expected value is negative. Edge requires sharper-than-market probability estimates.

6. Failure modes & limitations