Polson–Sokolov Lab · Betting markets

Benter Betting Lab

Bill Benter turned Hong Kong win odds into probabilities, corrected the crowd's biases with a conditional logit model, and sized bets with the Kelly criterion. This lab reruns each step on 73,722 horses in 5,885 races: check how well the odds forecast, fit the correction yourself, size bets, and test the strategy on races the model has not seen.

← All labs

Based on the case study “Benter’s Betting Strategy” (V. Sokolov), which reproduces Benter’s computer handicapping paper as annotated by Acta Machina; see Polson and Sokolov, Bayes, Artificial Intelligence, and Deep Learning, Chapter 4 (Kelly criterion). Data: Hong Kong Jockey Club races 1997–2005 (Kaggle gdaley/hkracing).

1 · The market as a forecaster

Odds are forecasts. Are they calibrated?

Each horse's win odds become an implied probability. The case study uses p = 1/(odds + 1), normalised so the field sums to 1. Then horses are grouped by that probability, and each group's actual win rate is compared with the forecast. Points on the 45° line mean the crowd is calibrated.

Calibration: 20 equal-sized groups of horses

Actual win rate (±1.96 SE) 45° line: forecast = outcome

Favourite-longshot bias by venue (the favourite in every race)
VenueRacesAvg fieldFav winsImpliedBias

Case study: “favorites win approximately 4–5 percentage points more often than the public odds imply” at both tracks.

Calibration by betting rank (1 = favourite)
RankHorsesActualImpliedError
2 · Correcting the crowd

One parameter, fitted by maximum likelihood

Benter's public-only model raises every horse's log-odds to a power and renormalises within the race: ci ∝ exp(α · logit pi). With α = 1 nothing changes. With α > 1 the gaps widen and probability moves from longshots to favourites. Drag α and watch the negative log-likelihood of the observed winners.

Negative log-likelihood of the winners, relative to the best α

−log L(α) − min MLE α̂ Your α 1.92: edge of the 95% likelihood interval

Example race

Public p Adjusted c at your α

Calibration before and after

Before (public) After (your α)
3 · Adding fundamentals

The full combined model: a softmax over the field

Now add four fundamental factors next to the public log-odds: the jockey's and trainer's past win rates (from earlier races only), the starting gate (standardised within the race, positive = outside) and the horse's rating relative to the field, per 10 points. The model is a conditional logit, fitted here by Newton–Raphson on every race with a single winner.

ci = exp(ηi) / Σk in race exp(ηk), η = α·logit(p) + βJ·jockey + βT·trainer + βD·draw + βR·rating/10
ParameterEstimateSEzPublic-only fit

Calibration of the full model

Full model, 20 bins45° line
Model comparison
ModelBrierGainLog-loss
4 · Betting with Kelly

How much to bet when you have an edge

For a bet that pays b to 1 and wins with probability p, the Kelly fraction f* = (bp − q)/b maximises the long-run growth rate of the bankroll, g(f) = p·log(1 + bf) + q·log(1 − f). Bet more than f* and growth falls; near 2f* it drops to about zero (exactly zero when the edge is small). The simulator plays the same coin flips for four bettors who stake ¼, ½, 1 and 2 times Kelly.

Bankroll paths, log scale (median solid, 5th percentile dashed)

Growth per bet g(f)

Stakefg per betShare of Kelly growthMedian end5th pct endEnd below start
5 · One race, many horses

Kelly across a whole field

Only one horse can win, so win bets in the same race are mutually exclusive. Kelly (1956), and Smoczynski and Tomkins for pari-mutuel pools, give the exact solution. Rank horses by expected return c·O. Add them one at a time while c·O is above the threshold R = (1 − Σc)/(1 − Σ1/O) over the horses already chosen, then stake fi = ci − R/Oi. The cash you hold back acts as the bet on "none of these".

Race

Public p Model c (full model, all races) Kelly stake, % of bankroll 1/O at the payout odds
HorseOdds OPublic pModel cEdge c·O − 1Kelly stakeResult
6 · Backtest on held-out races

Would the model have made money?

The model is refitted on the training period from section 3 and used on the later races only. It bets a horse when its edge c·O − 1 is above the threshold. Flat staking bets 1 unit each time; fractional Kelly stakes a fraction of the multi-horse Kelly allocation, restricted to horses above the threshold, and compounds. The baseline bets 1 unit on the public favourite in every race.

Flat stakes: cumulative profit (units)

Model, 1 unit per betPublic favourite, 1 unit per race

Fractional Kelly: bankroll (start = 1)

Model, fractional Kelly
StrategyBetsStakedProfitROIMax drawdown

Return on stakes against the track take

Model, flat stakesPublic favouriteBreak-evenTakes where the model makes fewer than 10 bets are not plotted

Market prices are a strong, biased prior

The odds already pool the views of thousands of bettors. A model that starts from logit(p) and adds a few factors needs to explain only what the crowd missed, which is why α carries almost all the weight.

The bias is systematic and small: a few points for favourites, a fraction of a point for each longshot. Check the units first. Section 1 shows how much of the bias here depends on the odds-to-probability formula.

Conditional logit = softmax over the field

P(i wins) = eηi / Σk eηk

Only differences within a race matter, so there is no intercept, and factors are expressed relative to the field. It is multinomial logistic regression where the classes are the runners, the same softmax that ends a neural network classifier.

Calibration matters for Kelly

Kelly stakes are linear in the edge c·O − 1. With an 18% take, an edge only appears when the model is more confident than the market. If the model is overconfident by a few points, Kelly converts that error straight into oversized bets, and the bettor goes past 2f* where growth is negative.

Brier and log-loss can rank models differently; the betting decision needs the probabilities themselves to be right.

Thorp's rules for using Kelly

  • Bet about half Kelly: “about three-quarters of the return with half the volatility.” For a new strategy with an uncertain edge, Thorp simulated at 1/10 Kelly.
  • Shrink positions in a drawdown: after a 5% loss, cut size; after a few more percent, cut again. The system shuts itself down and has to earn its way out.
  • Assume the worst imaginable outcome will occur and ask whether you can tolerate it.

Why one edge is not enough

The edge must beat the take on each bet, survive price impact and be stable over time. The likelihood ratio test says the four factors carry real information; the backtest shows that real information and profit are different things.

A word on gambling

Pari-mutuel betting has negative expected value for almost everyone: the track keeps about 18% of the pool before anyone is paid. Benter is famous because he is the exception. This lab is about forecasting, calibration and decisions under uncertainty, the same tools used to price insurance, size trading positions and read prediction markets.

Try this in class

  1. Before showing section 1, ask: a horse quoted at 3.5 in Hong Kong, what is its implied probability? Then switch between the two conversion formulas and compare the favourite's bias, the fitted α and the overround. Which formula matches a track that keeps 17.5% of the pool?
  2. In section 2, move α from 1.00 to the MLE and read off the gain in log-likelihood. How large is it per race? Use the 1.92 line to read a 95% interval for α, and compare it with α̂ ± 1.96 SE from the panel.
  3. In section 3, which coefficients have |z| > 2? Explain the negative jockey sign to a classmate in one sentence, then switch to "Later races" and check whether the full model still beats the public-only model out of sample.
  4. In section 4, load the two case-study bets. The 12/1 bet has the larger edge (30% vs 25%), yet Kelly stakes 2.5 times less on it. Why? Then set the stake to 2× Kelly and predict the median growth before running the paths.
  5. In section 6, start at the actual odds, then lower the take until the model starts betting. At what take does flat staking break even? Compare with the 17.5% the track deducts, and list what else would have to go right for a real bettor.