âOh my gosh, did he ever [impress],â one said earlier this year. âHeâs the most impressive arm on that staff by a long shot.â
Zach Penrod ð¥
6 IP
5 H
1 ER
0 BB
10 K
40% WhiffThe left-hander lowered his ERA to 2.25 on the season. pic.twitter.com/k0LgSgtcTt
— Red Sox Player Development (@RedSoxPlayerDev) May 13, 2024
Such an assessment is wild, given that less than a year ago the 26-year-old Penrod was pitching for the Missoula PaddleHeads of the independent Pioneer League and contemplating the end of his baseball career.
âI felt like I was stewing in the bowl a couple of years,â he said. âWhen I turned 26 in June, I was like, âYou know, see what happens. If it doesnât work out, it doesnât work out.â But obviously, things kind of went a different way.â
It had been years since Penrod pitched in affiliated baseball. In 2018, the Idaho native signed with the Texas Rangers as an undrafted free agent out of Division 2 Northwest Nazarene (Idaho) University, where heâd been primarily an outfielder but also moonlighted as a hard-throwing reliever.
The Rangers, impressed by his arm, assigned him to rookie ball. His debut came with little distinction (6.17 ERA in 11â innings) as he started learning a pitcherâs routine. He felt he was throwing well in early 2019, but got derailed by injuries â including Tommy John surgery.
âI just couldnât stay healthy,â he said.
By the time he was healthy enough to pitch in 2020, the minor league season had been canceled because of the COVID-19 pandemic. He was among 37 players cut by the Rangers that summer. Any path forward would have to go through independent ball, resulting in stints with Boise (2021 and part of 2022), Billings (part of 2022), and Missoula (2023).
He had a 5.96 ERA in 2021-22, showing a live arm but little command. In 2023, he took a step forward, forging a 2.98 ERA in 54â innings while showing mid- and upper-90s velocity and striking out 65, albeit with 32 walks. He also became comfortable with a changeup and displayed the makings of a slider.
It was noteworthy progress for someone still at the beginning of life as a full-time pitcher.
âI liked to tell people Iâd been learning to pitch for five years and just kind of trying to put it together,â Penrod said. âI was able to find a secondary pitch and that allowed me to, instead of just being up there throwing, I was actually pitching and learning hitters.â
In summer 2023, the Sox were looking for innings in High A Greenville. Scout David Scrivines, who covers the indy leagues, had flagged Penrod as a pitcher they should monitor. Pitch data backed that assessment.
âWe saw the makings of at least a three-pitch mix that we thought had the potential to play [against] both splits,â said Red Sox director of pro scouting Harrison Slutsky, who credited Scrivines, assistant director of pro scouting Mark Heil, and Shawn Haviland in player development as key voices in pursuing Penrod. âThe command was a bit of a question mark at the time, but he had been starting and we saw some upside.â
In Greenville, that sense of possibility was quickly amplified. Penrod pitched so well (2.18 ERA in 20â innings) that the Sox sent him to the Arizona Fall League, where he posted the lowest ERA (1.29) by a starter and earned a spot in the Fall Stars showcase, where he threw a scoreless inning.
At the end of the AFL, Penrod took time to appreciate the drastic change of his trajectory.
âFrom the perspective of where I started, [2023 was] otherworldly,â said Penrod. âIt was just crazy to go from deciding to be done at the end of the year if things didnât go right to pitching in the Fall League and the Fall Stars Game, the championship game in Greenville. The emotions that brought was incredible.â
Zach Penrod took a no-hitter into the 6th inning on Thursday afternoon. His final line for the afternoon: 5.1 IP, 0 R, 1 H, 3 BB, 6 SO pic.twitter.com/bytWzwWGN3
— Portland Sea Dogs (@PortlandSeaDogs) April 18, 2024
Now in Portland, Penrod has taken further steps. Through five starts, he has a 2.25 ERA with a 35 percent strikeout rate and, perhaps more importantly, a vastly improved 9 percent walk rate. Heâs getting swings and misses with his fastball (which is averaging 94-95 and has topped out at 97), changeup, and slider â currently with better feel for the change but better grades on the slider.
Heâs put himself on the map.
âI will say this: Penrod is a freaking dude,â said Teel. âWhen this guy doesnât have his best stuff, heâs good. And when he has his best stuff, heâs unbelievable.â
The Sox still hope to see him make gains in strike-throwing and the consistency of his slider.
âWeâve just seen a guy whoâs been able to get outs in the strike zone with power stuff and has continued to show that he can start,â said farm director Brian Abraham.
Some evaluators suggest Penrod has a chance to emerge as a back-of-the-rotation big league starter. Others feel he has a likelier path as a multi-innings bullpen arm. Either way, he has arrived at a moment of startling possibility considering how close he was 11 months ago to giving up on baseball.
âI think itâs crazy, but Iâm just trying to enjoy every moment, because I do know how quickly it could end,â said Penrod. âI know because Iâve been there and I know how things go, especially being 26. The opportunityâs a little slimmer, so Iâve got to take advantage of the ones I get.â
Alex Speier can be reached at alex.speier@globe.com. Follow him @alexspeier.
var oneTrustActive = true;
var oneTrustConsentObj;
try {
oneTrustConsentObj = JSON.parse(window.localStorage.getItem(‘consent_one_trust_bgmp’) || ‘{}’);
} catch (err) {
oneTrustConsentObj = {};
}
// Default to granted consent
var consent=”grant”
// FB script decleration
!function(f,b,e,v,n,t,s) {
if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s);
}
(window,document,’script’, ‘https://connect.facebook.net/en_US/fbevents.js’);
if (oneTrustActive && oneTrustConsentObj && oneTrustConsentObj.C0004 === false) {
consent=”revoke”;
}
// We need to call consent before we run init and track
fbq(‘consent’, consent);
fbq(‘set’, ‘autoConfig’, ‘false’, ‘884869448226452’);
fbq(‘set’, ‘autoConfig’, ‘false’, ‘493062270895851’);
fbq(‘init’, ‘884869448226452’);
fbq(‘track’, ‘PageView’);