Recent Posts

Contextualizing the Pirates’ Minor League Hitting Numbers

How do Kevin Kramer’s numbers stack up when regressed with BABIP and park factors? Photo by Aaron Doster/USA Today Sports

When it comes to minor league players, FanGraphs does a solid job of providing standard and advanced stats. Visit their Minor League Leaders page, and you’ll find pages of hitting numbers for players at every level of the minors.

Unfortunately, while the numbers are easy enough to find, they’re not as easy to draw conclusions from. These days, we’re used to numbers being contextualized: adjustments for season and for park and everything in between. When it comes to minor leaguers, though, the numbers are served about as raw as a sashimi tuna roll.

For example, if you look at the advanced tab, you’ll find that Kevin Kramer posted a wRC+ of 141, good enough for third among qualified AAA players and ahead of Christin Stewart, who last season was ranked the Detroit Tigers’ number three prospect by FanGraphs. Not bad, right?

Well, let’s take a closer look and see how those numbers hold up.

Park Adjustment

The first adjustment we need to make is for park factor. (If you’re unfamiliar with park factors, FanGraphs has a good explanation.) Simply put, park factors are a way to adjust a hitter’s performance for the stadium in which they played. The calculation is simple, based purely on runs scored at home and runs scored on the road.

After pulling that data from MiLB’s website (not an easy task), I was able to come up with park factors for AAA and AA teams. (Note: for purposes of this post, we’ll stick to the International and Eastern Leagues, since that is where the Pirates AAA and AA affiliates play.)

International League

TEAM TM Raw PF PF
Durham Bulls TBR 0.96 0.98
Indianapolis Indians PIT 0.91 0.96
Lehigh Valley IronPigs PHI 1.08 1.04
Columbus Clippers CLE 1.02 1.01
Norfolk Tides BAL 0.91 0.96
Louisville Bats CIN 0.93 0.96
Gwinnett Stripers ATL 1.07 1.04
Scranton/Wilkes-Barre RailRiders NYY 1.00 1.00
Buffalo Bisons TOR 1.02 1.01
Toledo Mud Hens DET 0.95 0.97
Syracuse Chiefs WSN 0.99 0.99
Pawtucket Red Sox BOS 1.00 1.00
Charlotte Knights CHW 1.12 1.06
Rochester Red Wings MIN 1.00 1.00

Eastern League

TEAM TM Raw PF PF
New Hampshire Fisher Cats TOR 0.98 0.99
Akron RubberDucks CLE 0.87 0.93
Bowie Baysox BAL 1.04 1.02
Erie SeaWolves DET 1.04 1.02
Harrisburg Senators WSN 1.00 1.00
Portland Sea Dogs BOS 0.99 0.99
Altoona Curve PIT 0.92 0.96
Reading Fightin Phils PHI 1.07 1.03
Binghamton Rumble Ponies NYM 0.95 0.97
Trenton Thunder NYY 0.97 0.99
Hartford Yard Goats COL 1.09 1.05
Richmond Flying Squirrels SFG 0.87 0.93

The raw single-season park factor is the first number. Since this is only one year of data, however, and because these things are prone to variance, I’ve also regressed 50% back to the mean of 1.00. I’ll be using the regressed numbers for all calculations.

Now, with park factor taken into account, we can adjust the wRC+ numbers. Here are the numbers for all Pirates AAA hitters with at least 200 plate appearances last season. The adjusted wRC+ is on the right.

I must note here that there’s some slight discrepancies between my original wRC+ numbers and FanGraphs’ numbers. Since they don’t publish their Minor League weights, I used their standard numbers and used an estimate based on a linear model to estimate the wOBA scale.

Name PA wRC+ PF wRC+
Kevin Kramer 527 142 147
Kevin Newman 477 116 120
Pablo Reyes 398 118 122
Jordan Luplow 357 136 140
Jose Osuna 342 146 150
Christopher Bostick 327 122 127
Eric Wood 308 130 134
Ryan Lavarnway 303 146 150
Max Moroff 297 110 114
Wyatt Mathisen 282 109 114
Jacob Stallings 278 110 114
Erich Weiss 236 91 96
Jason Martin 234 62 67
Jerrick Suiter 219 68 73

Good news! Kramer’s numbers look even better now. Giddy-up.

