Kafkaesque BaseballPitching · Beta
Ben Kafka · Brooklyn, NY

Pitching analysis, pitch by pitch

A pitching tool that grades every arsenal in MLB against its exact peers and flags where a pitcher's usage doesn't match his results. Search any of 563 pitchers, compare all 30 staffs, and track arm-slot and pitch-shape changes from 2025 to 2026.

Portfolio2026
Pitchers graded
563
Pitches analyzed
717K
Staffs ranked
30

Today's Matchups

Starting pitchers, what they do best, and how the other lineup handles it

Games, probable pitchers and lineups load live from MLB. Pitcher and team grades use 2026 regular-season Statcast data. Lineups usually post 2–4 hours before first pitch.

Loading games…

New to the numbers? Read the glossary · About Ben

Going Deep

Analysis for Pitcher List · 5 articles · select one to read

On Deck

Projects · Python · Statcast

Live

Pitch Mix Tool

Grades every pitch a pitcher throws on stuff (Whiff+), location (Location+) and results (run value) against the same pitch, hand and batter side, then flags where his usage and his results don't match. It powers Pitcher Search, Teams and the Leaderboards.

pybaseballStatcast563 pitchers
Read the notebook →View on GitHub →
In progress

Arm-Angle Shift Analysis

When a pitcher's arm slot moves, what happens to his movement and his results? 60 pitchers moved 4° or more from 2025 to 2026, starting with Emerson Hancock and Jonah Tong.

Arm angleMovement
See the arm slot leaderboard →

Pitcher Search

Pitch Mix Tool · every pitcher with 300+ pitches in a season, 2021 to 2026

Try

What makes him nasty?

Biggest strength

Pitch movement

Average break of each pitch, seen from behind the pitcher, so a lefty’s chart is a mirror image of a righty’s. Up is more rise. Dot size shows how often he throws it.

  • Fastballs
  • Breaking balls
  • Offspeed

By count

Usage and runs/100 vs league, both batter sides
PitchAheadmore strikesEvenBehindmore balls

What changed since 2025

All batters, vs. his own 2025
PitchUsage 2025 → 2026VeloIVBHBRuns/100Changes

Graded against every 2026 MLB pitch of the same type, thrown with the same hand to the same batter side. Whiff+ and Location+ of 100 are league average. Location+ grades where he put each pitch compared with an average spot for that pitch type, batter side and count. Under Runs/100, the small line splits it into strikes (Str), balls (Ball) and contact (Con); the three add up to the total. Runs/100 is run value per 100 pitches versus league; positive saved runs. Location view: Zone% is the share of pitches in the strike zone, Chase% is the swing rate on pitches outside it, and in-zone whiff% is misses on swings at strikes, each shown against league. Velo is average release speed in mph. IVB is induced vertical break and HB is horizontal break, both in inches; positive HB breaks toward the pitcher’s arm side. xwOBAcon is expected damage on balls in play; negative is better for the pitcher, and it is grayed out under 20 balls in play. Pitches thrown fewer than 10 times to a side or in a count are left off. In the count table, usage is the share of his pitches in that count, and gray marks fewer than 30 swings.

Read the notebook →View on GitHub →

2027 Watch List

Young arms whose stuff is ahead of their results

