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.
William Contreras RHB MIL vs Tyler Glasnow RHP LAN
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 | William Contreras: BA | William Contreras: HR% | William Contreras: Hard-Hit% | William Contreras: Exit Velo | William Contreras: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FF | 32% | 95.6 | 16.4" | -1.2" | 2537 | 6.3% | 54% | 0.370 | 0.218 | 3.0% | 54% | 94.5 | 0.372 |
| SL | 26% | 89.5 | 0.7" | 3.5" | 2655 | 1.8% | 18% | 0.268 | 0.234 | 2.6% | 37% | 86.4 | 0.313 |
| SI | 23% | 95.8 | 14.2" | -10.7" | 2505 | 1.6% | 54% | 0.302 | 0.355 | 3.0% | 51% | 92.0 | 0.353 |
| CU | 13% | 82.4 | -16.0" | 4.0" | 2831 | 0.0% | 23% | 0.349 | 0.188 | 0.0% | 33% | 80.9 | 0.327 |
| KC | 5% | 81.0 | -16.1" | 6.8" | 2843 | 3.7% | 11% | 0.352 | 0.400 | 10.0% |
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 | William Contreras: BA | William Contreras: HR% | William Contreras: Hard-Hit% | William Contreras: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|
| FF/SI/FC | 53% | 95.7 | 15.6" | -5.1" | 0.334 | 0.240 | 4.0% | 59% | 0.394 |
| FC/SL/FF | 22% | 89.8 | 1.8" | 3.5" | 0.261 | 0.258 | 2.6% | 37% | 0.304 |
| CH/SI/FS | 18% | 82.0 | -16.0" | 4.8" | 0.351 | 0.316 | 2.6% | 46% | 0.508 |
| CU/KC/ST | 18% | 82.0 | -16.0" | 4.8" | 0.351 | 0.263 | 5.3% | 31% | 0.278 |
| ST/SL/CU | 3% | 88.2 | -3.4" | 3.9" | 0.219 | 3.8% | 43% | 0.362 | |
| FF/SI/FC | 2% | 94.7 | 14.0" | -6.3" | 0.240 | 1.0% | 47% | 0.317 | |
| EP/FA/SL | 2% | 94.7 | 14.1" | -6.1" | |||||
| SL/ST/CU | 1% | 87.6 | -4.2" | 1.7" | 0.270 | 6.8% | 42% | 0.367 | |
| SI/FF/CH | 1% | 95.6 | 11.3" | -13.1" | 0.326 | 2.9% | 52% | 0.354 | |
| CH/FS/FO | 1% | 95.6 | 11.3" | -13.1" | 0.222 | 2.8% | 35% | 0.349 |
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.
89 PA · 30 games · 2026-08-29 to 2026-10-15| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-15 | Out ground ball | 1-2 | SL | 90.3 | 88.0 | -1° | 33 | Infield | 0.264 | 0.295 | 0.288 | Edwin Díaz |
| 2026-10-15 | Double line drive | 2-1 | FF | 96.0 | 108.4 | 20° | 334 | LF | 0.820 | 2.181 | 1.249 | Tyler Glasnow |
| 2026-10-15 | Strikeout looking | 3-2 | KC | 80.7 | — | — | — | — | — | — | 0.000 | Tyler Glasnow |
| 2026-10-14 | Strikeout swinging | 1-2 | FF | 97.3 | — | — | — | — | — | — | 0.000 | Blake Snell |
| 2026-10-14 | Strikeout swinging | 0-2 | CU | 83.8 | — | — | — | — | — | — | 0.000 | Blake Snell |
| 2026-10-12 | Walk | 3-0 | SI | 101.3 | — | — | — | — | — | — | 0.698 | Edgardo Henriquez |
| 2026-10-12 | Home Run fly ball | 0-1 | FF | 94.8 | 106.3 | 28° | 436 | CF | 1.000 | 4.000 | 2.000 | Kris Bubic |
| 2026-10-12 | Out fly ball | 3-2 | FF | 96.9 | 89.5 | 38° | 335 | RF gap | 0.014 | 0.040 | 0.022 | Yoshinobu Yamamoto |
| 2026-10-12 | Single line drive | 2-2 | SL | 86.8 | 79.6 | 14° | 164 | LF | 0.763 | 0.825 | 0.701 | Yoshinobu Yamamoto |
| 2026-10-11 | Out fly ball | 2-2 | FF | 97.1 | 94.7 | 45° | 299 | RF | 0.009 | 0.023 | 0.013 | Tarik Skubal |
| 2026-10-11 | Strikeout swinging | 3-2 | FF | 98.3 | — | — | — | — | — | — | 0.000 | Tarik Skubal |
| 2026-10-11 | Strikeout swinging | 1-2 | SI | 99.4 | — | — | — | — | — | — | 0.000 | Tarik Skubal |
| 2026-10-07 | Single line drive | 0-2 | SL | 88.7 | 95.9 | 16° | 279 | RF gap | 0.691 | 0.936 | 0.698 | Mason Miller |
| 2026-10-07 | Out fly ball | 2-1 | FF | 98.9 | 102.0 | 50° | 274 | RF gap | 0.017 | 0.042 | 0.023 | Bradgley Rodriguez |
| 2026-10-07 | Single ground ball | 3-1 | SI | 95.5 | 108.5 | -2° | 36 | Infield | 0.466 | 0.508 | 0.432 | Walker Buehler |
| 2026-10-07 | Out fly ball | 0-0 | FF | 96.6 | 90.1 | 39° | 304 | RF gap | 0.020 | 0.050 | 0.032 | Walker Buehler |
| 2026-10-06 | Walk | 3-2 | FF | 95.6 | — | — | — | — | — | — | 0.698 | Michael King |
| 2026-10-06 | Single ground ball | 0-0 | FF | 100.0 | 102.0 | -5° | 26 | CF | 0.349 | 0.380 | 0.332 | Bradgley Rodriguez |
| 2026-10-06 | Single ground ball | 0-2 | SL | 85.7 | 98.0 | -7° | 17 | Infield | 0.229 | 0.238 | 0.218 | Jason Adam |
| 2026-10-06 | Out fly ball | 1-1 | FF | 93.6 | 97.2 | 58° | 231 | CF | 0.011 | 0.011 | 0.010 | Nick Pivetta |
| 2026-10-04 | Out fly ball | 1-0 | FF | 101.4 | 98.2 | 64° | 183 | Infield | 0.014 | 0.017 | 0.013 | Mason Miller |
| 2026-10-04 | Strikeout swinging | 1-2 | FF | 96.9 | — | — | — | — | — | — | 0.000 | Michael King |
| 2026-10-03 | Home Run fly ball | 3-2 | SI | 100.1 | 103.7 | 27° | 406 | RF gap | 0.849 | 3.171 | 1.646 | Adrian Morejon |
| 2026-10-03 | Out line drive | 0-0 | FF | 93.0 | 108.0 | 14° | 283 | LF gap | 0.703 | 1.072 | 0.750 | Yuki Matsui |
| 2026-10-03 | Walk | 3-2 | SI | 94.3 | — | — | — | — | — | — | 0.698 | Robbie Ray |
| 2026-10-03 | Out ground ball | 1-0 | SI | 93.4 | 77.0 | -12° | 9 | Infield | 0.049 | 0.060 | 0.044 | Robbie Ray |
| 2026-09-26 | Out fly ball | 1-0 | SI | 94.9 | 86.9 | 43° | 285 | CF | 0.006 | 0.013 | 0.008 | Gordon Graceffo |
| 2026-09-26 | Single line drive | 0-1 | SL | 85.2 | 97.1 | 13° | 243 | RF | 0.954 | 1.133 | 0.907 | Gordon Graceffo |
| 2026-09-26 | Strikeout looking | 3-2 | SL | 85.3 | — | — | — | — | — | — | 0.000 | Quinn Mathews |
| 2026-09-26 | Walk | 3-2 | SI | 92.8 | — | — | — | — | — | — | 0.698 | Quinn Mathews |
| 2026-09-25 | Single ground ball | 3-2 | SI | 96.2 | 103.1 | 0° | 43 | LF gap | 0.454 | 0.482 | 0.410 | Cade Winquest |
| 2026-09-25 | Out fly ball | 0-1 | SI | 94.8 | 87.7 | 34° | 312 | RF | 0.023 | 0.050 | 0.030 | Brycen Mautz |
| 2026-09-25 | Out fly ball | 2-0 | SI | 91.2 | 100.3 | 25° | 341 | RF | 0.474 | 1.316 | 0.733 | Michael McGreevy |
| 2026-09-25 | Out ground ball | 1-1 | SI | 91.2 | 88.8 | -24° | 5 | Infield | 0.051 | 0.051 | 0.046 | Michael McGreevy |
| 2026-09-24 | Walk | 3-1 | SL | 88.5 | — | — | — | — | — | — | 0.698 | Andrew Painter |
| 2026-09-23 | Reached On Error ground ball | 0-1 | FF | 96.5 | 76.5 | -9° | 8 | Infield | 0.055 | 0.066 | 0.050 | Max Lazar |
| 2026-09-23 | Single ground ball | 0-0 | KC | 79.1 | 78.1 | 3° | 51 | Infield | 0.174 | 0.199 | 0.157 | Aaron Nola |
| 2026-09-23 | Strikeout swinging | 2-2 | FF | 93.5 | — | — | — | — | — | — | 0.000 | Aaron Nola |
| 2026-09-22 | Strikeout looking | 3-2 | FF | 101.4 | — | — | — | — | — | — | 0.000 | Jhoan Duran |
| 2026-09-22 | Single line drive | 0-0 | SI | 94.6 | 83.3 | 12° | 185 | LF gap | 0.531 | 0.580 | 0.483 | Zack Wheeler |
| 2026-09-20 | Walk | 3-2 | CU | 85.2 | — | — | — | — | — | — | 0.698 | Grant Wolfram |
| 2026-09-20 | Double Play ground ball | 0-2 | SL | 85.8 | 64.5 | -26° | 3 | Infield | 0.047 | 0.047 | 0.042 | Brandon Young |
| 2026-09-20 | Home Run fly ball | 0-1 | SI | 92.6 | 106.9 | 43° | 403 | LF | 0.363 | 1.422 | 0.733 | Brandon Young |
| 2026-09-20 | Strikeout swinging | 0-2 | SL | 87.8 | — | — | — | — | — | — | 0.000 | Brandon Young |
| 2026-09-19 | Out ground ball | 1-1 | SI | 98.0 | 49.1 | -22° | 6 | Infield | 0.121 | 0.121 | 0.109 | Alex Hoppe |
| 2026-09-19 | Out line drive | 0-1 | FF | 94.6 | 104.6 | 16° | 319 | CF | 0.551 | 0.968 | 0.641 | Trevor Rogers |
| 2026-09-18 | Double line drive | 1-2 | FF | 95.5 | 111.7 | 9° | 214 | CF | 0.837 | 1.071 | 0.822 | Rico Garcia |
| 2026-09-18 | Out ground ball | 0-0 | SI | 95.2 | 93.4 | 1° | 49 | Infield | 0.370 | 0.407 | 0.333 | Yennier Cano |
| 2026-09-18 | Out popup | 2-0 | FF | 91.2 | 86.2 | 79° | 59 | RF corner | 0.003 | 0.003 | 0.003 | Cade Povich |
| 2026-09-18 | Walk | 3-1 | CU | 75.8 | — | — | — | — | — | — | 0.698 | Cade Povich |
| 2026-09-16 | Force Out ground ball | 0-0 | SI | 95.7 | 103.7 | -32° | 3 | Infield | 0.086 | 0.107 | 0.082 | Carmen Mlodzinski |
| 2026-09-16 | Strikeout looking | 0-2 | SL | 90.2 | — | — | — | — | — | — | 0.000 | Jared Jones |
| 2026-09-16 | Single line drive | 2-2 | FF | 97.6 | 95.4 | 15° | 271 | RF gap | 0.874 | 1.072 | 0.838 | Jared Jones |
| 2026-09-16 | Out fly ball | 0-0 | FF | 97.3 | 90.0 | 22° | 302 | LF gap | 0.194 | 0.281 | 0.187 | Jared Jones |
| 2026-09-15 | Out line drive | 1-1 | SL | 90.2 | 81.5 | 28° | 287 | LF | 0.094 | 0.118 | 0.085 | Antwone Kelly |
| 2026-09-15 | Out line drive | 0-1 | FF | 98.4 | 88.4 | 26° | 339 | LF gap | 0.086 | 0.175 | 0.110 | Antwone Kelly |
| 2026-09-15 | Double fly ball | 0-0 | SI | 95.4 | 96.0 | 36° | 332 | RF | 0.137 | 0.476 | 0.249 | Gregory Soto |
| 2026-09-15 | Out ground ball | 2-1 | SL | 83.1 | 102.7 | 1° | 53 | Infield | 0.494 | 0.533 | 0.453 | Brandon Eisert |
| 2026-09-15 | Out line drive | 0-1 | FF | 94.4 | 102.3 | 15° | 306 | CF | 0.654 | 0.934 | 0.679 | Lake Bachar |
| 2026-09-12 | Out ground ball | 0-0 | SI | 94.4 | 92.8 | -19° | 6 | Infield | 0.129 | 0.146 | 0.120 | Tejay Antone |
| 2026-09-12 | Walk | 3-0 | SI | 91.6 | — | — | — | — | — | — | 0.698 | Brady Singer |
| 2026-09-11 | Out line drive | 0-0 | FF | 97.3 | 105.8 | 18° | 344 | CF | 0.537 | 1.076 | 0.673 | Brock Burke |
| 2026-09-11 | Single ground ball | 2-1 | SI | 97.3 | 104.8 | -3° | 33 | CF | 0.398 | 0.427 | 0.358 | Luis Mey |
| 2026-09-11 | Out fly ball | 0-0 | SL | 86.2 | 100.2 | 49° | 285 | LF gap | 0.014 | 0.032 | 0.019 | Julian Garcia |
| 2026-09-11 | Out fly ball | 0-0 | FF | 91.7 | 94.7 | 40° | 338 | CF | 0.034 | 0.105 | 0.053 | Andrew Abbott |
| 2026-09-11 | Sac Fly fly ball | 2-1 | FF | 92.2 | 89.9 | 37° | 328 | CF | — | — | 0.008 | Andrew Abbott |
| 2026-09-09 | Single line drive | 2-2 | SL | 90.6 | 102.0 | 11° | 225 | LF | 0.940 | 1.161 | 0.912 | Daniel Palencia |
| 2026-09-09 | Strikeout looking | 2-2 | FF | 92.9 | — | — | — | — | — | — | 0.000 | Kevin Gausman |
| 2026-09-08 | Out fly ball | 0-0 | SL | 88.7 | 101.1 | 58° | 241 | RF gap | 0.023 | 0.040 | 0.029 | Ryan Rolison |
| 2026-09-08 | Single line drive | 1-0 | SI | 94.8 | 110.1 | 6° | 150 | RF | 0.706 | 0.848 | 0.684 | Trent Thornton |
| 2026-09-07 | Strikeout looking | 1-2 | SI | 97.6 | — | — | — | — | — | — | 0.000 | Ryan Zeferjahn |
| 2026-09-07 | Out popup | 1-1 | FF | 92.9 | 88.2 | 82° | 15 | RF corner | 0.003 | 0.003 | 0.003 | Matthew Boyd |
| 2026-09-05 | Out fly ball | 1-2 | FF | 95.2 | 100.3 | 41° | 348 | CF | 0.134 | 0.481 | 0.257 | Emilio Pagán |
| 2026-09-05 | Strikeout swinging | 1-2 | SL | 85.1 | — | — | — | — | — | — | 0.000 | Tony Santillan |
| 2026-09-05 | Strikeout looking | 3-2 | SI | 94.5 | — | — | — | — | — | — | 0.000 | Tejay Antone |
| 2026-09-05 | Home Run line drive | 1-1 | FF | 93.3 | 103.6 | 22° | 401 | LF gap | 0.703 | 1.883 | 1.071 | Andrew Abbott |
| 2026-09-04 | Double line drive | 2-2 | SI | 97.1 | 100.5 | 19° | 339 | LF gap | 0.389 | 0.729 | 0.468 | Luis Mey |
| 2026-09-04 | Fielder's Choice ground ball | 2-1 | SI | 92.6 | 107.0 | -6° | 15 | Infield | 0.332 | 0.365 | 0.306 | Rhett Lowder |
| 2026-09-04 | Walk | 3-0 | SI | 92.8 | — | — | — | — | — | — | 0.698 | Rhett Lowder |
| 2026-09-04 | Out fly ball | 2-2 | SI | 94.1 | 84.1 | 41° | 284 | RF gap | 0.011 | 0.022 | 0.015 | Rhett Lowder |
| 2026-09-03 | Out ground ball | 0-0 | SI | 97.6 | 92.3 | -38° | 2 | Infield | 0.036 | 0.039 | 0.032 | Ryan Zeferjahn |
| 2026-09-03 | Out popup | 2-1 | FF | 93.6 | 83.5 | 68° | 140 | Infield | 0.011 | 0.021 | 0.015 | Kevin Gausman |
| 2026-09-02 | Strikeout swinging | 1-2 | CU | 75.9 | — | — | — | — | — | — | 0.000 | Caleb Thielbar |
| 2026-09-02 | Out ground ball | 1-2 | FF | 96.0 | 103.0 | -13° | 11 | RF gap | 0.229 | 0.229 | 0.206 | Ryan Rolison |
| 2026-09-02 | Single line drive | 0-0 | FF | 91.9 | 98.9 | 13° | 244 | RF gap | 0.934 | 1.145 | 0.902 | David Peterson |
| 2026-09-02 | Out popup | 0-2 | SL | 85.2 | 75.1 | 65° | 161 | RF | 0.003 | 0.003 | 0.003 | David Peterson |
| 2026-09-01 | Double ground ball | 0-0 | FF | 93.5 | 90.2 | -16° | 8 | RF corner | 0.094 | 0.105 | 0.085 | Matthew Boyd |
| 2026-08-29 | Single line drive | 0-0 | FF | 93.6 | 84.0 | 19° | 234 | CF | 0.920 | 1.059 | 0.861 | Peyton Gray |
| 2026-08-29 | Home Run fly ball | 2-2 | SI | 94.6 | 105.8 | 33° | 409 | LF | 0.806 | 3.167 | 1.617 | Cal Quantrill |