Author Archive

All You Need Is Judge: Slugger Powers Yankees To Win Over Blue Jays in ALDS Game 3

Vincent Carchietta-Imagn Images

NEW YORK — Aaron Judge didn’t deserve the rumblings. After he struck out with the bases loaded on Saturday in Game 1 of the ALDS against the Blue Jays, Yankee fans started to grumble that maybe he just didn’t have it in the postseason. It’s true that he’d struggled in 2020 and 2022, but Judge had excelled in the playoffs earlier in his career, and he came into Game 3 of the ALDS on Tuesday night with a career postseason wRC+ of 116. He hit three home runs during the Yankees’ World Series run just last year, including a game-tying shot in Game 3 of the ALCS.

On Tuesday night, with a performance that would be eye-opening if it had come from just about any other player in baseball, Judge pushed his batting average in the 2025 postseason to an even .500. He went 3-for-4 with an intentional walk and a couple of great plays in right field, and for the rumblers and grumblers with short memories, he launched a mammoth, game-tying, season-saving, signature home run, pulling the Yankees back from the abyss and into Game 4 with a 9-6 victory over the Blue Jays. Read the rest of this entry »


The Hard-Luck Losing Pitchers of 2025

Charles LeClaire, Neville E. Guard, Charles LeClaire-Imagn Images

This season, four different starters suffered a loss in which they went exactly six innings, struck out exactly six batters, and allowed exactly seven hits, three earned runs, and no unearned runs. Three of them faced the exact same number of batters. But those four pitchers all finished with different pitching lines because they all walked a different number of batters. Our regular season database goes back to 1871, and it contains 241,730 games, each of them unique. In 1927, Bob Smith set a record by facing a whopping 89 batters in a 4-3, 22-inning loss to the Cubs. In 2021, Pablo López became the first starter ever to be charged with a loss after plunking the one and only batter he faced. There may be 50 ways to leave your lover and 5,000 ways to die, but the various ways to lose a baseball game are unconstrained by any such limits.

I could keep on going. In 1959, Harvey Haddix was perfect through 12 innings, then lost the game and the perfecto in the 13th. Five years later, Ken Johnson of the Houston Colt .45s pitched the only complete-game no-hitter in history to end as a loss. I bring up these performances because, watching these playoffs, I can’t help but think about pitchers who earn losses despite pitching brilliantly. Just last night in the NLDS matchup between the Dodgers and Phillies, Jesús Luzardo threw six scoreless innings and retired 17 batters in a row, but he took the loss when two inherited runners scored. Last week, Nick Pivetta took the loss after allowing two runs over five innings to the Cubs, and on the same day, Gavin Williams took a loss for the Guardians because he allowed two unearned runs over six innings.

Today, we’re specifically looking for the pitchers who put up great numbers across all of their losses during the 2025 season. This doesn’t necessarily mean the pitchers who had the worst run support or defense behind them overall. It just means that specifically during the games they went on to lose, they pitched particularly well. Hard luck losses will always happen. As Jacob deGrom can tell you from long experience, any pitcher good enough to hold the other team to a single run will eventually suffer a 1-0 loss. (In fact, all five of the top spots on that particular Stathead search belong to Hall of Famers, with Walter Johnson and Nolan Ryan tied at 63. Amazingly, Johnson, the second-winningest pitcher of all time, also lost 13 games in which he didn’t allow a single earned run, the highest mark ever.) But it takes a confluence of factors to end the season with great numbers across all of your losses. Read the rest of this entry »


Brewers Blow Out Cubs With First Inning Explosion in NLDS Game 1

Michael McLoone-Imagn Images

The Brewers and the Cubs played nine innings of baseball on Saturday, but Game 1 of the National League Divisional Series was decided before the end of the first. Every series starts off with its share of questions. Did the Brewers have enough pitching to withstand injuries to Brandon Woodruff and Shelby Miller? Could Kyle Tucker and Pete Crow-Armstrong locate the MVP form they’d showed earlier this season? How would a Brewers offense that loves to work the count fare against a strike-throwing Cubs pitching staff? Would the Brewers be rusty after a five-game layoff? Would the Cubs regret starting Matthew Boyd on short rest after he threw just 58 pitches against the Padres on Tuesday? In Game 1, those last two questions were all that mattered.

