Welcome back to the Buy & Sell! I know I tend to write up too many players, but this time will be different, I’ll keep it short and succinct, with only modern pop culture references, I swear! This week’s theme is… prospect season is over, it’s buy back in on the guys you cut for prospect season now. The top name is someone who I don’t think I called a sell at any point this year but I know I came close, but midseason surges can be sneaky opportunities to regain ground, especially as attention this year drifts to the World Cup before football. On to the list!
BUY
10-team
Jac Caglianone (1B/OF, Kansas City Royals)
It’s time to call a bunch of hits for Don Caglianone. Hey, I just watched The Godfather for the first time (indefensible, I know), and in every league where I don’t have him, I made them a trade offer that they can’t refuse (though given yet another homer barrage last night, they probably still will).
Don’t forget that at around this time last season, the fantasy community was debating who had the bigger upside between Nick Kurtz and Jac Cags, and the consensus leaned towards Cags, and it’s starting to look a LOT like last year’s Kurtz explosion, hitting .346 with 6 homers just this week. If you were smart and bought in early as the batting average started ticking up, you snuck him through, but now you need to pony up big, and yes, I still think it’s worth it. But as a waiver wire add? Likely, if you’re in a casual league where people checked out after Memorial Day (it does happen), and if you don’t believe me, he’s still available in 22% of Yahoo Leagues, and for some reason, only 64% started.
Gabriel Moreno (C, Arizona Diamondbacks)
He’s hotter than hot pants, so let’s start rollerskating towards Moreno 911. For anyone who thinks of him as “boring,” remember that he was one of the hottest offensive catching prospects in the game, but debuted very young, and every year he’s making steady improvements to make himself a more well-rounded hitter. His rise has been quieter than most, as he’s hit .342/.432/.500 with 3 homers over the past 3 weeks, but no one is talking about him on podcasts as his season line of .275 with 6 homers and 4 stolen bases isn’t jumping off the page.
But first of all, hey, that is really good production from a catcher, as he’s helping in all categories, especially batting average. But moreover, his xwOBA has been on a significant upswing, as he’s rocking an excellent .398 xwOBA over his past 100 PA. He’s yet again increased his barrel% to a career-high 9%, which is significant when he makes as much contact as he does, with a career-best 45% HardHit%, and most exciting personally is his career-best PullAir%, which is 17%, and going from below-average to above average for the first time. Here’s a bold take: Even if I had an elite starting catcher, I’m starting to think I’d rather roster Moreno than Christian Yelich at my DH slot. Think I’m crazy, look at their peripherals and get back to me. And he’s still just 50% rostered, let’s fix that, folks.
Honorable Mention: Jung Hoo Lee (OF, San Francisco Giants) – I slept at the wheel by brushing off his hot return from the IL, but he’s been one of the hottest hitters in fantasy for weeks now, and I was watching as he just launched his longest homer of the year. He’s basically Arraez with more power and speed, you have to ride this… and he’s still only 48% rostered in Yahoo.
Honorable Mention: Nasim Nunez (2B/SS, Washington Nationals) – It’s quite possible you missed it, but he’s raised his batting average nearly 50 points the past few weeks to a much more palatable .242 while still leading baseball with 31 SBs… and he’s still just 27% rostered. I get that he’s a terrible hitter, but he can swing you a whole category. C’mon, y’all.
12-team
Matt Shaw (3B/OF, Chicago Cubs)
Until this week, we had been blind to him as if we had just got a fistful of pocket sand… Sh-sh-Shaw! If you’re someone who makes your adds based on surface stats or on Statcast, he likely hasn’t yet caught your eye, as he’s hit a solid but unspectacular .296 with 1 HR and 0 SB in 27 AB since his call-up last week, but we did see last year what he’s capable of when he gets hot (even if it may have been somewhat lucky. If nothing else, his dual 3B/OF eligibility is among the most useful you can have in fantasy this year, especially in 5 OF formats.
A big part of his value has been the fact that he now has a runway for playing time, something he clearly didn’t have on Opening Day, and the fact that third base has been quite bad as expected, though not necessarily how we expected, with names like Machado, Riley and Bregman all going down the toilet. While I doubt that Bregman will actually lose time to him despite his struggles, crazier things have happened, and the Cubs are in a bit of panic mode as their playoff chances are slipping (more due to pitching calamity). If Shaw can pace for 20/20 even with batting average volatility, that will help, and he does show some signs of being an improved hitter under the hood this year, with small sample improvements in HardHit% and Contact% (although still below average).
Carter Jensen (C, Kansas City Royals)
I wish I had a photographic memory to capture all the recent hits by Kan Jensen. He’s still hitting just .244, but he’s looked much more like his late-season 2026 self lately with a .378 AVG and 2 homers in 45 AB over the past 2 weeks and an excellent 5/5 K/BB ratio. This was the kind of batting average surge that Jac Cags had before the power explosion, so if you missed your chance buying medium-low to medium on him, this could be your next best bet to get a breakout performer for the second half.
Honorable Mention: Henry Bolte (OF, Oakland Athletics) – He’s still flawed with a huge groundball rate and K issues, but he’s been aggressively stealing bags with 8 in just a month, and his 100th percentile sprint speed means he’s going to have a higher batting average than you’d expect, with huge bat speed that still gives him 5-tool upside with some more launch.
Honorable Mention: Blaze Alexander (2B/3B/SS/OF, Baltimore Orioles) – Maybe I’ve lost my mind considering a guy with 3 homers here, but you cannot extinguish the Blaze. He’s rocking an incredible .310 AVG with 3 homers and 8 SB and it’s backed with a .304 xBA and an elite 93 mph avg Exit Velocity (93rd percentile), giving him significant upside with highly useful multi-position eligibility. Still just 16% rostered, if nothing else an excellent super-sub bench piece.
15-team
Lawrence Butler (OF, Oakland Athletics)
You can’t escape the long arm of the Law. Although he’s been one of my favorite players to rag on early on this year, including in the preseason where I labeled him a Bust Candidate, he’s been hitting better lately, with a .367 AVG with 2 HR and 1 SB in 30 AB over the past 2 weeks, and he finally has runway due to Cortes no longer conquering pitchers, Rooker getting knocked off the board, and even Gelof getting hurt.
Denzer Guzman (SS/3B, Los Angeles Angels)
Mercedes-Denz just keeps on cruising, with 3 homers and a stolen base to go with a .255 AVG, and his xwOBA has been rising quickly. He was a Triple-A breakout so I already got many early shares of him in dynasty formats, and I think he’s not far from being 12-team AVG league viable due to his positional versatility… I could see him outproducing Matt Shaw this year, for example. Not a star, but a solid above-average.
Cooper Pratt (SS, Milwaukee Brewers)
He’s kind of a 15-team buy in the sense that he’s probably going to be added in most 15-teamers with a pulse, even though he’s probably going to cool down. Even the minor league production didn’t look this good, but I’m trying to learn from my miss on Bazzana that sometimes you have to bank on pedigree that they’ll figure it out in the majors, and even if not, well, you’re still getting stolen bases. That said, if I added him, I’d probably also try to shop him since hype is pretty high.
Samad Taylor (2B/OF, San Diego Padres)
Don’t get Samad, get Sameven. I’m slow to give up on prospects I liked, and Samad always had an interesting blend of contact and blazing speed, so why not give him some run on a Padres team that was trotting out the lifeless husk of Nick Castellanos for 2 months? Similar to Pratt, he’s a short-term average and speed streamer I’d look to trade, since he can rack up AB and SB in the short term, but no, I don’t think his .528 BABIP is going to hold… just a crazy hunch.
Deep Leagues
Victor Caratini (C/1B, Minnesota Twins)
His losing playing time early on was quite a shakeup, but call me James Bond because I like my Caratini shaken, not stirred. Caratini had been awful at the end of May, but has had a June Bloom while filling in at catcher for the injured Jeffers, hitting .378/.462/.733 with 4 homers in 45 AB over the past 3 weeks, with a lot of his damage coming in one crazy 3-homer game in which only the bottom-half Twins hitters carried the offense. A catcher who plays is good enough, but he had an excellent 6/7 BB/K over that span and could even outproduce the likes of Alejandro Kirk the rest of the way with his combo of power/hit and opportunity on a suddenly hot offense.
Honorable Mention: Luis Urias (2B, Toronto Blue Jays) – I’ll admit he’s one of those deep league “players I can’t quit” who burned me last year, but I’m ready to be hurt again. He homered in his first game for the Blue Jays and still has an intriguing blend of low strikeout rate and high Pull Air% that could get hot, especially with all the recent talk of the juiced ball being back on the menu, which helps players with his profile more than anyone.
Honorable Mention: Ben Malgeri (OF, Detroit Tigers) – More of a watchlist guy, but the Tigers’ offense is so bad, and I’m so bearish on James always gets Out, man. Could be something like what Wenceel Pérez was supposed to be, with decent deep league power/speed.
SELL
10-team
Christian Walker (1B, Houston Astros)
I know he’s 36, but this Walker seems to have recently had his legs swapped out for tennis balls. He’s high on my list of “I think he’s playing through an injury and hiding it” list as his early surge, which still looks excellent with 18 home runs, has really fallen off a cliff recently, with a .087 AVG in 23 AB this week, and hitting just .187 with 2 homers over the past 3 weeks at a time when the rest of the Houston offense has been surging.
The underlying stats have been showing regression under the hood for some time, with his rolling xwOBA down .042 over his past 250 PA to just .295, and it’s .252 over his past 100 PA. Good news, it’s slightly up over his last 50 PA… to .262. Yuck. It’s not supposed to be below .300 for a decent hitter at all, much less a first baseman. Still, those 18 homers make him seem undroppable, which explains why he’s 91% rostered in Yahoo. But yes, if somehow you could drop him right now for Jac Caglianone, I’d do it before you even finish reading this… sentence. In most leagues, however, I’d try to trade him since he can still fetch a good haul, but the longer you hold, the less you’ll get.
Jarren Duran (OF, Boston Red Sox)
He was the cover guy of my sell article at the end of May, and then he heated up and made me wonder if screwed up by overreacting. But no, I don’t think I did. He’s just not displaying any of the good quality of contact skills that made him useful for years, with a 30% K% that keeps the average low, and an even worse 4th percentile whiff rate that makes me think positive regression won’t save him. I’d still try to sell low rather than drop, but in shallow formats, the opportunity cost of holding a 20/20 but Mendoza line player is more than you think.
Dishonorable Mention: Spencer Steer (1B/OF) – I have been such a Steer believer that I hadn’t even noticed that he’s been hitting below .100 for weeks, with no power, and sure enough, he has a terrible .287 rolling xwOBA over his past 100 PA and a.222 50 PA xwOBA that made me do a Hank Hill “GAHH!”. Maybe I’d bench in formats where he gained added eligibility at 2B and 3B.
12-team
Christian Yelich (UT, Milwaukee Brewers)
I think someone has used the skills at the platebreaker to take down the YeLich King. He’s been a scourge to your offensive production with his UT-only eligibility clogging up your versatility without providing the elite production you get from other elite UT, and some others gained in-season eligibility, but he won’t. His Statcast page is blue across the board in just about everything but chase rate, and while his season line of .263 with 5 HR and 5 SB in 201 AB is by no means “bad”, his barrel rate is less than half of last year, his strikeout rate is up, and he just looks like an aging player having a not-so-graceful decline.
While I know it’s more descriptive than predictive, his xBA of .228 and xSLG of .370 suggest he’s been overperforming, and I don’t think that at age 36 with a lengthy injury history that he’s going to improve much as we start to enter the dog days of summer, and given the current juiced ball environment, I’d like to target flyball hitters instead of someone with an average launch angle of 3 degrees. I’d try to trade him on name value (and maybe memories of his midseason surge in 2025) for someone who is actually going to help your production and give you much-needed roster versatility.
Alejandro Kirk (C, Toronto Blue Jays)
“The greatest danger facing us is ourselves… and Brandon Valenzuela, apparently” – Captain Kirk. It’s hard to justify him as a better add than guys like Keibert Ruiz, as he’s also playing only about half the time since his fractured hand, and aside from one 3-for-3 game, he hasn’t really made us think that was a bad call. I do think he’ll be better than this, he has to be! But in his small sample, his quality of contact metrics are down the tubes, and it’s dicey betting on power returning from hand injuries in any case, especially for a catcher who was struggling even before the injury. He’s down to 27% rostered, and due to his playing time struggle against Valenzuela, I’d consider targeting other safer catchers like the surging Joe Mack and the recently returned Kyle Teel.
Dishonorable Mention: Justin Crawford (OF, Philadelphia Phillies) – He’s bounced back in terms of batting average, but still doesn’t hit enough to be worth his merely solid stolen bases.
15-team
Chase Meidroth (2B/SS, Chicago White Sox)
He may have been corrupted by Soul Edge, because with his attempt at big axe swings, Meidroth thinks he’s Astaroth. Do my Soul Calibur references mean I’m losing my touch? No, it’s the readers who are wrong. Generally speaking, I think players should accept themselves and not try to reinvent themselves. So yeah, I don’t love it when a player loses 10% of K% to more than double their barrel rate, and the barrel rate now stands at…under 5%. He has just a .245 rolling xwOBA over his past 100 PA, which is really, really bad, and it’s .239 over his past 50. That’s not supposed to be worse than his batting average. Yet he’s still 35% rostered, more than MLB stolen base leader Nasim Nunez? IT MAKES NO SENSE. I’d much rather have nearly any middle infielder with regular reps, and it’s a shame that Jacob Gonzalez has floundered, since I think they want him to take his job. Someone needs to.
Dishonorable Mention: Nate Lowe (1B, Cincinnati Reds) – He’s just been an absolute zero for a while now, at a time when he really could’ve made a compelling claim for playing time. In the end, he was who we thought he was. Party’s over.
Dishonorable Mention: Brice Matthews (OF, Houston Astros) – He has pop, but lately he’s mostly been funko. And swinging the bat like it’s a fungo. He does have 6 homers and 2 stolen bases, but his .259 rolling 100 PA xwOBA means it’s time to move on, even if you have to churn the position, because the average will burn you like you left on the Brice Cooker.
