Last updated: March 17, 2026 • Estimated reading time: 12–15 minutes

This guide shows you how to build practical MLB betting models—from the core metrics (xwOBA, SIERA, park factors) to a compact Google Sheets case study that outputs fair odds for a game. It’s written for bettors who want an educational, numbers‑first approach without hype.

Use this with the hub: Sports Betting Models: A Clear, Practical Guide. If you’re brand‑new, start there.

Why baseball is ideal for modeling

Baseball is structured and event‑driven: plate appearances are independent-ish, scoring is low/medium, and many outcomes (runs, HRs) behave like count processes that simple distributions can approximate. Compared to fluid sports, MLB offers:

  • Stable inputs: Starting pitchers, platoon splits, park effects, weather.
  • Granularity: Rich per‑pitch/per‑PA data to isolate skill.
  • Predictable variance: Runs can be approximated with Poisson/Negative Binomial models; win probability can be derived from team run distributions.

You can begin with a team‑based model and later graduate to player‑based projections without throwing away your early work.


Key statistics that actually matter

Focus on skill‑relevant, regressed metrics that predict the future better than surface stats.

Hitting (team or player aggregation)

  • xwOBA (expected weighted on‑base average): contact quality + K/BB; strong all‑around signal for run creation.
  • wOBA / wRC+: descriptive performance and context‑adjusted productivity.
  • ISO: raw power; helps estimate extra‑base hits/HR rate.
  • K% / BB%: plate discipline; drives OBP and run expectancy.
  • Platoon splits (L/R): stabilize slower than overall rates—regress small‑sample splits toward overall mean.

Pitching

  • SIERA (skill‑interactive ERA): better isolates pitcher skill than ERA; less defense/park noise.
  • xFIP / FIP: home‑run luck adjustment (xFIP) and fielding‑independent core (FIP).
  • K‑BB%: quick strength signal.
  • GB% / FB% / Barrel%: batted‑ball profile and damage risk.

Context

  • Park factors: run and HR multipliers by stadium.
  • Weather: temperature, wind, air density; adjust HR/run rates.
  • Umpire tendencies (advanced): zone size, strike propensity.
  • Bullpens: leverage relievers, rest days; add a bullpen penalty/boost to the SP projection.

Philosophy: prefer SIERA over ERA for pitcher skill and xwOBA over AVG for hitters. Raw traditional stats lag and overreact to luck.


Model architectures: team‑based vs player‑based

Team‑based (simpler, good first step)

  1. Estimate each team’s expected runs vs. the opposing starting pitcher using team‑aggregated xwOBA/BB%/K% and a pitcher adjustment (SIERA, K‑BB%, GB%, L/R).
  2. Apply park & weather factors to both offenses.
  3. Add a bullpen adjustment (e.g., +0.2 to opponent expected runs if your bullpen is tired/weak).
  4. Convert expected runs to a run distribution (Poisson or overdispersed alternative).
  5. Derive win probability by comparing team distributions; convert to fair moneylines and totals.

Player‑based (advanced)

  1. Project each batter’s per‑PA quality vs. today’s pitcher handedness (regressed L/R splits).
  2. Project the starter’s per‑PA outcomes (K/BB/GB/HR) vs. this lineup; add times through the order decay.
  3. Build plate appearance → base/out state transitions (Markov / run expectancy).
  4. Simulate innings, then games (Monte Carlo) to get win/totals distributions.
  5. Layer bullpen usage logic and defensive/positional effects.

Start team‑based. It’s fast, auditable, and plenty strong for learning and small edges.


Inputs → transformations → outputs (the pipeline)

Inputs

  • Aggregated team batting metrics (xwOBA, wRC+, ISO, K%, BB%) split by pitcher handedness.
  • Pitcher skill (SIERA, xFIP, K‑BB%, GB%, Barrel%).
  • Park factor (Runs, HR); weather scalar for HR/run rate.
  • Bullpen rating / rest (last 3 days usage).

Transformations

  • Opponent adjustments: vs. LHP/RHP; regress small samples back toward team means.
  • Environment: multiply base run rate by park × weather factors.
  • Run rate mapping: translate batting & pitching skill to expected runs (λ) for each team.
  • Distribution: model runs with Poisson(λ) (or Gamma‑Poisson/NegBin for overdispersion).

Outputs

  • Win probability: P(Home Runs > Away Runs).
  • Fair moneyline: decimal 1 / p_win (convert to American as needed).
  • Totals probabilities: P(Over/Under N.5).
  • Stake sizing suggestions (fractional Kelly or fixed %).

Park effects and weather, quickly

  • Park Factor (PF): If PF_runs = 1.05, multiply expected runs by 1.05; if PF_HR = 1.20, boost HR‑driven components appropriately.
  • Weather: Temp ↑ often increases HR/run rate; wind out/in changes flight. Apply a simple scalar (e.g., 0.95–1.10) to the offensive side.
  • Home field: Add a small HFA to λ_home (e.g., +0.10 runs) or shift win probability post‑distribution.

Keep these adjustments modest and data‑driven; avoid doubling effects (e.g., park already embeds some weather realities).


Lineup uncertainty (and how to handle it)

  • Use projected lineups day‑of; set a rule for missing stars (e.g., downgrade λ by −0.10 to −0.25 runs if a top‑3 bat sits).
  • Pinch‑hitter / platoon risk: vs. LHP/RHP, adjust late‑game matchups; this usually matters more in advanced models.
  • Recompute λ when lineups lock ~90 minutes pre‑first pitch.