The Brewers were not rusty, and Boyd may well have been. The Cubs jumped out to an early lead, but in the bottom of the first, the Brewers exploded on Boyd like they’d spent the past five days packing themselves into a cannon. During the regular season, the Brewers scored only 9% of their runs in the first inning, the third-lowest rate in baseball. Maybe they were saving it all up for the playoffs. Milwaukee raced to a 6-1 lead in the first and extended it to 9-1 in the second. “I’m proud they came out ready,” said manager Pat Murphy during the game. “The guys came out ready to swing, and when they’re ready to swing, a lot of good things can happen. They’re a great bunch.”

By virtue of their first-round bye, the Brewers lined up ace Freddy Peralta to pitch Game 1. After an early hiccup, Peralta looked every bit the guy who led the NL with 17 wins and notched three of them against the Cubs. He missed well outside with a 95-mph fastball on the first pitch of the game, then came back with a belt-high heater over the center of the plate, which Chicago leadoff hitter Michael Busch fouled off. Peralta repeated the pattern: four-seamer well outside, belt-high four-seamer over the middle. Busch was ready for the second one. He turned on it and sent it 389 feet over the right field fence. Four pitches in, the Cubs had a 1-0 lead. Peralta recovered quickly, retiring the next three batters in order. He’d allow just one more base hit over the next four innings.

In the bottom of the second, Jackson Chourio squared to bunt on the first pitch from Boyd, then took it for a ball inside. Looking back, it’s tempting to wonder what would have happened had Boyd put the pitch in the strike zone. Maybe if Chourio would have actually bunted the ball, and maybe the whole game would have gone differently. But it was tight and Chourio pulled the bat back, then ripped the fourth pitch he saw down the third base line for a double. Brice Turang knocked Chourio in with a double of his own, lining the first pitch he saw on a hop off the right field fence. The Brewers had tied the game at one after five pitches. William Contreras ripped the next pitch just past a diving Ian Happ for a double into left field, scoring Turang. With doubles on three consecutive pitches, the Brewers grabbed a 2-1 lead. They were far from done.

Chicago pitching coach Tommy Hottovy walked out to settle down Boyd, who induced a grounder to short from Christian Yelich, then deepened his trouble by walking Andrew Vaughn. Much earlier than the Cubs would have liked, Michael Soroka started warming up in the bullpen.

Boyd broke Sal Frelick’s bat, inducing a weak grounder to second base. Nico Hoerner, who may well end up winning his second Gold Glove this winter, charged the ball and then inexplicably biffed an easy hop. The ball kicked past him, allowing Contreras to score. The Brewers still had runners on first and second with one out, now with a 3-1 lead. Boyd struck out Caleb Durbin with a four-seamer above the zone, then got ahead of Blake Perkins, 1-2. He was one strike from ending the inning, but Perkins worked an incredible 12-pitch at-bat, fouling off pitch after pitch, then ripping a line drive right back up the middle – the thing that both he and the Brewers love the most in the world – scoring Vaughn and moving Frelick to third. The Brewers had a 4-1 lead and Boyd’s day was over after 30 pitches and two-thirds of an inning.

Soroka came into the game with a simple mandate: stop the bleeding and keep the game close. Instead, he walked ninth hitter Joey Ortiz on four pitches, loading the bases and bringing Chourio back to the plate. This might be a good time to note that Chourio ran a 307 wRC+ with two homers in last year’s Wild Card Series, his only previous playoff games. He pushed that career postseason mark even higher, rocking a single through the left side of the infield to drive in two more runs. The Brewers led 6-1. Mercifully, Soroka got Turang to chase a high fastball for strike three.