Now for AA hitters:

Name PA wRC+ PF wRC+
Cole Tucker 589 95 99
Will Craig 549 112 116
Ke’Bryan Hayes 508 131 135
Stephen Alemais 463 94 98
Logan Hill 444 95 99
Jordan George 392 100 104
Bryan Reynolds 383 128 132
Christian Kelley 347 89 93
Jason Martin 289 150 155
Bralin Jackson 219 49 53

The Ke’Bryan Hayes numbers are particularly encouraging.

Luck Adjustment

Let’s take our evaluation one step further. Here, again, are the AAA and AA numbers, but this time with one additional column: batting average on balls in play (BABIP).

Name PA wRC+ PF wRC+ BABIP
Kevin Kramer 527 142 147 0.392
Kevin Newman 477 116 120 0.333
Pablo Reyes 398 118 122 0.338
Jordan Luplow 357 136 140 0.336
Jose Osuna 342 146 150 0.353
Christopher Bostick 327 122 127 0.367
Eric Wood 308 130 134 0.335
Ryan Lavarnway 303 146 150 0.338
Max Moroff 297 110 114 0.270
Wyatt Mathisen 282 109 114 0.285
Jacob Stallings 278 110 114 0.343
Erich Weiss 236 91 96 0.289
Jason Martin 234 62 67 0.261
Jerrick Suiter 219 68 73 0.303

And AA:

Name PA wRC+ PF wRC+ BABIP
Cole Tucker 589 95 99 0.310
Will Craig 549 112 116 0.288
Ke’Bryan Hayes 508 131 135 0.344
Stephen Alemais 463 94 98 0.326
Logan Hill 444 95 99 0.293
Jordan George 392 100 104 0.293
Bryan Reynolds 383 128 132 0.362
Christian Kelley 347 89 93 0.270
Jason Martin 289 150 155 0.396
Bralin Jackson 219 49 53 0.291

As you can see, BABIP has a rather large influence on the wRC+ outcome. In fact, Kramer nearly hit .400 on balls in play last season! That likely plays a big part in his 142 wRC+.

So what happens to those numbers when we adjust for some measure of “luck”? By adjusting a player’s hits based on league-average BABIP, we can see just how much luck has inflated the raw numbers.

Last season, league-average BABIP in the Major Leagues was .296. In the International League, the average BABIP was .309, while average for the Eastern League was .307. It makes sense that those numbers would be higher for lower levels of baseball given defense and pitching talent discrepancies, though it’s hard to say why the AA level actually produced a lower BABIP number.

Now, after adjusting a player’s singles, doubles, and triples so that their BABIP falls in line with the league average, while maintaining the same ratio, we can recalculate wOBA, wRAA, and, of course, wRC+.

AAA Adjusted wRC+

Name PA wRC+ PF wRC+ LUCK wRC+
Kevin Kramer 527 142 147 107
Kevin Newman 477 116 120 104
Pablo Reyes 398 118 122 107
Jordan Luplow 357 136 140 125
Jose Osuna 342 146 150 128
Christopher Bostick 327 122 127 97
Eric Wood 308 130 134 120
Ryan Lavarnway 303 146 150 136
Max Moroff 297 110 114 129
Wyatt Mathisen 282 109 114 126
Jacob Stallings 278 110 114 97
Erich Weiss 236 91 96 105
Jason Martin 234 62 67 92
Jerrick Suiter 219 68 73 71

The luck-adjusted numbers for Kramer now look much more pedestrian. (In case you were wondering, Christin Stewart’s adjusted wRC+ is 147 after adjusting for park and BABIP luck.)

AA Adjusted wRC+

Name PA wRC+ PF wRC+ wRC+
Cole Tucker 589 95 99 95
Will Craig 549 112 116 125
Ke’Bryan Hayes 508 131 135 116
Stephen Alemais 463 94 98 89
Logan Hill 444 95 99 108
Jordan George 392 100 104 112
Bryan Reynolds 383 128 132 108
Christian Kelley 347 89 93 112
Jason Martin 289 150 155 117
Bralin Jackson 219 49 53 61

The Hayes numbers look less impressive now, but they offer a brighter outlook for Will Craig. Of course, it’s also worth noting in those comparisons that Craig is two years Hayes’ senior.

