Vol. I · Issue 20
Monday, April 20, 2026

The Dinger Almanac

··· Baseball Statistics & Analysis ···


How Our HR Picks Work

Every ranking on this site comes from a deterministic probability model. No vibes, no hot takes, no "locks of the day." This page explains exactly what goes into the picks — and, just as importantly, what the model can't do.

The One-Sentence Summary

For every batter-pitcher-park matchup today, we estimate the probability that the batter hits at least one home run in the game. We rank everyone by that probability, and the top of the list becomes "today's picks."

The Inputs

Five categories of data feed the model, in rough order of importance:

  1. Batter HR rate (season + last 15 games). Season rate gets 70% weight, recent form gets 30%. Players with fewer than 50 PA fall back to league average until they accumulate a sample.
  2. Pitcher HR/9 allowed. How often this pitcher gives up home runs, normalized per 9 innings. Pitchers with fewer than 15 IP fall back to league average.
  3. Statcast quality (barrel %). Barrels are batted balls hit with both ideal exit velocity and launch angle — they're the strongest single predictor of future home run production. We use both the batter's barrel rate and the pitcher's barrel rate allowed.
  4. Handedness splits. Batter OPS vs. the pitcher's hand, and pitcher wOBA allowed vs. the batter's stance. Only applied when sample sizes are reliable (40+ PA).
  5. Park factor. Each MLB park has a HR factor for LHB and RHB separately. 100 is neutral, Coors Field is ~120, Petco is ~90. Where available, we also factor in temperature and wind.

The Math (Short Version)

We start with the league average HR rate per plate appearance (~3.2%), then apply a series of multipliers:

expected HR per PA =
  league_avg × batter_rate_mult × pitcher_HR9_mult
            × √(batter_barrel_mult × pitcher_barrel_mult)
            × handedness_mult × park_mult × weather_mult

P(at least 1 HR in game) = 1 − (1 − expected_HR_per_PA) ^ expected_PA

The square root on the barrel adjustment dampens extremes — a batter with 2x league-average barrel rate doesn't mean 2x HRs, because not every barrel clears the fence. The final probability is capped between 2% and 30%, because in real MLB history, no matchup has ever truly exceeded those bounds.

What "Confidence" Means

Each pick is tagged High, Medium, or Low confidence. This is about data quality, not certainty of the outcome:

Even a high-confidence pick with a 15% HR probability will miss 85% of the time. That's not the model being wrong — that's how rare home runs are.

What the Model Does Not Do

Transparency matters here. The current model has known limitations:

How We Know It Works (Backtesting)

Every change to the model is validated by running it against historical games before shipping. We measure three things:

  1. Calibration. When the model says "10% HR probability," the actual rate for those players should be ~10%. If it's 5% or 15%, the model is broken.
  2. Ranking lift. Our top 5 picks per day should hit HRs at well above the league average rate. Current target: 2x+ baseline. Synthetic testing shows 1.84x, real-data testing is ongoing.
  3. Brier score. A standard measure of probabilistic forecast accuracy. Lower is better. We publish it.

Our current calibration and backtest results are published on the calibration page, updated weekly. When the model misses, you'll see it.

The Honest Limits of Any HR Model

Home runs are rare events. Even the hottest hitter facing the most homer-prone pitcher in a bandbox with the wind blowing out caps somewhere around a 20-25% game HR probability. That means:

If a site promises "guaranteed picks" or shows win rates above 40% on individual HR props, they're either cherry-picking, outright lying, or both. We'd rather tell you the math is imperfect and show you the receipts.

What We're Working On

Questions, criticisms, or think you've spotted a bug? We want to hear about it. Email [feedback address] or open an issue on our public methodology repo.