The Brewers hit for 26 minutes in the first inning. They saw 45 pitches from two pitchers. They notched five hits, walked twice, and reached once via error. They put seven balls in play with a 72% hard-hit rate. Curt Hogg of the Milwaukee Journal Sentinel pointed out that it was the first time they’d scored six runs in the first inning all season. The incomparable Sarah Langs noted that teams to score at least six runs in an inning had gone 113-1 in postseason history. With that last single off the bat of Chourio, Soroka’s job changed. It was no longer to keep the game within reach. It was to eat as many innings as possible in order to keep the Cubs from annihilating their bullpen in addition to falling behind in the best-of-five series.

Peralta allowed a single to Crow-Armstrong, but he needed just 12 pitches to retire the Cubs in the top of the second and give the Brewers the chance to get right back to hitting. After leading off the first with three straight doubles, Milwaukee led off the second with three straight singles.

Contreras singled to left, Yelich singled to right, and Vaughn singled to center. The bases were loaded and Aaron Civale got warm in the Cubs bullpen. Frelick lined out to left field on a ball that was too shallow for Contreras to tag up on, then Durbin dropped a duck snort into shallow center field, knocking in two. Seventeen Brewers had come to the plate. Thirteen had reached safely. Eight had scored. Perkins grounded out to first base, pushing the runners to second and third with two outs. Ortiz walked on four pitches, loading the bases again, and Counsell made the slow walk out to the mound. Soroka lasted just one third of an inning longer than Boyd. The job of eating innings fell to Civale, whom the Brewers traded to the White Sox for Vaughn back in June and whom the Cubs claimed off waivers at the end of August.

Chourio greeted Civale with another grounder right down the third base line, this one for an infield single to push the score to 9-1. However, it came with a price. Chourio missed nearly the entire month of August with a right hamstring strain, and he aggravated the injury as he hustled to beat the throw from Matt Shaw. Visibly distraught, he spoke to a trainer, then left the field, and walked back to the clubhouse. The Brewers announced that he would be evaluated further after the game. Turang struck out to end the inning, and the TBS broadcast announced that Brewers were the first team in playoff history with nine runs and 10 hits in the first two innings.

The Cubs and Brewers played seven more innings of more baseball. Peralta pitched brilliantly, though he surrendered another solo homer to Happ in the sixth inning. He left one out shy of a quality start, and the Milwaukee faithful rewarded him with a standing ovation. He gave up three earned runs over 5 2/3 innings, striking out nine, walking three, and allowing four hits. Civale filled his role excellently too, scattering three hits over 4 1/3 innings and allowing Counsell to ask the bullpen for just two more innings. Hoerner added another solo homer off Jared Koenig in the eighth inning before Nick Mears closed things out in the ninth.

The questions going into Game 2 will revolve around Chourio’s health and Chicago’s ability to bounce back from such a thorough drubbing. The Brewers possess a capable fill-in in Isaac Collins, who ran a 122 wRC+ as a rookie this season, but Chourio is an awfully hard player to replace. His three hits pushed his career wRC+ in the playoffs to 361, and if the hamstring injury is anywhere near as serious as it looked, it’s hard to imagine him returning in time to play against the Cubs. With the 9-3 victory, the Brewers drew the season series with the Cubs even at 7-7. The good news for the Cubs is that they’ll have a day off before Game 3, allowing their bullpen to get some rest. Although Boyd threw just 30 pitches, he seems unlikely to go on short rest in Game 4.


Life of Pi: Tigers vs. Mariners ALDS Preview

Rick Osentoski and Stephen Brashear-Imagn Images

Did you know that Tarik Skubal attended Seattle University? What’s that? You knew it already? Oh. Well, that’s great. Kudos to you for doing the research. I hope you are prepared to have that one fact bludgeoned so deeply into your brain over the next week that decades hence, when all the other thoughts start falling out of your aged skull, it will be all that remains. “Seattle Redhawks, only D-I program to offer him a scholarship,” you’ll mutter over and over like a protective spell as you putter through the halls of the nursing home. After defeating the Cleveland Guardians in the Wild Card round, the Detroit Tigers are headed to Seattle for the American League Divisional series. Tarik Skubal is coming home. Let’s get to the preview.

