The Continued Costs of Miller Park

Exploring Runs Prevented

Recently a BPMilwaukee Twitter reader asked about Runs Prevented, as my set of pitching posts leaned somewhat heavily on the stat. It’s a great question and I’m glad someone asked it. I’ve been writing about Runs Prevented for a decade, and it’s easy to forget to explain myself when I’m using the statistic. That’s a bad practice, so here it goes: let’s have some fun with Runs Prevented.


Years before Deserved Runs Average (DRA), and the expansion of Fielding Independent Pitching (FIP) into popular language, I was personally interested in investigating ways to discuss pitching performance in a language other than Earned Runs Average (ERA). The typically cited shortcomings with ERA are its dependence on the official scorer’s discretion (due to errors), and its dependence on defensive ability. Another more straight forward issue with ERA is that it simply does not equal Runs Scored / Runs Allowed (RS / RA). This is unsatisfactory because RS / RA is the primary statistic in all of baseball: teams win based on outscoring their opponents, plain and simple.

Runs Prevented is a useful stat in order to place pitching performance on the same level as the run environment, or leaguewide RS / RA. In this way, it gets a little bit closer to the language of wins and losses than ERA. Granted, by assessing a pitcher’s runs allowed, the defense is still in the mix, but there’s always going to be a shortcoming with a statistic; in this case, the issues with the official scorer’s discretion is removed.

So Runs Prevented is simply the following:

In a given workload (Innings Pitched), league (Runs Allowed per 9 IP), and park (Park Factor — I typically use Baseball Reference Three-Year Factors), how many runs would a pitcher be expected to allow? How many runs did they actually allow?

These questions can be answered in a really simple table. Here’s the 2017 Brewers, who were quite good:

2017 Brewers IP R Expected Difference
C. Anderson 141.3 47 73 26
J. Nelson 175.3 75 91 16
Z. Davies 191.3 90 99 9
M. Garza 114.7 72 59 -13
B. Suter* 81.7 33 42 9
A. Wilkerson 10.3 4 5 1
B. Woodruff 43 23 22 -1
P. Espino 17.7 13 9 -4
T. Milone* 21 15 11 -4
J. Guerra 70.3 44 36 -8
W. Peralta 57.3 51 30 -21
Emergency M. Blazek J. Jeffress
PARK 4.68

This table reads as follows: the pitcher is followed by workload (Innings Pitched), actual runs allowed, expected league and park runs allowed, and the difference between the two figures (Expected RA – Actual RA = Runs Prevented). Runs Prevented is the difference between a pitcher’s actual runs allowed and the runs they would have been reasonably expected to allow given their park and league.

Unfortunately, this is quite abstract, but it’s tough to measure pitching quality. Batting quality is a bit more intuitive, I think, because Runs Scored count “upward;” but Runs Allowed should be kept low (theoretically) in order to increase the chances of winning, so “Runs Prevented” do not technically “exist.” If a pitcher works a Complete Game Shutout, that’s an easy way to understand that someone prevented runs, but it’s less useful or intuitive to say that when Chase Anderson or Zach Davies work 6 IP / 2 R, they “prevented” one run. But, in 2017 Miller Park, that’s exactly what a 6 IP / 2 R start was worth compared to the National League and park environment. A 6 IP / 2 R start equals roughly one run prevented.

If you’re interested in the basics, this is a good place to stop. The basic concept of Runs Prevented is to assess a pitcher’s performance, and a team’s performance, against the context of their league and park. The underlying goal, of course, is to assume that if a team can prevent more runs from scoring, they can increase their likliehood of winning.


One advantage of this type of focus on Runs Scored and Runs Allowed is that the stat can easily be expressed across the league in a very straightforward manner. Park-adjusted each 2017 National League team, for example, and ranking them by Runs Prevented shows that (once again) the Brewers were quite strong with their pitching staff:

Team RS RA
Diamondbacks -4 166
Dodgers 50 140
Rockies -29 106
Nationals 55 93
Brewers -10 61
Cubs 73 55
Cardinals 34 30
Pirates -67 12
Giants -73 -48
Phillies -22 -54
Atlanta 5 -86
Padres -93 -103
Reds 11 -111
Marlins 88 -117
Mets 15 -135

A benefit of using this simple, straightforward number to express Runs Prevented is that an individual pitcher’s performance can be inserted onto any team. For example, if everything else was held steady on a .500 club, but they added Zach Davies, that club would be likely to improve by at least 9 runs (or approximately one win, holding the approximate scale of 10 Runs = 1 Win). What is especially significant about this stat is that it takes baseball out of the “Replacement Theory”; a “win” is not necessarily a marginal win in the sense that you’re assessing a player against a theoretical minor league replacement level. Instead, you’re judging a player against the park-adjusted league average, which is a much harsher standard than replacement level (in fact, something like Matt Garza’s -13 runs prevented season last year is not yet “replacement level”). So here, adding “one win” is really, really important; it’s quite different than adding one win above replacement (which raises its own questions).

What’s difficult about using Runs Prevented to assess a pitcher’s performance is that there are many contingencies in each league and team (including injuries, free agency and trades, other transactions, promotions, and demotions). This means that there is not necessarily a clear way to track future performance by using Runs Prevented. So, let’s look at shortcomings and contextual issues:

  • Runs Prevented is a “one-year” statistic that captures a snapshot of the league run environment at one point in time, with the focus on the distribution of runs prevented across each individual pitcher. But, constructing runs prevented rankings over years has taught me the value in embracing the variance in the game; last season I tracked National League pitchers who worked consecutive years between 2011-2017 and found that the typical pitcher working consecutive years varies by +/- 57.0 IP and +/- 12.1 runs prevented.
  • Using this context can also be helpful to understand the league’s pitching environment, especially assessing team’s by rotation spot. For example, the typical MLB team uses approximately 240 innings of -24 Runs Prevented pitchers in their starting rotation, which is quite bad; keeping this type of fact in mind will help Brewers fans understand why the 2018 depth-first rotation is actually quite solid (for they are mitigating this type of issue by seeking quality depth right out of the gate, rather than waiting for replacements to “arise” naturally).
  • These are just some of the ways that Runs Prevented can be used. Additionally, I’ve been using it lately to expressed DRA figures on a different scale (i.e., to say whether one’s DRA is better or worse than average in a particular environment, and what that means in terms of improving a team’s RS / RA). Most recently, I conducted this type of analysis to emphasize the strengths of the Brewers’ 2018 rotation.
  • These are just some of the ways Runs Prevented can be used. I’m sure there’s even more ways to use it; one could design a theoretical compensation system, or even attempt to track Runs Prevented by other designations (for instance, wouldn’t it be interested to track MLB Runs Prevented based on Prospect Scouting Grades?).

Just remember with Runs Prevented to keep context in mind: there are many shortcomings with the statistic, and it should not be used as a “predictive” metric (but that’s okay; not every stat should be predictive, as descriptive statistics are also very important). By exploring the context of a run environment, and the distribution of pitching success across teams, one can come to understand a lot about roster construction, pitching rotations, and mitigating the circumstances of a 162-game season.

Related Articles

1 comment on “Exploring Runs Prevented”

Robin's Home Town

Thanks for the explanation! That makes a lot of sense. This simplifies describing a pitcher’s performance.

Can this, or another, stat measure strength of competition?

For instance, if Chase Anderson faced the Padres for 30 starts and Zach Davies faced the Cubs for 30 starts, they would have pitched in a different run scoring environment.

Leave a comment