Batter vs Pitch Arsenal
A batter's own numbers by pitch type and location — add a pitcher to see their actual arsenal overlaid on top, and how this batter has done against pitches shaped like it.
Ben Williamson RHB TBA vs Shawn Armstrong RHP CLE
filtered for today’s matchupP = platoon edge (batter faces the opposite hand)
Batters grouped by swing shape — bat speed and swing length for power, attack angle and path tilt for loft — from Statcast bat tracking.
The number beside each metric is the gap to league average across the 610 batters with enough tracked swings to measure.
A description, not a prediction. The model does not use it.
Bat speed, barrel rate, exit velocity and chase rate over the last 30 games against this player's own last 100, so it reads as “is he himself right now” rather than “is he good”.
Flagged only when it has moved further than three quarters of hitters do. Movement in either direction counts.
Descriptive — the model does not use it.
whole-game, not filtered to this arsenal — see the per-pitch sections belowPitchers' arsenals are grouped by pitch shape — velocity, break and spin — and weighted by how often this pitcher throws each, so the number describes the arsenal he will face tonight.
Compared against this batter's own mark across every shape he has faced, so “done well” means well for him.
Descriptive — the model does not read it.
Overall vs RHP
One row per pitch this pitcher throws, ordered by usage. The bar is how this batter has performed against it; the dotted line is his own average from that hand.
Deeper red is better than his usual, deeper blue worse.
Faded rows have too little contact to trust — the count on the right is the sample behind the number.
vs RHP · ordered by usageNo tracked contact against this pitcher's pitches for this batter yet
Left: what the pitcher throws. Right: how this batter has done against that same pitch.
The right-hand columns count only pitches carrying the same label — a slider against a slider — thrown by pitchers with the same handedness.
That is precise but can leave a small sample. The table below groups by how a pitch actually moves instead.
| Pitch | Usage% | Velo | Vert Brk | Horz Brk | Spin | Allowed HR% | Allowed Hard-Hit% | Allowed xwOBA/con | Ben Williamson: BA | Ben Williamson: HR% | Ben Williamson: Hard-Hit% | Ben Williamson: Exit Velo | Ben Williamson: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SI | 28% | 94.0 | 10.9" | -15.4" | 2111 | 0.0% | 34% | 0.272 | 0.390 | 5.1% | 42% | 82.6 | 0.321 |
| ST | 27% | 85.0 | 9.8" | 12.3" | 2609 | 0.0% | 18% | 0.207 | 0.237 | 0.0% | 38% | 87.6 | 0.297 |
| FF | 24% | 93.4 | 15.8" | -5.5" | 2308 | 4.2% | 36% | 0.342 | 0.225 | 0.0% | 34% | 87.9 | 0.325 |
| FC | 20% | 90.6 | 9.1" | 4.2" | 2466 | 2.3% | 34% | 0.290 | 0.087 | 0.0% | 18% | 79.2 | 0.191 |
| SV | 0% | 84.6 | -3.4" | 11.4" | 2683 |
The table above, grouped by how the pitch moves rather than what it is called.
Two pitchers can both say “slider” and throw very different pitches. Grouping by speed, break and spin pools everyone throwing something physically similar, so the sample is bigger and steadier.
| Shape (mostly) | Usage% | Velo | Vert Brk | Horz Brk | Allowed xwOBA/con | Ben Williamson: BA | Ben Williamson: HR% | Ben Williamson: Hard-Hit% | Ben Williamson: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|
| FC/SL/FF | 30% | 89.0 | 9.9" | 6.1" | 0.272 | 0.150 | 0.0% | 26% | 0.233 |
| SI/FF/CH | 26% | 94.0 | 10.6" | -15.6" | 0.281 | 0.412 | 5.9% | 43% | 0.305 |
| CH/FS/FO | 26% | 94.0 | 10.6" | -15.6" | 0.281 | 0.556 | 0.0% | ||
| EP/FA/SL | 19% | 93.3 | 15.1" | -6.7" | 0.276 | ||||
| FF/SI/FC | 19% | 93.3 | 15.1" | -6.7" | 0.276 | 0.300 | 0.0% | 41% | 0.393 |
| CU/KC/ST | 17% | 84.5 | 8.8" | 13.7" | 0.199 | ||||
| ST/SL/CU | 17% | 84.5 | 8.8" | 13.7" | 0.199 | 0.192 | 0.0% | 32% | 0.275 |
| SL/ST/CU | 8% | 93.7 | 16.6" | -5.6" | 0.242 | 0.0% | 41% | 0.401 | |
| FF/SI/FC | 8% | 93.8 | 16.6" | -5.6" | 0.105 | 0.0% | 27% | 0.261 | |
| CH/SI/FS | 0% | 91.0 | 10.6" | -16.0" | 0.235 | 0.0% | 75% | 0.433 |
One row per plate appearance, newest first. Strikeouts and walks included.
Expected stats say what a batted ball was worth given how hard and at what angle it was hit, whether or not it found a glove.
xBA is blank on strikeouts and walks — there is no batted ball to judge. xwOBA counts them.
63 PA · 30 games · 2026-06-30 to 2026-10-13| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-13 | Walk | 3-2 | FF | 97.4 | — | — | — | — | — | — | 0.698 | Parker Messick |
| 2026-10-12 | Out ground ball | 2-1 | FF | 93.3 | 83.5 | 2° | 71 | Infield | 0.261 | 0.321 | 0.249 | Erik Sabrowski |
| 2026-10-12 | Hit By Pitch | 1-2 | FF | 92.8 | — | — | — | — | — | — | 0.729 | Foster Griffin |
| 2026-09-27 | Out ground ball | 0-0 | SI | 95.4 | 98.9 | -32° | 5 | Infield | 0.092 | 0.105 | 0.089 | Jesús Luzardo |
| 2026-09-27 | Out ground ball | 0-2 | FF | 94.3 | 100.7 | -23° | 7 | RF corner | 0.133 | 0.143 | 0.121 | Zack Wheeler |
| 2026-09-25 | Walk | 3-1 | SI | 93.2 | — | — | — | — | — | — | 0.698 | Tim Mayza |
| 2026-09-24 | Out line drive | 0-1 | FF | 91.9 | 91.6 | 24° | 332 | LF gap | 0.149 | 0.288 | 0.183 | Bradley Hanner |
| 2026-09-24 | Walk | 3-1 | FF | 93.3 | — | — | — | — | — | — | 0.698 | Luis Gil |
| 2026-09-24 | Out ground ball | 1-0 | SI | 87.5 | 86.6 | -32° | 3 | Infield | 0.055 | 0.068 | 0.054 | Tim Hill |
| 2026-09-22 | Single fly ball | 2-1 | FF | 94.3 | 72.0 | 34° | 232 | RF gap | 0.480 | 0.537 | 0.434 | Max Fried |
| 2026-09-22 | Out ground ball | 0-2 | ST | 79.9 | 91.6 | -28° | 5 | Infield | 0.121 | 0.136 | 0.123 | Max Fried |
| 2026-09-22 | Out ground ball | 1-1 | SI | 91.2 | 69.6 | -36° | 3 | Infield | 0.092 | 0.093 | 0.083 | Max Fried |
| 2026-09-20 | Out fly ball | 0-1 | FF | 91.6 | 82.4 | 32° | 287 | RF | 0.034 | 0.065 | 0.038 | Patrick Sandoval |
| 2026-09-20 | Out ground ball | 1-2 | FF | 95.7 | 95.2 | -5° | 21 | RF corner | 0.287 | 0.322 | 0.258 | Patrick Sandoval |
| 2026-08-05 | Out ground ball | 1-2 | FC | 91.9 | 86.0 | -33° | 3 | Infield | 0.057 | 0.064 | 0.051 | Zach Agnos |
| 2026-08-05 | Out ground ball | 2-0 | SI | 90.5 | 86.6 | -16° | 12 | Infield | 0.088 | 0.098 | 0.083 | Parker Mushinski |
| 2026-08-04 | Strikeout swinging | 0-2 | FF | 93.7 | — | — | — | — | — | — | 0.000 | Jordan Romano |
| 2026-08-04 | Single line drive | 1-2 | FF | 92.0 | 93.5 | 5° | 118 | RF | 0.531 | 0.643 | 0.521 | Parker Mushinski |
| 2026-08-02 | Home Run line drive | 0-0 | SI | 91.4 | 101.1 | 20° | 380 | LF | 0.429 | 0.905 | 0.555 | Duncan Davitt |
| 2026-08-02 | Out ground ball | 0-0 | FC | 92.4 | — | -56° | 2 | Infield | — | — | — | Anthony Kay |
| 2026-08-02 | Out ground ball | 3-1 | ST | 81.9 | 70.2 | -13° | 10 | Infield | 0.057 | 0.070 | 0.051 | Anthony Kay |
| 2026-08-01 | Out ground ball | 3-2 | FF | 95.4 | 76.7 | -6° | 20 | Infield | 0.062 | 0.066 | 0.056 | Seranthony Domínguez |
| 2026-08-01 | Out ground ball | 1-2 | SI | 94.7 | 71.7 | -18° | 7 | Infield | 0.055 | 0.059 | 0.050 | Noah Schultz |
| 2026-08-01 | Out ground ball | 2-2 | SI | 95.6 | 102.4 | -15° | 9 | Infield | 0.183 | 0.198 | 0.165 | Noah Schultz |
| 2026-07-29 | Hit By Pitch | 1-2 | FC | 89.5 | — | — | — | — | — | — | 0.729 | MacKenzie Gore |
| 2026-07-29 | Strikeout looking | 2-2 | FF | 94.4 | — | — | — | — | — | — | 0.000 | MacKenzie Gore |
| 2026-07-25 | Out popup | 0-1 | FC | 84.3 | 31.0 | 50° | 59 | RF corner | 0.177 | 0.178 | 0.159 | Tanner Bibee |
| 2026-07-25 | Out ground ball | 1-2 | FC | 85.9 | 90.7 | -13° | 12 | Infield | 0.162 | 0.183 | 0.160 | Tanner Bibee |
| 2026-07-24 | Out line drive | 2-1 | FF | 93.0 | 91.0 | 19° | 287 | RF gap | 0.514 | 0.599 | 0.471 | Hunter Gaddis |
| 2026-07-24 | Out ground ball | 0-1 | ST | 82.8 | 105.6 | -8° | 16 | Infield | 0.323 | 0.348 | 0.291 | Matt Festa |
| 2026-07-23 | Out ground ball | 0-1 | SI | 92.3 | 43.3 | -38° | 5 | RF corner | 0.261 | 0.262 | 0.235 | Shane Bieber |
| 2026-07-23 | Out ground ball | 3-2 | FF | 91.9 | 81.3 | -4° | 22 | Infield | 0.149 | 0.164 | 0.141 | Shane Bieber |
| 2026-07-22 | Out ground ball | 2-2 | FF | 99.3 | 80.7 | -42° | 3 | Infield | 0.085 | 0.086 | 0.078 | Louis Varland |
| 2026-07-22 | Walk | 3-0 | FC | 89.7 | — | — | — | — | — | — | 0.698 | Mason Fluharty |
| 2026-07-21 | Single ground ball | 1-0 | FC | 86.5 | 105.1 | 4° | 89 | CF | 0.571 | 0.638 | 0.529 | Patrick Corbin |
| 2026-07-21 | Single line drive | 1-1 | FF | 91.6 | 102.5 | 10° | 202 | RF | 0.834 | 1.005 | 0.802 | Lazaro Estrada |
| 2026-07-21 | Single line drive | 1-0 | FF | 92.9 | 92.2 | 14° | 231 | CF | 0.960 | 1.080 | 0.889 | Kevin Gausman |
| 2026-07-21 | Single ground ball | 1-0 | FF | 92.0 | 93.1 | 5° | 100 | CF | 0.531 | 0.643 | 0.521 | Kevin Gausman |
| 2026-07-18 | Out ground ball | 2-2 | FF | 94.7 | 81.1 | -32° | 4 | Infield | 0.060 | 0.067 | 0.059 | Ryan Watson |
| 2026-07-18 | Out ground ball | 3-2 | FF | 94.0 | 70.2 | -23° | 7 | Infield | 0.035 | 0.036 | 0.032 | Patrick Sandoval |
| 2026-07-17 | Out ground ball | 2-2 | FF | 95.7 | 80.7 | 8° | 135 | RF gap | 0.340 | 0.367 | 0.306 | Alec Gamboa |
| 2026-07-17 | Force Out ground ball | 0-0 | SI | 99.9 | 53.3 | 0° | 34 | RF corner | 0.114 | 0.135 | 0.107 | Tyron Guerrero |
| 2026-07-17 | Strikeout looking | 0-2 | SI | 93.2 | — | — | — | — | — | — | 0.000 | Jake Bennett |
| 2026-07-17 | Single ground ball | 0-1 | SI | 92.9 | 102.0 | -27° | 4 | Infield | 0.174 | 0.184 | 0.168 | Greg Weissert |
| 2026-07-17 | Out ground ball | 0-0 | SI | 92.3 | 63.6 | -29° | 4 | Infield | 0.048 | 0.049 | 0.043 | Jake Bennett |
| 2026-07-17 | Out ground ball | 2-2 | FF | 95.4 | 83.6 | -36° | 3 | Infield | 0.057 | 0.061 | 0.052 | Eduardo Rivera |
| 2026-07-11 | Single ground ball | 1-0 | SI | 96.0 | 102.6 | -26° | 4 | CF | 0.155 | 0.162 | 0.143 | Michael Rucker |
| 2026-07-11 | Single line drive | 1-1 | FF | 95.7 | 70.3 | 19° | 196 | CF | 0.794 | 0.852 | 0.728 | Logan Gilbert |
| 2026-07-11 | Single line drive | 0-1 | FF | 95.7 | 77.6 | 24° | 244 | RF gap | 0.723 | 0.797 | 0.658 | Logan Gilbert |
| 2026-07-11 | Double ground ball | 2-2 | ST | 81.6 | 91.1 | 1° | 53 | LF corner | 0.384 | 0.441 | 0.362 | Logan Gilbert |
| 2026-07-09 | Single ground ball | 0-0 | SI | 93.6 | 92.1 | -12° | 12 | Infield | 0.174 | 0.195 | 0.157 | Paul Blackburn |
| 2026-07-08 | Out line drive | 0-1 | FF | 96.5 | 103.6 | 21° | 382 | RF gap | 0.657 | 1.624 | 0.954 | Gerrit Cole |
| 2026-07-08 | Out line drive | 1-1 | FF | 96.7 | 89.6 | 21° | 295 | RF | 0.311 | 0.458 | 0.313 | Gerrit Cole |
| 2026-07-07 | Strikeout looking | 2-2 | FF | 97.0 | — | — | — | — | — | — | 0.000 | Brent Headrick |
| 2026-07-07 | Out ground ball | 1-0 | SI | 87.4 | 77.3 | -70° | 1 | Infield | 0.305 | 0.306 | 0.274 | Tim Hill |
| 2026-07-05 | Strikeout swinging | 2-2 | ST | 84.3 | — | — | — | — | — | — | 0.000 | Peter Lambert |
| 2026-07-03 | Single line drive | 0-1 | FF | 95.1 | 78.8 | 18° | 227 | LF gap | 0.994 | 1.107 | 0.926 | Enyel De Los Santos |
| 2026-07-03 | Out fly ball | 2-1 | FF | 91.5 | 84.6 | 61° | 175 | RF corner | 0.017 | 0.027 | 0.019 | Spencer Arrighetti |
| 2026-07-03 | Out fly ball | 1-0 | FF | 91.1 | 89.5 | 41° | 290 | RF corner | 0.003 | 0.006 | 0.004 | Spencer Arrighetti |
| 2026-06-30 | Walk | 3-0 | FF | 95.0 | — | — | — | — | — | — | 0.698 | Eric Cerantola |
| 2026-06-30 | Walk | 3-0 | FF | 92.0 | — | — | — | — | — | — | 0.698 | Connor Seabold |
| 2026-06-30 | Single line drive | 3-2 | FF | 92.7 | 90.1 | 19° | 271 | CF | 0.534 | 0.622 | 0.481 | Noah Cameron |
| 2026-06-30 | Out ground ball | 3-2 | FC | 89.1 | 99.5 | -19° | 8 | Infield | 0.165 | 0.166 | 0.149 | Noah Cameron |