With the second-best record in the American League, the rested Seattle Mariners certainly look to be the clear favorite. They’ve got three (or maybe four) great starters lined up. They’ve got a top-10 bullpen by both ERA and FIP. Their team 113 wRC+ gives them the third-best offense in baseball. They finished the season by winning 17 of their last 21 games. On the other hand, it’s worth noting that all 17 of those wins came against non-playoff teams. Before that 21-game stretch started, the Mariners lost four straight, also to non-playoff teams. Their final act of the regular season was getting swept at home by the Dodgers. The Mariners finished the season with just three more wins than the Tigers and a run differential advantage of just five runs. Their Pythagorean records are identical. These teams are not as different as you may think.

During the Wild Card round, the Tigers were forced to empty their bag of tricks in order to hold off a Guardians team that stole the AL Central crown from under their noses. They relied on their ace, they coaxed just enough great relief performances out of a less-than-great bullpen, they played small ball, they induced errors, they bafflingly pinch-hit for their best hitter. During Game 3, they even got desperate enough to try scoring some runs. Will they come into the ALDS depleted, or will they finally regain the swagger they had when they went into the All-Star break with the best record in baseball? Read the rest of this entry »


Mason Miller and the Impossibility of True Unhittability

Denis Poroy-Imagn Images

It’s been six days since Mason Miller let somebody hit the baseball. Actually, that’s not quite true. Until the right-hander caught Michael Busch with a literal back-foot slider in the eighth-inning of yesterday’s Wild Card matchup between the Padres and the Cubs, it had indeed been five days, three relief appearances, and 11 batters since anybody came to the plate against Miller and did something other than strike out. However, six of those 11 victims managed to get their bats on the ball. Three of them did it twice. It’s just that over the past week, nobody has been able to figure out how to square up one of Miller’s disappearing sliders or 102 mph fastballs – yes, his four-seamer has averaged 102 mph over the last three outings – well enough to achieve so much as a tapper back to the mound. Busch’s unfortunate foot snapped the streak at 11, but it did nothing to look Miller look more hittable.

In a fun twist, the all-time record for consecutive strikeouts (or at least since 1961, when full play-by-play data became available) belongs to Miller’s teammate Jeremiah Estrada. Estrada struck out a 13 straight batters across three appearances just last May. In fact, he struck all 13 of them out swinging.

The play log from Estrada's streak. It reads like this: 
Nick-Gordon out on a dropped third strike.
Jake-Burger struck out swinging.
Jesus-Sanchez struck out swinging.
Gleyber-Torres struck out swinging.
Anthony-Rizzo struck out swinging.
Giancarlo-Stanton struck out swinging.
Alex-Verdugo struck out swinging.
Aaron-Judge struck out swinging.
Stuart-Fairchild struck out swinging.
Will-Benson struck out swinging.
Luke-Maile struck out swinging.
Jonathan-India struck out swinging.
Nick-Martini struck out swinging.
Spencer-Steer singled to left (Liner).
Mike-Ford flied out to center.

That’s a pleasurably tidy play log. Estrada’s streak only ended because, when he entered the game on May 31 against the Royals, manager Mike Schildt intentionally walked the first batter he faced.

Anytime Miller is on the mound, the general feeling among spectators is astonishment that anyone ever manages to put the ball in play. He just threw an immaculate inning. Since his debut in 2023, Miller has allowed just 0.55 hits per inning, the lowest rate among all 473 pitchers who have thrown at least 100 innings. And now, following a 2025 season in which his 45.2% whiff rate ranked second among all pitchers, Miller has ascended to a higher plane. His whiff rate over the past three games has rocketed up to an absurd 61.9%.

Now that the streak has run its course, it’s time to celebrate the six marvels who managed to connect with one of his pitches, no matter how inconsequential the contact. We’ll count down, from the weakest contact to the strongest, starting with Moisés Ballesteros getting the smallest amount of baseball possible it’s possible to get. You can just hear the sound of the foul tip before the ball hits the glove.

