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.
Victor Mesa Jr. LHB TBA vs Shawn Armstrong RHP CLE P
P = 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 | Victor Mesa Jr.: BA | Victor Mesa Jr.: HR% | Victor Mesa Jr.: Hard-Hit% | Victor Mesa Jr.: Exit Velo | Victor Mesa Jr.: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FF | 38% | 93.6 | 15.1" | -5.8" | 2287 | 5.8% | 53% | 0.492 | 0.149 | 7.5% | 43% | 88.0 | 0.355 |
| FC | 29% | 90.5 | 8.6" | 4.1" | 2445 | 1.9% | 32% | 0.320 | 0.286 | 7.1% | 64% | 92.4 | 0.485 |
| ST | 22% | 84.6 | 9.9" | 12.3" | 2587 | 0.0% | 28% | 0.282 | 0.125 | 12.5% | |||
| SI | 11% | 94.0 | 10.2" | -15.2" | 2103 | 5.0% | 40% | 0.493 | 0.312 | 6.2% | 58% | 94.1 | 0.428 |
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 | Victor Mesa Jr.: BA | Victor Mesa Jr.: HR% | Victor Mesa Jr.: Hard-Hit% | Victor Mesa Jr.: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|
| FC/SL/FF | 37% | 89.4 | 9.2" | 5.3" | 0.295 | 0.160 | 4.0% | 47% | 0.379 |
| EP/FA/SL | 29% | 93.5 | 14.8" | -5.7" | 0.486 | ||||
| FF/SI/FC | 29% | 93.5 | 14.8" | -5.8" | 0.486 | 0.184 | 5.3% | 39% | 0.325 |
| CU/KC/ST | 14% | 84.2 | 9.0" | 13.8" | 0.395 | 0.150 | 0.0% | 31% | 0.321 |
| ST/SL/CU | 14% | 84.2 | 9.0" | 13.8" | 0.439 | 0.200 | 10.0% | 44% | 0.250 |
| SI/FF/CH | 10% | 94.1 | 10.1" | -15.4" | 0.464 | 0.286 | 0.0% | 40% | 0.398 |
| CH/FS/FO | 10% | 94.1 | 10.1" | -15.4" | 0.464 | 0.182 | 0.0% | 56% | 0.342 |
| SL/ST/CU | 10% | 93.9 | 16.0" | -6.1" | 0.533 | 0.400 | 13.3% | 45% | 0.538 |
| FF/SI/FC | 10% | 94.0 | 16.0" | -6.1" | 0.515 | 0.185 | 14.8% | 62% | 0.493 |
| CH/SI/FS | 0% | 90.6 | 9.0" | -14.9" | 0.389 | 11.1% | 67% | 0.520 |
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.
70 PA · 30 games · 2026-08-15 to 2026-10-15| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-15 | Out fly ball | 1-0 | FF | 98.5 | 94.0 | 47° | 288 | LF corner | 0.009 | 0.024 | 0.014 | Cade Smith |
| 2026-10-15 | Strikeout swinging | 1-2 | FF | 94.4 | — | — | — | — | — | — | 0.000 | Erik Sabrowski |
| 2026-10-15 | Walk | 3-1 | ST | 88.2 | — | — | — | — | — | — | 0.698 | Gavin Williams |
| 2026-10-15 | Out line drive | 0-1 | SI | 97.4 | 77.4 | 28° | 256 | LF gap | 0.323 | 0.388 | 0.303 | Gavin Williams |
| 2026-10-13 | Strikeout swinging | 2-2 | FC | 89.5 | — | — | — | — | — | — | 0.000 | Slade Cecconi |
| 2026-10-13 | Out popup | 2-0 | SI | 93.1 | 86.9 | 68° | 117 | Infield | 0.009 | 0.012 | 0.010 | Parker Messick |
| 2026-10-13 | Force Out ground ball | 2-2 | SI | 94.1 | 100.8 | -18° | 3 | Infield | 0.198 | 0.213 | 0.178 | Parker Messick |
| 2026-10-12 | Strikeout swinging | 0-2 | FF | 94.3 | — | — | — | — | — | — | 0.000 | Erik Sabrowski |
| 2026-10-12 | Out popup | 0-1 | FC | 85.1 | 30.6 | 63° | 44 | Infield | 0.103 | 0.120 | 0.106 | Joey Cantillo |
| 2026-10-12 | Strikeout swinging | 2-2 | SI | 93.5 | — | — | — | — | — | — | 0.000 | Foster Griffin |
| 2026-10-12 | Single line drive | 0-0 | SI | 91.8 | 79.8 | 16° | 212 | LF gap | 0.926 | 1.019 | 0.860 | Foster Griffin |
| 2026-10-07 | Home Run fly ball | 0-0 | ST | 77.9 | 107.3 | 34° | 401 | RF gap | 0.840 | 3.298 | 1.690 | Max Fried |
| 2026-10-07 | Strikeout swinging | 2-2 | FF | 95.3 | — | — | — | — | — | — | 0.000 | Max Fried |
| 2026-10-07 | Out fly ball | 1-2 | ST | 79.1 | 87.9 | 57° | 212 | LF gap | 0.009 | 0.009 | 0.008 | Max Fried |
| 2026-10-05 | Walk | 3-2 | FF | 97.7 | — | — | — | — | — | — | 0.698 | Ryan Weathers |
| 2026-10-05 | Out line drive | 2-1 | FF | 98.1 | 86.9 | 22° | 291 | LF gap | 0.360 | 0.444 | 0.327 | Cam Schlittler |
| 2026-10-03 | Strikeout swinging | 1-2 | FF | 95.7 | — | — | — | — | — | — | 0.000 | Gerrit Cole |
| 2026-09-27 | Strikeout swinging | 3-2 | FF | 94.7 | — | — | — | — | — | — | 0.000 | Zack Wheeler |
| 2026-09-26 | Single ground ball | 0-1 | SI | 91.2 | 102.5 | 3° | 78 | LF | 0.551 | 0.673 | 0.534 | Brooks Raley |
| 2026-09-26 | Single line drive | 0-0 | SI | 97.4 | 97.6 | 8° | 182 | CF | 0.680 | 0.760 | 0.639 | José Alvarado |
| 2026-09-24 | Out fly ball | 0-1 | FC | 86.8 | 99.7 | 43° | 359 | CF | 0.057 | 0.199 | 0.103 | Bradley Hanner |
| 2026-09-24 | Single ground ball | 1-0 | SI | 88.2 | 104.5 | 2° | 80 | LF gap | 0.540 | 0.597 | 0.498 | Tim Hill |
| 2026-09-24 | Strikeout swinging | 2-2 | FF | 96.7 | — | — | — | — | — | — | 0.000 | Cam Schlittler |
| 2026-09-24 | Strikeout swinging | 3-2 | FF | 98.3 | — | — | — | — | — | — | 0.000 | Cam Schlittler |
| 2026-09-23 | Out ground ball | 1-2 | SI | 87.0 | 78.6 | -57° | 1 | Infield | 0.264 | 0.265 | 0.238 | Tim Hill |
| 2026-09-23 | Walk | 3-2 | FF | 96.5 | — | — | — | — | — | — | 0.698 | Gerrit Cole |
| 2026-09-22 | Single line drive | 1-1 | FF | 94.7 | 102.2 | 12° | 241 | RF gap | 0.963 | 1.197 | 0.936 | Carlos Rodón |
| 2026-09-20 | Home Run fly ball | 2-2 | FF | 94.9 | 103.9 | 31° | 403 | RF gap | 0.760 | 2.979 | 1.522 | Patrick Sandoval |
| 2026-09-20 | Walk | 3-2 | FF | 92.1 | — | — | — | — | — | — | 0.698 | Patrick Sandoval |
| 2026-09-19 | Strikeout swinging | 0-2 | FF | 97.8 | — | — | — | — | — | — | 0.000 | Brayan Bello |
| 2026-09-19 | Strikeout swinging | 2-2 | FF | 97.7 | — | — | — | — | — | — | 0.000 | Brayan Bello |
| 2026-09-18 | Single ground ball | 1-1 | SI | 98.2 | 105.1 | -28° | 4 | Infield | 0.137 | 0.152 | 0.123 | Erik Miller |
| 2026-09-18 | Walk | 3-2 | FF | 97.3 | — | — | — | — | — | — | 0.698 | Wyatt Olds |
| 2026-09-16 | Strikeout swinging | 0-2 | FF | 95.5 | — | — | — | — | — | — | 0.000 | Hogan Harris |
| 2026-09-16 | Out line drive | 0-2 | SI | 93.5 | 63.6 | 23° | 183 | CF | 0.629 | 0.655 | 0.566 | Drew Rom |
| 2026-09-16 | Out line drive | 0-0 | FC | 88.7 | 103.5 | 19° | 377 | CF | 0.500 | 1.013 | 0.630 | Brady Basso |
| 2026-09-16 | Out fly ball | 0-2 | FF | 91.7 | 83.5 | 48° | 253 | LF | 0.009 | 0.010 | 0.008 | Brady Basso |
| 2026-09-15 | Out fly ball | 0-0 | FC | 92.4 | 101.1 | 26° | 406 | RF gap | 0.586 | 1.898 | 1.025 | Jack Perkins |
| 2026-09-15 | Out ground ball | 0-0 | ST | 86.0 | 86.8 | -2° | 31 | Infield | 0.240 | 0.269 | 0.226 | Jack Perkins |
| 2026-09-13 | Strikeout swinging | 0-2 | FF | 93.1 | — | — | — | — | — | — | 0.000 | Ronel Blanco |
| 2026-09-13 | Single line drive | 1-1 | FF | 93.2 | 100.1 | 13° | 197 | RF | 0.926 | 1.122 | 0.889 | Hayden Wesneski |
| 2026-09-13 | Triple line drive | 1-0 | FC | 90.0 | 107.1 | 12° | 220 | RF corner | 0.929 | 1.258 | 0.940 | Hayden Wesneski |
| 2026-09-12 | Walk | 3-2 | FF | 92.2 | — | — | — | — | — | — | 0.698 | Bryan King |
| 2026-09-12 | Single ground ball | 2-2 | FC | 92.9 | 105.7 | 6° | 110 | RF | 0.594 | 0.677 | 0.553 | Peter Lambert |
| 2026-09-11 | Walk | 3-2 | FC | 89.4 | — | — | — | — | — | — | 0.699 | Ethan Pecko |
| 2026-09-11 | Home Run fly ball | 0-0 | FF | 93.3 | 106.0 | 30° | 415 | RF gap | 0.871 | 3.441 | 1.772 | Ethan Pecko |
| 2026-09-11 | Out ground ball | 0-0 | SI | 91.5 | 65.3 | -34° | 3 | Infield | 0.065 | 0.066 | 0.058 | Bryan King |
| 2026-09-09 | Out fly ball | 1-1 | FC | 90.8 | 73.1 | 47° | 223 | CF | 0.171 | 0.225 | 0.174 | Victor Mederos |
| 2026-09-09 | Walk | 3-1 | FF | 92.9 | — | — | — | — | — | — | 0.699 | Reynaldo López |
| 2026-09-09 | Single ground ball | 3-1 | FF | 92.9 | 104.6 | -4° | 29 | RF | 0.422 | 0.451 | 0.380 | Reynaldo López |
| 2026-09-09 | Home Run fly ball | 1-0 | FF | 93.8 | 105.4 | 28° | 415 | RF | 0.900 | 3.467 | 1.789 | Reynaldo López |
| 2026-09-08 | Out line drive | 1-2 | FF | 93.8 | 98.1 | 16° | 299 | CF | 0.611 | 0.868 | 0.628 | Elieser Hernández |
| 2026-09-08 | Out line drive | 1-2 | FF | 89.4 | 98.0 | 7° | 140 | Infield | 0.594 | 0.662 | 0.547 | Brent Suter |
| 2026-09-08 | Double line drive | 0-1 | SI | 90.9 | 75.2 | 29° | 245 | LF | 0.443 | 0.486 | 0.402 | Brent Suter |
| 2026-09-06 | Out fly ball | 1-0 | ST | 80.2 | 84.9 | 60° | 188 | LF gap | 0.017 | 0.017 | 0.015 | Tyler Alexander |
| 2026-09-06 | Double ground ball | 1-0 | FF | 92.9 | 99.6 | 3° | 79 | Infield | 0.540 | 0.605 | 0.501 | MacKenzie Gore |
| 2026-09-06 | Single line drive | 3-2 | FF | 94.4 | 83.4 | 9° | 146 | LF | 0.426 | 0.459 | 0.387 | MacKenzie Gore |
| 2026-09-05 | Out fly ball | 0-0 | FF | 94.1 | 97.1 | 47° | 317 | CF | 0.011 | 0.025 | 0.016 | Jacob Latz |
| 2026-09-05 | Single ground ball | 0-1 | ST | 78.7 | 93.4 | 5° | 85 | RF | 0.531 | 0.643 | 0.521 | Tyler Alexander |
| 2026-09-04 | Out fly ball | 0-0 | FF | 95.1 | 85.5 | 49° | 264 | CF | 0.009 | 0.013 | 0.008 | Kumar Rocker |
| 2026-09-04 | Out line drive | 1-1 | SI | 94.2 | 87.3 | 26° | 298 | LF | 0.089 | 0.181 | 0.114 | Robby Ahlstrom |
| 2026-09-03 | Out fly ball | 1-2 | ST | 83.7 | 81.0 | 47° | 247 | LF gap | 0.023 | 0.038 | 0.027 | Jakob Junis |
| 2026-09-02 | Out fly ball | 0-2 | FF | 96.1 | 76.4 | 34° | 244 | LF | 0.151 | 0.218 | 0.157 | Daniel Duarte |
| 2026-09-02 | Out popup | 1-2 | FF | 90.9 | 85.6 | 75° | 66 | LF corner | 0.001 | 0.001 | 0.000 | Nate Lavender |
| 2026-09-02 | Out popup | 0-1 | FF | 93.6 | 95.4 | 58° | 215 | RF gap | 0.023 | 0.038 | 0.028 | Chris Devenski |
| 2026-09-02 | Out fly ball | 0-0 | FF | 90.8 | 85.4 | 52° | 237 | RF gap | 0.014 | 0.017 | 0.013 | Justin Hagenman |
| 2026-09-01 | Single ground ball | 0-0 | SI | 99.8 | 101.6 | 1° | 67 | LF gap | 0.494 | 0.548 | 0.456 | Jefry Yan |
| 2026-09-01 | Out ground ball | 3-2 | SI | 90.3 | 61.7 | -5° | 18 | Infield | 0.085 | 0.095 | 0.083 | Sean Manaea |
| 2026-09-01 | Single line drive | 1-1 | SI | 90.4 | 86.1 | 8° | 150 | CF | 0.451 | 0.511 | 0.422 | Sean Manaea |
| 2026-09-01 | Single ground ball | 0-0 | FF | 90.7 | 94.8 | 8° | 147 | CF | 0.617 | 0.695 | 0.576 | Sean Manaea |