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.
Kyle Teel LHB CHA vs Gavin Williams RHP CLE 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 | Kyle Teel: BA | Kyle Teel: HR% | Kyle Teel: Hard-Hit% | Kyle Teel: Exit Velo | Kyle Teel: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FF | 37% | 97.0 | 14.8" | -11.0" | 2302 | 3.9% | 47% | 0.419 | 0.316 | 5.1% | 46% | 90.0 | 0.423 |
| CU | 30% | 82.2 | -13.8" | 10.4" | 2460 | 3.2% | 45% | 0.372 | 0.182 | 0.0% | 14% | 79.8 | 0.293 |
| ST | 16% | 87.3 | -0.9" | 11.0" | 2295 | 4.4% | 26% | 0.358 | 0.333 | 0.0% | |||
| FC | 11% | 92.0 | 6.9" | -2.2" | 2257 | 2.7% | 48% | 0.346 | 0.400 | 20.0% | 54% | 94.1 | 0.785 |
| SI | 7% | 96.9 | 9.2" | -15.3" | 2047 | 7.0% | 50% | 0.473 | 0.312 | 9.4% | 57% | 92.2 | 0.610 |
| CH | 0% | 89.2 | 11.0" | -17.9" | 2127 | 0.250 | 1.9% | 37% | 85.6 | 0.391 |
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 | Kyle Teel: BA | Kyle Teel: HR% | Kyle Teel: Hard-Hit% | Kyle Teel: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|
| CH/SI/FS | 30% | 82.2 | -13.9" | 10.4" | 0.375 | 0.217 | 2.2% | 39% | 0.345 |
| CU/KC/ST | 29% | 82.2 | -13.9" | 10.4" | 0.375 | 0.174 | 0.0% | 17% | 0.322 |
| FF/SI/FC | 26% | 97.4 | 15.0" | -10.9" | 0.431 | 0.321 | 7.1% | 43% | 0.372 |
| SL/ST/CU | 13% | 87.0 | -1.5" | 10.8" | 0.400 | 0.250 | 5.0% | 58% | 0.452 |
| FC/SL/FF | 10% | 91.2 | 5.9" | 0.6" | 0.350 | 0.194 | 5.6% | 52% | 0.503 |
| FF/SI/FC | 10% | 95.1 | 13.8" | -9.5" | 0.383 | 0.341 | 2.4% | 45% | 0.519 |
| CH/FS/FO | 10% | 96.6 | 9.6" | -14.3" | 0.426 | 0.192 | 0.0% | 16% | 0.281 |
| SI/FF/CH | 9% | 96.6 | 9.5" | -14.3" | 0.426 | 0.290 | 9.7% | 67% | 0.611 |
| EP/FA/SL | 9% | 95.1 | 13.8" | -9.4" | 0.385 | 0.325 | 2.5% | 43% | 0.472 |
| ST/SL/CU | 1% | 87.4 | -1.7" | 14.7" | 0.412 | 5.9% | 29% | 0.397 |
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.
80 PA · 30 games · 2026-07-17 to 2026-10-10| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-10 | Single line drive | 0-1 | KC | 82.4 | 94.0 | 18° | 249 | RF gap | 0.509 | 0.642 | 0.482 | Gavin Williams |
| 2026-10-10 | Strikeout looking | 1-2 | KC | 83.6 | — | — | — | — | — | — | 0.000 | Gavin Williams |
| 2026-10-10 | Strikeout swinging | 0-2 | FF | 99.5 | — | — | — | — | — | — | 0.000 | Gavin Williams |
| 2026-10-08 | Force Out ground ball | 3-2 | FF | 99.4 | 99.7 | -4° | 19 | Infield | 0.294 | 0.317 | 0.265 | Gavin Williams |
| 2026-10-08 | Out fly ball | 2-2 | FC | 88.9 | 88.1 | 35° | 321 | RF gap | 0.026 | 0.056 | 0.035 | Shawn Armstrong |
| 2026-10-07 | Double Play line drive | 0-0 | FF | 94.5 | 97.9 | 13° | 173 | RF | 0.940 | 1.126 | 0.897 | Joey Cantillo |
| 2026-10-07 | Strikeout looking | 2-2 | ST | 82.5 | — | — | — | — | — | — | 0.000 | Foster Griffin |
| 2026-10-05 | Strikeout swinging | 0-2 | KC | 84.9 | — | — | — | — | — | — | 0.000 | Gavin Williams |
| 2026-10-05 | Single line drive | 2-2 | ST | 88.9 | 78.4 | 19° | 187 | CF | 0.989 | 1.071 | 0.906 | Gavin Williams |
| 2026-10-05 | Strikeout swinging | 1-2 | KC | 83.6 | — | — | — | — | — | — | 0.000 | Gavin Williams |
| 2026-10-03 | Strikeout swinging | 0-2 | FF | 96.1 | — | — | — | — | — | — | 0.000 | Cade Smith |
| 2026-10-03 | Walk | 3-1 | FF | 93.3 | — | — | — | — | — | — | 0.698 | Erik Sabrowski |
| 2026-10-03 | Strikeout looking | 0-2 | SI | 96.2 | — | — | — | — | — | — | 0.000 | Parker Messick |
| 2026-09-30 | Single line drive | 0-1 | SI | 95.6 | 93.1 | 16° | 215 | RF | 0.797 | 0.943 | 0.751 | Josh Hader |
| 2026-09-30 | Strikeout swinging | 1-2 | FC | 94.2 | — | — | — | — | — | — | 0.000 | Bryan Abreu |
| 2026-09-30 | Strikeout swinging | 2-2 | FF | 96.8 | — | — | — | — | — | — | 0.000 | AJ Blubaugh |
| 2026-09-30 | Single ground ball | 0-0 | SI | 97.5 | 95.9 | 6° | 97 | RF gap | 0.577 | 0.659 | 0.550 | Hunter Brown |
| 2026-09-29 | Grounded Into DP ground ball | 2-2 | FC | 86.7 | 94.8 | 0° | 44 | Infield | 0.347 | 0.402 | 0.326 | Josh Hendrickson |
| 2026-09-29 | Single line drive | 2-1 | ST | 82.6 | 108.9 | 12° | 199 | RF gap | 0.914 | 1.245 | 0.921 | Bryan King |
| 2026-09-26 | Single line drive | 0-1 | SI | 90.2 | 85.6 | 21° | 255 | LF gap | 0.537 | 0.639 | 0.502 | Brennan Bernardino |
| 2026-09-26 | Single ground ball | 3-1 | FF | 94.4 | 83.7 | 9° | 107 | Infield | 0.457 | 0.506 | 0.427 | Ryan Feltner |
| 2026-09-25 | Single ground ball | 1-1 | FF | 94.2 | 103.6 | -9° | 14 | CF | 0.280 | 0.288 | 0.277 | Juan Mejia |
| 2026-09-25 | Out fly ball | 0-1 | CU | 80.6 | 100.4 | 41° | 319 | LF gap | 0.134 | 0.481 | 0.257 | Tomoyuki Sugano |
| 2026-09-25 | Sac Fly fly ball | 2-1 | FF | 92.8 | 91.4 | 26° | 322 | CF | — | — | 0.114 | Tomoyuki Sugano |
| 2026-09-24 | Hit By Pitch | 3-1 | FC | 87.8 | — | — | — | — | — | — | 0.729 | Nolan Hoffman |
| 2026-09-24 | Single line drive | 2-2 | FF | 95.2 | 91.3 | 19° | 250 | CF | 0.514 | 0.599 | 0.471 | Spencer Bivens |
| 2026-09-24 | Walk | 3-1 | FF | 90.3 | — | — | — | — | — | — | 0.698 | Jose Cuas |
| 2026-09-24 | Home Run fly ball | 0-0 | FF | 96.3 | 105.6 | 28° | 424 | RF gap | 0.923 | 3.622 | 1.857 | Alex Lange |
| 2026-09-24 | Hit By Pitch | 0-2 | ST | 83.8 | — | — | — | — | — | — | 0.729 | Randy Dobnak |
| 2026-09-24 | Sac Bunt ground ball | 0-0 | SI | 90.8 | 38.6 | -34° | 3 | Infield | — | — | — | Randy Dobnak |
| 2026-09-23 | Strikeout looking | 3-2 | SI | 91.3 | — | — | — | — | — | — | 0.000 | Connor Thomas |
| 2026-09-23 | Walk | 3-2 | FF | 96.5 | — | — | — | — | — | — | 0.698 | Anthony Gose |
| 2026-09-23 | Single line drive | 3-2 | FF | 93.0 | 100.3 | 15° | 279 | LF gap | 0.706 | 0.972 | 0.716 | Seth Lugo |
| 2026-09-22 | Strikeout swinging | 0-2 | FF | 92.0 | — | — | — | — | — | — | 0.000 | Nolan Hoffman |
| 2026-09-22 | Walk | 3-1 | FF | 93.1 | — | — | — | — | — | — | 0.698 | Tony Gonsolin |
| 2026-09-22 | Out popup | 3-2 | SI | 93.0 | 66.1 | 59° | 170 | RF | 0.009 | 0.010 | 0.009 | Daniel Lynch IV |
| 2026-09-22 | Grounded Into DP ground ball | 1-0 | SI | 93.1 | 98.1 | -4° | 27 | RF corner | 0.268 | 0.297 | 0.241 | Daniel Lynch IV |
| 2026-09-20 | Walk | 3-2 | SI | 90.9 | — | — | — | — | — | — | 0.698 | Brant Hurter |
| 2026-09-20 | Out fly ball | 2-2 | FC | 88.6 | 82.5 | 48° | 235 | RF | 0.009 | 0.010 | 0.008 | Ty Madden |
| 2026-09-20 | Single ground ball | 3-2 | FC | 86.7 | 82.8 | 10° | 110 | RF | 0.454 | 0.486 | 0.413 | Tyler Holton |
| 2026-09-20 | Out fly ball | 1-2 | FF | 96.9 | 77.3 | 36° | 278 | RF | 0.083 | 0.107 | 0.075 | Troy Melton |
| 2026-09-19 | Strikeout looking | 3-2 | SI | 95.8 | — | — | — | — | — | — | 0.000 | Jackson Jobe |
| 2026-09-18 | Strikeout swinging | 1-2 | FF | 94.8 | — | — | — | — | — | — | 0.000 | Drew Sommers |
| 2026-09-18 | Out ground ball | 2-1 | SI | 91.4 | 95.1 | -6° | 22 | RF corner | 0.224 | 0.255 | 0.223 | Brant Hurter |
| 2026-09-18 | Out fly ball | 1-1 | FF | 96.8 | 95.6 | 34° | 363 | RF gap | 0.131 | 0.465 | 0.252 | Beau Brieske |
| 2026-09-18 | Hit By Pitch | 1-0 | FF | 94.1 | — | — | — | — | — | — | 0.729 | Andrew Sears |
| 2026-09-16 | Walk | 3-2 | FF | 95.3 | — | — | — | — | — | — | 0.699 | Erik Sabrowski |
| 2026-09-16 | Strikeout swinging | 0-2 | FF | 97.3 | — | — | — | — | — | — | 0.000 | Parker Messick |
| 2026-09-16 | Strikeout swinging | 0-2 | FF | 96.2 | — | — | — | — | — | — | 0.000 | Parker Messick |
| 2026-09-15 | Walk | 3-2 | SI | 93.1 | — | — | — | — | — | — | 0.699 | Tim Herrin |
| 2026-09-15 | Walk | 3-2 | FF | 95.7 | — | — | — | — | — | — | 0.699 | Craig Yoho |
| 2026-09-14 | Strikeout swinging | 2-2 | FF | 96.1 | — | — | — | — | — | — | 0.000 | Slade Cecconi |
| 2026-09-14 | Double line drive | 1-1 | FF | 94.3 | 107.2 | 18° | 294 | LF | 0.600 | 1.205 | 0.761 | Tim Herrin |
| 2026-09-14 | Strikeout swinging | 0-2 | ST | 87.3 | — | — | — | — | — | — | 0.000 | Gavin Williams |
| 2026-09-14 | Strikeout looking | 3-2 | ST | 87.8 | — | — | — | — | — | — | 0.000 | Gavin Williams |
| 2026-09-14 | Walk | 3-0 | FF | 98.4 | — | — | — | — | — | — | 0.699 | Gavin Williams |
| 2026-09-13 | Walk | 3-2 | SI | 91.6 | — | — | — | — | — | — | 0.699 | Michael McGreevy |
| 2026-09-13 | Out ground ball | 0-0 | CU | 78.6 | 62.8 | -37° | 2 | Infield | 0.077 | 0.077 | 0.069 | Michael McGreevy |
| 2026-09-12 | Walk | 3-2 | ST | 79.4 | — | — | — | — | — | — | 0.698 | Riley O'Brien |
| 2026-09-12 | Strikeout looking | 3-2 | ST | 76.9 | — | — | — | — | — | — | 0.000 | Justin Bruihl |
| 2026-09-12 | Strikeout looking | 1-2 | SI | 95.6 | — | — | — | — | — | — | 0.000 | Kyle Leahy |
| 2026-09-11 | Single line drive | 0-0 | ST | 77.1 | 86.3 | 17° | 193 | RF | 0.949 | 1.043 | 0.872 | Justin Bruihl |
| 2026-09-11 | Single ground ball | 0-1 | FF | 93.2 | 105.0 | -4° | 24 | LF gap | 0.396 | 0.423 | 0.356 | Luis Gastelum |
| 2026-09-09 | Walk | 3-2 | SI | 96.6 | — | — | — | — | — | — | 0.699 | Camilo Doval |
| 2026-09-09 | Strikeout swinging | 2-2 | FF | 92.6 | — | — | — | — | — | — | 0.000 | Brandon Eisert |
| 2026-09-08 | Single ground ball | 2-2 | FF | 99.9 | 102.7 | -11° | 12 | RF | 0.252 | 0.263 | 0.230 | Wilber Dotel |
| 2026-09-08 | Home Run fly ball | 2-0 | SI | 96.0 | 112.4 | 23° | 408 | RF | 0.991 | 3.819 | 1.965 | Bubba Chandler |
| 2026-09-08 | Strikeout swinging | 2-2 | FF | 98.2 | — | — | — | — | — | — | 0.000 | Bubba Chandler |
| 2026-09-06 | Home Run fly ball | 0-0 | SI | 94.2 | 106.0 | 32° | 409 | CF | 0.849 | 3.370 | 1.737 | Tommy Nance |
| 2026-09-06 | Strikeout looking | 2-2 | SI | 93.7 | — | — | — | — | — | — | 0.000 | Taylor Rogers |
| 2026-09-06 | Out ground ball | 0-1 | FF | 97.8 | 62.2 | 3° | 41 | Infield | 0.139 | 0.170 | 0.138 | Andrew Morris |
| 2026-09-06 | Strikeout swinging | 0-2 | FF | 88.2 | — | — | — | — | — | — | 0.000 | Bailey Ober |
| 2026-09-04 | Force Out ground ball | 0-1 | FF | 95.0 | 40.3 | -15° | 6 | Infield | 0.260 | 0.265 | 0.234 | Garrett Acton |
| 2026-09-04 | Out fly ball | 0-1 | CU | 78.6 | 93.0 | 41° | 339 | RF | 0.014 | 0.041 | 0.022 | Zebby Matthews |
| 2026-09-04 | Out popup | 2-0 | FF | 94.3 | 78.8 | 74° | 95 | Infield | 0.001 | 0.001 | 0.000 | Zebby Matthews |
| 2026-07-17 | Out line drive | 3-2 | FF | 91.9 | 103.2 | 20° | 360 | CF | 0.543 | 1.169 | 0.713 | CJ Van Eyk |
| 2026-07-17 | Strikeout swinging | 2-2 | FC | 86.3 | — | — | — | — | — | — | 0.000 | Patrick Corbin |
| 2026-07-17 | Strikeout swinging | 0-2 | FF | 92.9 | — | — | — | — | — | — | 0.000 | Adam Macko |
| 2026-07-17 | Strikeout looking | 0-2 | CU | 79.9 | — | — | — | — | — | — | 0.000 | Spencer Miles |
| 2026-07-17 | Double fly ball | 0-0 | CU | 81.2 | 66.7 | 26° | 175 | LF corner | 0.974 | 1.023 | 0.884 | Spencer Miles |