Breakouts usually show up in the stuff before they show up in the results. This list looks at 2026 pitchers who are 29 or younger, threw 600+ pitches, were average or worse (+0.3 runs per 100 pitches or less) and have never had a strong season since 2021, then ranks starters and relievers separately by projected 2027 run value. It's a watch list, not a promise: most of these pitchers won't break out.

    How the projection works

    It's a weighted blend, fit on every pitcher with 300+ pitches in back-to-back seasons from 2021 to 2026, that predicts next year's runs per 100 pitches. It leans most on Stuff+ (how good the pitches are, ignoring results) and Whiff+ (missed bats against the same pitch type), then Location+, a fastball velocity gain from the year before, and contact quality. This season's run value carries little weight, because one season of results is mostly noise: Stuff+ and Whiff+ each predicted the next season better than the results did.

    The test: for each season from 2022 to 2025, the model was built using only earlier seasons and picked its top 10 starters and top 10 relievers for the next year. A breakout means the next season was worth 10+ runs above average and at least 8 runs better than the year before. "Never had a strong season" means no season since 2021 worth 10+ runs above average, at +1.0 runs per 100 pitches or better, or with an arsenal grade of 60+. That keeps veterans bouncing back from a bad year off the list.

    Age decides who's eligible (29 or younger) rather than counting as a signal. Adding age and years in the majors to the model didn't improve it consistently in testing, so they're shown but not weighted.

    What it can't see: injuries and health history, role changes, a new team or a pitch added in the offseason. The reliever list has tested better than the starter list. In 2021, MLB's mid-season crackdown on sticky substances changed some pitchers' spin. Check back next October to see how this list did.

    Every past pick and how it went
    ListPitcherAgeRuns/100 that yearNext yearBroke out?

    Pitch Lab

    What each pitcher could change · how often to throw each pitch, and how to reshape it

    Try

    Full report card →
    Mix changesruns over a season

    Pitch mix

    How often to throw each pitch

    Pitch fixes

    How to reshape a pitch, or one to add
      How Pitch Lab works

      Pitch mix. Each pitch gets a value against lefties and righties: its own 2026 run value, trusted more as the sample grows, blended with its Stuff+ grade. The optimizer moves usage toward the most valuable pitches until the extra value runs out, because a pitch gets less effective the more hitters see it (each extra point of usage is charged against that pitch). Guardrails: no pitch moves more than 20 points, a pitch needs 50+ thrown to that side before it's suggested more, and every pitcher keeps a real fastball. Season runs use his 2026 workload to that side.

      Did the mix optimizer work in the past? Run on 2025 data only, it suggested real changes in 452 pitcher-vs-side matchups. Pitchers who moved toward its advice in 2026 held steady (+0.03 runs/100, 53% improved); pitchers who moved away got worse (−0.24, 37% improved). Most of that gap is regression to the mean, though: after controlling for how good each mix was in 2025, following the advice was worth only about +0.03 runs/100. The honest read: it points the right way, and one season isn't enough to prove by how much.

      The Bryan Baker test. Given only his 2025 numbers, the optimizer said to throw righties fewer sliders (39% → 26%) and more changeups (17% → 32%). The Rays went further in the same direction: 6% sliders and 38% changeups in 2026, and he became an All-Star closer. Against lefties it agreed on more changeups but wanted more sliders, too; the Rays nearly scrapped the slider.

      Diminishing returns. The data alone says pitches got better when thrown more (+0.03 runs/100 per usage point). That's backwards: teams throw a pitch more once it's already working, so cause and effect are tangled. The optimizer uses a cautious charge instead: +10 points of usage costs that pitch 0.30 runs/100.

      Pitch fixes. One small change at a time (1 mph, 2 inches of break, 150 rpm or 0.3 ft of extension), re-scored with Stuff+ and allowed only if pitchers with a similar arm slot already throw that version, plus the typical version of a pitch he doesn't throw. Backtested on 2025→2026 pitch changes: the model predicted which pitches gained or lost whiffs (r = 0.23; 62% right on meaningful changes), but year-to-year run value was too noisy to confirm.

      What it can't know. Whether his body can make a change, how pitches play off each other in sequence, or what a hitter is sitting on. Treat these as ideas to test with video and a coach.

      Teams

      All 30 pitching staffs, ranked by run value

      Rank
      Staff run value
      Pitching payroll
      PitcherThrowsPitchesRun valueBest pitch

      Run value is runs saved per 100 pitches compared with league average; positive is good. Pitchers are grouped by their team as of October 2026. Payroll from Spotrac; Cleveland's wasn't available. Select a pitcher to open his card.

      Leaderboards

      Single pitches against one batter side · 2026 · select a row to open the report card

      #PitcherPitchUsageValue

      Pitch Shapes

      Every 2026 pitch, sorted into 16 shapes by velocity and movement

      Glossary

      Every term used on the site

      Results

      Usage
      How often a pitcher throws a pitch, as a share of all his pitches to that batter side.
      Whiff%
      Swings and misses divided by total swings.
      Whiff+
      Whiff% compared with league average for the same pitch type, throwing hand and batter side. 100 is average; 120 means 20% more misses.
      Pitch grade
      One 20–80 grade per pitch, the scale scouts use: 50 is average, 60 is plus, 70 is plus-plus, 40 is below average. It blends Whiff+, chase rate, in-zone whiffs, contact quality (xwOBAcon), ground-ball rate and Location+, each weighted by how much it drives run value across 2026. It grades what the pitcher controls, so it's steadier than run value, which includes luck. Small samples are pulled toward 50: a pitch thrown 150 times keeps half its distance from average, one thrown 600 times keeps 80%.
      Arsenal grade
      A pitcher's whole mix on the 20–80 scale, weighting each pitch by how often he throws it. Grades on fewer pitches are pulled toward 50 (halfway at 400 pitches), so a reliever needs a bigger edge than a starter to reach the top. Leaderboards rank starters and relievers separately. A starter is anyone who threw 50+ pitches in at least half his games (or in 10+ games). It rates pitch quality, not workload or durability.
      Matchups
      Each day's probable starters and lineups come live from MLB. For each starter, his run value by pitch group (fastballs, breaking balls, offspeed) is set against how the other team hit that group from pitchers of the same hand in 2026, ranked 1–30 (1 = best offense). Matchup edge = for each group, how often he throws it × (his run value − their run value), added up, in runs per 100 pitches. Hitter chips show each batter's run value vs. league by pitch group, colored from the pitcher's side; under 150 pitches seen is faded because it's mostly noise. It describes the matchup, not a prediction.
      Pitch mix optimizer
      Part of Pitch Lab. Suggests how often to throw each pitch against lefties and righties. Each pitch's value blends its own 2026 run value (trusted more as the sample grows; halfway at 300 pitches) with its Stuff+ grade. Usage shifts toward the most valuable pitches, but every extra point of usage is charged against that pitch, because hitters adjust to what they see more. Guardrails: no pitch moves more than 20 points, a pitch needs 50+ thrown to that side before it's suggested more, and every pitcher keeps a real fastball. It treats each pitch on its own, so it can't see how a pitch sets up the next one.
      2027 Watch List
      Ten starters and ten relievers who are 29 or younger, threw 600+ pitches in 2026, were average or worse and have never had a strong season since 2021, ranked by projected 2027 run value. The projection leans on Stuff+ and Whiff+, then Location+, fastball velo change and contact quality. Tested on 2022 to 2025 with lists built only from earlier seasons: 28 of 40 reliever picks and 22 of 40 starter picks were above average the next year (vs 50% and 38% of similar pitchers). It can't see injuries or role changes.
      Pitch Lab
      Up to four things each pitcher could try, ranked by runs saved. Usage: an Underused weapon he could throw more. Shape tweak: one small change (1 mph, 2 inches of break, 150 rpm or 0.3 ft of extension) re-scored with Stuff+, allowed only if pitchers with a similar arm slot already throw that version. New pitch: the typical version of a pitch he doesn't throw (no second changeup or splitter if he already has an offspeed pitch), built from at least 5 pitchers with his arm slot and fastball velo, shown only if it projects to Stuff+ 105 or better. Each comes with a similar-shaped pitch from a real pitcher. The model can't tell whether a pitcher can physically make the change. Backtest: on 367 pitches that changed shape from 2025 to 2026, graded by models that never saw that pitcher, predicted whiff change matched actual whiff change (r = 0.23, still significant after controlling for regression to the mean). The direction was right 62% of the time when the model expected a 2+ point swing, and 68% at 5+ points. Run value changes were mostly noise (52%), so treat the runs-saved estimates as rough.
      Stuff+
      Grades the pitch itself, not what happened to it. A model trained on every 2026 pitch learns how velo, movement, spin, release point, extension, arm angle and the gap from his main fastball translate into run value, separately for fastballs, breaking balls and offspeed. It never sees location, count or results. 100 is average; 10 points is 1 standard deviation. Tested honestly: first-half Stuff+ predicted second-half run value better than first-half run value did (r = 0.24 vs 0.17).
      Location+
      Grades where a pitcher puts each pitch, not what happened after. Every spot around the plate gets the league's average run value for that pitch group, batter side and count, and each pitch is credited for how good its spot usually is. 100 is average; 10 points is one standard deviation. Pitchers with elite stuff often attack the zone on purpose, which can pull theirs down.
      Run value
      How much each pitch changed the expected runs in the inning, from Statcast. Shown per 100 pitches against league average. Positive means it saved runs.
      Run value breakdown
      Splits Runs/100 into where the runs came from: strikes (called, swinging and fouls), balls, and contact (balls in play). The three parts add up to Runs/100. It explains pitches that miss bats but still cost runs: usually they get hit hard when hitters connect, or hitters take them for balls.
      Biggest leak
      On a pitch that costs runs, the part of the breakdown costing the most: not enough strikes, too many balls, or hurt on contact.
      xwOBAcon
      Expected damage on balls in play, built from exit velocity and launch angle. Lower is better for the pitcher. Shown against league average.
      Hard-hit%
      Share of balls in play hit 95 mph or harder.

      Location

      Zone%
      Share of pitches in the strike zone.
      Chase%
      How often hitters swing at a pitch outside the zone. The clearest sign a pitch fools people.
      In-zone whiff%
      Misses on swings at strikes. A pitch that gets these beats hitters even when they know it's coming.

      Movement and shape

      Velo
      Average release speed, in mph.
      IVB
      Induced vertical break: how much a pitch rises or drops compared with a pitch thrown with no spin, in inches.
      HB
      Horizontal break, in inches. Arm side means toward the pitcher's throwing arm (sinkers, changeups); glove side means away from it (sliders, sweepers).
      Off fastball
      How much slower a pitch is than the pitcher's main fastball, in mph.
      Pitch shape
      A group of pitches that move alike, such as a sweeper or a vertical slider, defined by velocity and break. See Pitch Shapes.

      Arm and delivery

      Arm angle
      The angle of the arm at release, in degrees, from Statcast body tracking. 0° is straight sideways and 90° is straight up.
      Arm slots
      Submarine below 0°, sidearm 0–15°, low three-quarters 15–30°, three-quarters 30–45°, high three-quarters 45–60°, over the top 60°+. A rough guide.
      Pronator / supinator
      How a pitcher's hand naturally moves at release. Pronators turn it over, which helps changeups and sinkers. Supinators get to the side of the ball, which helps sweepers and curves.

      Flags

      Underused weapon
      Whiff+ 120 or higher, run value +1.0 or better, and thrown less than 25% of the time.
      Misses bats, still gets hurt
      Whiff+ 120 or higher, but run value −1.0 or worse.
      Below league average
      Run value −1.5 or worse.
      Heavy use, below average
      Thrown 25% of the time or more, with run value below zero.
      Hit hard on contact
      20+ balls in play and xwOBAcon .040 or more above league.
      Good stuff, bad spots
      Whiff+ 110 or higher, Location+ 90 or lower, and run value below zero. The pitch is fine; where it's thrown is the problem.
      Gets by on location
      Whiff+ 90 or lower, Location+ 110 or higher, and run value above zero. He wins with command, not nastiness.
      Small sample
      Fewer than 30 swings, so the pitch isn't graded yet.

      Counts and changes

      Ahead / Even / Behind
      Ahead means more strikes than balls (0-1, 0-2, 1-2); behind means more balls than strikes.
      What changed since 2025
      New or dropped pitch, usage up or down 10+ points, velo up or down 1.5+ mph, or 2.5+ inches of new break. An arm slot change is 4°+.

      Teams

      Staff run value
      Every pitcher's run value on a staff, weighted by pitches thrown.
      Pitching payroll
      Combined salary of the pitchers on the current roster, from Spotrac.

      About

      Pitching analysis and tools

      Ben Kafka

      I work in ticket sales for the Brooklyn Cyclones at Maimonides Park and write pitching analysis for Pitcher List's Going Deep section. I also consult independently for a junior college program, working with its TrackMan data.

      Kafkaesque Baseball started as one question: is a pitcher using his pitches the right way? It grew into a tool that answers that for every pitcher in MLB. I designed the analysis and built it in Python with pybaseball, learning the language as I went and working with Claude as a coding partner. Every method, threshold and limit is written out in the notebook.

      StatcastpybaseballPython (learning)MLB Stats API
      How it works
      1. Every 2026 pitch. 716,792 regular-season pitches from Statcast, plus 2025 for year-over-year changes.
      2. Graded against exact peers. Each pitch is compared only to the same pitch type, thrown with the same hand to the same batter side, on whiffs, run value, contact quality and location.
      3. Flags where usage and results don't match. Underused weapons, pitches that miss bats but still get hurt, pitches that get hit hard.
      4. Written in plain English. Every card says what makes the pitcher nasty and what his biggest strength is.
      Read the notebook →View on GitHub →
      Experience
      • 2026 – nowFreelance Writer
        Pitcher List
      • 2025 – nowAccount Executive, Ticket Sales
        Brooklyn Cyclones
      • 2024 – 2025Account Executive, Ticket Sales
        Norfolk Tides
      • 2024Front Office Coordinator
        Norfolk Tides
      • 2023BS, Sports Management
        Old Dominion University