Pitch Mix Analysis
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.
Every pitcher's arsenal is grouped into pitch shapes — velocity, break and spin — pooling every pitcher who throws something similar rather than pitches sharing a label. Each shape is weighted by how often this pitcher throws it, so the number describes the arsenal the batter will face tonight.
The comparison is to the batter's own mark across every shape he has faced: “done well” means well for him, not well for a hitter.
9 of 10 shapes here clear the sample-size bar. Fewer pitches seen means a softer number, not a neutral one.
The last-30-games figure answers whether he is hitting this stuff now rather than whether he ever has. It is thin by construction — about a fifth of the pitches behind the career number — and is hidden below 100 pitches.
Descriptive only. The model does not read it.
Overall vs RHP
One row per pitch this pitcher actually throws, ordered by usage. The bar is how this batter has performed against that pitch from RHP; the dotted line is his own average across every pitch he faces from that hand, so a bar past it is one he handles better than most.
Color is distance from that average — deeper red better, deeper blue worse, pale close to his usual.
Exit velo is the one bar not drawn from zero: its range sits far above it, so the axis starts just below the lowest value.
Faded rows have too little contact to trust. The count on the right is the data 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 | Lee, Brooks: BA | Lee, Brooks: HR% | Lee, Brooks: Hard-Hit% | Lee, Brooks: Exit Velo | Lee, Brooks: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FF | 46% | 96.0 | 15.9" | -9.7" | 2118 | 2.1% | 67% | 0.482 | 0.260 | 6.6% | 37% | 89.1 | 0.333 |
| FS | 35% | 83.5 | 6.5" | -11.1" | 1098 | 0.0% | 33% | 0.346 | 0.212 | 0.0% | 19% | 83.7 | 0.180 |
| CU | 17% | 77.3 | -11.0" | 8.9" | 2293 | 10.0% | 45% | 0.332 | 0.233 | 4.7% | 33% | 88.4 | 0.334 |
| SL | 2% | 87.3 | 9.6" | -0.4" | 2174 | 0.212 | 5.9% | 33% | 87.4 | 0.258 |
The same idea as the table above, but grouped by how the pitch moves rather than what it is called.
Two pitchers can both call something a slider and throw very different pitches. This groups by what the ball actually does — speed, break and spin.
That pools every pitcher who throws something physically similar, so the sample is bigger and steadier.
| Shape (mostly) | Usage% | Velo | Vert Brk | Horz Brk | Allowed xwOBA/con | Lee, Brooks: BA | Lee, Brooks: HR% | Lee, Brooks: Hard-Hit% | Lee, Brooks: xwOBA/con |
|---|---|---|---|---|---|---|---|---|---|
| FF/SI/FC | 38% | 95.6 | 15.7" | -9.5" | 0.464 | 0.247 | 5.2% | 35% | 0.345 |
| CH/FS/FO | 35% | 83.5 | 6.5" | -11.1" | 0.346 | 0.212 | 1.9% | 26% | 0.225 |
| ST/SL/CU | 16% | 77.3 | -11.3" | 9.1" | 0.363 | 0.122 | 0.0% | 16% | 0.255 |
| CU/KC/ST | 16% | 77.3 | -11.3" | 9.2" | 0.321 | 0.250 | 5.0% | 32% | 0.330 |
| EP/FA/SL | 8% | 97.7 | 16.9" | -10.6" | |||||
| FF/SI/FC | 8% | 97.7 | 16.9" | -10.6" | 0.261 | 6.7% | 40% | 0.331 | |
| SL/ST/CU | 1% | 78.4 | -5.0" | 4.7" | 0.233 | 4.7% | 35% | 0.285 | |
| FC/SL/FF | 1% | 87.7 | 9.6" | -0.9" | 0.299 | 8.0% | 38% | 0.295 | |
| CH/SI/FS | 1% | 97.7 | 12.4" | -12.0" | 0.231 | 0.0% | 23% | 0.265 | |
| SI/FF/CH | 1% | 97.7 | 12.4" | -12.0" | 0.244 | 2.3% | 47% | 0.284 |
One row per plate appearance over the window, newest first — not a summary of them. Strikeouts and walks are here alongside the balls in play, so the outs are visible rather than implied by a rate.
Expected stats say what a batted ball was WORTH, from its exit velocity and launch angle, regardless of whether it found a glove. A 105 mph line drive caught at the track and a bloop that fell in are the same result in a box score and opposite results here.
xBA is blank on strikeouts and walks because there is no batted ball to judge. xwOBA is not: it carries the standard value of a walk (about .690) or a strikeout (zero), so it can be read across every row.
The pitch shown is the one that ENDED the at-bat, not the whole sequence. Location is where the ball was fielded — see the spray chart's note on why some of those are in foul ground.
79 PA · 30 games · 2026-07-11 to 2026-08-18| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-08-18 | Single fly ball | 0-2 | FS | 88.6 | 69.8 | 26° | 232 | RF gap | 0.991 | 1.047 | 0.899 | Mahle, Tyler |
| 2026-08-18 | Out fly ball | 1-2 | FF | 92.8 | 85.0 | 35° | 318 | CF | 0.020 | 0.046 | 0.029 | Mahle, Tyler |
| 2026-08-18 | Out fly ball | 0-1 | FF | 91.7 | 95.0 | 32° | 375 | CF | 0.131 | 0.432 | 0.230 | Mahle, Tyler |
| 2026-08-17 | Hit By Pitch | 0-0 | CU | 80.8 | — | — | — | — | — | — | 0.729 | Kerr, Ray |
| 2026-08-17 | Out ground ball | 1-1 | SI | 88.4 | 99.7 | 0° | 40 | Infield | 0.423 | 0.480 | 0.397 | Pérez, Martín |
| 2026-08-16 | Strikeout swinging | 2-2 | SL | 89.6 | — | — | — | — | — | — | 0.000 | Mayza, Tim |
| 2026-08-16 | Home Run fly ball | 1-2 | SL | 89.8 | 99.5 | 36° | 353 | RF | 0.220 | 0.828 | 0.421 | Painter, Andrew |
| 2026-08-15 | Strikeout looking | 1-2 | SL | 88.6 | — | — | — | — | — | — | 0.000 | McFarlane, Alex |
| 2026-08-13 | Out ground ball | 2-2 | FS | 97.8 | 72.2 | -27° | 4 | Infield | 0.062 | 0.065 | 0.061 | Duran, Jhoan |
| 2026-08-13 | Out ground ball | 3-2 | FF | 92.2 | 87.9 | 6° | 76 | Infield | 0.440 | 0.508 | 0.418 | Nola, Aaron |
| 2026-08-12 | Out ground ball | 1-1 | FS | 87.6 | 80.0 | 2° | 52 | RF corner | 0.195 | 0.242 | 0.200 | Hiraldo, Yaramil |
| 2026-08-12 | Single line drive | 3-2 | FF | 96.2 | 78.1 | 16° | 189 | LF | 0.863 | 0.959 | 0.803 | Sanders, Cam |
| 2026-08-11 | Out line drive | 0-2 | FS | 89.9 | 84.7 | 18° | 258 | RF gap | 0.934 | 1.026 | 0.855 | Cano, Yennier |
| 2026-08-11 | Grounded Into DP ground ball | 0-1 | SI | 94.7 | 96.5 | 1° | 65 | CF | 0.397 | 0.404 | 0.357 | Young, Brandon |
| 2026-08-11 | Double ground ball | 2-2 | FS | 83.5 | 88.3 | -1° | 38 | RF corner | 0.264 | 0.295 | 0.288 | Young, Brandon |
| 2026-08-11 | Single ground ball | 0-2 | FS | 82.8 | 93.5 | -6° | 12 | RF | 0.169 | 0.194 | 0.154 | Young, Brandon |
| 2026-08-10 | Walk | 3-2 | SI | 91.1 | — | — | — | — | — | — | 0.698 | Walker, Josh |
| 2026-08-10 | Out fly ball | 2-2 | SI | 96.1 | 85.2 | 43° | 296 | RF gap | 0.009 | 0.016 | 0.010 | Wolfram, Grant |
| 2026-08-10 | Single line drive | 2-2 | SI | 94.8 | 103.2 | 16° | 273 | LF gap | 0.531 | 0.877 | 0.596 | Rogers, Trevor |
| 2026-08-09 | Strikeout swinging | 1-2 | CU | 83.9 | — | — | — | — | — | — | 0.000 | Hall, DL |
| 2026-08-09 | Fielder's Choice ground ball | 3-2 | SI | 98.4 | 72.3 | -26° | 5 | Infield | 0.053 | 0.053 | 0.049 | Uribe, Abner |
| 2026-08-09 | Home Run fly ball | 1-1 | FF | 99.4 | 103.8 | 29° | 401 | RF gap | 0.783 | 2.990 | 1.539 | Misiorowski, Jacob |
| 2026-08-09 | Single ground ball | 0-2 | FF | 100.9 | 86.9 | -2° | 25 | Infield | 0.203 | 0.228 | 0.191 | Misiorowski, Jacob |
| 2026-08-08 | Strikeout swinging | 0-2 | CU | 85.9 | — | — | — | — | — | — | 0.000 | Ashby, Aaron |
| 2026-08-08 | Out fly ball | 2-1 | SI | 96.6 | 98.6 | 36° | 366 | RF | 0.220 | 0.828 | 0.421 | Patrick, Chad |
| 2026-08-06 | Single ground ball | 2-1 | SI | 96.2 | 68.3 | 12° | 109 | RF | 0.311 | 0.374 | 0.310 | Pearson, Nate |
| 2026-08-06 | Out fly ball | 0-0 | FF | 92.9 | 87.6 | 42° | 313 | LF gap | 0.003 | 0.007 | 0.004 | Wacha, Michael |
| 2026-08-06 | Double Play line drive | 2-0 | SI | 92.4 | 103.3 | 6° | 113 | RF corner | 0.649 | 0.732 | 0.603 | Wacha, Michael |
| 2026-08-05 | Strikeout swinging | 1-2 | SL | 85.9 | — | — | — | — | — | — | 0.000 | Cameron, Noah |
| 2026-08-05 | Strikeout swinging | 1-2 | FF | 93.8 | — | — | — | — | — | — | 0.000 | Cameron, Noah |
| 2026-08-04 | Strikeout swinging | 2-2 | SL | 89.3 | — | — | — | — | — | — | 0.000 | Lynch IV, Daniel |
| 2026-08-04 | Out ground ball | 1-1 | SI | 92.5 | 65.2 | -64° | 1 | Infield | 0.213 | 0.213 | 0.192 | Dobnak, Randy |
| 2026-08-02 | Strikeout swinging | 2-2 | FF | 96.0 | — | — | — | — | — | — | 0.000 | Kirby, George |
| 2026-08-02 | Out popup | 1-2 | SI | 96.6 | 92.9 | 69° | 116 | Infield | 0.006 | 0.006 | 0.006 | Kirby, George |
| 2026-08-01 | Single ground ball | 0-0 | FF | 100.6 | 101.0 | 1° | 52 | Infield | 0.483 | 0.550 | 0.453 | Muñoz, Andrés |
| 2026-08-01 | Double ground ball | 0-0 | SL | 86.0 | 96.9 | 5° | 105 | RF corner | 0.574 | 0.671 | 0.552 | Gilbert, Logan |
| 2026-08-01 | Out ground ball | 2-1 | SL | 87.4 | 90.2 | -16° | 9 | Infield | 0.094 | 0.105 | 0.085 | Gilbert, Logan |
| 2026-08-01 | Out line drive | 0-0 | SL | 87.6 | 100.8 | 21° | 354 | RF gap | 0.380 | 0.801 | 0.492 | Gilbert, Logan |
| 2026-07-31 | Out ground ball | 1-2 | CU | 84.2 | 68.2 | -66° | 1 | Infield | 0.240 | 0.240 | 0.216 | Rucker, Michael |
| 2026-07-31 | Out fly ball | 1-2 | FS | 84.0 | 95.7 | 43° | 306 | RF gap | 0.020 | 0.055 | 0.031 | Miller, Bryce |
| 2026-07-30 | Walk | 3-1 | SL | 84.1 | — | — | — | — | — | — | 0.698 | Cameron, Noah |
| 2026-07-29 | Out fly ball | 1-1 | SI | 95.5 | 90.1 | 31° | 312 | RF | 0.051 | 0.104 | 0.060 | Lynch IV, Daniel |
| 2026-07-29 | Out ground ball | 0-0 | SI | 91.0 | 92.5 | -12° | 7 | Infield | 0.145 | 0.162 | 0.130 | Dobnak, Randy |
| 2026-07-29 | Out fly ball | 2-2 | SI | 92.2 | 82.7 | 48° | 243 | LF | 0.009 | 0.010 | 0.008 | Dobnak, Randy |
| 2026-07-28 | Walk | 3-2 | SI | 95.9 | — | — | — | — | — | — | 0.698 | Lange, Alex |
| 2026-07-28 | Out fly ball | 3-1 | SI | 90.9 | 98.7 | 48° | 293 | RF | 0.011 | 0.024 | 0.012 | Lugo, Seth |
| 2026-07-26 | Single line drive | 1-0 | FF | 94.3 | 71.0 | 18° | 184 | RF gap | 0.757 | 0.790 | 0.681 | Hartlieb, Geoff |
| 2026-07-26 | Out ground ball | 0-1 | SL | 83.1 | 73.6 | 9° | 102 | Infield | 0.249 | 0.249 | 0.224 | Morales, Luis |
| 2026-07-26 | Out ground ball | 1-1 | FF | 97.7 | 80.6 | -39° | 3 | RF corner | 0.057 | 0.057 | 0.056 | Morales, Luis |
| 2026-07-26 | Walk | 3-2 | FF | 91.9 | — | — | — | — | — | — | 0.698 | Springs, Jeffrey |
| 2026-07-25 | Out ground ball | 0-0 | CU | 76.7 | 48.3 | -34° | 3 | RF corner | 0.132 | 0.132 | 0.119 | Basso, Brady |
| 2026-07-24 | Grounded Into DP ground ball | 1-2 | FF | 95.8 | 64.8 | 11° | 120 | Infield | 0.163 | 0.192 | 0.147 | Harris, Hogan |
| 2026-07-24 | Out popup | 1-2 | SL | 74.8 | 57.6 | 48° | 159 | Infield | 0.091 | 0.109 | 0.090 | Lopez, Jacob |
| 2026-07-23 | Out ground ball | 2-1 | SI | 97.3 | 98.5 | -18° | 5 | Infield | 0.166 | 0.166 | 0.149 | Holderman, Colin |
| 2026-07-23 | Force Out ground ball | 1-0 | FF | 97.0 | 81.4 | -4° | 19 | Infield | 0.124 | 0.135 | 0.117 | Smith, Cade |
| 2026-07-23 | Out popup | 3-2 | FF | 99.9 | 50.0 | 86° | 3 | RF corner | 0.006 | 0.006 | 0.005 | Williams, Gavin |
| 2026-07-22 | Out fly ball | 0-0 | FF | 94.2 | 79.4 | 36° | 285 | RF gap | 0.034 | 0.050 | 0.031 | Festa, Matt |
| 2026-07-22 | Strikeout swinging | 1-2 | CU | 81.6 | — | — | — | — | — | — | 0.000 | Sabrowski, Erik |
| 2026-07-22 | Home Run fly ball | 0-0 | SI | 94.8 | 100.4 | 28° | 401 | CF | 0.537 | 1.740 | 0.939 | Cecconi, Slade |
| 2026-07-22 | Single line drive | 0-1 | CU | 77.1 | 101.0 | 16° | 291 | RF gap | 0.594 | 0.881 | 0.632 | Cecconi, Slade |
| 2026-07-22 | Strikeout swinging | 1-2 | CU | 80.8 | — | — | — | — | — | — | 0.000 | Cecconi, Slade |
| 2026-07-20 | Strikeout swinging | 0-2 | FF | 92.4 | — | — | — | — | — | — | 0.000 | Festa, Matt |
| 2026-07-20 | Out ground ball | 0-0 | CU | 77.2 | 69.0 | -43° | 2 | Infield | 0.134 | 0.134 | 0.121 | Bibee, Tanner |
| 2026-07-20 | Triple line drive | 1-1 | SI | 93.0 | 103.5 | 15° | 258 | RF | 0.677 | 1.013 | 0.720 | Bibee, Tanner |
| 2026-07-19 | Out ground ball | 0-2 | FF | 93.1 | 87.5 | 5° | 99 | Infield | 0.423 | 0.496 | 0.409 | Pomeranz, Drew |
| 2026-07-19 | Out popup | 0-2 | FF | 90.4 | 84.5 | 61° | 164 | RF | 0.011 | 0.011 | 0.010 | Imanaga, Shota |
| 2026-07-19 | Strikeout swinging | 1-2 | FF | 91.0 | — | — | — | — | — | — | 0.000 | Imanaga, Shota |
| 2026-07-19 | Single ground ball | 1-0 | FF | 90.3 | 93.1 | 6° | 93 | LF | 0.503 | 0.577 | 0.477 | Imanaga, Shota |
| 2026-07-18 | Strikeout swinging | 2-2 | CU | 77.1 | — | — | — | — | — | — | 0.000 | Thielbar, Caleb |
| 2026-07-18 | Out ground ball | 0-1 | FF | 93.9 | 103.3 | -19° | 6 | Infield | 0.153 | 0.162 | 0.138 | Boyd, Matthew |
| 2026-07-17 | Out ground ball | 0-1 | FF | 91.8 | 80.5 | -9° | 14 | Infield | 0.102 | 0.133 | 0.095 | Rea, Colin |
| 2026-07-17 | Out fly ball | 0-0 | FF | 91.6 | 84.3 | 49° | 276 | LF | 0.009 | 0.009 | 0.008 | Rea, Colin |
| 2026-07-12 | Walk | 3-2 | FF | 94.4 | — | — | — | — | — | — | 0.698 | Silseth, Chase |
| 2026-07-12 | Out ground ball | 0-0 | SI | 95.0 | 95.0 | 4° | 90 | Infield | 0.471 | 0.528 | 0.438 | Soriano, José |
| 2026-07-12 | Out popup | 0-2 | FF | 98.0 | 59.6 | 43° | 182 | CF | 0.197 | 0.225 | 0.183 | Soriano, José |
| 2026-07-11 | Walk | 3-0 | SI | 98.6 | — | — | — | — | — | — | 0.698 | Fermín, José |
| 2026-07-11 | Incomplete PA | 1-2 | FF | 93.4 | — | — | — | — | — | — | — | Farris, Mitch |
| 2026-07-11 | Grounded Into DP ground ball | 0-1 | SI | 89.7 | 99.7 | -15° | 7 | Infield | 0.147 | 0.158 | 0.136 | Johnson, Ryan |
| 2026-07-11 | Out ground ball | 1-0 | FS | 83.9 | 53.1 | -21° | 8 | Infield | 0.086 | 0.086 | 0.077 | Johnson, Ryan |