Honestly, it’s impressive that Ballesteros got enough of this pitch to make a sound at all. This is a 102.6 mph fastball well above the strike zone. It came in at a height of 3.76 feet, and this season, Miller ran a whiff rate of 55.9% on fastballs 3.7 feet or higher. Even pitchers who don’t throw 102 lean on four-seamers above the zone because it’s so hard for batters both to lay off it and to hit it. This pitch is why we care about vertical approach angle. This pitch is why we’ll never forget the climax of A League of their Own. The pitch to Ballesteros technically went down as a whiff because Statcast counts foul tips for strike three as whiffs rather than fouls, but we don’t have to take that away from him. He gently brushed the baseball, and for that we honor him.

Next up is Dansby Swanson, who got a tiny bit more of the pitch and a whole lot more of catcher Freddy Fermin.

You may think Miller fooled Swanson with a 2-2 slider away, and he may well have done so. It’s also equally possible that Swanson really was trying to keep an eye out for the slider. It’s just that when you know you might see 104 up above the strike zone, trying to look for the slider and actually staying back long enough to be on time for it are two very different propositions. The shortstop was just able to slow down enough to throw the bat head at the ball. It was a great accomplishment, and because of it, Fermin will surely hold a lifelong grudge.

Here’s another two-strike slider that just barely avoided ending up as strike three. Ahead 1-2, Miller missed high and inside to Seiya Suzuki, and this shows you why pitchers tend to think hard in, soft away.

Batters need to catch the ball much further in front of the plate when it’s on the inside, so the fact that Suzuki was way out in front of this pitch didn’t hurt him too much. He still caught the smallest piece of it – so small that he barely kept it from sticking in the catcher’s mitt – but at least he caught that piece with the barrel of his bat. Did he barrel this pitch up? Absolutely not. Did he strike out anyway on the very next pitch? You bet he did.

We’re done with the foul tips now. Up next, we have a group of four regular-looking foul balls. These ones stretch back to Miller’s last regular season appearance against the Diamondbacks on September 27, and they’re all just fastballs that nobody could catch up to.

This is why pitching coaches tell pitchers aim for the middle of the zone and dare batters to hit it, and this is the benefit of throwing harder than just about anyone who has ever lived. Miller didn’t necessarily fool anybody here. They were geared up for the fastball and they got it. It was just too much to handle. Swanson, Connor Kaiser, Carson Kelly, and even contact maven Geraldo Perdomo are doing all they can just to slap this ball into the seats on the opposite side and live to see another pitch. Swanson took a robust hack and looked out to the mound as if to say, “I’m on to you, Mason Miller.”

He was not, in fact, onto Miller, but you can see why this foul felt like a victory.

Now we’re into the really impressive fouls. Here’s Kelly again, very nearly keeping the ball in the field of play!

Kelly is out ahead of a slider on the inside corner here, and he sends a weak popup to the right side that just drifts out of play despite Luis Arraez’s heroic efforts to reel it in. Seriously, Arraez tossed himself over a thick concrete barrier. He must have ended up with a serious bruise, and he took his frustration out on the netting. I wrote about this exact kind of batted ball back in May. Normally when you’re ahead of a pitch, you hit it to the pull side, but sometimes you’re so far ahead that you have to drop your bat head to slow down. At that point, you can’t help but pop it up the other way. If Kelly had been above the ball, he would have hit a weak grounder to the left side – or, more likely, fouled it straight down and off his own foot – but since he was underneath it, he came just a few feet (or one gust of wind) from achieving the impossible dream of facing Mason Miller and coming away with a weak popout.

Last up is Geraldo Perdomo, long one of the best hitters in baseball when it comes to making contact, and more recently, somehow one of the best hitters in baseball, period. Here’s Perdomo genuinely rifling a slider to the pull side.

This ball came off the bat at 100 mph. Perdomo was still way out in front of it. It was probably foul by a good 25 feet at the moment it passed first base. Still, that’s the best contact anyone has made against Miller in nearly a week. Perdomo would go on to strike out like all the others, but he can take pride in knowing that he’s the last player ever to actually hit the ball hard off Miller.


Tigers Take Wacky Game 1 Behind Shutdown Performance From Tarik Skubal

David Dermer-Imagn Images

