MLB · 2026
MLB Methods
Last successful check: Nov 05, 2026 at 04:33 PM EST. Enable JavaScript to view current quote availability.
Independent baseball forecasts, current prices and a public record of model checks.
Which games qualify
We match The Odds API events to MLB’s official schedule using both teams and a start time within ten minutes. MLB game IDs distinguish doubleheaders. Only regular season (R), Wild Card (F), Division Series (D), Championship Series (L) and World Series (W) qualify. Spring training, exhibitions, All-Star games, postponed or suspended games, delayed starts, and unknown start times are excluded. Unconfirmed playoff matchups are not invented.
Price comparisons
Moneylines, run lines and totals refer to full games. We do not mix first-five-inning markets into them. Props cover pitcher strikeouts and outs, plus batter hits, total bases, home runs and RBIs. Margin removal needs both sides from the same book, event, player, market and line. Run-line pairs use opposite handicaps. Each book gets one vote in same-line consensus; duplicate conflicting quotes are withheld.
Market Watch compares an offer with at least three other paired books, excluding the quoted book itself. It identifies disagreement, not a validated expected profit. Integer lines can push; de-vigged market probabilities are conditional on a non-push result. Confirm your book’s listed-pitcher, participation, postponement and settlement rules before using a quote; MLB betting rules explains the common ones.
What goes into a forecast
Official MLB game-level box scores supply prior player and team outcomes. We use the previous season from August onward, including October, and the current season. We discard box-score season totals and compute every historical feature from earlier dates only. All games on a date share the same pre-date history, including doubleheaders.
Team features include the last 40 games of scoring and batting rates, bullpen runs per out, and bullpen pitches over the prior three days. Pitcher features include up to 15 starts, outs and pitch counts over the last five, strikeouts, walks, hits and home runs per batter faced, runs allowed and rest. Batter features use up to 60 games of plate appearances and event rates, recent starting-game opportunities and the published batting slot. Rates shrink toward fixed league-like priors when samples are small. Venue scoring uses up to 100 prior games, shrunk toward nine combined runs; it is not a fully isolated park effect.
From a projection to a probability
Each target compares a small gradient-boosted regression with a transparent rolling-rate baseline on a later calibration period. The lower mean-squared-error candidate supplies the mean. Count outcomes use Poisson distributions when dispersion is negligible and negative binomial distributions when variability is larger. Pitcher outs use a discretized normal distribution. Isotonic calibration adjusts the cumulative probabilities using the calibration period; a 2% raw-distribution component avoids absolute certainty in the tails.
Two team-run distributions form a full-game score matrix. Tied final scores are removed and the remainder normalized. That approximation prices moneylines, run lines and totals; it does not simulate every extra inning or every pitcher change. Displayed projections are the means of the final calibrated distributions, so they can differ from the raw regression mean. Each forecast shows its average and its median, the value with half the model’s chance at or below it. Prop lines sit near the median, and counts are skewed upward, so an average above the line can still favor the Under.
Win and push probabilities are separate. At decimal odds D, expected return per dollar is P(win) × (D − 1) − P(loss). Fair American odds and the displayed probability edge use P(win) / (1 − P(push)), allowing comparison with a book’s break-even price. Model probability itself is the unconditional win chance. The model never uses current book prices as a feature.
How an offer becomes a Model Pick
The relevant regular-season or postseason market must pass the checks on Model Results. Both probable starters must be known and have at least three earlier starts; both teams need ten earlier games. A batter needs 50 earlier plate appearances and a unique match to a complete published starting order. MLB’s published order can still change before first pitch.
The game must start within 24 hours; the quote and model-input check must be no more than 90 minutes old. At least two books must have paired outcomes at the same line, and the evaluated quote itself must be paired. The line must fall within the tested range. We require at least 3% estimated return. Discrepancies above 30% estimated return are withheld for manual review. We select the best available price and one offer per player, market and game. Different selected markets can still be correlated.
These are experimental model picks, not a proven profitable system. When a check fails, the board explains why. A forecast may remain visible for research while its pick eligibility is withheld.
Starters, batting orders and limitations
Probable pitchers come from the current official schedule. Published orders come from the upcoming game’s box score and are accepted only with nine unique original slots and no recorded game action. We do not invent a lineup or forecast an unmatched player. Historical evaluation uses the actual starter and original starting order because archived pregame announcements are unavailable; late scratches and lineup uncertainty are therefore not fully captured by the audit.
The model includes a postseason indicator and recent workload. Its prior-postseason audit is small. Handedness, forecast weather, injuries, umpires and explicit pinch-hit or playoff-hook decisions are not modeled. Those factors can invalidate an apparent edge. Check current availability and your sportsbook’s settlement rules.
Separate descriptive season context uses regular-season totals through yesterday’s Eastern date. This display excludes postseason stats; the game-level model history includes completed postseason games. ERA and K/9 use recorded outs: 5.2 innings is 17 outs. A short-start watch flags a probable starter with fewer than three regular-season starts, or with starts in fewer than half of his appearances; it describes role history and does not change any forecast.
Player context beside each forecast
Hover over or select a player’s name to open a snapshot of the model’s average and median, recent games and forecast inputs. Share makes a branded image of the snapshot to send; Copy link gives a link that reopens the same snapshot. Observed recent averages are kept separate from prior-adjusted estimates. Pitchers show their last five starts (opponent, innings, pitches, strikeouts, walks and earned runs) with recent averages; batters show plate appearances, hits, total bases, home runs and runs batted in. The snapshot also lists his games against tonight’s opponent in the loaded history and how often he cleared tonight’s line in them; that is context only, because our research found that results against one team or one pitcher do not predict the next meeting. Model input labels identify fields used by the selected model; other fields are descriptive context. Innings are shown in thirds: 5⅔ means five innings and two outs (5.2 in box-score notation). All context is preserved with its forecast.
The snapshot has three tabs. Form charts the last ten games against the offered line. How it works shows how the number is built: for strikeouts, batters faced × strikeout rate × an adjustment for the opposing lineup; for hitters, expected plate appearances × the per-plate-appearance rate. Where a market uses the machine-learning model, its estimate is shown next to that simple formula, followed by the adjustment that matches past outcomes. It also shows the chance of every count, opponent strength with league rank, how much of each rate comes from the player’s own games and what the model does not know. Track record plots the calibration bins from the published model validation.
Freshness and coverage
Automated runs refresh history and retrain when the daily cutoff or model code changes. Rolling features include completed games through yesterday Eastern; weights stay earlier than the calibration and test periods. The visible dates distinguish these two kinds of updating. Markets refresh with the morning sports run, scheduled to start at 7 a.m. Eastern, and again at 4:30 p.m. Eastern. Publication follows completion; comparison quotes expire after 12 hours, model picks after 90 minutes, and offers leave the boards at first pitch. Player Props and Game Lines can still show a started game’s last saved quotes under Include started games; they are labeled historical and never count as model picks. Open boards refresh every five minutes. A stale or failed model refresh withholds model picks while current market comparisons can remain available.
Prop requests cover the next 24 hours, capped at 20 games per run. Skipped games are reported. Early runs can have no hitter forecasts because batting orders have not yet been published. Season context expires after 36 hours or a failed statistics refresh. Forecast snapshots preserve the quoted price, inputs, model version and eligibility decision for forward review.
Sources
MLB schedule · MLB postseason · MLB statistics · The Odds API MLB coverage