ZiPS Midseason Movers and Shakers: Hitters

One of the most frequent questions I receive about ZiPS is folks wondering how the long-term projections for X hitter or Y pitcher have changed compared to what they were preseason. Since we’re right at the midpoint of the season, this is a good time to review just how the first half of the 2024 season has shifted expectations for individual players. The methodology I’m using is simple: comparing the current 2025-2029 WAR projections versus the 2025-2029 WAR projections as predicted at the start of the season. I’ve only included good prospects and players who are currently relevant to the majors (or injured) so we don’t get a bunch of random Double-A hitters who are slightly more or less below replacement level than they used to be gumming things up. I’ll tackle position players today, with pitchers to follow next week.
Since I’m such a cheerful and upbeat fellow, let’s start with the gainers. I’m also including each player’s updated top three offensive comps, because comps are fun, even if the individual players listed don’t really mean a lot to the projection. At the very least, it contextualizes expectations in a non-WAR manner:
Remember when it looked like Riley Greene and Spencer Torkelson were going to be the foundation of the Tigers’ offense? The last two years have put a lot of daylight between their respective futures, especially the first three months of this season. Greene’s on pace for a 4.6 WAR season and FanGraphs’ WAR is the mean one compared to Baseball Reference, which has him heading toward a seven-win (!) season. A lot hasn’t worked out for the Tigers, but Greene certainly has, and extending him for a very long time should be one of the team’s biggest priorities:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .263 | .341 | .452 | 513 | 83 | 135 | 24 | 5 | 21 | 72 | 59 | 146 | 7 | 121 | 1 | 4.2 |
2026 | .261 | .341 | .448 | 533 | 86 | 139 | 26 | 4 | 22 | 76 | 63 | 146 | 7 | 120 | 1 | 4.2 |
2027 | .261 | .344 | .455 | 547 | 91 | 143 | 26 | 4 | 24 | 79 | 66 | 144 | 6 | 122 | 1 | 4.5 |
2028 | .262 | .346 | .460 | 554 | 93 | 145 | 27 | 4 | 25 | 80 | 68 | 142 | 6 | 124 | 0 | 4.7 |
2029 | .260 | .346 | .459 | 553 | 92 | 144 | 27 | 4 | 25 | 80 | 69 | 139 | 5 | 124 | 0 | 4.6 |
2030 | .254 | .341 | .444 | 547 | 90 | 139 | 26 | 3 | 24 | 79 | 69 | 136 | 5 | 119 | 0 | 4.2 |
2031 | .255 | .340 | .443 | 537 | 87 | 137 | 26 | 3 | 23 | 77 | 67 | 134 | 4 | 118 | 0 | 4.0 |
The Orioles knew they were giving up someone with a lot of potential in Joey Ortiz, but they really, really liked Corbin Burnes (for good reason). I don’t think they expected Ortiz to be this good, or become so this quickly, but he’s now one of the most likely candidates to win NL Rookie of the Year this year, while the guy who made him expendable, Jackson Holliday, won’t garner the same laurel in the AL. In some ways, this is a bigger jump than Greene simply because it represents more of a change of status for Ortiz; ZiPS was unsure whether Ortiz would succeed in the majors, but it’s now at the point where it thinks the Brewers have answered one of their long-term questions on the left side of the infield:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .257 | .340 | .429 | 545 | 75 | 140 | 36 | 5 | 16 | 76 | 65 | 109 | 10 | 111 | 0 | 3.4 |
2026 | .252 | .338 | .418 | 524 | 72 | 132 | 34 | 4 | 15 | 73 | 64 | 103 | 8 | 108 | 0 | 3.1 |
2027 | .250 | .336 | .411 | 525 | 72 | 131 | 34 | 3 | 15 | 73 | 64 | 102 | 8 | 105 | 0 | 3.0 |
2028 | .250 | .335 | .413 | 521 | 71 | 130 | 34 | 3 | 15 | 71 | 63 | 100 | 7 | 106 | 0 | 2.9 |
2029 | .246 | .331 | .403 | 509 | 68 | 125 | 32 | 3 | 14 | 68 | 61 | 97 | 6 | 102 | -1 | 2.5 |
2030 | .242 | .327 | .393 | 491 | 64 | 119 | 31 | 2 | 13 | 64 | 58 | 94 | 5 | 98 | -2 | 2.1 |
2031 | .241 | .326 | .390 | 464 | 60 | 112 | 29 | 2 | 12 | 60 | 55 | 90 | 4 | 97 | -2 | 1.8 |
ZiPS has gone back and forth on Heliot Ramos for some time, with injuries playing a huge role. But he’s hit for surprisingly good power, with 10 home runs already, and when you add that total to his eight in Sacramento, he’s already well past his previous professional high of 14 homers in a season. The computer isn’t completely sold on Ramos, but it’s now fairly comfortable calling him a viable starter:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .244 | .313 | .404 | 475 | 64 | 116 | 21 | 2 | 17 | 69 | 42 | 144 | 6 | 98 | 4 | 2.1 |
2026 | .246 | .316 | .407 | 479 | 65 | 118 | 22 | 2 | 17 | 71 | 43 | 139 | 6 | 99 | 4 | 2.2 |
2027 | .247 | .318 | .414 | 481 | 66 | 119 | 22 | 2 | 18 | 72 | 44 | 135 | 5 | 101 | 4 | 2.4 |
2028 | .249 | .321 | .416 | 478 | 67 | 119 | 22 | 2 | 18 | 71 | 45 | 131 | 5 | 103 | 4 | 2.4 |
2029 | .247 | .320 | .411 | 470 | 65 | 116 | 22 | 2 | 17 | 69 | 45 | 127 | 4 | 101 | 3 | 2.3 |
2030 | .245 | .319 | .405 | 457 | 62 | 112 | 21 | 2 | 16 | 66 | 44 | 123 | 4 | 100 | 3 | 2.1 |
2031 | .245 | .318 | .403 | 437 | 58 | 107 | 20 | 2 | 15 | 62 | 42 | 118 | 4 | 99 | 3 | 1.9 |
Aaron Judge has been on an absurd tear of late, and as crazy as it sounds, him matching his 2022 performance is a realistic possibility. He’s also stayed healthy this year, not a bad thing when you’re projecting a player who is still likely entering his decline phase. The higher you start, the more room you have to glide!
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .264 | .379 | .555 | 508 | 94 | 134 | 25 | 0 | 41 | 110 | 94 | 160 | 7 | 156 | 5 | 6.3 |
2026 | .254 | .370 | .521 | 484 | 84 | 123 | 24 | 0 | 35 | 97 | 88 | 154 | 6 | 144 | 4 | 5.2 |
2027 | .246 | .362 | .492 | 455 | 75 | 112 | 22 | 0 | 30 | 85 | 81 | 147 | 5 | 135 | 3 | 4.2 |
2028 | .235 | .350 | .458 | 421 | 65 | 99 | 19 | 0 | 25 | 73 | 73 | 139 | 4 | 123 | 2 | 3.1 |
2029 | .226 | .339 | .428 | 381 | 55 | 86 | 17 | 0 | 20 | 60 | 65 | 129 | 3 | 112 | 1 | 2.1 |
2030 | .215 | .329 | .397 | 340 | 46 | 73 | 14 | 0 | 16 | 49 | 57 | 120 | 3 | 101 | 1 | 1.3 |
2031 | .210 | .323 | .380 | 300 | 39 | 63 | 12 | 0 | 13 | 41 | 49 | 108 | 2 | 95 | 0 | 0.8 |
Jordan Westburg is one of three Orioles on this list — not a bad considering ZiPS already liked the O’s young hitters. Westburg was forgotten in some ways, but ZiPS was already projecting him for 2.5-3.0 annual WAR coming into the season. Still, he’s bumped that by a win or so per season. I remain surprised Westburg got so little attention as a prospect relative to his performance, given that he was a first round pick out of Mississippi State, not a 43rd rounder from Eastern Tuscaloosa School For Mimes. He may be easier to sign to an extension than Gunnar Henderson or Adley Rutschman at this point:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .255 | .319 | .439 | 538 | 80 | 137 | 29 | 5 | 20 | 80 | 43 | 136 | 9 | 110 | 4 | 3.9 |
2026 | .256 | .322 | .440 | 543 | 83 | 139 | 29 | 4 | 21 | 82 | 45 | 133 | 9 | 111 | 4 | 4.1 |
2027 | .256 | .323 | .440 | 543 | 83 | 139 | 29 | 4 | 21 | 81 | 46 | 131 | 8 | 112 | 4 | 4.1 |
2028 | .257 | .324 | .437 | 538 | 81 | 138 | 29 | 4 | 20 | 80 | 46 | 128 | 7 | 111 | 4 | 4.0 |
2029 | .251 | .320 | .424 | 526 | 78 | 132 | 28 | 3 | 19 | 76 | 45 | 123 | 6 | 106 | 3 | 3.5 |
2030 | .249 | .318 | .419 | 506 | 75 | 126 | 26 | 3 | 18 | 71 | 44 | 118 | 5 | 105 | 2 | 3.2 |
2031 | .248 | .316 | .413 | 480 | 69 | 119 | 25 | 3 | 16 | 67 | 41 | 113 | 5 | 103 | 1 | 2.8 |
To wrap up the gainers, Colton Cowser hasn’t kept up his hot April, but ZiPS is still far more bullish on him now than it was in March. David Fry’s improvement has been enough to make him legitimately interesting, and he might already be going down the Ben Zobrist path. I said that Dylan Crews would move up quickly if he hit at all in the upper minors, which he has, and Elly De La Cruz was one of my breakout picks in March. Jarren Duran’s making a case for his bat being an ideal fit for Fenway; I’m hoping he hits 20 triples, which would be amazing. I was probably too dismissive of Daniel Schneeman in my Thursday chat; I didn’t remember offhand that his minor league performance translated so well this year.
ZiPS already loved Gunnar Henderson, so there was only so far he could rise. ZiPS is skeptical he’s going to regularly hit 40 home runs, but it now has him as the most valuable five-year player in the majors. Eguy Rosario has made a convincing case for a large role in the majors, and even when you take the air out of his El Paso numbers, he had a wRC+ of 135 in Triple-A. I just wish the Padres hadn’t reduced Rosario to playing almost exclusively third base this year in the minors, when utilizing his positional flexibility would give them more ways to get his bat into the lineup. This is certainly the sunniest ZiPS has ever been about JJ Bleday, who has always had very weak projections in the past. Rounding out the top 15 is another Padre, Jackson Merrill, who is faring really well when you consider how young he is and how little experience he got in the high minors.
Now let’s look at the decliners:
Ronald Acuña Jr. heads this list for multiple obvious reasons. His second season-ending injury with a torn ACL plays a big part in this, but the expectations were already a bit lower after a really disappointing start to the season. A .250/.351/.365 line wasn’t what ZiPS was expecting in March. He still projects to be a superstar when he comes back, but the additional uncertainty is enough to take a bit of shine off the top:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .282 | .383 | .515 | 536 | 119 | 151 | 28 | 2 | 31 | 91 | 79 | 115 | 42 | 141 | 0 | 5.6 |
2026 | .280 | .382 | .511 | 540 | 120 | 151 | 28 | 2 | 31 | 90 | 81 | 113 | 39 | 139 | -1 | 5.5 |
2027 | .276 | .381 | .502 | 532 | 117 | 147 | 28 | 1 | 30 | 88 | 81 | 110 | 34 | 137 | -1 | 5.1 |
2028 | .274 | .379 | .496 | 522 | 114 | 143 | 27 | 1 | 29 | 84 | 80 | 108 | 29 | 135 | -1 | 4.8 |
2029 | .271 | .377 | .484 | 510 | 109 | 138 | 26 | 1 | 27 | 80 | 78 | 106 | 25 | 131 | -1 | 4.4 |
2030 | .263 | .368 | .461 | 495 | 102 | 130 | 24 | 1 | 24 | 74 | 75 | 103 | 21 | 123 | -1 | 3.6 |
2031 | .264 | .370 | .464 | 470 | 96 | 124 | 23 | 1 | 23 | 69 | 71 | 99 | 18 | 124 | -2 | 3.5 |
ZiPS previously thought Kyren Paris would be a stopgap starter or a decent role player in the middle infield, but he’s absolutely stopped hitting this year and has been lousy at three levels. The short-term projections are especially brutal:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .195 | .285 | .303 | 452 | 58 | 88 | 18 | 2 | 9 | 48 | 51 | 175 | 22 | 63 | -5 | 0.3 |
2026 | .200 | .289 | .308 | 461 | 60 | 92 | 19 | 2 | 9 | 51 | 52 | 171 | 23 | 66 | -4 | 0.5 |
2027 | .208 | .298 | .325 | 462 | 63 | 96 | 20 | 2 | 10 | 54 | 53 | 165 | 22 | 72 | -4 | 1.0 |
2028 | .210 | .300 | .335 | 376 | 52 | 79 | 16 | 2 | 9 | 45 | 43 | 129 | 18 | 76 | -3 | 1.0 |
2029 | .220 | .309 | .351 | 328 | 46 | 72 | 15 | 2 | 8 | 40 | 38 | 109 | 15 | 82 | -3 | 1.1 |
2030 | .218 | .308 | .340 | 294 | 42 | 64 | 13 | 1 | 7 | 37 | 34 | 95 | 13 | 79 | -2 | 1.0 |
2031 | .218 | .310 | .341 | 261 | 37 | 57 | 12 | 1 | 6 | 33 | 31 | 85 | 11 | 80 | -2 | 0.8 |
Kevin Alcántara was our no. 33 prospect entering the season and no. 37 in the ZiPS Top 100, but not only has his power potential not been realized in his first full season in the high minors, his other stats have eroded as well. ZiPS actually likes Owen Caissie nearly as much as Alcántara these days. There’s still plenty of time, but ZiPS sees this as less of a slam dunk now:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .224 | .267 | .338 | 450 | 53 | 101 | 19 | 1 | 10 | 51 | 24 | 142 | 8 | 64 | 2 | 0.3 |
2026 | .233 | .276 | .356 | 472 | 58 | 110 | 21 | 2 | 11 | 56 | 26 | 142 | 8 | 71 | 2 | 0.7 |
2027 | .236 | .280 | .364 | 484 | 61 | 114 | 22 | 2 | 12 | 60 | 28 | 140 | 8 | 75 | 2 | 1.0 |
2028 | .239 | .285 | .376 | 468 | 61 | 112 | 21 | 2 | 13 | 59 | 28 | 130 | 8 | 79 | 2 | 1.2 |
2029 | .239 | .288 | .375 | 456 | 60 | 109 | 21 | 1 | 13 | 59 | 29 | 123 | 7 | 80 | 1 | 1.2 |
2030 | .240 | .290 | .379 | 446 | 59 | 107 | 21 | 1 | 13 | 59 | 29 | 117 | 7 | 81 | 1 | 1.3 |
2031 | .241 | .291 | .382 | 435 | 58 | 105 | 20 | 1 | 13 | 57 | 28 | 115 | 6 | 82 | 1 | 1.3 |
I wrote about Torkelson at the start of the month, so I don’t want to beat up on the poor guy too much here, but he’s had a legendarily awful season for the Tigers. He’s not exactly crushing minor league pitchers, either; until his two homers against Louisville on Tuesday, he had only hit one home run in 17 Triple-A games this year.
Tork may not be raking at Triple-A, but it’s still better than Jordan Walker’s return to the minors. In 44 games for Memphis, Walker’s hit .258/.314/.393, a brutally bad line for an offense-first prospect. It’s enough that even if he were a good defender at third, I’m not sure he’d be a suitable fill-in for Nolan Arenado, who has been dealing with tendinitis:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .257 | .323 | .426 | 505 | 53 | 130 | 25 | 3 | 18 | 67 | 42 | 119 | 7 | 107 | -7 | 1.4 |
2026 | .259 | .326 | .439 | 529 | 58 | 137 | 26 | 3 | 21 | 72 | 46 | 119 | 7 | 111 | -8 | 1.8 |
2027 | .257 | .326 | .436 | 541 | 60 | 139 | 27 | 2 | 22 | 76 | 49 | 119 | 7 | 111 | -8 | 1.8 |
2028 | .257 | .327 | .440 | 552 | 62 | 142 | 28 | 2 | 23 | 78 | 51 | 118 | 6 | 112 | -9 | 1.8 |
2029 | .259 | .332 | .446 | 556 | 64 | 144 | 28 | 2 | 24 | 79 | 54 | 118 | 6 | 115 | -9 | 2.1 |
2030 | .258 | .332 | .446 | 554 | 64 | 143 | 28 | 2 | 24 | 78 | 55 | 116 | 5 | 115 | -9 | 2.0 |
2031 | .258 | .332 | .443 | 546 | 62 | 141 | 28 | 2 | 23 | 77 | 54 | 115 | 5 | 115 | -9 | 2.0 |
ZiPS still thinks Wyatt Langford will be a solid player, but it was extremely bullish on him coming into the season, and it doesn’t look like he’s going to threaten stardom as quickly as it seemed like he would in the spring. But it’s not all doom and gloom; Langford has had a .779 OPS since returning from injury, so there are at least some reasons to be optimistic:
Year | BA | OBP | SLG | AB | R | H | 2B | 3B | HR | RBI | BB | SO | SB | OPS+ | DR | WAR |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2025 | .259 | .322 | .440 | 509 | 72 | 132 | 28 | 5 | 18 | 78 | 43 | 111 | 17 | 109 | 3 | 2.4 |
2026 | .262 | .327 | .453 | 519 | 76 | 136 | 29 | 5 | 20 | 81 | 46 | 109 | 17 | 114 | 3 | 2.8 |
2027 | .261 | .329 | .455 | 528 | 79 | 138 | 29 | 5 | 21 | 84 | 49 | 108 | 16 | 115 | 2 | 2.8 |
2028 | .262 | .331 | .456 | 535 | 81 | 140 | 30 | 4 | 22 | 87 | 51 | 108 | 15 | 116 | 2 | 2.9 |
2029 | .262 | .332 | .461 | 538 | 82 | 141 | 30 | 4 | 23 | 87 | 52 | 106 | 14 | 117 | 2 | 3.0 |
2030 | .260 | .331 | .454 | 535 | 81 | 139 | 30 | 4 | 22 | 86 | 53 | 105 | 13 | 115 | 2 | 2.8 |
2031 | .260 | .332 | .456 | 526 | 80 | 137 | 29 | 4 | 22 | 85 | 52 | 103 | 12 | 116 | 1 | 2.8 |
Among the other decliners, Nolan Jones takes a pretty big hit, though some of that is uncertainty due to the nagging nature of back and knee injuries. Matt McClain’s dropoff is purely from injury. Luis Robert Jr. is an interesting dilemma because the White Sox probably should trade him, but his missed time due to injury this season might make him a sell-low candidate even if the time is right. Noelvi Marte’s dropoff is due more to missed non-injury playing time than any PED adjustment (which ZiPS doesn’t have because I have no historical basis to say that’s a thing), while Bryan Ramos sees his numbers drop off due to a rather lousy minor league season. T.J. White isn’t hitting again despite repeating a level, and even at a young age, he may slip off even the marginal prospect radar soon.
Christian Encarnacion-Strand is almost certainly out for the rest of the regular season with a wrist injury that will require surgery, but even before he was plunked, he was having a terrible start to the year. ZiPS is still confident that his power will return, but he really needs it to, as he doesn’t bring that much to the table outside of round-trippers, especially as the team doesn’t appear to see him as a third baseman. Keibert Ruiz showed signs of life in the second-half of 2023 and has struggled this season. But he also lost 20 pounds and missed significant time with a bad case of the flu, so ZiPS could be being entirely too negative here. Finishing out the list is fall darling Evan Carter, whose current back strain may be the highlight of his 2024 season so far. A lot of people were very angry with me that ZiPS only projected a .259/.358/.412 line for him coming into the season, but I expect every one of those folks would happily take that triple slash now.
Dan Szymborski is a senior writer for FanGraphs and the developer of the ZiPS projection system. He was a writer for ESPN.com from 2010-2018, a regular guest on a number of radio shows and podcasts, and a voting BBWAA member. He also maintains a terrible Twitter account at @DSzymborski.
Who were Acuna’s top 3 comps heading into the season again? Because Trout/Robinson/Rickey are still pretty good lol 🙂
Robinson, Mays, and Betts
That’s not very different