Think of the engine as a flight simulator for tonight's games. Instead of predicting one outcome, it plays each game 10,000 times and counts what happens. A team that wins 6,110 of 10,000 simulations is a 61.1% team by our model's own reckoning — the starting point, not the published number. Before any bet is priced we blend that estimate toward the market (see below), so the confidence on a card is the simulator checked against the sharpest line in the building, not talking to itself. No gut feelings, no vibes; arithmetic, then a reality check.
What each simulation knows
- Team run rates: runs scored and allowed per game for both clubs, live from the MLB Stats API, normalized to the league average and then regressed partway toward it — a hot April overstates a team the way a hot streak overstates a hitter, so we shrink the gap instead of taking it at face value.
- Starting pitchers: a stabilized starter rate over the ~5.5 innings a starter actually covers — his ERA blended with his FIP (which strips out defense and luck), then regressed toward league average by innings pitched, so a 20-inning hot streak isn't mistaken for true talent.
- Bullpens: the defending team's real relief-corps ERA covers the innings the starter doesn't — not an assumption that every pen is league-average.
- Park factors: Coors Field is a hot-air balloon (1.24); T-Mobile Park is a walk-in freezer (0.92). Static season approximations, refreshed manually.
- Home-field advantage: an evidence-sized bump (~54% for an even matchup), not the folk-wisdom 60%.
- Fat-tailed scoring: runs come in bunches, so scores are drawn from a negative binomial distribution that allows crooked innings and blowouts, not a tidy bell curve.
We anchor to the market, then look for the gap
The closing MLB line is the single sharpest public forecast of a game that exists, so we don't pretend a simulator knows better than every professional bettor combined. Before pricing anything, we blend the model's win probability with the market's own, vig removed — roughly half and half. That pulls the engine's confidence back toward reality, and it's why our published numbers cluster near the coin-flip zone where most baseball games honestly live. The model still gets a vote; it just doesn't get to ignore the room.
The market is on the card
A probability alone isn't a bet; a bet is a probability versus a price. Each game carries the market line and three numbers computed from it: Edge (our blended win probability minus the probability implied by the offered price), EV per unit, and a quarter-Kelly stake suggestion, always capped by the risk-tier framework. The governor beats the gas pedal. Two hard gates follow: the edge gate (no allocation under a 2-point edge; a good side at a bad price is a bad bet) and Rule 8, the Divergence Governor: when our model and the de-vigged market disagree by more than 12 points, we assume the market knows something our inputs don't (lineups, injury news, form), and the play is held for manual review instead of bet harder. A model that never doubts itself is a tout with extra steps.
Then the circuit breakers get a veto
The model proposes; eight risk rules dispose. Games with TBD starters are scratched, limited-workload starters trigger downgrades, capped juice forces run-line pivots, and every check, passed or failed, is printed on every card. That's the product.
What this engine does not do: read this before betting
- Market lines are a snapshot, not a live tick-by-tick feed. Lines move, and the price at your book may differ. Confirm the number before you bet it.
- Telemetry rules are manual. Statcast velocity/spin trends and rolling road wOBA (Rules 3, 5, 6) aren't automated yet; they're flagged for human review, never silently claimed.
- Not modeled on any published play: lineups, rest, umpires, weather. (Weather is being measured on an internal paper track that stakes nothing and touches no published pick — it earns its way in or it doesn't.) Park factors are static season approximations. Blending toward the market is our hedge here — the line already prices the lineup card we don't read.
- We lean on the market by design. Because we blend toward the closing-market probability, our picks rarely stray far from it: when the market is wrong in a way our inputs can't see, we're wrong with it too. That's the trade — fewer spectacular calls, and fewer face-plants.
Why publish our limitations next to our picks? Because a pick site that hides its wiring is asking you to bet on a magic trick. Ours is an aquarium; the whole tank is behind glass, down to the per-date random seed (20260904) that makes every day's board reproducible.