In short, while there is plenty of good data out there on baseball prospects, it’s always important to remember just how these numbers look when put into a wider context. A player’s park, as well as their luck, can play a large part in how good or bad they look. And while, over time, player’s may prove higher BABIP numbers are due more to skill than luck, it’s still worth keeping in mind when evaluating prospects.

A sports fan with a background in finance, Brandon spends most of his time crunching numbers in Excel. He ?s an avid listener of Wharton Moneyball, and enjoys advanced analytics, sports handicapping, and podcasts. When he ?s not working, he can usually be found reading. He can be reached on Twitter @SteeliconValley

8 Comments on Contextualizing the Pirates’ Minor League Hitting Numbers

  1. This is awesome. I love what TPOP is doing to put some value/context towards MiLB statistics. I’ve always just casually brushed them off and devoted my time to scouting reports & scouting traits for prospects.

    I do have one question. You mentioned that Will Craig is 2 years Hayes’ senior. Did you consider or have you considered factoring in age in relation to the average age for a league? That’s something I LOOK at, but haven’t necessarily attempted to quantify.

    • Kevin Creagh // February 15, 2019 at 2:53 PM // Reply

      Not to speak for Brandon, but in Stat Scout Line I do account for age-relative-to-PROSPECT-level. So a prospect should be 20-21 in Low A, add a year for each level up. Not based on the average age of a player in that league, because there’s plenty of 23-24 year olds rolling around Low A that are not prospects and drag the average down.

  2. Phillip C-137 // February 15, 2019 at 7:34 PM // Reply

    Good stuff and I appreciate the first stab at trying to contextualize the Minor League numbers.

    However the fact that Max Moroff gets such a large increase in his LuckwRC+ compared to his PFwRC+ just because his BABIP is so low compared to the league average tells me there’s room for future tweaking.

    Perhaps there needs to be a graduated scale when it comes to the BABIP adjustment.

    • Brandon Conner // February 15, 2019 at 10:06 PM // Reply

      I agree, that ?s the next logical step. I used league average for a quick calculation, but for players with more history (like Moroff) it would make more sense to move that regression number closer to their career number.

  3. Isn ?t BABIP very specific to each player, with meaningful variation from the mean? If so, seems like adjusting everyone using the same BABIP will dramatically discount production of guys that routinely have higher BABIPs, presumably because of their batter ball profile?

    • Brandon Conner // February 15, 2019 at 10:04 PM // Reply

      Yes and no. There can be deviations from the mean, but it can take a while before a player ?s ?true ? BABIP can be identified. For minor leaguers, most of which have only played a few seasons, it ?s hard to say with any real certainty what their true BABIP should be, so I used the league average as an approximation. Maybe Kramer ends up being a guy whose skill at the plate presents itself in a BABIP above the average, but for now, I think league average works as an approximation (in any event, I doubt he carries a .390 for his entire time in AAA).

      Hope this makes sense.

  4. Interesting.
    If I am reading this correctly, then our top 2 hitters at Indy last year were: wait for it KC: Jose Osuna and Ryan Lavarnway. Osuna has been bashed on this site, and Lavarnway was left to sail into the sunset (or is it out to the sunset?). Yes, Lavarnway was an older player, however I would argue that he was/is a better choice then Stallings. And Osuna, who has followed the path the Pirates have asked him to follow (from pitcher to first base to outfield to third base) has found himself blocked by every new toy that Huntington acquires (Bell/Moran/Kang/Chisenhall/Cabrera)even though he is better defensively than Bell/Moran/Cabrera at their respective positions. And it has been shown that Osuna hits better the more he plays, yet he has not gotten that chance to do so.
    It seems to me that we have a potentially good major league player that is just going to waste.

    • Kevin Creagh // February 17, 2019 at 6:53 AM // Reply

      Lavarnway is 31. He’s a career .208/.268/.326 hitter in the Majors. His wRC+ is 59. It’s established that he’s not good. I would have liked him as depth at AAA, but he wanted to explore other options in a vain attempt to reach the Majors.
      Osuna is 26. He’s a career .231/.263/.417 hitter in the Majors. His wRC+ is 77.

      Both of these guys are the textbook definition of Quad-A players – good in Triple, can’t translate in the Majors.

Leave a comment

Your email address will not be published.


*