The first game of the 2025 postseason played out exactly as scripted, plus or minus a few crazy bounces. In the Wild Card series between the Tigers and the Guardians, the aces looked like aces and the offenses looked, well, inoffensive.

Tarik Skubal, who will be picking up his second straight Cy Young in a month or so, carved up the Guardians to the tune of one (barely) earned run over 7 2/3 innings. Gavin Williams, who put up a 3.06 ERA and allowed just six runs over his final five regular season starts, returned the favor, allowing two unearned runs over six innings and change. The two starters combined for 22 strikeouts, with 14 of them coming from Skubal, who earned the win and gave Detroit a 1-0 series lead. Read the rest of this entry »


The AL Central Is Not Done With You: Tigers vs. Guardians AL Wild Card Preview

Ken Blaze, Rick Osentoski-Imagn Images

Well, you asked for more of the American League Central. Or at least, I assume you asked for more of the American League Central. Major League Baseball definitely thinks you want more of the American League Central; why else would the league schedule all three Wild Card games between the Tigers and the Guardians for 1:08 PM Eastern? That’s prime time (assuming you’re a middle schooler who’s home with strep throat). The only division without a 90-game winner is sending two teams to the playoffs, and the Guardians and Tigers will spend three days in Cleveland fighting over the honor of facing the Mariners in the ALDS. That may not be enough to dethrone the Red Sox and the Yankees in terms of scheduling, but it’s a repeat of last year’s thrilling ALDS matchup, which went the full five games and ended with the unlikeliest outcome of all: Tarik Skubal losing a game.

The two teams couldn’t be coming into the Wild Card round on more different trajectories. The Tigers ended their series quietly with a loss to the Red Sox on Sunday. That loss handed the division title to the Guardians, who went on to beat the Rangers with a walk-off homer in the 10th inning just for funsies:

At the All-Star break, the Tigers had the best record in baseball, while the Guardians ranked 22nd. Since the All-Star break, the Guardians have the best record in baseball; the Tigers rank 21st. I can keep going. Read the rest of this entry »


When Geraldo Perdomo Attacks

Lon Horwedel-Imagn Images

It sure seems like the Diamondbacks knew something the rest of us didn’t. Back in February, when Arizona signed shortstop Geraldo Perdomo to a four-year contract extension to keep him around through the 2029 season, I wrote, “I think the Diamondbacks are paying for floor rather than ceiling. However he gets there, if Perdomo keeps performing like a two-win player, the contract will work out well for both sides.” Perdomo was coming off a knee injury and two straight seasons of absolutely average offensive performance. It may have looked like the Diamondbacks were comfortable with that level of production, but the 2025 season has put things in an entirely new light.

Perdomo has been unequivocally one of the best players in baseball. He leads all National League position players in bWAR, and if not for Shohei Ohtani, he would have a very good argument for the MVP. Geraldo Perdomo, whom I first wrote about because he was a great test case for players with extremely low exit velocities. Geraldo Perdomo, whose offensive approach I summed up earlier this year as, “Try with all your might to avoid swinging.” Geraldo Perdomo, whose 12th-percentile hard-hit rate represents a career-high! That guy has 6.7 WAR. That guy has 19 home runs after coming into this season with a combined 14 for his major league career, which began in 2021. That guy is running a 138 wRC+ and none of the advanced numbers is saying it’s because of batted ball luck. Perdomo really has been a great hitter. We’ve been all over the story. Michael Baumann has written about him twice, I’ve broken down his breakout and documented one of his trademark swingless plate appearances. Now that October is near, we need to acknowledge how big a deal it is that Perdomo has kept this going all season long.

Perdomo has gotten bigger and stronger. He’s changed his mechanics from both sides of the plate. He’s somehow chasing and whiffing even less than he did last season, and he’s somehow doing so while lifting the ball more, swinging a bit harder, and hitting the ball a bit harder. We’ve broken down all those points in the articles I linked to above, so I’m not going cover that ground again. I’m here to show you one graph that cracks me up.

