Armside

Methods

How every column is computed, what it reads, where the eras break, and what has changed. Columns marked recorded only are shown but never compared against Savant.

Percentile bars are always computed against Baseball Savant's qualified population -- 2.1 plate appearances per team game for batters, 1.25 batters faced per team game for pitchers -- regardless of any minimum you set in the Explorer above. A percentile whose population moved with whoever is looking would not be a percentile two people could discuss, and a link shared between two readers would mean different things to each of them.

A pitcher's arsenal only shows a pitch type thrown at least 25 times in the season shown -- fewer than that is a misclassification or an experiment, not a real pitch. The league shadow behind each dot is grouped into three velocity bands (lo, mid, hi): under 90 mph, 90 to 95 mph, and over 95 mph. The bands are coarse and editorial -- a reading aid chosen for legibility, not a model of how velocity actually relates to movement.

Every ball in play in the regular season is plotted here, including untracked contact and bunts -- the same population batted_balls stores, chosen so this chart shows where the ball actually went rather than a tracked subset of it. Setting an exit-velocity or launch-angle filter necessarily narrows that population further: a ball with no recorded launch_speed or launch_angle has no measurement to compare against the threshold, so it drops out of a filtered view even though it is drawn without one. hc_x/hc_y, the coordinates a spray chart plots, cover 94.0-97.0% of batted balls in 2015-2018 and 99.7-100% from 2019 on. A 2016 spray chart is quietly missing about one batted ball in twenty-five. That is a coverage caveat, not the cliff arm_angle has (0% for 2015-2019) -- every ball plotted is real, and none is estimated to fill the gap. Ball positions are computed by fitting hc_x/hc_y to feet from home plate against hit_distance_sc, not read from a published location, and the outfield outline drawn around them is a fixed 400-foot schematic rather than the batter's actual parks; that fit's accuracy is measured against fly balls and popups — the only hit types whose recorded distance marks where the ball actually came down — where median absolute error is 4.18 ft in play and 4.26 ft on home runs, with a p95 of about 34 ft; ground balls and line drives are plotted through the same fit, but its accuracy for them hasn't been separately measured.

A pitch type appears on the release chart only if the pitcher threw it at least 25 times in the regular season shown, counting pitches whose movement was tracked -- the same arsenal floor the pitch-movement note on this page states more briefly, since both charts read the same rows. Its point is the average of the release positions recorded for that pitch type over the season, horizontal position and height averaged separately, converted from the feet Statcast reports into inches. The ellipse around the point is one standard deviation of those same release positions, again taken separately on each axis, so what it shows is how much the release point itself moved from pitch to pitch: an ellipse twice as wide as another's marks a pitch type whose release wandered about twice as far from side to side, and one twice as tall, twice as far up and down. The axes are read one at a time, so the wider of two ellipses can be the shorter. It is not a statement about how precisely the average is known -- that uncertainty is smaller, by a factor of the square root of the number of pitches, and this chart does not draw it. A pitch type whose spread could not be measured keeps its point and is drawn with no ellipse at all, rather than one of zero size, which would claim a release point that never moved. No era caveat applies here: release tracking was measured across all twelve seasons, for exactly the pitch types this chart can draw, and no group in any season is missing it outright. The gap before 2020 belongs to arm angle, which this chart does not use.

Each point is the mean release speed, in mph, of one pitch type in one game. The horizontal axis is the pitcher's own appearances in order, not calendar dates -- two games on the same date are ordered by MLB's game id, because this warehouse records no game number, so that within-date order is deterministic but not verified to match the order the games were actually played. Every panel is a pitch type the pitcher threw at least 25 times in the season shown, counting pitches whose movement was tracked -- the same arsenal the pitch-movement and release-point charts on this page show. The pitch count shown for a game (n) counts every pitch of that type thrown in it; the mean velocity is taken over only the ones among them with a recorded velocity, so the two numbers can have different denominators. A game with no recorded velocity for a pitch type breaks that pitch type's line rather than plotting it as zero. Velocity coverage at this per-game grain is not measured here.

GalleryAbout the data