Top 100 Spring Hitters by OPS
As we know, spring stats are fluky and small samply. Usually any crazy production is statistical noise, but sometimes there is signal hiding in the weeds. Next week, I’ll apply a technique that can thin the herd by providing a short list of players who might be on the verge of a breakout.
For now, here is a manually compiled, sortable leaderboard of the top 100 spring hitters with over 20 at bats. Remember, apply every caveat imaginable. The BABIP column does not include sacrifices, so it could be a little off. The data I exported did not include that stat.
PLAYER | POS | TEAM | AB | HR | AVG | OBP | SLG | OPS | BABIP |
---|---|---|---|---|---|---|---|---|---|
Andrew McCutchen | CF | PIT | 25 | 3 | 0.560 | 0.593 | 1.000 | 1.593 | 0.611 |
Chris Davis | 1B | BAL | 22 | 3 | 0.500 | 0.560 | 1.000 | 1.560 | 0.533 |
Mike Moustakas | 3B | KC | 35 | 4 | 0.486 | 0.558 | 0.943 | 1.501 | 0.481 |
Russell Martin | C | PIT | 21 | 4 | 0.381 | 0.458 | 1.000 | 1.458 | 0.308 |
Francisco Cervelli | C | NYY | 25 | 3 | 0.480 | 0.519 | 0.880 | 1.399 | 0.500 |
Roger Bernadina | LF | CIN | 25 | 1 | 0.440 | 0.588 | 0.800 | 1.388 | 0.500 |
Brandon Moss | 1B | OAK | 28 | 3 | 0.464 | 0.531 | 0.857 | 1.388 | 0.556 |
Steve Clevenger | C | BAL | 22 | 1 | 0.545 | 0.600 | 0.773 | 1.373 | 0.579 |
Robinson Cano | 2B | SEA | 23 | 0.609 | 0.654 | 0.696 | 1.350 | 0.636 | |
Bryce Brentz | RF | BOS | 22 | 3 | 0.409 | 0.480 | 0.818 | 1.298 | 0.500 |
Yangervis Solarte | 2B | NYY | 29 | 2 | 0.517 | 0.563 | 0.724 | 1.287 | 0.565 |
Jerry Sands | LF | TB | 27 | 3 | 0.370 | 0.414 | 0.852 | 1.266 | 0.438 |
Austin Jackson | CF | DET | 32 | 1 | 0.469 | 0.514 | 0.750 | 1.264 | 0.519 |
Chris Heisey | LF | CIN | 38 | 5 | 0.368 | 0.368 | 0.895 | 1.263 | 0.333 |
Brad Miller | SS | SEA | 30 | 3 | 0.367 | 0.441 | 0.800 | 1.241 | 0.421 |
Steven Souza | SS | WAS | 31 | 3 | 0.355 | 0.429 | 0.806 | 1.235 | 0.333 |
A.J. Pollock | CF | ARI | 40 | 1 | 0.425 | 0.477 | 0.750 | 1.227 | 0.500 |
Jose Bautista | RF | TOR | 30 | 3 | 0.367 | 0.459 | 0.767 | 1.226 | 0.421 |
Brandon Hicks | SS | SF | 30 | 1 | 0.400 | 0.472 | 0.733 | 1.205 | 0.524 |
Anthony Rizzo | 1B | CHC | 28 | 2 | 0.393 | 0.452 | 0.750 | 1.202 | 0.409 |
Alex Gonzalez | SS | BAL | 23 | 2 | 0.435 | 0.458 | 0.739 | 1.197 | 0.421 |
Martin Prado | 3B | ARI | 40 | 1 | 0.475 | 0.488 | 0.700 | 1.188 | 0.514 |
Zoilo Almonte | LF | NYY | 24 | 1 | 0.458 | 0.480 | 0.708 | 1.188 | 0.476 |
Kolten Wong | 2B | STL | 33 | 2 | 0.394 | 0.459 | 0.727 | 1.186 | 0.458 |
Neftali Soto | C | CIN | 33 | 2 | 0.424 | 0.424 | 0.758 | 1.182 | 0.400 |
Marc Krauss | LF | HOU | 26 | 2 | 0.385 | 0.407 | 0.769 | 1.176 | 0.533 |
Dustin Ackley | CF | SEA | 37 | 1 | 0.432 | 0.462 | 0.703 | 1.165 | 0.500 |
Danny Santana | SS | MIN | 23 | 0.391 | 0.462 | 0.696 | 1.158 | 0.429 | |
Derek Norris | C | OAK | 25 | 2 | 0.400 | 0.423 | 0.720 | 1.143 | 0.381 |
Nick Markakis | RF | BAL | 25 | 0.440 | 0.462 | 0.680 | 1.142 | 0.478 | |
Stephen Vogt | C | OAK | 29 | 1 | 0.414 | 0.485 | 0.655 | 1.140 | 0.440 |
Matt Long | RF | LAA | 40 | 1 | 0.425 | 0.465 | 0.675 | 1.140 | 0.457 |
Nick Castellanos | 3B | DET | 41 | 2 | 0.415 | 0.432 | 0.707 | 1.139 | 0.417 |
Miguel Cabrera | 1B | DET | 32 | 2 | 0.406 | 0.513 | 0.625 | 1.138 | 0.423 |
Marwin Gonzalez | SS | HOU | 28 | 0.464 | 0.448 | 0.679 | 1.127 | 0.500 | |
Chris Colabello | 1B | MIN | 26 | 1 | 0.385 | 0.500 | 0.615 | 1.115 | 0.474 |
Zach Walters | SS | WAS | 28 | 1 | 0.393 | 0.469 | 0.643 | 1.112 | 0.500 |
Mike Trout | CF | LAA | 35 | 2 | 0.371 | 0.421 | 0.686 | 1.107 | 0.379 |
Tim Wheeler | CF | COL | 28 | 2 | 0.321 | 0.424 | 0.679 | 1.103 | 0.368 |
Chris Iannetta | C | LAA | 21 | 1 | 0.333 | 0.483 | 0.619 | 1.102 | 0.333 |
Josh Harrison | 2B | PIT | 22 | 1 | 0.364 | 0.417 | 0.682 | 1.099 | 0.438 |
James Loney | 1B | TB | 22 | 1 | 0.409 | 0.462 | 0.636 | 1.098 | 0.444 |
Dan Johnson | 1B | TOR | 24 | 3 | 0.333 | 0.346 | 0.750 | 1.096 | 0.313 |
Hunter Pence | RF | SF | 36 | 4 | 0.306 | 0.342 | 0.750 | 1.092 | 0.333 |
Justin Ruggiano | LF | CHC | 24 | 2 | 0.375 | 0.423 | 0.667 | 1.090 | 0.412 |
Jarrod Dyson | CF | KC | 25 | 1 | 0.360 | 0.529 | 0.560 | 1.089 | 0.381 |
Skip Schumaker | LF | CIN | 30 | 1 | 0.433 | 0.486 | 0.600 | 1.086 | 0.444 |
Salvador Perez | C | KC | 33 | 2 | 0.424 | 0.417 | 0.667 | 1.084 | 0.462 |
Adam Lind | 1B | TOR | 27 | 1 | 0.370 | 0.414 | 0.667 | 1.081 | 0.450 |
Elliot Johnson | 2B | CLE | 33 | 2 | 0.364 | 0.382 | 0.697 | 1.079 | 0.455 |
Michael Choice | CF | TEX | 37 | 2 | 0.378 | 0.395 | 0.676 | 1.071 | 0.429 |
Paul Janish | SS | COL | 31 | 1 | 0.452 | 0.485 | 0.581 | 1.066 | 0.464 |
Tommy Medica | 1B | SD | 48 | 2 | 0.396 | 0.420 | 0.646 | 1.066 | 0.415 |
Jonathan Schoop | 2B | BAL | 30 | 1 | 0.400 | 0.424 | 0.633 | 1.057 | 0.550 |
Stephen Piscotty | 3B | STL | 26 | 1 | 0.346 | 0.438 | 0.615 | 1.053 | 0.348 |
Jeremy Moore | RF | TB | 28 | 3 | 0.286 | 0.333 | 0.714 | 1.047 | 0.313 |
Dan Uggla | 2B | ATL | 33 | 3 | 0.273 | 0.432 | 0.606 | 1.038 | 0.353 |
Nolan Arenado | 3B | COL | 34 | 2 | 0.353 | 0.389 | 0.647 | 1.036 | 0.370 |
Deven Marrero | SS | BOS | 21 | 1 | 0.333 | 0.462 | 0.571 | 1.033 | 0.500 |
Juan Francisco | 1B | MIL | 24 | 2 | 0.333 | 0.407 | 0.625 | 1.032 | 0.462 |
Don Kelly | LF | DET | 28 | 1 | 0.357 | 0.424 | 0.607 | 1.031 | 0.375 |
Carlos Gonzalez | LF | COL | 25 | 1 | 0.360 | 0.429 | 0.600 | 1.029 | 0.400 |
Ryan Lavarnway | C | BOS | 26 | 2 | 0.346 | 0.414 | 0.615 | 1.029 | 0.368 |
Robbie Grossman | LF | HOU | 29 | 1 | 0.414 | 0.441 | 0.586 | 1.027 | 0.478 |
Alex Rios | RF | TEX | 21 | 1 | 0.429 | 0.455 | 0.571 | 1.026 | 0.500 |
Rickie Weeks | 2B | MIL | 23 | 1 | 0.348 | 0.500 | 0.522 | 1.022 | 0.412 |
Alex Dickerson | 1B | SD | 25 | 2 | 0.280 | 0.379 | 0.640 | 1.019 | 0.313 |
Justin Maxwell | RF | KC | 43 | 1 | 0.419 | 0.409 | 0.605 | 1.014 | 0.515 |
Juan Perez | CF | SF | 40 | 1 | 0.325 | 0.413 | 0.600 | 1.013 | 0.375 |
Tyler Collins | RF | DET | 29 | 2 | 0.276 | 0.323 | 0.690 | 1.013 | 0.286 |
Zach Lutz | 3B | NYM | 26 | 3 | 0.308 | 0.321 | 0.692 | 1.013 | 0.357 |
Jason Heyward | RF | ATL | 40 | 3 | 0.350 | 0.409 | 0.600 | 1.009 | 0.367 |
Rob Brantly | C | MIA | 20 | 1 | 0.350 | 0.409 | 0.600 | 1.009 | 0.375 |
Carlos Peguero | RF | KC | 23 | 1 | 0.348 | 0.483 | 0.522 | 1.005 | 0.438 |
Michael Brantley | LF | CLE | 26 | 0.423 | 0.467 | 0.538 | 1.005 | 0.423 | |
Yunel Escobar | SS | TB | 24 | 0.417 | 0.462 | 0.542 | 1.004 | 0.500 | |
Reed Johnson | LF | MIA | 28 | 1 | 0.393 | 0.433 | 0.571 | 1.004 | 0.417 |
Miguel Rojas | SS | LAD | 27 | 0.444 | 0.483 | 0.519 | 1.002 | 0.462 | |
Daniel Nava | LF | BOS | 26 | 2 | 0.269 | 0.424 | 0.577 | 1.001 | 0.238 |
Rene Rivera | C | SD | 21 | 0.429 | 0.429 | 0.571 | 1.000 | 0.500 | |
Michael Taylor | RF | OAK | 43 | 3 | 0.302 | 0.388 | 0.605 | 0.993 | 0.357 |
Jay Bruce | RF | CIN | 31 | 1 | 0.290 | 0.436 | 0.548 | 0.984 | 0.333 |
Jose Pirela | SS | NYY | 21 | 1 | 0.381 | 0.409 | 0.571 | 0.980 | 0.389 |
Jesus Montero | C | SEA | 29 | 2 | 0.310 | 0.355 | 0.621 | 0.976 | 0.350 |
Yonder Alonso | 1B | SD | 35 | 2 | 0.343 | 0.343 | 0.629 | 0.972 | 0.385 |
John Mayberry | RF | PHI | 26 | 2 | 0.308 | 0.357 | 0.615 | 0.972 | 0.286 |
Ian Kinsler | 2B | DET | 33 | 2 | 0.303 | 0.395 | 0.576 | 0.971 | 0.320 |
Matt Holliday | LF | STL | 23 | 0.391 | 0.444 | 0.522 | 0.966 | 0.474 | |
Kirk Nieuwenhuis | CF | NYM | 30 | 1 | 0.300 | 0.432 | 0.533 | 0.965 | 0.444 |
Marcus Semien | SS | CHW | 24 | 0.375 | 0.464 | 0.500 | 0.964 | 0.450 | |
Wilson Ramos | C | WAS | 26 | 1 | 0.385 | 0.385 | 0.577 | 0.962 | 0.375 |
Cole Gillespie | LF | SEA | 23 | 0.391 | 0.440 | 0.522 | 0.962 | 0.450 | |
Giancarlo Stanton | RF | MIA | 36 | 3 | 0.306 | 0.350 | 0.611 | 0.961 | 0.308 |
Oswaldo Arcia | LF | MIN | 22 | 1 | 0.318 | 0.370 | 0.591 | 0.961 | 0.500 |
Adam Eaton | LF | CHW | 29 | 1 | 0.345 | 0.441 | 0.517 | 0.958 | 0.409 |
Adonis Garcia | CF | NYY | 22 | 0.455 | 0.455 | 0.500 | 0.955 | 0.556 | |
Asdrubal Cabrera | SS | CLE | 29 | 0.345 | 0.472 | 0.483 | 0.955 | 0.417 | |
Todd Frazier | 3B | CIN | 32 | 2 | 0.313 | 0.361 | 0.594 | 0.955 | 0.364 |
Xavier Scruggs | 1B | STL | 24 | 1 | 0.250 | 0.455 | 0.500 | 0.955 | 0.294 |
Brock Peterson | 1B | WAS | 26 | 1 | 0.346 | 0.414 | 0.538 | 0.952 | 0.500 |
You’ll notice right away that there are some very high BABIP’s on this list. There is a theory – I’m not sure if it’s ever been definitively proven – that hitters will post an unusually high BABIP when they out class the pitcher. Intuitively, that must be true to some extent. I imagine a guy like McCutchen can hit the ball X percent harder with more line drives and deep flies against below major league quality pitching. Traditionally, we see this theory applied to MiLB stats to say “Player X had a .400 BABIP, but that’s not necessarily a bad sign since it could mean he’s ready for a promotion.”
One thing we do know about BABIP is that it will regress towards league average. Maybe not all the way, but we can expect a guy with a .500 BABIP like Bernadina to regress towards his .291 career rate. So there’s your warning about BABIP in case you forgot to apply that caveat above (I told you to apply ALL caveats). Also remember that the Cactus league is a much friendlier run scoring environment than the Grapefruit League.
Let’s pick out a few names that smell interesting. I’ll start with five here, but let’s discuss more in the comments.
Chris Heisey, OF
Since arriving in camp, Heisey has received plenty of positive press. He’s made a minor mechanical change by lowering his hands in his setup. Historically, that could mean nothing or everything. Usually nothing. The scuttlebutt is that he’s hitting the ball with more authority than past seasons. Internet writers have also speculated that he’ll have the freedom to be more patient now that Bryan Price is running the ship. So far, he has five spring home runs, which makes him the current home run leader.
At the moment, he’s the fourth outfielder on the depth chart, behind Bruce, Billy Hamilton, and Ryan Ludwick. Schumaker will also see some time in the outfield. With Ludwick and Hamilton in starting roles, there are a lot of ways to work Heisey into a semi-regular role. Ludwick’s had a mediocre spring, so Heisey could potentially jump up the depth chart with a few more good games.
Dan Uggla, 2B
Despite my bold prediction to the contrary, Uggla is not giving away his job to Thomas La Stella. He’s showcasing his usual combination of power and patience. The typical fantasy batting average is around .250, so a .210 mark from Uggla isn’t automatically ruinous. Meanwhile, he still has 30 home run upside and he’s being extremely ignored in all but the deepest formats. Even there sometimes.
Nolan Arenado, 3B
Arenado’s best skill is supposed to be his glove, but the FanGraphs crew witnessed a classic Roger Dorn “Ole.” Later, he also handled a batted short hop where I swear his head was turned away. Fantasy owners care more about his five extra base hits. I’ve seen some people get really excited about him, but I look at him as an ideal waiver streamer in standard depth leagues. I’d rather roster Kelly Johnson and his position flex.
Zach Lutz, 1B/3B
He’s shown good power this spring, with three home runs. Power development is his ticket to any real or fantasy relevance. He’s currently behind Ike Davis and Lucas Duda. If they start the season on the disabled list, then the Mets will presumably swing Daniel Murphy to first base and Eric Young to second base. Josh Satin’s also between Lutz and playing time. I could still see speculating on Lutz in a very deep NL Only league or perhaps a dynasty format. Weird things happen to the Mets.
Michael Taylor, OF
Taylor is a certified Big Guy, but the Stanford swing has been blamed for mediocre power development. He’s performed quite well in the minors – he’d be a top 25 pick if we were playing Triple-A fantasy. His translation to the majors just hasn’t worked out. This is probably his last chance with the A’s, so it’s encouraging to see three home runs in his spring line.
Honorable Mentions
It’s nice to see Heyward and Stanton hitting well without any BABIP help.
Remember when Jack Zduriencik said the M’s had no expectations for a newly fat(ter) Montero? Well he’s popped a .310/.355/.610 spring line with a reasonable .350 BABIP. And just when you thought this would be an easy decision. He’s already been optioned to Triple-A, so don’t get any crazy ideas in your head.
You can follow me on twitter @BaseballATeam
Ackley!