Codi Heuer
2026Grade
Below league average across the board.
Heuer allows more bases than most pitchers
The simulator expects him to allow 0.476 bases per batter faced, better than 18% of qualified pitchers. His best skill is limiting home runs (92nd percentile). His weakest skill is limiting hard contact (16th percentile). Short relief outings push strikeout rates up a little, so read his K% spoke with that in mind.
His grade rests on 46 batters faced, with data through 2026-09-27.
How to read this chart
Plays like…
Each of these pitchers shares his archetype and sits closest to him in xEB/PA.
Pitcher type
Arsenal
Codi Heuer mixes his four-seam fastball (43%) and slider (32%). His best pitch has been the four-seam fastball, saving 0.9 bases per 100 thrown against league average.
Pitch mix & swing-and-miss
He allowed about 21 estimated bases, against a replacement arm's 24 over the same batters faced.
Replacement level is per-batter and can't be split by pitch type, so the bars below use league average.
He cost 1.5 bases against league average across 142 pitches, or 1.1 per 100 pitches.
His changeup isn't in the charts below, because only 46 of them were tracked with velocity and movement data this season.
He rarely throws his sinker (1% of his pitches).
How to read this chart
Mix by batter side
Compared with the league, his four-seam fastball tilts 16 points more toward righties.
How to read this chart
Codi Heuer's pitch movement, 2026
How to read this chart
By appearance
These charts follow his velocity, movement and pitch mix one outing at a time, and each pitch keeps the same color in every chart. The velocity and movement charts also shade the middle of the league for scale. His changeup isn't in these charts, because only 46 of them were tracked with velocity and movement data this season.
Platoon splits
Platoon splits (EB/PA allowed)
He handles righty bats better than lefty bats, by 0.041 EB/PA allowed.
50% probable range: +0.033 to +0.050
vs LHB: shrunk estimate 0.508 EB/PA, 50% probable range 0.486 to 0.531, based on 26 plate appearances. Raw (unshrunk) rate: 0.370 EB/PA. League median vs LHB: 0.451 EB/PA.
His raw rate vs LHB (0.370) is off this scale. Small samples can push a raw rate this far, which is why the dot, the shrunk estimate, is the number to trust.
vs RHB: shrunk estimate 0.467 EB/PA, 50% probable range 0.444 to 0.489, based on 20 plate appearances. Raw (unshrunk) rate: 0.604 EB/PA. League median vs RHB: 0.435 EB/PA.
His raw rate vs RHB (0.604) is off this scale. Small samples can push a raw rate this far, which is why the dot, the shrunk estimate, is the number to trust.
His split is about typical for a righty arm (median 0.042). He allows more than the league median against both sides.
How to read this chart
- Each dot is his estimate against that side, with its 50% probable range as the bar. These are bases allowed, so lower is better.
- The diamond is his raw rate, which small samples make noisy, so the simulator pulls the dot toward a more trustworthy value.
- The dashed tick is the league median, and the shaded strip is the middle half of pitchers with 100 or more batters faced.
- The two splits average back to his modeled overall EB/PA allowed, not the xEB/PA headline.
- Tap or hover a mark for its number. LHB and RHB are left- and right-handed batters. More on the About page
Contact allowed
Batters go to the pull side off him most often, but they do the most damage up the middle.
Pull side and opposite field depend on which side each batter hits from, so this pools every hitter he faced.
Batted balls allowed
Luck check
One out behind him came on a ball the simulator values at 1.5 bases or more.
One hit off him had less than a 20% chance of being a hit.
How to read this chart
Best games
Best games
These are his best outings this season, ranked by bases saved against a replacement arm.
- vs RedsMay 17, 2026
9 BF · 2 K, 1 BB, 3 H
- Bases allowed
- 2.8
- Above replacement
- +1.9
- vs Red SoxMay 30, 2026score only
7 BF · 1 K, 1 H, 1 HBP
- Bases allowed
- 2.0
- Above replacement
- +1.7
- vs PiratesJul 18, 2026
6 BF · 0 K, 2 H
- Bases allowed
- 1.9
- Above replacement
- +1.2
- vs TigersMay 21, 2026score only
2 BF · 1 K
- Bases allowed
- 0.1
- Above replacement
- +1.0
- vs YankeesJun 4, 2026score only
5 BF · 1 K, 1 BB, 1 H
- Bases allowed
- 2.0
- Above replacement
- +0.6