Jac Caglianone has a 46 wRC+ and an xwOBA of .321. Those numbers shouldn't be in the same sentence.
His xwOBA tells us that he's making contact with the ball like a major league slugger, but his wRC+ says he's been deeply unproductive. Both are accurate; they're just measuring different things.
Some stats don't give a clear picture right away because they need a big enough sample before they stabilize and tell us about a player's true talent. Stats like batting average, xwOBA, wOBA, and wRC+ can take 600 or more plate appearances to stabilize. Caglianone's wRC+ and xwOBA don't agree because he has only 233 major league plate appearances.
So how do we assess the true talent of new players with few plate appearances? Fortunately, there are several Statcast metrics that require as little as 150 to stabilize.
The Rookie Scorecard
All of the stats I used are publicly available on Baseball Savant and FanGraphs, and they all carry meaningful signal by the time a player has 150 PA, well before other stats stabilize. I combined these stats to create what I'm calling The Rookie Scorecard.
The Luck Index (xwOBA minus wOBA): A positive gap means a hitter is making quality contact, but the ball keeps finding fielders. A negative gap means their results are better than their contact quality warrants. In the long term, you'd rather make good contact than be lucky because luck (good or bad) always runs out. Contact quality sticks. Luck doesn't. We want young hitters who are at or above 0 here.
The Consistency Gap (90th percentile Exit Velocity minus Average Exit Velocity (EV)): Exit velocity measures how hard a hitter makes contact. But a single 112-mph blast doesn't automatically make someone a power hitter. The gap between the hardest 10% of contact and the typical contact tells you whether the elite exit velocities are normal for a hitter, or if they're the exception. A wide gap means the hard hits are outliers. A narrow gap means the hard contact is the baseline, not the exception.
Barrel Rate: A barrel requires exit velocity of at least 98 mph and a launch angle in the ideal range. Both have to align simultaneously, which makes barrels hard to fake. They stabilize quickly and are the clearest signal of reliable power production.
Swinging Strike Rate (SwStr%): This is the percentage of all pitches a batter sees that produce a swinging strike. If this number is consistently high, the hitter is struggling to make contact against major league pitching. SwStr% is the fastest-stabilizing contact quality indicator in the game. By 50 plate appearances, it's already telling a reliable story. If a young hitter can't make contact against major league pitching within that window and can't make the necessary adjustments to compensate by 150, it's a red flag.
Outside Pitch Swing Rate (O-Swing%): This is the percentage of pitches outside the strike zone that a batter swings at, also called chase rate. Chasing isn't always a bad thing. Many elite batters make good contact on pitches outside the zone. However, it's harder to sustain as pitchers adjust. O-Swing% reveals whether a prospect has the plate recognition to survive when pitchers find their weaknesses.
A note on SwStr% and O-Swing%: These stats are central to a batter's plate approach and can be improved over time. When you hear someone say that a player is "making adjustments to their plate approach," they're often addressing behaviors that affect their SwStr% and O-Swing%. An incremental improvement to SwStr% and O-Swing% is the signal to look for.
Top of the Class Studs
2025 Rookie Class — A & B
| Player | PA | Luck Idx | Cons. Gap | Barrel% | SwStr% | O-Swing% |
|---|---|---|---|---|---|---|
| Roman Anthony | 303 | −.004 | 12.9 mph | 15.5% | 10.7% | 22.6% |
| Max Muncy | 220 | +.008 | 14.5 mph | 13.6% | 9.4% | 23.8% |
| Luke Keaschall | 207 | −.038 | 14.7 mph | 5.2% | 6.8% | 22.3% |
| Jakob Marsee | 234 | −.016 | 15.7 mph | 8.0% | 7.3% | 24.0% |
| Drake Baldwin | 446 | +.003 | 14.8 mph | 11.0% | 8.3% | 31.5% |
| Isaac Collins | 441 | −.022 | 15.2 mph | 4.9% | 8.9% | 20.5% |
| Edgar Quero | 403 | −.017 | 11.9 mph | 3.7% | 8.4% | 23.9% |
| Nick Kurtz | 489 | −.047 | 15.8 mph | 18.3% | 14.2% | 26.3% |
| Kyle Teel | 297 | −.013 | 15.6 mph | 9.6% | 12.0% | 26.1% |
| Chase Meidroth | 505 | +.006 | 13.5 mph | 1.6% | 4.3% | 25.0% |
| Liam Hicks | 390 | +.003 | 16.0 mph | 3.5% | 4.9% | 20.1% |
| Caleb Durbin | 506 | −.007 | 15.4 mph | 4.0% | 5.1% | 27.3% |
| Cole Young | 257 | +.023 | 15.1 mph | 5.6% | 9.1% | 26.7% |
| Alejandro Osuna | 176 | +.066 | 16.3 mph | 5.9% | 6.9% | 29.0% |
| Carlos Narváez | 446 | −.022 | 14.8 mph | 9.1% | 12.3% | 33.0% |
| Javier Sanoja | 342 | −.013 | 14.0 mph | 1.8% | 5.1% | 31.7% |
| Dalton Rushing | 155 | +.027 | 16.6 mph | 14.0% | 14.5% | 24.8% |
| Roman Anthony | 303 | 37th | 90th | 96th | 65th | 94th |
| Max Muncy | 220 | 58th | 78th | 91st | 78th | 91st |
| Luke Keaschall | 207 | 7th | 75th | 37th | 93rd | 95th |
| Jakob Marsee | 234 | 23rd | 46th | 62nd | 90th | 89th |
| Drake Baldwin | 446 | 50th | 70th | 82nd | 87th | 55th |
| Isaac Collins | 441 | 16th | 60th | 34th | 83rd | 98th |
| Edgar Quero | 403 | 21st | 96th | 25th | 86th | 90th |
| Nick Kurtz | 489 | 4th | 44th | 99th | 32nd | 83rd |
| Kyle Teel | 297 | 27th | 49th | 77th | 52nd | 84th |
| Chase Meidroth | 505 | 53rd | 86th | 7th | 99th | 86th |
| Liam Hicks | 390 | 51st | 38th | 24th | 97th | 99th |
| Caleb Durbin | 506 | 33rd | 54th | 26th | 96th | 77th |
| Cole Young | 257 | 75th | 61st | 43rd | 82nd | 81st |
| Alejandro Osuna | 176 | 97th | 30th | 45th | 92nd | 70th |
| Carlos Narváez | 446 | 18th | 69th | 71st | 49th | 43rd |
| Javier Sanoja | 342 | 26th | 81st | 8th | 95th | 55th |
| Dalton Rushing | 155 | 77th | 25th | 92nd | 25th | 87th |
Green = top quintile among batters with 50+ AB · Red = bottom quintile
Nick Kurtz is the talk of this rookie class after his AL Rookie of the Year performance during is inaugural campaign. Oakland's first overall pick in 2023, he was a 55+ FV prospect on every major list before he ever took a major league at-bat — which means the Rookie Scorecard isn't discovering anything new here, it's confirming what scouts already saw. His Barrel Rate is elite, his power is reliable and consistent, and his discipline numbers don't have a red flag anywhere on the board. The only thing I'm even vaguely concerned about it that he's been "luckier" than average, but I think that has to do with playing in Sacramento and hitting the ball extremely hard than anythign else. OOPSY projects him for 35 home runs, 138 wRC+, and 3.6 WAR. Regression is always possible, but I think he's the real deal.
Roman Anthony comes in right behind him with a nearly identical process grade and 3.6 projected WAR. Anthony entered 2025 as a top-5 prospect on every credible list — the rare kind of hype that makes the data feel like a formality rather than a discovery. It mostly was. I actually like his approach better than Kurtz's, and I think he'll be less prone to streakiness.
There's less helium in Drake Baldwin's profile, but I think the 2025 NL Rookie of the Year is going to be a top catcher for several seasons to come. I'll take a catcher who can hit 20+ home runs while maintaining clean contact metrics and a solid discipline profile any day of the week.
Jakob Marsee is the best sleeper here. He has a 133 wRC+, four clean green signals across the model, and a Luck Index of minus .016 (which is basically neutral). His SwStr% and O-Swing% are both in the 90th percentile among all players in the league, so he's got a great plate approach. He's only had 234 PA so far, so we'll see how he adapts as pitchers change how they throw to him. OOPSY projects 38 stolen bases for him in 2026, so he's also a speed threat. The market is pricing him as a decent bat with moderate upside, but his speed is being discounted. It shouldn't be.
Dalton Rushing is the other sleeper worth mentioning. His Barrel Rate is 14.0% (one of the strongest marks in the class), and he's shown better discipline than most of his class. I think playing time is the main reasons he's been overlooked. He's in the Dodgers system playing behind Will Smith at catcher. He could see more playing time at other positions, but that's tough to do in a roster that's as stacked as the Dodgers. On the other hand, the Dodgers aren't getting any younger, and I think if Rushing starts getting more starts the numbers will follow. One honest caveat: he's not on the 2026 FanGraphs Top 100, which means the prospect community isn't carrying the same enthusiasm the Scorecard suggests. That's not disqualifying, but it's worth knowing before you spend draft capital on the premise. Buy low and hold.
Caleb Durbin projects 26 steals and his on-base skills and speed give him real value in categories leagues. The power isn't there, but he's a grade B player priced like a roster filler. I'm not sure why Milwaukee traded him away, but I think Boston fans will be happy with him.
Luke Keaschall's discipline and speed (26 projected steals) are legitimate. His Luck Index was −.038 in 2025, but I think that's mostly due to the fact that he has only 207 AB. He lost a lot of time due to a broken arm, but that was from getting hit by a pitch — I'm not too worried about his injury profile. The rest of the profile looks clean, and he's got the speed and hustle to be electric. I think he'll be a favorite with Twins fans who are desperate for a reason to be optimistic. He's a buy.
Big League Dudes
2025 Rookie Class — C
| Player | PA | Luck Idx | Cons. Gap | Barrel% | SwStr% | O-Swing% |
|---|---|---|---|---|---|---|
| Eric Wagaman | 514 | +.022 | 16.1 mph | 6.8% | 10.0% | 29.5% |
| Heriberto Hernández | 294 | −.007 | 15.6 mph | 10.9% | 14.4% | 27.0% |
| Daylen Lile | 351 | −.013 | 15.1 mph | 5.2% | 8.5% | 30.3% |
| John Rave | 175 | +.035 | 15.9 mph | 5.5% | 8.5% | 25.6% |
| Chandler Simpson | 441 | +.001 | 12.4 mph | 0.0% | 4.9% | 32.9% |
| Kristian Campbell | 263 | −.003 | 16.3 mph | 5.1% | 10.7% | 25.9% |
| Nacho Alvarez Jr. | 208 | −.009 | 15.3 mph | 1.4% | 8.4% | 28.5% |
| Jacob Wilson | 523 | −.044 | 14.9 mph | 2.2% | 4.1% | 36.0% |
| Matt Shaw | 437 | +.002 | 17.1 mph | 6.9% | 9.2% | 33.7% |
| Tim Tawa | 225 | +.016 | 15.0 mph | 9.3% | 14.4% | 32.4% |
| Graham Pauley | 184 | −.001 | 15.8 mph | 5.5% | 11.3% | 32.1% |
| Robert Hassell III | 206 | +.021 | 15.2 mph | 8.1% | 13.7% | 30.5% |
| Thomas Saggese | 295 | −.002 | 12.6 mph | 5.6% | 11.5% | 36.8% |
| Coby Mayo | 294 | −.016 | 18.8 mph | 10.1% | 12.9% | 32.3% |
| Dylan Crews | 322 | +.027 | 16.9 mph | 9.7% | 13.5% | 32.8% |
| Kyle Karros | 156 | −.007 | 14.9 mph | 1.0% | 11.3% | 28.4% |
| Otto Kemp | 218 | +.001 | 14.7 mph | 12.1% | 16.6% | 34.1% |
| Denzel Clarke | 159 | −.028 | 17.9 mph | 6.7% | 13.9% | 31.1% |
| Jasson Domínguez | 429 | −.010 | 16.1 mph | 7.0% | 12.6% | 34.8% |
| Agustín Ramírez | 585 | +.030 | 18.4 mph | 11.0% | 11.6% | 35.8% |
| Colson Montgomery | 284 | −.014 | 19.0 mph | 14.4% | 15.4% | 35.4% |
| Christian Moore | 184 | −.006 | 16.8 mph | 6.9% | 16.6% | 27.7% |
| Trey Sweeney | 326 | −.000 | 15.7 mph | 6.7% | 13.0% | 33.5% |
| Cam Smith | 493 | +.007 | 17.8 mph | 6.9% | 12.6% | 33.1% |
| Eric Wagaman | 514 | 75th | 36th | 55th | 75th | 67th |
| Heriberto Hernández | 294 | 34th | 51st | 81st | 27th | 78th |
| Daylen Lile | 351 | 28th | 62nd | 36th | 85th | 64th |
| John Rave | 175 | 84th | 41st | 40th | 84th | 85th |
| Chandler Simpson | 441 | 45th | 95th | 2nd | 98th | 45th |
| Kristian Campbell | 263 | 39th | 32nd | 35th | 65th | 85th |
| Nacho Alvarez Jr. | 208 | 32nd | 56th | 5th | 85th | 72nd |
| Jacob Wilson | 523 | 5th | 65th | 15th | 100th | 25th |
| Matt Shaw | 437 | 49th | 18th | 57th | 79th | 39th |
| Tim Tawa | 225 | 70th | 64th | 75th | 29th | 49th |
| Graham Pauley | 184 | 42nd | 45th | 41st | 57th | 53rd |
| Robert Hassell III | 206 | 73rd | 58th | 63rd | 37th | 62nd |
| Thomas Saggese | 295 | 41st | 93rd | 44th | 56th | 20th |
| Coby Mayo | 294 | 24th | 5th | 79th | 44th | 52nd |
| Dylan Crews | 322 | 78th | 22nd | 78th | 41st | 45th |
| Kyle Karros | 156 | 35th | 67th | 3rd | 58th | 73rd |
| Otto Kemp | 218 | 47th | 72nd | 85th | 9th | 37th |
| Denzel Clarke | 159 | 11th | 10th | 53rd | 35th | 58th |
| Jasson Domínguez | 429 | 31st | 37th | 58th | 45th | 34th |
| Agustín Ramírez | 585 | 79th | 7th | 83rd | 54th | 27th |
| Colson Montgomery | 284 | 25th | 3rd | 93rd | 17th | 30th |
| Christian Moore | 184 | 35th | 23rd | 56th | 10th | 75th |
| Trey Sweeney | 326 | 43rd | 47th | 52nd | 42nd | 40th |
| Cam Smith | 493 | 55th | 11th | 56th | 45th | 42nd |
Green = top quintile among batters with 50+ AB · Red = bottom quintile
Players in this category don't have as high a ceiling as the most elite players, but they have either a high enough floor or a specific enough toolkit to hold onto a MLB roster spot. Some will carve out useful roles and stick around for years. They might even make an All-Star roster on occasion. None of them are going to be perennial top-tier options.
Chandler Simpson's star is his legs. His process grade is fair to average, and his bat's limitations are real. But OOPSY projects 46 stolen bases, and he should get more consistent plate appearances as long as he can keep his walk rate from collapsing. For now, he's strictly a role player.
Dylan Crews is underrated, especially after his demotion to AAA this spring led to a ton of people ringing the Bust alarm. His process profile is clean across the board, but his 77 wRC+ in 2025 doesn't was underwhelming. When the Nationals sent him to minors right before Opening Day, I think were making a roster construction call, not a talent evaluation. Even his biggest fans think he could use more time in the minors to develop. When he gets the call, the his better-than-average profile will still be there.
Jacob Wilson has become one of the more compelling contact stories in this rookie class, and the attention is earned. His strikeout rate of 7.5% is historically elite. His SwStr% of 4.1% is almost comically low. Major league pitchers struggled to get him to swing and miss last season. That part is real and it's not going away. The problem is that his Barrel Rate is well below the floor for most everyday players. His .348 wOBA is being carried by a BABIP that suggests he's turning soft-to-medium contact into singles. This paints the picture of a contact hitter who's gotten lucky. The profile exists in baseball history: Luis Arraez has sustained a career above .300 by putting the ball precisely where defenders aren't, making soft contact at an elite rate. But big-league defenses have adjusted to Arraez, and he's struggled in recent years.
The same might happen to Wilson. Once pitchers start working the edges, the balls Wilson puts in play get easier to defend. His contact doesn't have to get worse for his production to drop. At ADP 192, the market is pricing continued production. Watch the Luck Index through April and May. If it's still minus .040 or wider, the regression is probably already in progress and the box score just hasn't caught up yet.
Agustín Ramírez is projected to hit up to 23 home runs in 2026, and he's projected to see plenty of playing time despite poor defense. But he was being drafted like an top-tier C or DH, but I see him more as a league average hitter.
Fringe Guys
2025 Rookie Class — D
| Player | PA | Luck Idx | Cons. Gap | Barrel% | SwStr% | O-Swing% |
|---|---|---|---|---|---|---|
| Ben Williamson | 295 | −.000 | 16.0 mph | 3.3% | 9.6% | 36.0% |
| Jeremiah Jackson | 183 | −.040 | 14.5 mph | 7.5% | 16.4% | 37.7% |
| Jake Mangum | 428 | −.031 | 14.7 mph | 2.6% | 10.5% | 47.0% |
| Hyeseong Kim | 170 | −.055 | 12.6 mph | 2.7% | 14.4% | 37.2% |
| Luisangel Acuña | 193 | +.013 | 16.7 mph | 1.4% | 10.0% | 34.5% |
| Jac Caglianone | 232 | +.082 | 20.1 mph | 12.0% | 12.9% | 41.4% |
| Kameron Misner | 217 | −.025 | 16.7 mph | 5.3% | 15.5% | 33.0% |
| Ronny Mauricio | 184 | −.005 | 16.1 mph | 8.8% | 16.5% | 41.2% |
| Alan Roden | 153 | −.022 | 18.0 mph | 2.0% | 10.5% | 35.0% |
| Ben Williamson | 295 | 44th | 40th | 22nd | 76th | 25th |
| Jeremiah Jackson | 183 | 5th | 77th | 59th | 15th | 17th |
| Jake Mangum | 428 | 10th | 73rd | 17th | 69th | 1st |
| Hyeseong Kim | 170 | 2nd | 94th | 19th | 28th | 19th |
| Luisangel Acuña | 193 | 65th | 24th | 5th | 74th | 35th |
| Jac Caglianone | 232 | 100th | 1st | 85th | 43rd | 7th |
| Kameron Misner | 217 | 15th | 25th | 39th | 16th | 44th |
| Ronny Mauricio | 184 | 36th | 34th | 67th | 12th | 8th |
| Alan Roden | 153 | 17th | 9th | 11th | 67th | 33rd |
Green = top quintile among batters with 50+ AB · Red = bottom quintile
These guys fall into two categories: guys with enough in their toolkit to stay on the roster until a team has a better option, and unproven who's poor debut performances raised more questions than answers.
Jac Caglianone fits the second category. He's a big left-handed hitter with a massive frame and levers that generate a terrifying amount of power. His Barrel Rate is 12.0%, which would be respectable for an established power hitter. When he squares one up, the exit velocity is not an accident. He also carries the highest Luck Index in the class at plus .082.
Other have pointed out that Cags has been very "unlucky" (his Luck Index agrees at plus .082), but I think he also has a problem with his approach. His O-Swing% was 38.5% and his SwStr% was 12.9%. Pitchers quickly learned that he couldn't lay off stuff outside the zone, and they were happy to exploit that weakness. This led to weaker contact and more strike outs. I also think he started pressing a little. He started trying to hit the ball further in front, which is a recipe for more power when successful or more fly outs when not.
If he tightens the zone even slightly, the underlying contact metrics suggest a significant jump in production. Track his Barrel Rate through April. If it holds above 10% and and O-Swing% declines, expect positive results to follow. One thing working against the optimistic read: Caglianone is no longer on the 2026 FanGraphs Top 100. He used up his prospect eligibility in 2025, so the prospect shine is gone. Whatever he becomes, he has to prove it now.
Jake Mangum is the cautionary tale with the largest sample. His 428 plate appearances confirmed what the underlying metrics said: O-Swing% of 43.6% (the worst mark in the entire class by a significant margin), a low Barrel Rate of 2.6%, Luck Index of minus .031. He is swinging at nearly half the pitches he sees outside the strike zone, making weak contact when he connects, and surviving because some of those balls were lucky enough to find gaps. There's no mechanism in his profile for that to continue. Some hitters with ugly discipline numbers compensate with elite raw power that changes how opponents pitch to them. Mangum's Barrel Rate eliminates that possibility. He's not making anyone pay for mistakes. He projects for 81 wRC+ at ADP 647. The grade and the price agree.
Alan Roden is a contact-first guy that I endlessly fascinated by, but he hasn't hit the ball hard enough to prove he belongs. He's only got 153 big league under his belt, but multiple years of +.900 OPS seasons in AAA and an interesting bio helps hope spring eternal.
Trivia Answers
2025 Rookie Class — F
| Player | PA | Luck Idx | Cons. Gap | Barrel% | SwStr% | O-Swing% |
|---|---|---|---|---|---|---|
| Yohel Pozo | 168 | +.001 | 15.6 mph | 2.2% | 11.5% | 49.7% |
| Christian Koss | 191 | +.014 | 17.4 mph | 6.0% | 14.9% | 38.8% |
| Brady House | 274 | +.036 | 15.9 mph | 4.3% | 16.4% | 39.7% |
| Ryan Ritter | 207 | −.032 | 15.4 mph | 1.5% | 18.0% | 36.1% |
| Bryce Teodosio | 150 | −.021 | 16.9 mph | 4.3% | 21.1% | 41.6% |
| Yohel Pozo | 168 | 48th | 50th | 14th | 55th | 0th |
| Christian Koss | 191 | 66th | 17th | 46th | 23rd | 13th |
| Brady House | 274 | 85th | 43rd | 30th | 14th | 11th |
| Ryan Ritter | 207 | 9th | 53rd | 6th | 6th | 24th |
| Bryce Teodosio | 150 | 19th | 21st | 30th | 0th | 5th |
Green = top quintile among batters with 50+ AB · Red = bottom quintile
Five players, but only one of them has a number worth talking about.
Brady House projects for 16 home runs. That's decent power, and his raw contact metrics aren't embarrassing for a player at this grade level. The model puts him here because the rest of the game hasn't caught up to the pop, and the discipline numbers don't suggest it's coming soon. He also has a very handsy swing, which doesn't inspire a lot of confidence. House has an ADP of 725, so the market is already skeptical. That skepticism is earned.
The other four are ADP 999, meaning no meaningful draft capital is attached to them. The market has already done the work here. None of them project for significant fantasy or real-life production, and the underlying metrics confirm it.
Smaller Samples
These players had fewer than 150 plate appearances in 2025. The same model, the same class-wide thresholds, but every number here is less stable. A player's discipline metrics can look completely different after 200 more plate appearances. Treat these as early signals.
The table runs from most to least optimistic. Florida Man Sal Stewart leads the list and is one of the most interesting names here. He'd grade up with the Top of the Class if he had enough at bats. I'm not too concerned with his elevated O-Swing% because he had good enough production to make me think he might be able to live outside the zone in the short-term.
Carter Jensen would also grade with the Top of the Class. He's playing backup to a future Hall of Famer in Salvador Perez, so playing time is still a question. But he's only 22 years old, so he has plenty of time to develop into Sal's heir. Put a big green up-arrow next to his name.
Dylan Beavers's projections are conservative because the sample is small, but 107 wRC+ and 1.4 WAR with an A grade is a favorable combination. If he locks down a starting role, the upside is real at that price.
The prospect hype around Marcelo Mayer was significant when he was promoted to Boston's main roster, but it seems to have deflated a bit since. My model says there's still something real, and I think he'll be a above-average everyday player. He just hasn't had enough plate appearances for the signal to be definitive.
Samuel Basallo 2025 numbers are rough: an O-Swing% of 41.8% and a SwStr% of 14.0% are red flags that typically suggest a hitter getting exposed by major league pitching. The question is whether those numbers reflect his actual approach or a 20-year-old catcher getting a cup of coffee and getting eaten alive before he was ready. The scouts who graded him 65 FV have seen him at his best; the Scorecard saw him at his worst. Both data points are real. He's a genuine wildcard for Baltimore's offense — the most interesting small-sample name on this entire list.
Carson Williams is a similar story with a slightly different shape. Tampa's 22-year-old shortstop is another Topp 100 prospect, and his 2025 debut was bad in ways that matter: a SwStr% of 18.1% is genuinely concerning, and the Consistency Gap flags suggest he's not squaring the ball up consistently either. Unlike Basallo, there's no single box to check here that makes the bad numbers explainable. Watch the strikeout rate. If it's still north of 25% by May, the debut wasn't an aberration.
2025 Rookie Class — Small Sample
| Player | PA | Luck Idx | Cons. Gap | Barrel% | SwStr% | O-Swing% |
|---|---|---|---|---|---|---|
| Dylan Beavers | 137 | −.003 | 14.7 mph | 9.3% | 7.6% | 19.7% |
| Carter Jensen | 69 | +.044 | 12.7 mph | 20.8% | 10.9% | 29.5% |
| Maximo Acosta | 61 | +.047 | 11.6 mph | 13.5% | 10.0% | 26.5% |
| Alex Freeland | 97 | −.015 | 10.5 mph | 8.0% | 10.5% | 21.7% |
| J.C. Escarra | 98 | +.020 | 13.8 mph | 5.6% | 7.6% | 23.3% |
| Zach Dezenzo | 109 | +.011 | 15.3 mph | 16.4% | 13.5% | 24.8% |
| Ryan Fitzgerald | 53 | +.015 | 13.8 mph | 13.2% | 12.4% | 31.7% |
| Blake Dunn | 75 | +.032 | 14.6 mph | 8.6% | 12.3% | 26.8% |
| Carlos Cortes | 99 | −.047 | 14.7 mph | 9.2% | 10.1% | 34.5% |
| Sal Stewart | 58 | +.044 | 13.1 mph | 17.5% | 11.1% | 39.5% |
| Anthony Seigler | 73 | +.066 | 11.3 mph | 2.1% | 10.9% | 21.5% |
| Blaine Crim | 74 | +.013 | 13.5 mph | 15.4% | 14.8% | 31.2% |
| Gustavo Campero | 66 | +.048 | 14.9 mph | 6.8% | 9.1% | 32.5% |
| Marcelo Mayer | 136 | −.027 | 13.7 mph | 9.2% | 13.9% | 32.3% |
| Jorbit Vivas | 66 | +.063 | 15.0 mph | 4.4% | 10.6% | 22.4% |
| Mickey Gasper | 110 | +.006 | 14.9 mph | 1.3% | 6.2% | 23.1% |
| Tristan Gray | 86 | +.051 | 15.5 mph | 13.1% | 15.2% | 28.6% |
| Ronny Simon | 88 | +.036 | 14.9 mph | 6.2% | 7.2% | 32.7% |
| Hunter Feduccia | 105 | +.049 | 16.1 mph | 8.2% | 11.9% | 26.9% |
| Drew Gilbert | 109 | +.010 | 15.6 mph | 4.9% | 10.8% | 27.6% |
| Griffin Conine | 86 | −.020 | 16.3 mph | 14.8% | 14.5% | 29.6% |
| Moisés Ballesteros | 66 | −.035 | 17.6 mph | 6.7% | 10.4% | 30.9% |
| DaShawn Keirsey Jr. | 88 | +.031 | 14.3 mph | 5.8% | 12.1% | 30.3% |
| Zach Cole | 52 | −.068 | 19.8 mph | 14.8% | 17.4% | 28.2% |
| Troy Johnston | 121 | +.013 | 14.0 mph | 9.3% | 14.2% | 37.3% |
| Jace Jung | 55 | +.059 | 16.5 mph | 3.2% | 9.5% | 29.1% |
| Cody Freeman | 121 | +.008 | 15.7 mph | 4.1% | 5.1% | 35.9% |
| Willie MacIver | 111 | +.000 | 13.9 mph | 4.0% | 11.6% | 34.0% |
| Will Wagner | 149 | +.039 | 16.0 mph | 2.0% | 9.7% | 31.1% |
| CJ Kayfus | 138 | +.017 | 15.9 mph | 9.2% | 16.4% | 32.6% |
| Adael Amador | 128 | +.031 | 16.1 mph | 3.4% | 9.1% | 32.3% |
| Brandon Lockridge | 148 | +.012 | 14.8 mph | 2.9% | 11.1% | 35.5% |
| Johnathan Rodríguez | 77 | +.010 | 15.3 mph | 6.1% | 15.7% | 31.0% |
| Adrian Del Castillo | 131 | −.026 | 15.2 mph | 6.7% | 15.3% | 33.3% |
| Michael Helman | 110 | −.070 | 19.0 mph | 8.6% | 12.3% | 37.8% |
| Tyler Tolbert | 57 | +.007 | 12.8 mph | 2.4% | 14.3% | 36.2% |
| Braxton Fulford | 120 | +.003 | 17.5 mph | 5.3% | 13.6% | 30.2% |
| Jordan Lawlar | 74 | +.009 | 17.1 mph | 4.9% | 13.7% | 29.1% |
| Nathan Church | 65 | +.016 | 11.3 mph | 2.4% | 14.0% | 38.7% |
| Everson Pereira | 73 | +.031 | 17.4 mph | 7.9% | 19.5% | 27.5% |
| Jorge Barrosa | 77 | +.021 | 12.3 mph | 0.0% | 12.5% | 35.3% |
| Andrés Chaparro | 73 | +.026 | 20.2 mph | 11.1% | 13.8% | 36.7% |
| Tim Elko | 72 | +.015 | 17.1 mph | 10.8% | 15.1% | 36.7% |
| Nick Yorke | 72 | +.001 | 18.2 mph | 1.9% | 10.2% | 34.4% |
| Colby Thomas | 132 | −.010 | 16.5 mph | 13.3% | 19.5% | 45.0% |
| Yanquiel Fernández | 147 | −.025 | 16.3 mph | 8.4% | 15.3% | 38.3% |
| Jacob Melton | 78 | +.041 | 17.8 mph | 4.8% | 15.3% | 31.4% |
| Carson Williams | 106 | −.012 | 17.8 mph | 8.9% | 18.1% | 35.0% |
| Samuel Basallo | 118 | +.040 | 18.8 mph | 8.9% | 14.0% | 41.8% |
| Matthew Lugo | 70 | −.038 | 18.7 mph | 13.3% | 17.8% | 40.3% |
| Tyler Locklear | 116 | +.007 | 17.7 mph | 6.7% | 14.7% | 35.6% |
| Warming Bernabel | 146 | −.027 | 16.3 mph | 2.6% | 10.9% | 41.6% |
| Hayden Senger | 78 | +.069 | 13.9 mph | 3.8% | 16.5% | 43.6% |
| Will Robertson | 75 | +.040 | 16.1 mph | 9.1% | 18.4% | 40.1% |
| Will Wilson | 91 | −.017 | 13.1 mph | 2.0% | 18.5% | 38.4% |
| Bob Seymour | 83 | −.002 | 15.4 mph | 0.0% | 19.3% | 44.1% |
| Dylan Beavers | 137 | 38th | 75th | 76th | 88th | 100th |
| Carter Jensen | 69 | 91st | 92nd | 100th | 61st | 66th |
| Maximo Acosta | 61 | 92nd | 97th | 90th | 73rd | 82nd |
| Alex Freeland | 97 | 25th | 100th | 61st | 68th | 96th |
| J.C. Escarra | 98 | 72nd | 84th | 43rd | 89th | 92nd |
| Zach Dezenzo | 109 | 62nd | 55th | 97th | 40th | 88th |
| Ryan Fitzgerald | 53 | 67th | 85th | 87th | 47th | 54th |
| Blake Dunn | 75 | 83rd | 76th | 65th | 50th | 80th |
| Carlos Cortes | 99 | 3rd | 74th | 74th | 72nd | 35th |
| Sal Stewart | 58 | 90th | 88th | 98th | 60th | 12th |
| Anthony Seigler | 73 | 98th | 99th | 13th | 63rd | 97th |
| Blaine Crim | 74 | 65th | 87th | 95th | 24th | 57th |
| Gustavo Campero | 66 | 93rd | 65th | 54th | 80th | 48th |
| Marcelo Mayer | 136 | 13th | 85th | 73rd | 35th | 51st |
| Jorbit Vivas | 66 | 96th | 63rd | 31st | 66th | 95th |
| Mickey Gasper | 110 | 54th | 66th | 4th | 94th | 93rd |
| Tristan Gray | 86 | 95th | 52nd | 86th | 21st | 71st |
| Ronny Simon | 88 | 85th | 68th | 48th | 91st | 46th |
| Hunter Feduccia | 105 | 94th | 35th | 64th | 53rd | 79th |
| Drew Gilbert | 109 | 61st | 48th | 35th | 64th | 75th |
| Griffin Conine | 86 | 20th | 29th | 95th | 26th | 65th |
| Moisés Ballesteros | 66 | 8th | 15th | 51st | 70th | 61st |
| DaShawn Keirsey Jr. | 88 | 82nd | 79th | 45th | 51st | 63rd |
| Zach Cole | 52 | 1st | 2nd | 95th | 8th | 74th |
| Troy Johnston | 121 | 64th | 80th | 75th | 31st | 18th |
| Jace Jung | 55 | 95th | 26th | 21st | 77th | 69th |
| Cody Freeman | 121 | 57th | 45th | 28th | 95th | 26th |
| Willie MacIver | 111 | 45th | 82nd | 27th | 55th | 38th |
| Will Wagner | 149 | 86th | 39th | 11th | 75th | 59th |
| CJ Kayfus | 138 | 71st | 42nd | 73rd | 13th | 47th |
| Adael Amador | 128 | 81st | 35th | 23rd | 81st | 50th |
| Brandon Lockridge | 148 | 63rd | 71st | 20th | 59th | 29th |
| Johnathan Rodríguez | 77 | 60th | 57th | 47th | 15th | 60th |
| Adrian Del Castillo | 131 | 14th | 59th | 51st | 18th | 41st |
| Michael Helman | 110 | 0th | 4th | 66th | 48th | 16th |
| Tyler Tolbert | 57 | 56th | 91st | 15th | 30th | 23rd |
| Braxton Fulford | 120 | 52nd | 15th | 38th | 39th | 65th |
| Jordan Lawlar | 74 | 59th | 20th | 33rd | 38th | 68th |
| Nathan Church | 65 | 69th | 98th | 16th | 33rd | 14th |
| Everson Pereira | 73 | 80th | 16th | 60th | 1st | 76th |
| Jorge Barrosa | 77 | 74th | 95th | 2nd | 46th | 31st |
| Andrés Chaparro | 73 | 76th | 0th | 84th | 36th | 21st |
| Tim Elko | 72 | 68th | 19th | 80th | 22nd | 22nd |
| Nick Yorke | 72 | 46th | 8th | 9th | 71st | 36th |
| Colby Thomas | 132 | 30th | 27th | 89th | 2nd | 2nd |
| Yanquiel Fernández | 147 | 15th | 31st | 65th | 19th | 15th |
| Jacob Melton | 78 | 89th | 12th | 32nd | 20th | 56th |
| Carson Williams | 106 | 29th | 13th | 69th | 5th | 32nd |
| Samuel Basallo | 118 | 88th | 5th | 68th | 34th | 5th |
| Matthew Lugo | 70 | 6th | 6th | 89th | 7th | 9th |
| Tyler Locklear | 116 | 55th | 14th | 51st | 25th | 28th |
| Warming Bernabel | 146 | 12th | 28th | 18th | 62nd | 6th |
| Hayden Senger | 78 | 99th | 83rd | 25th | 11th | 4th |
| Will Robertson | 75 | 87th | 33rd | 70th | 5th | 10th |
| Will Wilson | 91 | 22nd | 89th | 12th | 4th | 15th |
| Bob Seymour | 83 | 40th | 55th | 2nd | 3rd | 3rd |
Green = top quintile among batters with 50+ AB · Red = bottom quintile
The 2025 rookie class isn't finished yet. A wave of Fangraphs Top-100 Prospects with ETA 2026 are waiting in the wings: Konnor Griffin (#1 overall, PIT), Kevin McGonigle (#5, DET), Colt Emerson (#11, SEA), JJ Wetherholt (#12, STL), and Aidan Miller (#13, PHI) are all capable of making their full-time debuts before the All-Star break. Once any of them reaches 150 plate appearances, the Scorecard applies. Griffin in particular is worth watching — he's the consensus top prospect in baseball, a 19-year-old shortstop the Pirates have been fast-tracking through AA. The moment he gets to Pittsburgh, the question isn't whether he's talented. It's whether the discipline holds up once major league pitchers find his weaknesses. That's always the question.