Feature photo of James Triantos by Rich Biesterfeld
There are tons of ways to evaluate a player’s overall offensive production — wRC+, OPS+, wOBA, and BaGS all do such a thing.
But I’m introducing a new four-character stat into the fold — BASH. While technically BASH is an acronym for Ballpark Adjusted Standardized Hitting, I’ll admit that a major factor in the four letters is the name itself. It’s undeniable that I’ll be more compelled to say “Kevin Alcántara is BASHing 128” rather than “Kevin Alcántara is OPS’ing .811.”
Before I start spouting off BASH numbers for every prospect in the system or casually referring to the new stat in articles here at NSB, let me run through the elements of BASH which I hope will truly explain why certain players feature different numbers than the other metrics out there.
Format: Much like many of the already-existing stats that feature a “+” in them, BASH is based on the fact that 100 is an exactly average offensive performer. A player putting up a BASH of 125 is 25% better than average and a guy BASHing 80 is 20% worse than average. Unlike wRC+ and more like OPS+ in terms of the numbers you’ll see, BASH will very rarely hover north of 150.
While in Myrtle Beach in 2022, Pete Crow-Armstrong put together the strongest offensive performance we’ve seen at that affiliate since the Pelicans joined the Cubs organization. He BASHed 156 at that level.
BASH > 130 = ELITE
BASH > 120 = GREAT
BASH > 110 = GOOD
BASH > 100 = ABOVE AVERAGE
BASH < 100 = BELOW AVERAGE
BASH < 90 = POOR
BASH < 80 = BAD
BASH < 70 = AWFUL
Run Values: This is where BASH most replicates wRC+. I used run values, much like what we see with wOBA run values that are ultimately used to calculate wRC+. The basic idea here is that a walk, hit by pitch, single, double, triple, and home run all produce different values when it comes to the likelihood a team scores a run as a result of that way of getting on base. A player isn’t necessarily twice as likely to generate a run by hitting a double vs. a single. While a walk and a single both get a batter a single base, a walk can’t drive a base runner in from second base.
As a part of BASH, run values are assigned to each hitting outcome.
Stolen Bases: When evaluating a player’s offensive production, it’s important to remember that hitting the baseball isn’t the only way to produce results. If Player A produces the exact same hitting stat line as Player B but Player A swipes 20 more bags, he is more valuable offensively. Stats like wRC+ or wOBA don’t take that into account. While BASH doesn’t yet adjust for base running skills such as going first to third (shoutout Kris Bryant), it does assign positive values for stolen bases and even greater negative values for the number of times caught stealing.
League Adjustments: We have grown accustomed to league-adjusted statistics. It allows fans to compare offensive production at the big league level in 2022 to hitting numbers during the steroid era, dead ball era, and every year of baseball in between. An .800 OPS in each of those eras is not the same, so metrics like wRC+ and OPS+ have compared a player’s numbers to that of the rest of the league.
The same can be said for the various leagues throughout the minors. The Carolina League (A-) carried a league OPS of .704 in 2022. The Southern League (AA) rocked a .752 rate. Simply put, if a batter had an individual OPS of .752 in Myrtle Beach he was terrific, but if he did it in Tennessee he was merely average.
BASH takes those league-adjusted rates for every offensive number and incorporates them into the stat’s overall value — much like many of the already existing metrics.
Ballpark Factors: Shockingly, wRC+ at Fangraphs and OPS+ at Baseball Reference do not adjust offensive performance depending on the home ballpark a minor leaguer is hitting at. BASH does.
Each year, Baseball America publishes park factors for every affiliated minor league stadium. The factors for all four Cubs minor league affiliates are posted in the table below, and play a big role in a player’s BASH score. A factor above 1.000 means the ballpark is hitter-friendly while a factor below 1.000 means the ballpark is pitcher-friendly.
2022 | Runs | HR | BABIP |
Iowa | 1.055 | 1.085 | 0.985 |
Tennessee | 1.002 | 1.061 | 0.974 |
South Bend | 1.023 | 1.093 | 0.992 |
Myrtle Beach | 0.919 | 0.891 | 0.999 |
As you can tell and surely are already aware of, being the prospect follower that you are, it’s much tougher hitting at Pelicans Ballpark rather than Principal Park in Des Moines. In BASH, Kevin Alcántara and James Triantos are rewarded for simply playing at that ballpark in 2022. If Pete Crow-Armstrong put up identical numbers at both Myrtle Beach and South Bend (he didn’t, of course), his BASH would be higher in Myrtle Beach than at South Bend strictly because it was more impressive at the pitcher’s ballpark.
Age Adjustments: In my opinion, this is the element that most sets BASH apart from the rest of the advanced stats. I want BASH to be used as a way to truly evaluate a player, not just a season’s worth of numbers. While I’ll be the first to tell you that the prospect development path is non-linear, it does carry value if a prospect is performing in a league where they are younger than their peers.
For example, the average batter age in the Midwest League (South Bend’s league) in 2022 was 22.2 years old. Owen Caissie spent the entire season in South Bend and ended the year at 20.2 years old. Jordan Nwogu was Caissie’s teammate all year long and was 23.5 years old. Using BASH, Caissie receives some brownie points while Nwogu gets dinged just a bit for being the elder statesman.
2022 Leaderboard
We’ll dig into some trends and individual production in more articles here soon, but in the meantime, enjoy the first-ever edition of the BASH leaderboard.
Sorted by season-long BASH in the 2022 season. Minimum 50 full-season plate appearances. Excludes prospects that logged MLB at-bats.
Name | BASH |
Crow-Armstrong, Pete | 134 |
Alcantara, Kevin | 128 |
Ballesteros, Moises | 125 |
Mervis, Matt | 123 |
Canario, Alexander | 122 |
McGeary, Haydn | 121 |
Triantos, James | 118 |
Pagan, Ezequiel | 116 |
Amaya, Miguel | 115 |
Murray, BJ | 115 |
Caissie, Owen | 112 |
Perlaza, Yonathan | 112 |
Hearn, Ethan | 112 |
Made, Kevin | 111 |
Slaughter, Jake | 109 |
Strumpf, Chase | 108 |
Nwogu, Jordan | 107 |
Hill, Darius | 105 |
Mora, Juan | 104 |
Aliendo, Pablo | 103 |
Wetzel, Jacob | 103 |
Pinango, Yohendrick | 102 |
Verdugo, Luis | 102 |
Ball, Bryce | 100 |
Stevens, Felix | 100 |
Santana, Yeison | 99 |
Roederer, Cole | 99 |
Howard, Ed | 98 |
Weber, Andy | 97 |
Maldonado, Nelson | 97 |
Huma, Josue | 96 |
Jordan, Levi | 95 |
Beesley, Bradlee | 95 |
Washer, Jake | 93 |
Preciado, Reggie | 92 |
Quintero, Malcom | 91 |
Pertuz, Fabian | 89 |
Spence, Liam | 88 |
Davis, Brennen | 88 |
Chavers, Parker | 86 |
Vazquez, Luis | 86 |
Sepulveda, Carlos | 86 |
Fabrizio, Miguel | 85 |
Sierra, Jonathan | 85 |
Opitz, Casey | 85 |
Davis, Zach | 84 |
Payne, Tyler | 81 |
Knight, Caleb | 81 |
Windham, Bryce | 79 |
Hicks, John | 79 |
McKeon, Scott | 75 |
Wenson, Harrison | 69 |
Giambrone, Trent | 67 |
Castillo, Erick | 65 |
Zinn, Delvin | 64 |
Hernandez, Frank | 63 |
If you have any questions, leave a comment on this post or tweet at me @OutOfTheVines. The plan is for BASH to be incorporated into the 2023 MiLB stats page here at NSB, so that you can track the offensive production of every prospect in the system as the season chugs along.
I really like this stat. I was surprised that Jake Slaughter did not calc higher. What were the aspects that kept him down?
Thanks, Tom! The first thing is likely his age (a little older than league-average at TN and significantly older during his time at SB). And I thought was that the stolen bases would lift him up a decent amount, but because he was caught 8 times, that makes a dent in the benefit his 36 stolen bases gave him!
Interesting. Is this full season only or can I ask how Pedro Ramirez did overall?
I typically do my best to not use statistics from the ACL and DSL because the pitch-by-pitch data isn’t always accurate and there is so much quirkiness about those leagues. So for now, BASH is only going to be full-season numbers, unfortunately!
Very interesting. The more we look at player career arcs the more obvious it becomes that age is HUGE. Take two players with essentially the same numbers, one a year older than the league and one two years younger, and you know who to bet on. It drove me crazy in past decades when the cubs so often featured 26 and 27 year old rookies who had one or two decent years and then faded.
I’d throw out that is age covers a good chunk of why I see Crow-Armstrong as somewhat overrated on the whole compared to Alcantara and especially Davis
Crow-Armstrong mashed in A ball at 20, the oldest any of the 3 were at the level and not an elite age for the level. His line went south big in the more age appropriate A+ including a big drop in plate discipline. Alcantara was productive at the more age appropriate 19, Davis dominated the level at 19 and then mashed in nearly 400 upper minors PAs at 21
For what it’s worth, PCA is only 4 months older than Alcántara
I feel like at this point I’ve required myself to point out that 1) development isn’t linear and 2) a player doesn’t need to be big league all-star caliber to bring value to a team. But you’re absolutely right in your thinking and that’s exactly why I wanted to include the age component in here. Give the stats behind the player a little bit more context!
How are you creating this stat. Do you have a formula or linear regression, other? Great post!
This is straight from a formula that I created taking all the things listed in the post into consideration. Coming from a guy that doesn’t have a deep stats background, it might actually be the longest formula I’ve ever seen lol