Baseball Analytics and Totals: Using Pitching Metrics to Find Edges
Tuesday night in Denver, the total opened at 10.5. By noon, it was 11.0. My number did not move. The air was warm, but wind was light. Both starters had poor ERA on the screen, yet their recent pitch quality had jumped, and both bullpens were rested. The game finished 5–4. The lesson: totals swing fast, but sharp edges often sit in the fine print of pitching.
What the market already prices in — and what is left on the table
Totals move on names, news, and weather. Books see the starter, the park, the travel, and the wind. They also fold in basic splits and team form. Much of that is fair. For example, a park like Denver or Cincinnati has a higher run level by design. If you want to set your base right, start with park factors and run environment. The market also adjusts for headline injuries and extreme heat or cold.
What is left? Often it is the shape of a pitcher’s skill, not just his ERA. It is how he locates today, not last month. It is whether the bullpen’s best arms are fresh. It is the umpire zone and the catcher’s frame. It is how the ball will fly in this air. These are small edges, but they stack.
Metric flyover: the pitching signals that move totals
K-BB% and plate discipline
K-BB% is strikeout rate minus walk rate. It is a clean look at command and control. A higher K-BB% cuts base runners and contact, which leans Under. A low K-BB% invites traffic and loud swings, which leans Over. But you must watch sample size and batter side splits. To learn the building blocks, the FanGraphs plate discipline glossary is a good base.
xERA vs ERA: the gap that hints at drift
Statcast’s xERA uses contact quality and launch data to estimate what ERA “should” be. When ERA is much lower than xERA, run prevention may be due for a rise, and vice versa. That gap can tilt totals. You can pull it from the Statcast expected ERA (xERA) page. A steady gap of 0.50–0.70 over a few starts is a flag worth study.
xFIP and SIERA: skills that strip out HR noise
Home runs swing totals, but HR/FB can be noisy in short runs. Metrics like xFIP and SIERA lean on skills that stabilize faster (K, BB, GB). When xFIP or SIERA is much lower than ERA, Under risk rises. When they are much higher, Over risk rises. Context still matters: some parks juice homers; some hitters pull the ball in the air a lot.
Stuff+, Location+, Pitching+, and PLV
Stuff+ scores the raw pitch traits. Location+ scores command. Pitching+ blends both. These models can move before ERA does. If Pitching+ is strong, it is a soft Under nudge. The Athletic has a good high-level look: Pitching+ framework explained. There is also PLV, a per-pitch value tool that judges each throw in context; see the Pitch Level Value (PLV) primer. A climb in PLV with a rise in called strikes plus whiffs (CSW) is a real form shift.
GB%, FB%, IFFB%, HR/FB with park and weather
Ball in the air is where runs live. High GB% keeps the ball on the ground and helps Unders in home-run parks. High FB% can push Overs when heat and wind boost carry. Use live park and air notes, like Ballpark Pal park and weather effects, to adjust half a run up or down on strong days. Be careful with HR/FB in small samples; it swings wild week to week.
Times Through the Order (TTO) and manager plan
Most starters lose bite the third time through a lineup. Some managers still push their guys one more frame. That is when late runs come. Read up on the Times Through the Order penalty. Then check how deep this starter went in his last few starts and who waits in the bullpen.
Velocity change and short-run pitch mix shifts
Fastball up two miles per hour? That can change the whole at-bat tree. Velo drops of the same size can hint at a sore arm and more balls in play. Do not use velocity alone. Pair it with CSW and swinging strike rate. A clear velo trend plus a mix change (more sliders, fewer changeups) can swing a total by a half run in some matchups.
Bullpen freshness and leverage
Many totals are won or lost after the sixth. A fresh, high-leverage bullpen drops late scoring. A tired pen with two key arms used hard over the last 48 hours boosts late runs. Learn how leverage is tracked with Leverage Index explained. Then look at actual pitch counts for the top two or three relievers in the last three days.
Umpire zone and catcher framing
A wide low zone helps grounders and strikeouts. A tight top zone helps fly balls and walks. You can scout the ump on the day with Umpire Scorecards data. Framing also shapes calls; check the Statcast catcher framing leaderboard. When zone and framer point the same way, lean harder.
Park, weather, and humidor notes
Heat, wind out, and dry air raise run rate fast. Cold, wind in, and heavy air kill flight. Start with models like Ballpark Pal park and weather effects. Also note that MLB uses humidors in all parks now; see the MLB humidor policy. This can shave carry, but the effect changes by city and season.
Field Note: movement from seam-shifted wake
Some pitchers add weak contact not by speed, but by movement the hitter does not read. That can come from the way seams change air. If you want a deeper dive, read this seam-shifted wake overview. You do not have to model it to get value; just note big jumps in weak-contact rates that do not match velo alone.
Data Note: samples and when to trust them
Do not trust tiny samples. K-BB% needs dozens of batters to firm up. GB% settles faster than HR/FB. Use this guide on sample size and stabilization. When in doubt, weight season-to-date more than last seven days, but do not ignore short-run pitch changes if they are clear and recent.
Method Interlude: the 20‑minute model
Here is the fast routine I use on a busy slate. It is simple, and you can run it in a spreadsheet.
- Pull last 30 days and season-to-date for K-BB%, xERA, xFIP, SIERA, velocity trend, pitch mix, bullpen use, umpire, park, and weather. If you code, the pybaseball library helps. Historic files live at Retrosheet and the Lahman database.
- Create z‑scores vs league for each starter and for bullpen units.
- Weight starters 60%, bullpen 30%, park/weather 10%. Tweak for your risk.
- Turn the blend into an “expected total” delta from league baseline in that park.
- Sanity check vs market open and news. Back-test your edge vs the close to see if your guess beats the final line often enough.
Pitching metrics that move MLB totals — stability, direction, and where to pull data
Bookmark this table. It is the quick lens I use before I even look at the price.
| K‑BB% | Clean look at zone skill; fewer walks and more Ks mean fewer base runners and less contact. | Higher → Under tilt; lower → Over tilt. | About 60–100 PA; splits need more. | FanGraphs leaderboards. | Early season is noisy; contact quality can still beat it. | Shift of ≥4–5 pts vs league is a signal; confirm with contact stats. |
| xERA vs ERA gap | Shows likely drift to true run prevention based on contact. | ERA ≪ xERA → Over risk; ERA ≫ xERA → Under risk. | Needs a few starts’ worth of batted balls. | Baseball Savant. | Defense, parks, and umps can skew short windows. | Persistent gap ≥0.50–0.70 over 3–4 starts is worth weight. |
| xFIP / SIERA | Reduce HR luck; lean on Ks, BBs, and GBs. | Lower than league → Under bias; higher → Over bias. | Looks better on 5–6+ starts. | FanGraphs. | HR‑friendly parks and pull profiles can beat “average” HR/FB. | ERA gap >1.0 vs these metrics is a strong regression mark. |
| Stuff+ / Location+ / Pitching+ | Pitch quality and command that can front-run changes in ERA. | High Pitching+ → Under tilt; low → Over tilt. | Stabilizes faster than ERA. | The Athletic explainer. | Model‑based; sample and role matter. | Above 105 or below 95 deserves a closer look. |
| PLV | Values each pitch in context; good for trend shifts. | Higher PLV → Under tilt. | A few starts; works best with velo/mix notes. | Pitcher List. | Opposition strength can skew short runs. | PLV up + CSW up is a top signal of skill change. |
| GB% / FB% and HR/FB | Air balls drive home runs; grounders kill flight. | High GB% → Under in HR parks; high FB% → Over with wind/heat. | GB% settles faster than HR/FB. | FanGraphs; Ballpark Pal for air. | Weather can flip the script in one night. | +10 pts FB% + HR park + warm air = strong Over lean. |
| Velocity delta (last 3 starts) | Speed move often comes before results move. | +1.5–2.0 mph → Under bias; −1.5–2.0 mph → Over bias. | 2–3 starts. | Statcast game logs. | Cold temps and minor knocks can fake it. | Pair with SwStr%/CSW; do not use velo alone. |
| TTO penalty | Third trip hurts run prevention; late runs climb. | Short leash lowers late runs; long leash can spike them. | Depends on manager and bullpen depth. | The Hardball Times on FanGraphs. | Openers and planned hooks break patterns. | If manager rides to T3O often, add 0.2–0.3 runs risk late. |
| Bullpen freshness & leverage | Fresh top arms close doors; tired pens leak runs. | Tired → Over tilt; fresh elite → Under tilt. | Check last 48–72 hours. | FanGraphs RosterResource; Leverage Index. | Roles change; travel and extra innings bite. | 2–3 key RPs with 25–40+ pitches in 48h = Under risk. |
| Umpire & Framing | Strike zone width changes BB/K and contact. | Wide low zone → Under; tight top → Over. | Use history; small daily samples. | UmpScorecards; Statcast framing. | Matchups can mute the effect. | Zone + framer in same direction = stronger signal. |
Micro‑case: how a half run hides in plain sight
Think of a midsummer game at Fenway. The opener is 9.5. One starter has a 5.00 ERA but a 3.70 SIERA, a jump in slider use, and a +1.7 mph fastball last three starts. The other starter shows low K-BB% and rising fly balls. The wind is out to left, 10 mph. The ump has a tight top zone. Both teams used key relievers last night.
What moves me? The bad ERA may not reflect skill for the first starter; that leans Under on his side. But the other starter’s fly ball rise with wind out in this park leans Over. Bullpens are not fresh, which lifts late runs. If my blended model says +0.3 to +0.4 runs on weather and pen, and −0.2 on the better slider/velo shift, I end near +0.1 to +0.2 runs. If I can still find 9.0 flat, I might pass. If the market pushes down to 9.0 juiced Under, I may look small Over or wait live if the weak starter faces top of order in the third.
Market microstructure and smart shopping
Totals open at a few sharp books. Then copies spread. Early moves come from weather, pitcher news, or a few strong model groups. Later, public money can lean to Overs in TV games. Do not chase every tick. Track who moves first and why. Half a run is gold; ten cents of juice can be less so when key numbers (like 8, 8.5, 9, 9.5) are in play.
Before I place anything, I check limits, how fast a book moves on news, and how it prices live totals. Independent sportsbook reviews like BedsteCasino.org help me compare real limits and line behavior across books without guesswork. One clean page can save a unit across a week.
What I got wrong last week
I liked an Under at a big park with wind in. Starters looked fine on xFIP. I missed that both teams had burned two high‑leverage relievers the night before, and the third arms were on short rest. The game was 2–1 in the sixth and finished 7–5 after a walk, a misplay, and a three‑run shot off a tired reliever. My fix: log bullpen pitch counts for the top three arms every day, not just “used/not used.”
The 7‑step pre‑bet checklist I actually use
- Any 2+ mph velocity change in the last three starts?
- Is there a 0.7+ gap between ERA and xERA or SIERA that still holds?
- K‑BB% vs league: off by 4–5 points or more?
- Park and weather net out to +/- 0.3–0.5 runs tonight?
- Are two or three key bullpen arms fresh (≤15 pitches in last 48h)?
- Does the umpire zone match the pitchers’ strengths? Any strong framer?
- Best price and number shopped? Any half‑point better on the board?
Method notes, sources, and how to pull the data fast
Most of this can be pulled in a few clicks. Park effects: Savant’s park pages and models like Ballpark Pal. Plate skills: FanGraphs. Contact quality: Savant. Ump and framing: UmpScorecards and Savant. If you code, the pybaseball library taps MLB data. For deep history, use Retrosheet and the Lahman database. For TTO and leverage, lean on The Hardball Times and FanGraphs’ Leverage Index explained.
Mini‑FAQ
Is xFIP or SIERA better for totals?
Both help. xFIP normalizes HR/FB and is simple. SIERA adds more shape, like how GBs and Ks interact. For a single game, use both and see if they agree. For more on SIERA roots, read the Baseball Prospectus glossary: SIERA.
How much do bullpens matter vs starters?
Starters still drive most of the base. But bullpens decide many edges on the margin. On a night when top relievers are tired on both sides, I can add 0.2–0.4 runs to my total, all else equal.
What weather shifts are worth a move?
As a blunt guide: wind out 10–12 mph can add ~0.3–0.5 runs at some parks. Heat over 85°F can add a tick. Cold under 55°F can cut flight. Park shape and air density change this, so also check Ballpark Pal park and weather effects.
Is HR/FB stable enough to use in a week view?
No. HR/FB needs a lot of balls in play to settle. Use FB% and pull rate with park and weather for short windows. Let HR/FB guide longer horizons.
Brief glossary
- K‑BB%: Strikeout rate minus walk rate.
- xERA: Expected ERA from contact quality.
- xFIP: ERA estimator that normalizes home run rate.
- SIERA: Skill‑based ERA with more context of Ks, BBs, and GBs.
- PLV: Value of each pitch based on count, type, and result.
- TTO: Penalty for pitchers the third time through the order.
- CSW%: Called strikes plus whiffs percent.
- Leverage Index: Pressure level of a game state.
Field wrap: what matters most in practice
Do not overfit one metric. Blend skills (K‑BB%, xERA/xFIP/SIERA), short‑run form (velo, mix, PLV), and context (park, weather, ump, bullpen). Respect key numbers on the board. Pass when your edge is thin. Keep notes on why you bet, not just the result. Review your notes each week.
Update and trust notes
I update this guide at the start of the season (small‑sample warning), mid‑June (stabilization), and before the playoffs (role changes). If you spot an error or a broken link, please reach out. This piece links to primary data and long‑standing research. It also shows what I got wrong and how I fix my process. That is the point: learn, test, adjust.
Responsible play
This guide is for education, not advice. No bet is safe. Wager only where it is legal and only what you can afford to lose. For help and tools, see these responsible gambling resources.
Sources cited in context
- Park environment: park factors and run environment
- Plate discipline: FanGraphs plate discipline glossary
- xERA: Statcast expected ERA (xERA)
- xFIP: xFIP; SIERA: SIERA
- Pitching+: Pitching+ framework explained
- PLV: Pitch Level Value (PLV) primer
- TTO: Times Through the Order penalty
- Umpire: Umpire Scorecards data
- Framing: Statcast catcher framing leaderboard
- Weather/parks: Ballpark Pal park and weather effects
- Humidor: MLB humidor policy
- Samples: sample size and stabilization
- Data tools: pybaseball library; Retrosheet; Lahman database
- Leverage: Leverage Index explained
- Aerodynamics: seam-shifted wake overview
- SIERA deep link: Baseball Prospectus glossary: SIERA