This is from the last paragraph of my article back in February: “I am so, so curious to see what it would look like if Perdomo were to start attacking the ball. He’s still young, and I really do think it’s possible that he has the capacity to be more than an average hitter.” I’m not trying to say I called this. I definitely did not. One sentence later, I wrote “Still, I don’t think we should expect that going forward.” But Perdomo really did start attacking the ball in his own way, so I can now show you what it looks like.

In terms of average exit velocity, it doesn’t look like all that much. He’s running a career-high 87.6 mph, up half a tick from last season. That’s still only enough to put him in the 19th percentile. However, you know better than to just look at average EV and call it a day. His 90th-percentile exit velocity jumped from 100.4 mph to 101.5. That’s a bigger jump, but in terms of percentiles, it only moves him from the 14th to the 18th. So, uh, that doesn’t look like that much either.

It’s impressive that Perdomo can swing harder, lift the ball more with a steeper swing, and maintain his absurdly high contact and squared-up rates. Regardless of where you’re starting out, that’s not normally how things work. But it’s also not enough to earn him respect. For all the reasons in the previous paragraph, pitchers still aren’t afraid of Perdomo, like at all. He ranks fifth among qualified players in zone rate. He’s seen 873 pitches over the heart of the plate. That’s the most in the game, and nobody else is even close. But Perdomo has the best hard-hit rate of his career by a wide margin, and that does matter. He’s never going to break the power scale, but let me show you Tom Tango’s graph for the thousandth time.

Going from a 25.8% hard-hit rate to a 31.5% hard-hit rate means crossing that threshold way more often. Even if you’re just barely crossing it, it’s still a big deal. There are way more hits on the right side of the line. The odds have changed on all those pitchers who are content to let Perdomo put the ball in play. Perdomo is still not a big, powerful guy, but he’s got a new A-swing. Here’s Baseball Savant’s distribution graph of his bat speed. This is for all swings.

Perdomo’s right-handed numbers from the 2025 season are in orange in the front. It’s still not as fast as the dotted line that represents the league average, and even though its peak is more than 1 mph higher than the peaks of the previous seasons, its shape doesn’t look all that different. It’s just that the tails on either side are fatter. That’s really noticeable on the left of the graph. Perdomo isn’t taking fewer super-weak, 57-63 mph swings than he did in previous seasons. What he’s cut down on are the medium-speed swings, and he’s getting off more fast swings than ever before. In other words, when he knows he has a chance to hit the ball hard, he’s making sure he does it. I know that looks pretty subtle here, and the difference between the green and blue areas that represent his 2024 and 2025 stats batting left-handed is even smaller. But now we’re getting to the graph I really want to show you, the one that has me cackling. Here’s the same exact thing, except it only shows the swings that result in hard-hit balls.

Well that’s different! Look how far the 2025 distributions are from the 2024 ones. The blue left-handed peak is roughly 2 mph faster than it was in 2024, and the orange right-handed peak is 5 mph faster! All of a sudden, Perdomo is getting his getting his money’s worth. He’s still happy to take a slow swing and put the ball in play – that’s why the tail on the left side of even this graph extends farther than in any of the previous seasons. But not only is he kicking into high gear more often, it’s a higher gear than he ever had before. Perdomo still doesn’t have the top-end bat speed to keep up with the league average on the right side of the chart, but he’s way above that dotted distribution line until we get to 77 mph or so. He’s more than doubled his fast-swing rate from 2024. That’s what it looks like when Perdomo starts attacking the ball, and it’s even more fun than we could’ve hoped.


Forget MeatWaste, Who’s Crushing Shadowballs?

Mark J. Rebilas-Imagn Images

As you surely know, Michael Baumann has been writing about MeatWaste for two weeks now. Specifically, he’s been writing about who is great at hitting pitches in the Meatball and Waste portions of the strike zone, according to Statcast’s Attack Zones diagram. Those are hitter’s pitches. The meatball zone right down the middle (zone five in the diagram below) is where batters crush the baseball, and the waste zone far away from the strike zone is where they have no trouble laying off pitches that are certain to be called balls. Baumann wrote about how the Brewers are great as a team at capitalizing on those pitches last week, and then today he ran down the individual MeatWaste leaderboard, a phrase I didn’t know I needed in my life until Tuesday.

