← Back to slate

MLB

How It Works

We pull every game on the slate, match it against 21 analysis systems — including the Dinger Radar home run model — and light up a badge when a system triggers. The more badges stacked on a side, the louder the signal. Gold-rimmed badges are the strongest.

/// THE MATH

We take the schedule from the MLB Stats API, pull season pitching stats (including HR/9, fly-ball rate, and FIP) for each probable starter, season hitting splits for each lineup (including vs LHP / vs RHP), the standings with run differentials, park factors for the 30 venues, current wind from Open-Meteo, and lines from The Odds API — plus each day's opening number, which we snapshot the first time we see it. A second, deeper pass pulls posted lineups, every batter's season and last-14-day numbers, career batter-vs-pitcher history, reliever workloads from the last three days of boxscores, and home run prop prices. All of it feeds a deterministic engine that returns the triggered badges and the Dinger Radar board for every game.

The fast data refreshes every 60 seconds during games; the batter-level deep pass reruns every 15 minutes — each with an independent cloud fallback, so the slate keeps itself current all day. Results cache in Upstash Redis so the page loads in under 100 ms.

PITCHING

Run prevention is the single biggest predictor of a baseball outcome. These reward starters who are demonstrably better than their counterpart — on the surface stats, on the peripherals, or over the first five innings — plus the bullpen rest advantage behind them.

ACE EDGE
ACE_EDGE

Starting pitcher's season ERA is 1.0+ runs better than the opponent's (50+ IP min). The team with the ace has the run-prevention edge.

🔥
STRIKEOUT SPECIALIST
STRIKEOUT_SPEC

Starter strikes out at least 10 batters per 9 innings. Suppresses contact, limits BABIP variance, and boosts strikeout-prop equity.

🏆
ELITE ARM
ELITE_ARM

Starter combines K/9 ≥ 11, WHIP ≤ 1.05, and ERA ≤ 2.50 — peripheral stats consistent with Cy Young-grade dominance. Strikeout props and team-no-runs-in-N specials.

5️⃣
FIRST-5 EDGE
F5_EDGE

One starter clearly outclasses the other on a composite of ERA, WHIP, and K/9 (both 30+ IP). First-5-innings lines isolate the pitching mismatch and remove bullpen randomness.

🎭
FIP MIRAGE
FIP_MIRAGE

Starter's ERA is 0.75+ runs better than his FIP (50+ IP) — the shiny ERA is riding batted-ball luck and strand rate. Fade the mirage side; the peripherals say regression is coming.

😴
BULLPEN BURNOUT
BULLPEN_BURNOUT

Opposing bullpen has thrown 14+ innings in the last 3 days (league norm is ~11). Late-game arms are gassed, tipping leverage to the other side.

HITTING

Lineup form and platoon advantage. We use season OPS as a proxy for 'hot' and the team's vs-LHP / vs-RHP splits to spot the platoon edge against the opposing starter.

💪
HOT BATS
HOT_BATS

Team OPS over the last 10 games is .800 or better. Lineup is locked in and run output is trending up.

🎯
SPLITS MISMATCH
SPLITS_MISMATCH

Lineup's OPS against the starter's pitching hand is 80+ points better than against the other hand. The platoon advantage is real.

ENVIRONMENT & SCHEDULE

Where the game is played and who slept in their own bed. Park factor + wind direction explains a huge chunk of total runs, and short-rest spots — late games, cross-country travel, day games after night games — show up most in early windows.

🏟️
POWER PARK
POWER_PARK

Hitter-friendly venue (park factor 105+) with wind blowing out 8+ mph. Carry-the-ball weather lights up totals.

🚀
OVER VALUE
OVER_VALUE

Hitter park (PF 105+) with wind blowing OUT 8+ mph — and the posted total is 8.5 or lower. The conditions tend to outpace the number.

🧊
UNDER VALUE
UNDER_VALUE

Pitcher park (PF ≤ 95), wind under 8 mph or blowing IN, total posted at 9 or higher, and at least one starter with sub-3.50 ERA. Lean Under.

🏠
HOME COOKIN'
HOME_COOKIN

Home team wins 60%+ at home, road team wins under 45% on the road. The split between the two is significant.

✈️
TRAVEL SPOT
TRAVEL_SPOT

