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.




Print This Post

Brad is a former collegiate player who writes for FanGraphs, MLB Trade Rumors, The Hardball Times, RotoWorld, and The Fake Baseball. He's also the lead MLB editor for RotoBaller. Follow him on Twitter @BaseballATeam or email him here.


28 Responses to “Top 100 Spring Hitters by OPS”

You can follow any responses to this entry through the RSS 2.0 feed.
  1. Metsox says:

    Moose!

    Vote -1 Vote +1

  2. didycel says:

    Despite the batting line, Montero looked like crap at the plate and in the field. He did not put together good at-bats. Still too aggressive and unable to recognize/lay off certain pitches. He ran into a couple, which as we all know, happens in spring when you know what a guy is going to throw when he’s working on something rather than trying to mess with your timing. Ask Alex Liddi. AAA is a good decision for Montero until he proves otherwise.

    Vote -1 Vote +1

  3. benagain123 says:

    how is a typical fantasy batting average around 250? league average last year was 253, and most teams arent carrying the Jordy Mercers of the world

    Vote -1 Vote +1

    • Brad Johnson says:

      poorly worded. That average fantasy hitter has an average around .250, despite that the worst BA guys aren’t usually rostered. Good owners obviously aggregate a much better team wide AVG in most cases.

      Vote -1 Vote +1

      • ncb says:

        I’m looking at 3 years worth of data for a 12 team league. 1 catcher, MI,CI,4OF,UTL so pretty standard (if a little deep).

        The average has sat withing a point of .270 for all 3 years.

        I have no clue why fangraphs thinks: 1) fantasy average is .250 and 2)fantasy BA has been declining over the last couple years.

        Vote -1 Vote +1

      • Brad Johnson says:

        I’m looking at a leaderboard of all hitters with over 150 PA last year. Only 119 players hit .260 or better. I’ll guess about 15% of them are guys like Gregor Blanco or worse, so let’s call it a 100 player list. A typical 12 team league rosters about 230 position players (16 active roster spots plus ~3.5 bench players). So the median player is hovering around .250. For the point I was making, median is better anyway.

        Vote -1 Vote +1

      • Jonathan Sher says:

        Brad, you have lost me too and in a number of ways:

        (1) You have not defined what you mean my a typical fantasy hitter or average fantasy hitter.

        (2) Beyond your lack of a definition, I don’t think you are considering what should be the correct measure, which simply put, is this: How much pain does a hitter who bats .210 inflict on a fantasy team’s batting average?

        (3) In order to answer question (2) you need to know what effect such an average would have on a team whose batting average of in the middle of the bell curve for that league. I can tell you that in a deep A.L. only league with 12 owners, 23 man active rosters and 17-man reserves, the middle of the bell curve has hovered close to .260 the past 4 years and close to .270 the six years before that. Averaging that difference, the question becomes how much does a .210 batting average for Uggla drag down a team batting average of .265. In a shallower league, the average team batting average would be higher and the effect by Uggla more dramatic.

        (4) When you consider that on a typical deep fantasy team such as in my league, some players don’t get full time at-bats, a full-time player like Uggla night get 8% or 9% of the at-bats. That would results in a loss in batting average of roughly 4.5 points. If your team batting average is near the middle of the bell curve, in a roto league you are probably looking at a loss of 3 to 5 points in the BA category.

        (5) As to your claim about the number of players with 150 at-bats who hit .260 or better, I believe you are looking at the leaders board incorrectly. When I filter that list for those with 300 plate appearances, I found 140 batters at .260 or above. When I lower the threshold to 150 plate appearances, as you said you did, there were 179 players who hot .260 or above, not 119, so your numbers appear wildly wrong.

        (6) The sum total of batting average for fantasy players while on the bench has no effect on either league or team averages and is irrelevant to the question that you posed, what effect Uggla would have on a team’s fantasy prospects.

        (7) Uggla might fit a roster well in a deeper league but only if that roster was carefully constructed in a manner that accounted for the drain he placed on batting average by having enough high average players to keep the team batting average above the bell of the curve. Once you start to slip into the pack rather than keeping a safe margin ahead of it, you risk a big loss in points. Some deep league owners may be forced to assume that risk even when they lack those safeguards but they do so to almost certain detriment.

        Vote -1 Vote +1

      • Brad Johnson says:

        To point #5, you are correct. I think I tripped a problem with changing the page results from 30 to 50 and then navigating to a different page via the url bar. The numbered results were reduced by 20 per page (3 pages total), which gave me 119 instead of 179. Good catch.

        As to the rest, it’s just Dan Uggla. 99% of us don’t need to consider him except in an extreme emergency. In which case there are usually bigger problems than a crappy BA in play.

        Vote -1 Vote +1

  4. Lenard says:

    Collins!

    Vote -1 Vote +1

  5. DonChrysler says:

    How long is Francisco Cervelli’s next PED suspension? I keed, I keed.

    Vote -1 Vote +1

  6. GT says:

    AJ Pollock!

    …one man bandwagon

    Vote -1 Vote +1

  7. rbt says:

    Am I the only one who wishes that, when you guys post charts like this, you would intersperse the headings at various intervals so we can see them without scrolling back up and losing your place?

    Vote -1 Vote +1

    • Parasite17 says:

      I’d love if they could implant it so the header scrolls with you but I don’t know if it’s feasible with the current set up.

      Vote -1 Vote +1

  8. ankle explosion hr celebration says:

    how about that Anthony Rizzo? 20th best OPS, but on a not ridiculous (for spring training) BABIP.

    Vote -1 Vote +1

    • Jason says:

      There’s been a lot of Rizzo breakout talk this offseason on this site. Certainly he has done nothing this spring to make it seem less likely.

      Vote -1 Vote +1

      • ankle explosion hr celebration says:

        Count me a believer in the breakout.

        Vote -1 Vote +1

      • Brad Johnson says:

        I’ll let others take that as their baby. I don’t have any special statistical or scouting insight that points to a substantial improvement. I do expect a marginal improvement, perhaps a slight step forward and K and BB rates.

        Vote -1 Vote +1

      • ankle explosion hr celebration says:

        it looks like he will probably trip John Dewan’s threshold, which is semi-accurate at predicting power spikes.

        Vote -1 Vote +1

  9. Cuck City says:

    Jerry Sandz son

    Vote -1 Vote +1

  10. Jacob says:

    Everybody thinks the Yankees brought in Brian Roberts to replace Cano, but after reading this, I think we all he’s just a cover for their real acquisiton: Yangervis Solarte!

    Vote -1 Vote +1

  11. Mike says:

    That .636 BABIP! (Cano)

    Vote -1 Vote +1

  12. JMo37 says:

    Kelly Johnson over N. Arenado??? I was there was some way to hold you to that and revisit it later. Surely it is a typo?
    Or let’s see where they end the season and why Arenado has a ADP 7 plus rounds ahead of Johnson.

    Vote -1 Vote +1

    • Brad Johnson says:

      That comment was specific to the way I manage rosters. I get a lot of value out of positional flexibility.

      In a standard 12 team league, I’m going to do my best to block Arenado from 3B/CI/UTIL starts, such that he might play 50 games for me. On the other hand, KJ will play more games by virtue of being eligible at more positions. Most of those games will be times where I had nobody to start at that position. On other occasions, I’ll use his flex to bump a player with a bad matchup onto the bench. So with KJ, he starts maybe 120 games compared to 50 for Arenado and the rest of my roster improves in some of those games.

      Vote -1 Vote +1

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>