
A closer look at all the hitters, against all the pitchers.
Spring Training is in full force, and the San Francisco Giants have mostly looked the part of a quality team. They have a 5-3 record with two ties, have had some encouraging individual performances, and have played refreshingly fundamentally sound baseball.
Monday was their first off day since Cactus League play began, so it’s a good time to check in on some individual stats. But as I’ve pointed out far too many times over the last month, spring stats can be a little bit silly, and history is a good reminder of that.
In 2024, these were the Giants with an OPS above 1.000 in Spring Training (minimum: 20 at-bats): Luis Matos, Tom Murphy, David Villar, Nick Ahmed, Wilmer Flores, Ismael Munguia, Trenton Brooks, and Wade Meckler.
And in 2023: Blake Sabol, Isan Díaz, and Will Wilson.
And in 2022: Joey Bart, Alex Blandino, Mauricio Dubón, Thairo Estrada, Wilmer Flores, and Luis González.
And in … well, you get the point.
Stats are still important, though, so we should look at them. But maybe there’s a better way to look at them. A few weeks ago I posted an article asking what type of content readers wanted, and commenter StillCrazyAfterAllTheseYears suggested some context surrounding stats. One need only look at things from the other team’s perspective to see the value here: the Giants have given at-bats to Willy Adames, who hit 32 home runs last year, but they’ve also given at-bats to Dakota Jordan, a 2024 fourth-round pick whose professional career has featured exactly seven plate appearances in A-ball. They’ve sent Logan Webb, a reigning All-Star and Cy Young vote-getter to the mound, but they’ve also sent Seth Lonsway, a sixth-round pick who only recently made it to AA. If you were following a different team, you’d be more excited by a player striking out Adames than Jordan; more optimistic by a home run off of Webb than off of Lonsway.
So this is my attempt to add that context, though it’s an inexact science. I’ve broken down opposing players by four categories: MLB regulars, players on the 40-man roster, non-roster invitees, and players over from Minor League camp. Again, it’s an inexact science. It’s hard enough for me to figure out if Luis Matos belongs in the “MLB regular” bucket or the “40-man roster” bucket, and it’s a lot harder for me to figure out where another team’s Luis Matos belongs. And on top of that, there are plenty of regulars — like, say, backup catchers — who don’t exactly embody that label when it comes to stats (and plenty of NRIs and Minor Leaguers that flip that script).
But it’s the best we can do. So here are all the Giants position players with their stat broken down not just by what they did, but whom they did it against. And just to really tie things together, I’ve broken the Giants players down by that category as well. Tomorrow we’ll dive into the pitchers.
Enjoy. Or tell me I’m a time-wasting idiot. Both are valid reactions.
Giants regulars
Willy Adames
vs. regulars: 2-8, 3 strikeouts
vs. 40-mans: 2-2
vs. NRIs: 0-3, 2 walks, 1 strikeout
vs. MiLBs: 1-1
Total: 5-13, 2 walks, 4 strikeouts, .852 OPS, 141 wRC+
We’re still waiting to see Adames’ power play, but it’s only a matter of time. He’s looked every bit the part in the batter’s box and at shortstop.
Patrick Bailey
vs. regulars: 0-6, 1 walk, 2 strikeouts
vs. 40-mans: 0-1
vs. NRIs: 1-2, 1 home run
vs. MiLBs: 1-1
Total: 2-10, 1 home run, 1 walk, 2 strikeouts, 2 bases stolen against, .773 OPS, 95 wRC+
Feast your eyes on this gorgeous swing of the bat.
https://t.co/PHDFE5lWau pic.twitter.com/83v1E2duWv
— SF Gigantes (@SFGigantes) February 23, 2025
Matt Chapman
vs. regulars: 2-4, 1 home run, 1 walk, 2 strikeouts
vs. 40-mans: 1-3, 2 strikeouts
vs. NRIs: 0-2, 1 walk, 1 strikeout
vs. MiLBs: 1 walk
Total: 3-9, 1 home run, 3 walks, 5 strikeouts, 1.167 OPS, 203 wRC+
My goodness did I miss watching this swing.
Matt Chapman and Wilmer Flores go back-to-back in #SFGSpring action ✌️ pic.twitter.com/hoCGB7qGDh
— SFGiants (@SFGiants) February 28, 2025
Jerar Encarnación
vs. regulars: 1-6, 2 strikeouts
vs. 40-mans: 1-2, 1 double
vs. NRIs: 5-9, 1 home run, 3 doubles, 1 strikeout
vs. MiLBs: 1-1
Total: 8-18, 1 home run, 4 doubles, 3 strikeouts, 1.277 OPS, 230 wRC+
Encarnación has been the star of camp for the Giants, though I suppose the purpose of this exercise is to throw cold water on players like Encarnación by pointing out that almost all the damage has come against non-roster invitees. Maybe I should stop writing this article … I’d rather live in a world where I think Encarnación’s MVP campaign is just getting started. Regardless, he’s absolutely destroying baseballs, and that’s the name of the game! My favorite part of his spring has been this home run he hit, which Statcast said went 387 feet and wouldn’t have been a home run in any parks … despite easily clearing the center field wall with a 410-foot marker. Hey, it’s spring for everyone.
Jerar Encarnacion with a big boy line drive homer to center field gives the Giants the lead. What a shot, 113 mph exit velo. pic.twitter.com/fHWSTgIqj6
— Giant Prospective (@giantprospectiv) March 1, 2025
Tyler Fitzgerald
vs. regulars: 0-1, 1 walk, 1 strikeout
vs. 40-mans: 1-2, 1 strikeout
vs. NRIs: 1-2, 1 strikeout
vs. MiLBs: n/a
Total: 2-5, 1 walk, 3 strikeouts, .900 OPS, 157 wRC+
Fitzgerald took a while to get into action as he was dealing with an early camp injury, but is now getting up to speed. Hopefully we see him try to steal some bases in the coming days.
Wilmer Flores
vs. regulars: 2-3, 1 home run, 1 double, 1 walk
vs. 40-mans: 1-3, 1 double, 1 strikeout
vs. NRIs: 0-5
vs. MiLBs: 0-1, 1 walk
Total: 3-12, 1 home run, 2 doubles, 2 walks, 1 strikeout, 1.024 OPS, 156 wRC+
Flores is the opposite of Encarnación, though I’d of course caution against reading too much into these sorts of silly stats in silly sample size quantities. It’s been great seeing Flores swing the bat well, though.
Jung Hoo Lee
vs. regulars: 2-8, 1 hit by pitch, 2 strikeouts
vs. 40-mans: 0-2, 1 walk, 2 strikeouts
vs. NRIs: 4-5, 1 home run, 1 double, 1 walk
vs. MiLBs: n/a
Total: 6-15, 1 home run, 1 double, 2 walks, 1 hit by pitch, 4 strikeouts, 1.167 OPS, 207 wRC+
Lee’s home run came off an NRI, but that NRI — Chase Dollander — is one of the top prospects in baseball, and should be in the Majors fairly soon. Mostly it’s just great seeing Lee back on the field.
Jung Hoo Lee’s first home run of 2025 pic.twitter.com/owkYKH6ddM
— SFGiants (@SFGiants) February 24, 2025
LaMonte Wade Jr.
vs. regulars: 2-7, 1 home run, 3 walks, 3 strikeouts
vs. 40-mans: 0-3, 1 walk, 1 strikeout
vs. NRIs: 0-1, 2 walks, 1 strikeout
vs. MiLBs: n/a
Total: 2-11, 1 home run, 6 walks, 5 strikeouts, .926 OPS, 158 wRC+
A whole bunch of walks and the occasional home run? Wade is in midseason form!
Mike Yastrzemski
vs. regulars: 0-7, 4 strikeouts
vs. 40-mans: 1-2, 1 home run, 1 strikeout
vs. NRIs: 1-3, 1 double, 1 sacrifice fly, 1 walk, 1 strikeout
vs. MiLBs: n/a
Total: 2-12, 1 home run, 1 double, 1 walk, 6 strikeouts, .714 OPS, 66 wRC+
Yaz is still finding his rhythm against the regulars but, after a slow start, he’s starting to pick things up.
Giants 40-man roster players
Osleivis Basabe
vs. regulars: 0-3
vs. 40-mans: n/a
vs. NRIs: 1-5
vs. MiLBs: 1-2
Total: 2-10, 1 caught stealing, .400 OPS, 3 wRC+
Basabe hasn’t played in a while, so he might be a little dinged up. He’s definitely had the contact skills that his Minor League profile suggested, with no strikeouts but not a lot of damage, either.
Sam Huff
vs. regulars: 1-6, 1 home run, 1 walk, 5 strikeouts
vs. 40-mans: 1-2
vs. NRIs: 0-2, 1 walk, 2 strikeouts
vs. MiLBs: 0-1, 1 strikeout
Total: 2-11, 1 home run, 2 walks, 8 strikeouts, 1 runner thrown out, 3 bases stolen against, .763 OPS, 99 wRC+
Huff started the spring with a bang, homering against his old team in the opener. He’s had an issue striking out against all levels of players, though.
Marco Luciano
vs regulars: 1-8, 1 home run, 1 walk, 3 strikeouts
vs. 40-mans: 0-2, 1 walk, 1 strikeout
vs. NRIs: 0-5, 1 walk, 1 strikeout
vs. MiLBs: 1-2
Total: 2-17, 1 home run, 3 walks, 5 strikeouts, 1 error, .544 OPS, 48 wRC+
Luciano has been getting a good amount of playing time early. He certainly still looks like someone ticketed for AAA to start the year, but he’s been posting high exit velocities and looks comfortable in the outfield. His home run was a reminder of what he’s capable of.
Marco Luciano absolutely demolished this baseball pic.twitter.com/RYs5RLTdXU
— SFGiants (@SFGiants) February 24, 2025
Luis Matos
vs. regulars: 1-7
vs. 40-mans: 1-6
vs. NRIs: 4-7, 1 home run, 1 double
vs. MiLBs: 0-1
Total: 6-21, 1 home run, 1 double, .762 OPS, 94 wRC+
For better or for worse, Matos has had neither a walk nor a strikeout this spring. He’s been putting everything in play … including one ball over the wall.
Luis Matos – San Francisco Giants (1)* pic.twitter.com/1N5JVkRb5D
— MLB HR Videos (@MLBHRVideos) March 2, 2025
Grant McCray
vs. regulars: 0-4, 3 strikeouts
vs. 40-mans: 0-4, 2 strikeouts
vs. NRIs: 1-7, 1 home run, 1 walk, 1 hit by pitch, 4 strikeouts
vs. MiLBs: 1-1
Total: 2-16, 1 home run, 1 walk, 1 hit by pitch, 9 strikeouts, 1 stolen base, .535 OPS, 41 wRC+
No surprises given how quickly he was rushed through the Minors last year, but McCray looks like someone who could use some development in the Minors. His swing-and-miss issues have been on display against all levels.
Wade Meckler
vs. regulars: n/a
vs. 40-mans: 0-3, 1 walk
vs. NRIs: 3-7, 2 strikeouts
vs. MiLBs: 1-3, 1 walk
Total: 4-13, 2 walks, 2 strikeouts, 1 stolen base, .708 OPS, 103 wRC+
How great is it to see Meckler back on the field? His usage makes it pretty clear that he’s not currently in consideration for a spot on the Opening Day roster, but he’s clearly a depth piece who should be in the Majors again this year.
Casey Schmitt
vs. regulars: 1-4, 1 home run, 1 strikeout
vs. 40-mans: 0-3, 2 strikeouts
vs. NRIs: 3-8, 2 doubles, 2 strikeouts
vs. MiLBs: 0-4, 1 strikeout
Total: 5-19, 1 home run, 2 doubles, 6 strikeouts, 2 errors, .685 OPS, 67 wRC+
It’s been an up-and-down spring for Schmitt, but his home run came against one of the best pitchers in the Majors last year, Shōta Imanaga.
Schmitty showing off some opposite field pop pic.twitter.com/lEMTzVdd03
— SFGiants (@SFGiants) February 26, 2025
David Villar
vs. regulars: 1-2, 1 strikeout
vs. 40-mans: 0-2, 1 strikeout
vs. NRIs: 1-6, 3 strikeouts
vs. MiLBs: 1-1, 1 walk
Total: 3-11, 1 walk, 5 strikeouts, .606 OPS, 70 wRC+
It certainly looks like Villar’s time with the organization is nearing a close. He entered camp on the outside looking in, and hasn’t shown much to this point
Brett Wisely
vs. regulars: 3-6, 1 double, 2 strikeouts
vs. 40-mans: 1-3, 1 strikeout
vs. NRIs: 0-2, 1 strikeout
vs. MiLBs: 2-2, 1 double
Total: 6-13, 2 doubles, 4 strikeouts, 1 caught stealing, 1.077 OPS, 188 wRC+
Wisely seemed in the driver’s seat to win the backup infielder spot when camp opened, and nothing he’s done has changed that. He’s been solid against everyone so far.
Giants non-roster invitees
Sergio Alcántara
vs. regulars: n/a
vs. 40-mans: 0-2, 1 strikeout
vs. NRIs: 2-8, 1 walk, 4 strikeouts
vs. MiLBs: 0-2, 1 walk
Total: 2-13, 2 walks, 5 strikeouts, .421 OPS, 26 wRC+
Alcántara has been solid while getting a lot of reps at shortstop, showing that he could become part of the plans if Adames has to miss any time.
Bryce Eldridge
vs. regulars: n/a
vs. 40-mans: 0-3, 3 strikeouts
vs. NRIs: 1-5, 1 home run, 1 walk, 3 strikeouts
vs. MiLBs: 1-3, 2 strikeouts
Total: 2-11, 1 home run, 1 walk, 8 strikeouts, .705 OPS, 78 wRC+
It took Eldridge exactly one game to remind us that he’s one of the best prospects in baseball. And it didn’t take him much time after that to remind us that he also has just 75 Minor League plate appearances above A-ball.
Here’s how Bryce Eldridge’s gargantuan blast sounded live on KNBR from the legend Jon Miller ⬇️
@justdelossantos pic.twitter.com/kAjRIyAoMp
— KNBR (@KNBR) February 22, 2025
Christian Koss
vs. regulars: n/a
vs. 40-mans: 0-2
vs. NRIs: 4-12, 1 home run, 2 doubles, 1 walk, 1 hit by pitch, 5 strikeouts
vs. MiLBs: n/a
Total: 4-14, 1 home run, 2 doubles, 1 walk, 1 hit by pitch, 5 strikeouts, 1 error, 1.018 OPS, 160 wRC+
Koss has been impressing all camp, with some exceptional defense and extra-base pop. The stats certainly contextualize where he’s doing his damage, but he also looks like he could be one Adames injury away from being in the Majors in a near-everyday role.
Jake Lamb
vs. regulars: 2-5, 3 strikeouts
vs. 40-mans: 1-1
vs. NRIs: 0-1, 1 strikeout
vs. MiLBs: 0-2, 1 strikeout
Total: 3-9, 5 strikeouts, 2 errors, .666 OPS, 80 wRC+
Lamb was dealt an injury early on, and it’s not clear when he’ll return. The Giants seemed to like his left-handed bat, though he wasn’t showing much in camp, and hasn’t shown much in quite a few seasons.
Logan Porter
vs. regulars: n/a
vs. 40-mans: 0-2
vs. NRIs: 1-4, 1 double
vs. MiLBs: 0-2, 1 strikeout
Total: 1-8, 1 double, 1 walk, 1 strikeout, 2 stolen bases against, .472 OPS, -13 wRC+
Not a lot to see with Porter so far. He’s an important depth piece ticketed for Sacramento.
Max Stassi
vs. regulars: n/a
vs. 40-mans: 1 walk
vs. NRIs: 0-4, 4 strikeouts
vs. MiLBs: 0-2
Total: 0-6, 1 walk, 4 strikeouts, 1 stolen base against, .143 OPS, -47 wRC+
Stassi hasn’t been able to find his groove yet this spring, though the door is open with Tom Murphy’s injury.
Adrián Sugastey
vs. regulars: n/a
vs. 40-mans: n/a
vs. NRIs: 0-3
vs. MiLBs: 1-3
Total: 1-6, 1 stolen base against, .334 OPS, -17 wRC+
Sugastey isn’t in play to make the Opening Day roster, but got moved to Major League camp after Murphy’s injury.
There’s no need to run through all the players from Minor League camp, but if you’re interested in their basic stats, you can see them here.