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.
Michael Harris II LHB ATL vs Tyler Glasnow RHP LAN P
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 | Michael Harris II: BA | Michael Harris II: HR% | Michael Harris II: Hard-Hit% | Michael Harris II: Exit Velo | Michael Harris II: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FF | 39% | 95.6 | 16.1" | -0.9" | 2523 | 4.1% | 35% | 0.327 | 0.300 | 4.3% | 57% | 93.9 | 0.476 |
| SI | 18% | 96.0 | 13.9" | -10.9" | 2490 | 0.0% | 31% | 0.372 | 0.297 | 0.8% | 60% | 94.6 | 0.357 |
| CU | 16% | 82.1 | -15.7" | 4.8" | 2826 | 0.0% | 12% | 0.324 | 0.279 | 4.4% | 51% | 91.3 | 0.483 |
| SL | 15% | 89.6 | 0.9" | 3.5" | 2656 | 6.1% | 43% | 0.458 | 0.209 | 4.4% | 55% | 93.7 | 0.455 |
| KC | 13% | 80.6 | -16.0" | 7.1" | 2816 | 2.7% | 60% | 0.406 | 0.143 | 0.0% | 17% | 87.0 | 0.282 |
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 | Michael Harris II: BA | Michael Harris II: HR% | Michael Harris II: Hard-Hit% | Michael Harris II: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|
| FF/SI/FC | 54% | 95.8 | 15.6" | -4.0" | 0.341 | 0.280 | 2.4% | 51% | 0.448 |
| CU/KC/ST | 29% | 81.5 | -15.8" | 5.8" | 0.361 | 0.294 | 4.4% | 50% | 0.443 |
| CH/SI/FS | 29% | 81.5 | -15.8" | 5.8" | 0.361 | 0.294 | 2.5% | 32% | 0.349 |
| FC/SL/FF | 13% | 90.2 | 2.6" | 3.5" | 0.437 | 0.304 | 5.9% | 41% | 0.393 |
| ST/SL/CU | 2% | 88.4 | -3.3" | 4.0" | 0.150 | 8.3% | 49% | 0.458 | |
| EP/FA/SL | 1% | 94.7 | 14.6" | -4.0" | |||||
| FF/SI/FC | 1% | 94.6 | 14.7" | -4.3" | 0.329 | 6.1% | 58% | 0.453 | |
| SL/ST/CU | 1% | 87.7 | -4.9" | 2.1" | 0.200 | 3.6% | 45% | 0.401 | |
| SI/FF/CH | 1% | 96.1 | 11.5" | -13.8" | 0.298 | 1.6% | 64% | 0.396 | |
| CH/FS/FO | 1% | 96.1 | 11.5" | -13.8" | 0.210 | 4.9% | 43% | 0.434 |
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.
72 PA · 30 games · 2026-09-01 to 2026-10-07| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-07 | Double line drive | 1-2 | SL | 83.9 | 107.2 | 16° | 281 | RF | 0.626 | 1.124 | 0.737 | Edgardo Henriquez |
| 2026-10-07 | Strikeout looking | 0-2 | SI | 97.4 | — | — | — | — | — | — | 0.000 | Tyler Glasnow |
| 2026-10-07 | Walk | 3-0 | FF | 96.2 | — | — | — | — | — | — | 0.698 | Tyler Glasnow |
| 2026-10-07 | Single ground ball | 0-0 | FF | 96.2 | 106.8 | 6° | 126 | RF | 0.629 | 0.718 | 0.586 | Tyler Glasnow |
| 2026-10-06 | Out ground ball | 1-2 | SI | 98.7 | 88.0 | -8° | 17 | Infield | 0.183 | 0.210 | 0.172 | Edwin Díaz |
| 2026-10-06 | Out ground ball | 1-2 | FF | 96.1 | 74.5 | 6° | 91 | Infield | 0.285 | 0.341 | 0.270 | Yoshinobu Yamamoto |
| 2026-10-06 | Out ground ball | 3-2 | FF | 97.7 | 105.5 | -18° | 4 | Infield | 0.203 | 0.209 | 0.183 | Yoshinobu Yamamoto |
| 2026-10-04 | Single ground ball | 2-1 | CU | 80.2 | 106.3 | -7° | 19 | RF gap | 0.398 | 0.432 | 0.360 | Blake Snell |
| 2026-10-04 | Out popup | 0-0 | FF | 96.4 | 68.5 | 80° | 54 | LF corner | 0.003 | 0.003 | 0.003 | Blake Snell |
| 2026-10-03 | Out ground ball | 0-1 | SL | 90.5 | 79.6 | -19° | 7 | Infield | 0.063 | 0.069 | 0.057 | Tanner Scott |
| 2026-10-03 | Strikeout swinging | 1-2 | SL | 93.1 | — | — | — | — | — | — | 0.000 | Tarik Skubal |
| 2026-10-01 | Hit By Pitch | 0-2 | SL | 88.9 | — | — | — | — | — | — | 0.729 | Jonathan Bowlan |
| 2026-10-01 | Out popup | 2-2 | FF | 95.6 | 79.3 | 66° | 159 | LF corner | 0.009 | 0.013 | 0.010 | Zack Wheeler |
| 2026-10-01 | Home Run fly ball | 2-0 | SI | 93.5 | 100.5 | 25° | 387 | RF gap | 0.580 | 1.775 | 0.972 | Aaron Nola |
| 2026-09-30 | Grounded Into DP ground ball | 0-0 | SI | 95.7 | 86.7 | -2° | 33 | RF corner | 0.261 | 0.292 | 0.245 | Cristopher Sánchez |
| 2026-09-29 | Single line drive | 0-1 | SI | 101.6 | 89.5 | 9° | 171 | LF | 0.531 | 0.586 | 0.494 | Alex McFarlane |
| 2026-09-29 | Single line drive | 1-1 | SI | 96.4 | 87.2 | 7° | 135 | LF | 0.509 | 0.614 | 0.504 | Jesús Luzardo |
| 2026-09-26 | Double line drive | 0-0 | FF | 93.8 | 62.2 | 22° | 160 | LF corner | 0.440 | 0.478 | 0.396 | Dax Fulton |
| 2026-09-25 | Out ground ball | 0-0 | SL | 88.5 | 111.6 | 1° | 60 | Infield | 0.583 | 0.624 | 0.527 | Eury Pérez |
| 2026-09-25 | Strikeout looking | 0-2 | CU | 81.3 | — | — | — | — | — | — | 0.000 | Eury Pérez |
| 2026-09-24 | Single ground ball | 1-2 | FF | 95.5 | 96.3 | -32° | 4 | Infield | 0.091 | 0.100 | 0.085 | Emilio Pagán |
| 2026-09-24 | Out fly ball | 0-0 | FF | 98.6 | 100.6 | 37° | 356 | LF | 0.254 | 0.992 | 0.521 | Connor Phillips |
| 2026-09-24 | Out fly ball | 1-0 | FF | 94.0 | 101.9 | 24° | 393 | RF gap | 0.623 | 1.850 | 1.020 | Zach McCambley |
| 2026-09-24 | Single ground ball | 0-0 | SI | 90.8 | 36.3 | -73° | 1 | LF corner | 0.248 | 0.254 | 0.223 | Brady Singer |
| 2026-09-24 | Double line drive | 3-1 | SI | 89.4 | 110.3 | 12° | 295 | LF gap | 0.866 | 1.211 | 0.886 | Brady Singer |
| 2026-09-23 | Out ground ball | 1-1 | FF | 91.0 | 74.8 | -1° | 38 | Infield | 0.129 | 0.149 | 0.129 | Andrew Abbott |
| 2026-09-22 | Double line drive | 0-1 | FF | 94.1 | 110.8 | 16° | 350 | RF gap | 0.700 | 1.378 | 0.890 | Emilio Pagán |
| 2026-09-22 | Force Out ground ball | 0-2 | SL | 87.2 | 61.6 | -1° | 24 | Infield | 0.101 | 0.116 | 0.091 | Brock Burke |
| 2026-09-22 | Single line drive | 0-1 | SI | 93.8 | 107.7 | 10° | 244 | LF gap | 0.886 | 1.131 | 0.876 | Brandon Williamson |
| 2026-09-22 | Out ground ball | 1-2 | SI | 93.8 | 110.3 | 4° | 113 | Infield | 0.646 | 0.735 | 0.605 | Brandon Williamson |
| 2026-09-20 | Walk | 3-2 | SI | 91.3 | — | — | — | — | — | — | 0.698 | Bryan King |
| 2026-09-20 | Reached On Error ground ball | 0-1 | SI | 96.9 | 77.3 | 5° | 77 | Infield | 0.270 | 0.293 | 0.257 | Hunter Brown |
| 2026-09-19 | Out fly ball | 2-2 | SL | 84.3 | 72.3 | 49° | 211 | LF gap | 0.149 | 0.184 | 0.140 | Bennett Sousa |
| 2026-09-19 | Force Out ground ball | 0-1 | FF | 96.1 | 85.3 | -9° | 17 | Infield | 0.167 | 0.201 | 0.165 | Hayden Wesneski |
| 2026-09-18 | Single ground ball | 0-2 | SL | 85.7 | 107.9 | -2° | 30 | RF gap | 0.466 | 0.508 | 0.432 | Bennett Sousa |
| 2026-09-18 | Single line drive | 0-0 | FF | 93.9 | 109.2 | 6° | 159 | CF | 0.669 | 0.802 | 0.648 | Peter Lambert |
| 2026-09-16 | Single line drive | 3-2 | FF | 93.4 | 78.6 | 21° | 238 | LF gap | 0.940 | 1.023 | 0.865 | Ryan Rolison |
| 2026-09-16 | Out line drive | 0-2 | FF | 92.6 | 86.8 | 21° | 255 | LF | 0.463 | 0.550 | 0.417 | Shota Imanaga |
| 2026-09-15 | Out ground ball | 2-2 | FF | 92.7 | 105.3 | -6° | 18 | Infield | 0.410 | 0.433 | 0.369 | Kevin Gausman |
| 2026-09-14 | Out fly ball | 1-1 | SI | 94.1 | 93.0 | 27° | 363 | CF | 0.151 | 0.327 | 0.196 | Ryan Rolison |
| 2026-09-14 | Single line drive | 0-0 | SL | 85.6 | 77.6 | 15° | 185 | CF | 0.774 | 0.868 | 0.722 | David Peterson |
| 2026-09-14 | Out ground ball | 0-0 | SI | 91.9 | 82.4 | -35° | 2 | Infield | 0.056 | 0.068 | 0.050 | David Peterson |
| 2026-09-14 | Single ground ball | 0-1 | SI | 91.7 | 100.1 | -15° | 7 | CF | 0.193 | 0.210 | 0.181 | David Peterson |
| 2026-09-13 | Strikeout swinging | 0-2 | FF | 93.3 | — | — | — | — | — | — | 0.000 | Tanner Banks |
| 2026-09-13 | Single fly ball | 2-1 | SI | 97.9 | 67.0 | 26° | 210 | CF | 0.974 | 1.023 | 0.884 | José Alvarado |
| 2026-09-13 | Single line drive | 1-0 | FF | 97.6 | 98.9 | 9° | 197 | LF gap | 0.617 | 0.674 | 0.564 | Andrew Painter |
| 2026-09-13 | Single line drive | 0-0 | FF | 96.5 | 90.6 | 19° | 252 | RF | 0.514 | 0.599 | 0.471 | Andrew Painter |
| 2026-09-12 | Single ground ball | 1-1 | SI | 93.0 | 95.7 | 4° | 91 | RF gap | 0.534 | 0.618 | 0.511 | Tim Mayza |
| 2026-09-11 | Out line drive | 0-2 | SL | 86.2 | 88.7 | 20° | 289 | LF | 0.486 | 0.619 | 0.475 | Alex McFarlane |
| 2026-09-11 | Out fly ball | 0-1 | FF | 92.0 | 92.0 | 47° | 281 | LF gap | 0.001 | 0.001 | 0.000 | Aaron Nola |
| 2026-09-11 | Out ground ball | 1-2 | KC | 78.6 | 70.3 | -33° | 2 | Infield | 0.069 | 0.075 | 0.062 | Aaron Nola |
| 2026-09-11 | Strikeout swinging | 2-2 | SI | 93.1 | — | — | — | — | — | — | 0.000 | Aaron Nola |
| 2026-09-10 | Out fly ball | 0-1 | SI | 92.4 | 87.8 | 57° | 226 | LF | 0.009 | 0.009 | 0.008 | Nick Martinez |
| 2026-09-09 | Walk | 3-2 | SI | 93.9 | — | — | — | — | — | — | 0.699 | Steven Matz |
| 2026-09-09 | Out ground ball | 0-1 | CU | 84.5 | 103.1 | -6° | 21 | Infield | 0.298 | 0.338 | 0.268 | Griffin Jax |
| 2026-09-08 | Out line drive | 3-2 | FF | 95.0 | 101.1 | 20° | 343 | LF | 0.429 | 0.905 | 0.555 | Freddy Peralta |
| 2026-09-08 | Out ground ball | 1-2 | FF | 94.2 | 74.8 | -1° | 36 | Infield | 0.129 | 0.149 | 0.129 | Freddy Peralta |
| 2026-09-07 | Single ground ball | 0-1 | SI | 94.9 | 105.6 | -10° | 11 | RF | 0.363 | 0.378 | 0.327 | Jesús Luzardo |
| 2026-09-07 | Out ground ball | 1-0 | SI | 93.8 | 61.6 | -60° | 2 | Infield | 0.276 | 0.279 | 0.248 | Jesús Luzardo |
| 2026-09-06 | Out fly ball | 1-0 | KC | 78.0 | 91.5 | 32° | 321 | RF | 0.077 | 0.218 | 0.126 | Aaron Nola |
| 2026-09-06 | Out line drive | 1-2 | KC | 78.1 | 94.1 | 20° | 329 | CF | 0.303 | 0.516 | 0.342 | Aaron Nola |
| 2026-09-05 | Strikeout swinging | 0-2 | FF | 101.6 | — | — | — | — | — | — | 0.000 | Jhoan Duran |
| 2026-09-05 | Out popup | 0-2 | CU | 80.0 | 65.8 | 77° | 56 | LF corner | 0.009 | 0.009 | 0.008 | Zack Wheeler |
| 2026-09-04 | Out popup | 1-2 | FF | 95.2 | 80.5 | 61° | 167 | LF corner | 0.020 | 0.031 | 0.023 | Tim Mayza |
| 2026-09-04 | Out ground ball | 0-2 | FF | 100.4 | 96.6 | -2° | 30 | Infield | 0.459 | 0.496 | 0.413 | Alex McFarlane |
| 2026-09-02 | Out line drive | 1-1 | SL | 86.4 | 106.9 | 8° | 196 | Infield | 0.646 | 0.719 | 0.591 | Max Kranick |
| 2026-09-02 | Reached On Error ground ball | 0-0 | SI | 93.8 | 84.3 | 5° | 95 | Infield | 0.391 | 0.453 | 0.370 | Brad Lord |
| 2026-09-02 | Strikeout swinging | 2-2 | FF | 95.3 | — | — | — | — | — | — | 0.000 | Brad Lord |
| 2026-09-01 | Home Run fly ball | 1-0 | SL | 86.3 | 103.9 | 31° | 386 | LF gap | 0.760 | 2.979 | 1.522 | Clayton Beeter |
| 2026-09-01 | Strikeout looking | 1-2 | SL | 84.2 | — | — | — | — | — | — | 0.000 | Jared Simpson |
| 2026-09-01 | Out ground ball | 1-2 | FF | 93.9 | 103.5 | -13° | 13 | Infield | 0.292 | 0.295 | 0.263 | Jake Irvin |
| 2026-09-01 | Out line drive | 3-1 | FF | 91.2 | 76.3 | 29° | 268 | LF gap | 0.334 | 0.412 | 0.328 | Jake Irvin |