Team played a 9pm+ ET game last night and traveled 2+ time zones for an early start today. Bodies are still on yesterday.

🥱
DAY AFTER NIGHT
DAY_AFTER_NIGHT

Team plays a day game today after a night game yesterday while the opponent rested. Day-after-night lineups sit stars and hit for less power — a classic situational fade.

REGRESSION & MODEL

Records lie; run differentials don't. These compare what a team (or a pitcher's ERA) claims against what the underlying numbers say, and check the model's win probability against the price the market is asking.

📐
PYTHAG EDGE
PYTHAG_EDGE

One team is underperforming its Pythagorean (run-differential) expectation by 4+ win-pct points while the opponent is overperforming. Records lie; run differentials don't — the market prices the record.

📊
MODEL VALUE
MODEL_VALUE

Win probability from run differential + starter quality (with home-field bump) beats the moneyline's implied probability by 6+ points. Requires confirmed starters — a big model-vs-market gap is a spot worth a second look.

MARKET

What the line itself is telling you. Heavy chalks suggest runline value; plus-money dogs with a real arm are mispriced; a moneyline that moves hard off the open is money the books respect; and when the underdog stacks 3+ system badges, the line is the signal.

🪨
HEAVY CHALK
HEAVY_CHALK

Moneyline favorite at -200 or shorter. Look at the runline (-1.5) for better number — heavy chalks historically cover the runline ~58% of the time.

🎰
PLUS-MONEY DOG
PLUS_MONEY_DOG

Underdog at +130 to +180 whose starter has a 0.50+ ERA edge over the favorite. The market is paying you to back a competitive arm.

🌊
STEAM MOVE
STEAM_MOVE

Moneyline has moved 2.5+ implied-probability points from today's opening number. Books move lines for money they respect — follow the steam, not the open.

💰
UNDERDOG VALUE
UNDERDOG_VALUE

Underdog has 3+ system badges in their favor — the line may be mispriced relative to where the math actually points.

DINGER RADAR

The home run model. Every batter on the slate gets a 0–100 score built from his shrunken season HR rate adjusted for park, wind, the opposing pitcher, platoon hand, two-week form, batter-vs-pitcher history, and the game environment. Batters over the alert threshold light up the slate — the full table with market prop odds lives on each matchup page.

💣
DINGER ALERT
DINGER_ALERT

Dinger Radar has at least one batter in this game above the alert threshold — power bat, HR-prone pitcher, friendly park, or all three. Check the matchup page for HR prop targets.

/// READING THE DINGER RADAR

Every batter's score starts from his season home run rate, stabilized so a hot week in a small sample doesn't masquerade as power. That base rate is then adjusted — carefully, with every factor capped — for the park, the wind, how homer-prone the opposing starter is, the platoon matchup, two-week form, and career history against tonight's pitcher. The output is a 0–100 score and a modeled probability of homering in the game.

  • Scores of 72+ are Dinger Alerts — highlighted gold on the matchup table and surfaced on the game card. A typical full slate produces a handful, not dozens.
  • The matchup page lists every batter with his score, modeled HR%, and the best available home run prop price. A ▲EVmarker appears only when the model's probability clears the book's implied breakeven with room to spare.
  • Before lineups post (~3–4 hours pre-game), batting orders are projected from each team's last game and labeled as projected. Prop prices appear once books post them, typically late morning.

/// CONFIDENCE LEVELS

Every badge wears its confidence as a metal rim and a dot count.

HIGH

Gold rim, three dots. Clean trigger with margin to spare — the strongest version of the signal.

MEDIUM

Silver rim, two dots. Trigger met, signal present, edge moderate.

LOW

Bronze rim, one dot. Threshold barely cleared. Use as supporting context only.

/// HOW TO READ THE SLATE

  • 01.Open today's slate. Each game shows the pitcher matchup, the line, any triggered badges, and a Dinger Radar strip when a batter clears the alert bar.
  • 02.Scan for games with 3+ badges stacking on one side — that's where the math is loudest.
  • 03.Hover any badge for the full reason (numerical context), or hit Matchup for the whole picture: every badge explained, plus the full Dinger Radar table with prop prices.
  • 04.For entertainment only. Badges are signal, not certainty.

For entertainment purposes only.