Tuesday, March 5, 2024

An introduction to pwOBA+ (Pitchers)

Photo: Baseball Savant

While I’m very pleased that the Major League Player’s Association has resolved all issues and players have agreed to report to training camp on the first of July, I remain doubtful that a season will take place.

State health departments reported nearly 40,000 new coronavirus cases on Wednesday, the biggest single-day increase yet. Texas, Florida, and California each reported over 5,000 new cases.

As much as I miss baseball, I would never want it to return at the expense of the health of the players and their families.

In the last few months, I have been creating countless predictive metrics. The pitching stat that I plan to introduce in this article is a combination of three of those metrics: pK%+, pBB%+, and pwOBACON+.


  • Swing% in heart zone
  • Whiff% in heart zone
  • Swing% in shadow zone
  • Whiff% in shadow zone
  • Whiff% in chase zone
  • % of non-whiff swings ending in foul balls (swings)
  • Average fastball velocity


  • Strike%
  • % of strikes that are foul balls (swings only)
  • % of 3-1 and 3-2 pitches that are swung at
  • % of pitches thrown when the pitcher is ahead in the count that result in swings
  • O-Contact%


  • Barrels%
  • Solid Contact%
  • Flares/Burners%
  • Poorly/Under%

The formula for pwOBA is pretty much the same as the formula for wOBA, a stat created by Tom Tango.

Instead of using actual strikeouts and walks, I insert predicted strikeouts and walks, and the predictive weighted on-base average on contact is used in place of singles, doubles, triples, and home runs.

Like wOBA, predictive weighted on-base average includes hit-by-pitches and excludes intentional walks.

pwOBA+ is simply pwOBA divided by the league average wOBA multiplied by 100.

To determine pwOBA’s value, I wanted to see a couple of things.

a. how strongly it correlates to ERA in season n+1

b. how reliable of a metric it is

c. how well it does a. and b. compared to other insightful publicly available metrics

In this case, season n+1 will be 2019 (out-of-sample testing for all three of my metrics).

The stats I will be comparing pwOBA to are pCRA and FRA.

pCRA (predictive classified run average), a metric developed by Connor Kurcon (@ckurcon on Twitter), factors in numerous variables, the main components being strikeouts, walks, and barrels.

Here is a graph that shows the RMSE to next season earned run average for different pitching metrics…

Graph: Six Man Rotation

As you can see, pCRA has the lowest RMSE, followed by SIERA. In other words, it gets the closest to a pitcher’s ERA in season n+1.

FRA (forecasted run average), a stat created by Dan Richards (@Fantasy_Esquire), does a better job of “predicting” next-season earned run average than SIERA, FIP, and xFIP also, and it is more reliable than those three metrics. Forecasted run average incorporates strikeout percentage minus walk percentage (K-BB%), average exit velocity, average launch angle, and age.

Pitcher List

Here is how pwOBA, pCRA, and FRA stacked up against each other for 2018-2019 consecutive player-seasons of at least 100 innings (the minimum requirement for Dan Richard’s stat)…

R^2 to ERA in season n+1

  1. pwOBA (.19)
  2. pCRA (.1792)
  3. FRA (.1577)

R^2 to itself YoY

  1. FRA (.4968)
  2. pwOBA (.4881)
  3. pCRA (.457)

In this test, my metric, pwOBA proved the superior of the three.

I would suspect that the gap between my metric + FRA and pCRA widens as the TBF requirement lowers (pCRA does not have a minimum TBF requirement; my metric does [min. 250 TBF]). The reason I feel this way is because the predictive metrics I created are more stable than the actual stats, thus explaining why they would do better when the sample is smaller.

My metric was far more predictive of future ERA than pCRA for pitchers who faced at least 250 batters in 80.0 innings or less in 2018 (season n) and pitched at least 35 innings in 2019 (season n+1).

Ccorrelation (R) to ERA in season n+1

  1. pwOBA (.23)
  2. pCRA (.13)

Here are the starting pitchers who recorded the lowest pwOBA last season (min. 250 TBF)

  1. Gerrit Cole (.256)
  2. Justin Verlander (.277)
  3. Jacob deGrom (.277)
  4. Mike Clevinger (.277)
  5. Luis Castillo (.277)
  6. Stephen Strasburg (.278)
  7. Max Scherzer (.278)
  8. Noah Syndergaard (.282)
  9. Lucas Giolito (.283)
  10. Blake Snell (.283)


  1. Luke Jackson (.251)
  2. Taylor Rogers (.264)
  3. Nick Anderson (.268)
  4. Josh James (.269)
  5. Josh Hader (.269)
  6. Aaron Bummer (.270)
  7. Emilio Pagan (.270)
  8. Liam Hendriks (.271)
  9. Diego Castillo (.275)
  10. Giovanny Gallegos (.277)

Pitchers w/ the biggest difference in pwOBA and wOBA from last year


  1. Yusmeiro Petit (.332/.240)
  2. Brandon Workman (.284/.206)
  3. Pedro Baez (.307/.239)
  4. Jordan Yamamoto (.339/.280)
  5. Seth Lugo (.286/.237)

Smallest difference


  1. Edwin Jackson (.346/.448)
  2. Nick Kingham (.346/.417)
  3. Edwin Diaz (.281/.344)
  4. Nathan Eovaldi (.302/.367)
  5. Drew VerHagen (.307/.370)

A leaderboard for pwOBA can be accessed here.