News
nbaanalysis2026-08-14

One distribution, three prices: why we simulate outcomes, not markets

A single run distribution prices moneyline, run line and total simultaneously — which is why our signals are internally consistent instead of three separate guesses.

XRedditText

Most betting models are built market-first: one model for the moneyline, another for the total, a third for the run line. That is three models, three sets of assumptions, and three chances to disagree with yourself. We build the other way around — one simulation, one output, every market read off the same object.

What we found

The engine does not predict a price. It simulates plate appearances — batter versus pitcher, adjusted for handedness, park and weather — and plays the game to completion thousands of times. What comes out is not a number but a joint distribution of runs: how often the home team scores 3 and the away team 5, how often it's 7-6, how often it's 1-0.

Every market is then a question you ask of that same table. Moneyline: what share of simulated games did this side win? Run line: what share did they win by two or more? Total: what share cleared 8.5? First five: stop the sim at the top of the sixth and ask again. The prices are not independently estimated — they are different slices of one object, so they cannot contradict each other. A model that likes the favourite and hates the favourite's run line is telling you its two models disagree. Ours structurally can't.

That structure is also what makes live pricing tractable. A live re-price is not a different model, it's the same simulation seeded with the current game state and run forward over the remaining innings only.

The method has a track record. Four signals built on this architecture are graded and out-of-sample: VELO_DROP at +26.5% ROI over 97 bets, TRAILING_LATE at +11.8% over 91, SPIN_VS_AVG at +9.4% over 157, and THIRD_TIME_THROUGH at +7.8% over 45. Against a 52.38% breakeven win rate, those are the returns from asking a distribution the right question rather than fitting a market directly. The same simulation-first approach was validated on 1,070 NBA games in backtest before we brought it to baseball.

What it means

For a reader, this is the difference between a model and a pick. A pick is an assertion. A distribution is an inventory of everything that could happen and how often — which means you can interrogate it. If our total is off, the run distribution is too wide or too narrow, and that is diagnosable. If our moneyline is off but the total is right, the error is in how runs are allocated between the teams, not how many are scored. Market-first models cannot localise their own errors that way.

It also means our edges are cheap to extend. Once the distribution exists, a new market is a new query — not a new model. Nine agents currently run against 428 indexed data points, and adding a market costs a question, not a rebuild.

The caveat is honest: a joint distribution is only as good as the plate-appearance model underneath it. Consistency is not accuracy. Three prices that agree with each other can be wrong together, and the sample sizes above — 45 to 157 bets — are real but not large.

What would change our mind: if the run-line and total edges from the same distribution stop grading in line with each other, the joint structure is mis-specified and we rebuild the correlation, not the individual prices.

Want tonight's slate?

Our number against the market on every game, updated all day. Free.

Get access ›

Diamond Labs publishes statistical research. Nothing here is betting advice or a guarantee of any outcome — projections are estimates from a model and can be wrong. 21+ where sports wagering is legal.