This is useful information with a delightfully repulsive name, and it made me wonder about the opposite leaderboard. MeatWaste tells you who’s crushing hitter’s pitches, but let’s find out who’s excelling against pitcher’s pitches. Technically, that isn’t the opposite of MeatWaste. MeatWaste makes up just nine of Statcast’s 33 attack zones. The true opposite would include the other 24 that make up the Chase, Shadow, and Heart zones (except for zone five, the spot right over the very middle). It would also look very, very similar to the list of the best hitters in the game.

The Opposite of MeatWaste Leaderboard
Player Run Value/100
Aaron Judge 1.83
Vladimir Guerrero Jr. 1.72
Shohei Ohtani 1.72
Nick Kurtz 1.56
Juan Soto 1.47
Source: Baseball Savant
Minimum 1,000 total pitches.

This list isn’t telling us anything we don’t already know because we’re looking at too much of the zone. If we want the opposite of MeatWaste, we need to look at the edges of the strike zone, where swing decisions are difficult and loud contact is hard to come by. Statcast calls this the shadow zone, and it includes any pitch within one baseball’s width (or 2.9 inches) of the edge of the strike zone.

What do we call the opposite of MeatWaste? Is it meat that’s the opposite of waste, like filet mignon? If we acknowledge vegetables as the opposite of meat (though you could make a strong argument for pudding), does that mean it’s veggie waste, like edamame shells? Or does that mean it’s the opposite of both meat and waste, like an artichoke heart? In the end, I decided to keep it simple and just follow Statcast’s taxonomic principles. These aren’t Meatballs, they’re Shadowballs, and if you know anyone who goes by that nickname, I urge you to explain in the comments how they came by it. Read the rest of this entry »


How the Same Defense Helps One Pitcher and Hurts Another

Michael McLoone and Benny Sieu-Imagn Images

Freddy Peralta is having arguably the greatest season of his excellent eight-year career. The right-hander has ridden a career-best 2.69 ERA to a career-high 16 wins. However, I used the word arguably for a reason. Peralta’s 3.64 FIP is just the fourth best of his career, and his 3.93 xFIP is tied with 2024 for his fifth best. There’s a gap of 0.95 runs per nine innings between his FIP and his ERA. When you multiply that times his actual innings total of 163 2/3, FIP thinks he should’ve given up just over 17 more earned runs than he actually has allowed. None of this is surprising. Pitchers underperform or overperform their peripherals all the time. The interesting thing is that Statcast says that no pitcher has benefitted as much from the defense behind him as Peralta. When he’s has been on the mound, the Brewers defense has been worth just under 14 fielding runs. It’s neither this simple or this clean-cut, but it’s easy to combine these two numbers and make an inference: Defense can explain more than 80% of the difference between Peralta’s FIP and ERA.

On the other end of the spectrum is Peralta’s teammate Brandon Woodruff, who returned from shoulder surgery in July and has gone 6-2 over 11 starts and 59 2/3 innings. He’s posted a 3.32 ERA, 3.26 FIP, and 3.40 xFIP. In other words, FIP thinks Woodruff has gotten exactly what he’s deserved. However, Woodruff’s xERA is a scant 2.27. When you combine all those numbers, it means Statcast thinks several batted balls that should have resulted in outs instead fell in for non-homer base hits. The difference is a bit over six runs. Coincidentally or not, Statcast says the Milwaukee defense has been at its worst behind Woodruff, costing him just under five runs, once again just about 80% of the gap between an ERA estimator and his actual ERA.

That’s why we’re talking about Peralta and Woodruff. No two teammates have a bigger gap between the fielding run value of the defense behind them. It’s nearly an 18-run gap! It’s jarring. With 26 FRV, Statcast thinks the Brewers have the fourth-best team defense in the game, but somehow none of that brilliance has been shining on Woodruff. We’re going to use Statcast data to break down, as best we can, the reasons behind it. Hopefully, the comparison will show the various ways a team can provide defensive value. Let’s start with the catching numbers. Read the rest of this entry »