Log every lineup change and its impact. This transparency is crucial for post‑mortems.


Compact case study (Google Sheets): from inputs to fair odds

We’ll build a team‑based Poisson model for a single game. The point is to show flow—not to claim this is the only or best method.

Assume today: Home starter is solid; Away lineup has power; weather favors hitters.

Parameters (put these in a small input block):

B1: lambda_home_base = 4.2 (home team baseline runs vs today’s SP)

B2: lambda_away_base = 3.8 (away team baseline runs vs today’s SP)

B3: park_runs_factor = 1.05

B4: weather_runs_factor = 1.03

B5: bullpen_adj_home = +0.00 (negative if strong pen)

B6: bullpen_adj_away = +0.15 (weak/tired pen)

B7: home_field_runs = +0.10

Adjusted expected runs (λ):

B9: lambda_home = B1 * B3 * B4 + B5 + B7

B10: lambda_away = B2 * B3 * B4 + B6

Build run distributions for each team (0–12)

A14: Runs B14: P_home(R) C14: P_away(R)

A15: 0 B15: =POISSON(A15,$B$9,FALSE) C15: =POISSON(A15,$B$10,FALSE)

A16: 1 B16: =POISSON(A16,$B$9,FALSE) C16: =POISSON(A16,$B$10,FALSE)

… fill down to Runs=12 (A27)

Joint grid and win probability

E14: Home\Away F14:0 G14:1 … R14:12

E15:0 F15: =$B15*$C15 G15: =$B15*$C16 …

… fill the matrix E15:R27 = outer product P_home * P_away

Win prob P(Home>Away):

B30: =SUMPRODUCT( (ROW($E$15:$R$27)-ROW($E$15)) > (COLUMN($E$15:$R$27)-COLUMN($E$15)), $E$15:$R$27 )

(That SUMPRODUCT counts all cells where home runs index > away runs index.)

Fair moneyline & totals

B31: Fair Home Decimal Odds = 1 / B30

B32: P(Over 8.5) = 1 – POISSON(8,$B$9+$B$10,TRUE)

B33: Fair Total 8.5 Decimal = 1 / B32

Market inputs:

B35: Market Home Odds = 1.95

B36: Market Over 8.5 = 1.90

EV checks:

B38: EV Home per $1 = B30*(B35-1) – (1-B30)

B39: EV Over per $1 = B32*(B36-1) – (1-B32)

Decisions:

B41: Home Bet? =IF(AND(B38>0, B35>(1/B30)),”YES”,”NO”)

B42: Over Bet? =IF(AND(B39>0, B36>(1/B32)),”YES”,”NO”)

Notes

  • Poisson underestimates tail outcomes sometimes; if you observe persistent misfit, consider Negative Binomial for overdispersion or simulate.
  • Don’t let market odds leak into λ estimation—use markets only to compare and for CLV tracking.

Add a small chart for P(Runs) to make it visual, and screenshot the input block + decision cells for the article.

Screenshot from My Private MLB Betting Model

From metrics to λ: mapping ideas

How do we get the baselines (B1 and B2)? Use skill to run‑rate mapping:

  • Start from league average runs vs. the relevant pitcher handedness.
  • Adjust by team batting xwOBA vs that hand relative to league baseline.
  • Adjust pitcher by SIERA/xFIP vs that hand, mapped to runs allowed (regressed).
  • Add park & weather scalars and bullpen penalty/boost.
  • Cap extremes to avoid wild λ.

This mapping is where experimentation lives. Track out‑of‑sample performance and calibrate.

MLB Betting Model

Validation: don’t skip this

  • Backtest: rolling window; evaluate log loss/Brier for win prob, calibration for totals.
  • CLV tracking: price you bet vs. close; sustained CLV outperformance beats short‑term ROI as a signal of real edge.
  • Error audits: keep a checklist (lineups, odds conversion, wrong range fills, duplicated rows).

Document every change to your mapping and note its effect. Treat the model like a product.


Tooling and workflow

  • Build in Sheets for transparency and speed; push repetitive transforms to Python/R later.
  • Data hygiene: cache raw inputs, timestamp refreshes, and keep a “version” tab in your sheet.
  • Automation: when ready, fetch daily stats via scripts/APIs and write to your sheet or database.

See also: Google Sheets for Betting Tutorial and How to Build Your First Sports Betting Model.

MB MLB 728x90 Jpg

FAQs

Is Poisson good enough for MLB?
It’s a reasonable first approximation for team runs, especially with sensible λ. If your tails look off, test Negative Binomial or simulate.

Which single pitcher metric is best?
No silver bullet, but SIERA + K‑BB% + batted‑ball quality (Barrel%, GB%) is a strong trio for forward‑looking performance.

How much do park and weather matter?
Enough to move edges from −EV to +EV on the margins. Park/HR factors and hot‑weather days can shift totals and HR props meaningfully.

What about batter‑vs‑pitcher (BvP) history?
Usually too small‑sample to matter; treat as noise unless the sample is large and supported by skill metrics.

Can I model bullpens simply?
Yes—start with a pen rating and add/subtract ~0.1–0.3 runs depending on rest/quality.


A soft next step

If you want a structured path with templates and step‑by‑step videos, the Ultimate Modern Bettor’s Blueprint walks you from a clean Sheets build to disciplined execution and validation. The concepts here are free; the course compresses the timeline and mistakes. Or you can download my ready-to-use baseball betting model here.

Unlock the secrets of winning bettors—enter your email for proven strategies, expert tips, and smarter betting insights.