Lucas Spence LHB HOU
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.
Where this player ranks against the league over the same games. 100 is the best in baseball, 50 is average, and right is always better.
Rows marked ↓ are ones where a low number is good, so the bar is flipped. The figure on the right is always the real value.
Windows count games played, not calendar days.
2026-07-17 to 2026-09-30 · 402 qualified playersLucas Spence’s last 30 games, ending 2026-09-30 — 17 days ago. Ranked against the league as it stood that day.
Where every base hit landed, over this player's recent games. Outs are not plotted.
Distance is read off the dotted rings, not a drawn fence -- real fences vary by 100+ feet park to park, so one drawn wall would be accurate for none of them.
Statcast records where a ball was FIELDED, not where it landed, so about 4% of hits (a grounder run down in foul ground, say) are pulled back to the foul line here rather than plotted past it.
13 hits · 19 games · 2026-07-17 to 2026-09-30Hover or tap any hit for how it was struck — distance, exit velocity, launch angle, the pitch, and what that batted ball was expected to be worth.
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 · 19 games · 2026-07-17 to 2026-09-30| Date | Result | Count | Pitch | Velo | Exit Velo | Angle | Dist | Location | xBA | xSLG | xwOBA | Pitcher |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-30 | Out fly ball | 3-2 | ST | 83.6 | 101.7 | 35° | 374 | CF | 0.463 | 1.743 | 0.891 | Erick Fedde |
| 2026-09-30 | Out ground ball | 1-0 | SI | 100.3 | 87.4 | -29° | 3 | Infield | 0.050 | 0.054 | 0.045 | Jordan Hicks |
| 2026-09-30 | Strikeout swinging | 2-2 | FF | 94.5 | — | — | — | — | — | — | 0.000 | Sean Burke |
| 2026-09-30 | Out ground ball | 1-2 | KC | 79.9 | 73.0 | 5° | 70 | Infield | 0.228 | 0.257 | 0.219 | Sean Burke |
| 2026-09-29 | Strikeout swinging | 0-2 | FF | 97.1 | — | — | — | — | — | — | 0.000 | Grant Taylor |
| 2026-09-29 | Out ground ball | 1-2 | CU | 85.4 | 60.6 | -41° | 2 | Infield | 0.177 | 0.178 | 0.164 | David Sandlin |
| 2026-09-29 | Single ground ball | 3-1 | SI | 94.9 | 102.8 | -1° | 43 | LF gap | 0.460 | 0.500 | 0.421 | Sean Newcomb |
| 2026-09-29 | Strikeout swinging | 1-2 | SL | 83.3 | — | — | — | — | — | — | 0.000 | Hagen Smith |
| 2026-09-27 | Walk | 3-1 | SI | 93.1 | — | — | — | — | — | — | 0.698 | Geoff Hartlieb |
| 2026-09-27 | Walk | 3-2 | FF | 94.8 | — | — | — | — | — | — | 0.698 | Chris Roycroft |
| 2026-09-27 | Out ground ball | 2-2 | SL | 85.2 | 81.7 | -8° | 18 | Infield | 0.082 | 0.107 | 0.074 | Scott Blewett |
| 2026-09-27 | Triple line drive | 0-1 | SL | 81.7 | 94.0 | 24° | 351 | RF gap | 0.169 | 0.346 | 0.217 | Brady Basso |
| 2026-09-27 | Walk | 3-0 | FF | 95.9 | — | — | — | — | — | — | 0.698 | Seth Johnson |
| 2026-09-26 | Home Run fly ball | 2-0 | FF | 93.1 | 101.1 | 35° | 380 | RF | 0.391 | 1.471 | 0.759 | Yunior Tur |
| 2026-09-26 | Double line drive | 2-2 | FS | 90.5 | 106.4 | 10° | 210 | RF | 0.883 | 1.119 | 0.867 | Drew Rom |
| 2026-09-26 | Strikeout looking | 3-2 | FF | 95.9 | — | — | — | — | — | — | 0.000 | Scott Blewett |
| 2026-09-26 | Strikeout swinging | 3-2 | CH | 88.6 | — | — | — | — | — | — | 0.000 | Jack Perkins |
| 2026-09-26 | Strikeout swinging | 3-2 | ST | 87.2 | — | — | — | — | — | — | 0.000 | Jack Perkins |
| 2026-09-25 | Strikeout swinging | 0-2 | FF | 95.7 | — | — | — | — | — | — | 0.000 | Hogan Harris |
| 2026-09-25 | Strikeout looking | 3-2 | FF | 97.8 | — | — | — | — | — | — | 0.000 | Seth Johnson |
| 2026-09-25 | Out ground ball | 1-0 | FF | 90.2 | 56.4 | 9° | 73 | RF corner | 0.127 | 0.162 | 0.115 | Jacob Lopez |
| 2026-09-25 | Out fly ball | 3-1 | FF | 90.3 | 102.0 | 32° | 390 | CF | 0.554 | 2.110 | 1.083 | Jacob Lopez |
| 2026-09-24 | Home Run line drive | 0-0 | FF | 97.1 | 101.8 | 24° | 351 | RF | 0.623 | 1.850 | 1.020 | Elvis Alvarado |
| 2026-09-24 | Home Run fly ball | 1-1 | FF | 97.5 | 96.9 | 30° | 387 | RF gap | 0.266 | 0.847 | 0.461 | Scott Blewett |
| 2026-09-24 | Out fly ball | 2-2 | FF | 95.1 | 96.2 | 29° | 383 | CF | 0.237 | 0.710 | 0.398 | Mason Barnett |
| 2026-09-24 | Home Run line drive | 1-1 | CH | 85.8 | 105.8 | 24° | 429 | RF gap | 0.920 | 3.293 | 1.727 | Mason Barnett |
| 2026-09-23 | Strikeout swinging | 0-2 | FF | 97.3 | — | — | — | — | — | — | 0.000 | Seranthony Domínguez |
| 2026-09-23 | Strikeout swinging | 1-2 | SI | 99.1 | — | — | — | — | — | — | 0.000 | José A. Ferrer |
| 2026-09-23 | Out popup | 0-1 | FF | 96.4 | 50.8 | 55° | 118 | LF corner | 0.006 | 0.006 | 0.005 | George Kirby |
| 2026-09-23 | Walk | 3-1 | FF | 96.8 | — | — | — | — | — | — | 0.698 | George Kirby |
| 2026-07-31 | Single ground ball | 0-2 | EP | 54.4 | 92.1 | -14° | 11 | RF gap | 0.143 | 0.164 | 0.135 | — |
| 2026-07-29 | Out ground ball | 0-0 | SI | 88.5 | 92.6 | -14° | 9 | RF | 0.130 | 0.145 | 0.117 | Brent Suter |
| 2026-07-29 | Walk | 3-1 | SL | 83.2 | — | — | — | — | — | — | 0.698 | Mitch Farris |
| 2026-07-29 | Strikeout swinging | 1-2 | FF | 96.3 | — | — | — | — | — | — | 0.000 | Grayson Rodriguez |
| 2026-07-29 | Strikeout swinging | 1-2 | CH | 83.4 | — | — | — | — | — | — | 0.000 | Grayson Rodriguez |
| 2026-07-28 | Strikeout swinging | 1-2 | SL | 81.6 | — | — | — | — | — | — | 0.000 | Mitch Farris |
| 2026-07-27 | Fielder's Choice ground ball | 0-1 | SL | 89.7 | 104.8 | -5° | 17 | Infield | 0.425 | 0.450 | 0.382 | José Fermín |
| 2026-07-27 | Out line drive | 1-2 | FS | 87.5 | 103.6 | 16° | 343 | CF | 0.534 | 0.871 | 0.591 | Chase Silseth |
| 2026-07-27 | Out ground ball | 1-1 | CH | 90.4 | 85.0 | -38° | 3 | Infield | 0.060 | 0.061 | 0.055 | Walbert Ureña |
| 2026-07-27 | Strikeout swinging | 2-2 | CH | 93.5 | — | — | — | — | — | — | 0.000 | Walbert Ureña |
| 2026-07-25 | Out line drive | 1-1 | SL | 86.8 | 88.0 | 23° | 306 | CF | 0.174 | 0.262 | 0.184 | Tyler Schweitzer |
| 2026-07-25 | Out ground ball | 0-1 | CH | 79.5 | 86.3 | -11° | 13 | RF corner | 0.143 | 0.176 | 0.129 | Trevor Richards |
| 2026-07-25 | Strikeout looking | 2-2 | FC | 90.8 | — | — | — | — | — | — | 0.000 | Sean Burke |
| 2026-07-25 | Strikeout swinging | 2-2 | FF | 97.2 | — | — | — | — | — | — | 0.000 | Sean Burke |
| 2026-07-24 | Strikeout swinging | 1-2 | ST | 79.9 | — | — | — | — | — | — | 0.000 | Chris Murphy |
| 2026-07-24 | Strikeout looking | 1-2 | CH | 79.6 | — | — | — | — | — | — | 0.000 | Trevor Richards |
| 2026-07-24 | Strikeout swinging | 2-2 | ST | 78.9 | — | — | — | — | — | — | 0.000 | Bryan Hudson |
| 2026-07-24 | Single line drive | 0-0 | SI | 92.6 | 91.4 | 12° | 201 | LF | 0.800 | 0.915 | 0.763 | Davis Martin |
| 2026-07-24 | Hit By Pitch | 0-0 | CU | 79.4 | — | — | — | — | — | — | 0.729 | Davis Martin |
| 2026-07-22 | Out fly ball | 2-2 | FF | 97.3 | 91.8 | 52° | 262 | LF gap | 0.006 | 0.013 | 0.009 | Sandy Alcantara |
| 2026-07-22 | Strikeout swinging | 1-2 | CH | 91.8 | — | — | — | — | — | — | 0.000 | Sandy Alcantara |
| 2026-07-22 | Force Out ground ball | 0-0 | FC | 90.9 | 71.6 | -28° | 4 | Infield | 0.057 | 0.061 | 0.051 | Sandy Alcantara |
| 2026-07-21 | Strikeout swinging | 0-2 | FF | 96.2 | — | — | — | — | — | — | 0.000 | Ryan Gusto |
| 2026-07-21 | Out ground ball | 3-2 | SI | 94.0 | 90.0 | -30° | 4 | CF | 0.079 | 0.104 | 0.078 | Tyler Phillips |
| 2026-07-21 | Incomplete PA | 1-1 | FS | 85.9 | — | — | — | — | — | — | — | Tyler Phillips |
| 2026-07-21 | Double line drive | 3-2 | SI | 94.7 | 98.0 | 22° | 348 | RF | 0.311 | 0.632 | 0.393 | Tyler Phillips |
| 2026-07-20 | Out ground ball | 1-0 | SI | 93.4 | 107.3 | -6° | 20 | Infield | 0.381 | 0.419 | 0.352 | Dax Fulton |
| 2026-07-20 | Out fly ball | 1-1 | SL | 89.0 | 101.1 | 33° | 374 | RF gap | 0.426 | 1.662 | 0.860 | Dax Fulton |
| 2026-07-20 | Out ground ball | 1-2 | CH | 86.8 | 106.9 | 6° | 116 | Infield | 0.629 | 0.718 | 0.586 | Janson Junk |
| 2026-07-20 | Walk | 3-2 | SL | 87.8 | — | — | — | — | — | — | 0.698 | Janson Junk |
| 2026-07-19 | Out ground ball | 1-0 | SI | 96.5 | 82.4 | -40° | 2 | Infield | 0.079 | 0.083 | 0.077 | Grant Wolfram |
| 2026-07-19 | Strikeout swinging | 1-2 | SL | 85.6 | — | — | — | — | — | — | 0.000 | Brandon Young |
| 2026-07-19 | Strikeout swinging | 1-2 | FF | 95.2 | — | — | — | — | — | — | 0.000 | Brandon Young |
| 2026-07-19 | Strikeout swinging | 1-2 | SL | 86.9 | — | — | — | — | — | — | 0.000 | Brandon Young |
| 2026-07-18 | Out fly ball | 2-2 | FC | 91.0 | 84.2 | 57° | 220 | LF corner | 0.026 | 0.036 | 0.027 | Tyler Wells |
| 2026-07-18 | Single line drive | 0-0 | FC | 83.7 | 79.7 | 18° | 214 | RF gap | 0.997 | 1.124 | 0.931 | Trevor Rogers |
| 2026-07-18 | Single ground ball | 1-0 | FF | 93.4 | 106.9 | 7° | 163 | CF | 0.626 | 0.716 | 0.585 | Trevor Rogers |
| 2026-07-18 | Strikeout swinging | 3-2 | FF | 93.8 | — | — | — | — | — | — | 0.000 | Trevor Rogers |
| 2026-07-17 | Out fly ball | 1-2 | FF | 94.0 | 96.7 | 39° | 344 | LF gap | 0.077 | 0.271 | 0.139 | Andrew Kittredge |
| 2026-07-17 | Single ground ball | 0-0 | SI | 96.2 | 103.7 | -21° | 5 | RF gap | 0.183 | 0.204 | 0.165 | Grant Wolfram |
| 2026-07-17 | Out ground ball | 1-1 | CU | 77.0 | 75.9 | 9° | 98 | Infield | 0.266 | 0.266 | 0.239 | Dean Kremer |
| 2026-07-17 | Walk | 3-2 | CU | 76.4 | — | — | — | — | — | — | 0.698 | Dean Kremer |
How the stat settles as the window lengthens. Exact values are in the table below.
The x-axis is how many previous games are counted — 1 game on the left, 100 on the right, evenly spaced rather than to scale.
Short windows jump around; longer ones flatten out. Where a line stops moving is roughly where that stat becomes trustworthy.
Choose stats & windows
How windows work
Windows count games, not days, and never include the game
shown.
Short windows are noisier than they look — a 1-game window is fewer than
four plate appearances.
Rates like BABIP and ISO aren't calculated over spans too short to mean
anything, so a stat can show fewer columns than the window selected.
— 56 of 56 metrics,
11 of 11 windows
Dimmed cells are based on thin data — read them with caution.
Stats with almost no data anywhere in the league are left out of this table entirely. Dimmed cells clear that bar but still fall short of what the models demand. Hover any cell to see how much of the league actually has it.
| stat | 1g | 2g | 3g | 5g | 7g | 10g | 15g | 20g | 30g | 50g | 100g |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ab_game | 4.000 | 8.000 | 13.000 | 22.000 | 30.000 | 36.000 | 56.000 | 72.000 | 72.000 | 72.000 | 72.000 |
| air_ball_rate | · | · | · | · | · | 0.500 | 0.500 | 0.474 | 0.474 | 0.474 | 0.474 |
| appearances | 1.000 | 2.000 | 3.000 | 5.000 | 7.000 | 10.000 | 15.000 | 19.000 | 19.000 | 19.000 | 19.000 |
| ba | 0.000 | 0.125 | 0.200 | 0.211 | 0.269 | 0.258 | 0.204 | · | · | · | · |
| babip | 0.000 | 0.200 | 0.286 | 0.300 | 0.250 | 0.286 | 0.250 | 0.265 | 0.265 | 0.265 | 0.265 |
| babip_den | 3.000 | 5.000 | 7.000 | 10.000 | 12.000 | 14.000 | 24.000 | 34.000 | 34.000 | 34.000 | 34.000 |
| babip_num | 0.000 | 1.000 | 2.000 | 3.000 | 3.000 | 4.000 | 6.000 | 9.000 | 9.000 | 9.000 | 9.000 |
| barrel | 1.000 | 1.000 | 1.000 | 2.000 | 4.000 | 4.000 | 4.000 | 5.000 | 5.000 | 5.000 | 5.000 |
| barrel_per_ab | 0.250 | 0.125 | 0.077 | 0.091 | 0.133 | 0.111 | 0.071 | 0.069 | 0.069 | 0.069 | 0.069 |
| bat_speed | 71.800 | 70.347 | 69.968 | 73.208 | 72.310 | 69.856 | 70.793 | 70.574 | 70.574 | 70.574 | 70.574 |
| bip_per_pa | 0.750 | 0.625 | 0.538 | 0.500 | 0.533 | 0.500 | 0.500 | 0.528 | 0.528 | 0.528 | 0.528 |
| blast | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
| blast_per_ab | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
| chase | 2.000 | 5.000 | 5.000 | 8.000 | 11.000 | 14.000 | 29.000 | 38.000 | 38.000 | 38.000 | 38.000 |
| chase_rate | 0.222 | 0.312 | 0.172 | 0.154 | 0.172 | 0.189 | 0.248 | 0.255 | 0.255 | 0.255 | 0.255 |
| contact | 4.000 | 8.000 | 13.000 | 22.000 | 30.000 | 36.000 | 56.000 | 72.000 | 72.000 | 72.000 | 72.000 |
| estimated_ba_using_speedangle | 0.247 | 0.276 | 0.233 | 0.326 | 0.352 | 0.328 | 0.304 | 0.321 | 0.321 | 0.321 | 0.321 |
| estimated_ba_using_speedangle_sum | 0.741 | 1.378 | 1.629 | 3.584 | 5.636 | 5.909 | 8.498 | 12.188 | 12.188 | 12.188 | 12.188 |
| estimated_slg_using_speedangle | 0.685 | 0.546 | 0.455 | 0.732 | 0.922 | 0.837 | 0.665 | 0.634 | 0.634 | 0.634 | 0.634 |
| estimated_woba_using_speedangle | 0.385 | 0.348 | 0.290 | 0.441 | 0.529 | 0.484 | 0.405 | 0.403 | 0.403 | 0.403 | 0.403 |
| estimated_woba_using_speedangle_sum | 2.054 | 2.732 | 3.185 | 8.047 | 14.753 | 15.062 | 18.607 | 24.106 | 24.106 | 24.106 | 24.106 |
| ev_max | 101.700 | 102.250 | 99.500 | 101.380 | 94.786 | 94.244 | 94.443 | 95.694 | 95.694 | 95.694 | 95.694 |
| fly_ball | 1.000 | 1.000 | 1.000 | 3.000 | 5.000 | 5.000 | 6.000 | 9.000 | 9.000 | 9.000 | 9.000 |
| ground_ball | 2.000 | 4.000 | 5.000 | 6.000 | 6.000 | 8.000 | 13.000 | 19.000 | 19.000 | 19.000 | 19.000 |
| hard_hit | 1.000 | 2.000 | 2.000 | 7.000 | 11.000 | 11.000 | 14.000 | 20.000 | 20.000 | 20.000 | 20.000 |
| hh_ab | 0.250 | 0.250 | 0.154 | 0.318 | 0.367 | 0.306 | 0.250 | 0.278 | 0.278 | 0.278 | 0.278 |
| hit | 0.000 | 1.000 | 2.000 | 4.000 | 7.000 | 8.000 | 10.000 | 13.000 | 13.000 | 13.000 | 13.000 |
| hit_distance | 149.000 | 98.400 | 123.000 | 174.000 | 223.875 | 200.111 | 182.250 | 175.237 | 175.237 | 175.237 | 175.237 |
| hr | 0.000 | 0.000 | 0.000 | 1.000 | 4.000 | 4.000 | 4.000 | 4.000 | 4.000 | 4.000 | 4.000 |
| hr_per_fb | · | · | · | · | · | · | · | · | 0.222 | 0.222 | 0.222 |
| hr_platoon | · | · | · | · | · | · | · | 4.000 | 4.000 | 4.000 | 4.000 |
| hr_rate | 0.000 | 0.000 | 0.000 | 0.045 | 0.133 | 0.111 | 0.071 | 0.056 | 0.056 | 0.056 | 0.056 |
| iso | 0.000 | 0.000 | 0.200 | 0.316 | 0.577 | 0.484 | 0.327 | · | · | · | · |
| la_contact | 3.000 | 5.000 | 7.000 | 11.000 | 16.000 | 18.000 | 28.000 | 38.000 | 38.000 | 38.000 | 38.000 |
| launch_speed | 87.367 | 85.100 | 85.886 | 87.918 | 88.663 | 89.072 | 89.779 | 91.016 | 91.016 | 91.016 | 91.016 |
| launch_speed_angle_sum | 3.667 | -6.200 | -2.143 | 6.455 | 14.562 | 11.389 | 7.786 | 8.421 | 8.421 | 8.421 | 8.421 |
| launch_speed_sum | 262.100 | 572.100 | 888.400 | 1673.800 | 2199.100 | 2602.100 | 4217.800 | 5703.900 | 5703.900 | 5703.900 | 5703.900 |
| line_drive | 0.000 | 0.000 | 1.000 | 2.000 | 4.000 | 4.000 | 8.000 | 9.000 | 9.000 | 9.000 | 9.000 |
| out_of_zone | 9.000 | 16.000 | 29.000 | 52.000 | 64.000 | 74.000 | 117.000 | 149.000 | 149.000 | 149.000 | 149.000 |
| pull | 0.000 | 1.000 | 2.000 | 5.000 | 8.000 | 9.000 | 14.000 | 20.000 | 20.000 | 20.000 | 20.000 |
| slg | 0.000 | 0.125 | 0.400 | 0.526 | 0.846 | 0.742 | 0.531 | · | · | · | · |
| slug_window_ab | 0.000 | 0.000 | 0.000 | 0.091 | 0.200 | 0.167 | 0.143 | 0.125 | 0.125 | 0.125 | 0.125 |
| square_per_ab | 0.500 | 0.375 | 0.385 | 0.318 | 0.367 | 0.361 | 0.357 | 0.361 | 0.361 | 0.361 | 0.361 |
| squared_up | 2.000 | 3.000 | 5.000 | 9.000 | 13.000 | 16.000 | 24.000 | 31.000 | 31.000 | 31.000 | 31.000 |
| strikeout | 1.000 | 3.000 | 3.000 | 8.000 | 10.000 | 13.000 | 21.000 | 25.000 | 25.000 | 25.000 | 25.000 |
| strikeout_rate | 0.250 | 0.375 | 0.231 | 0.364 | 0.333 | 0.361 | 0.375 | 0.347 | 0.347 | 0.347 | 0.347 |
| sweet_spot | 0.000 | 2.000 | 4.000 | 9.000 | 13.000 | 13.000 | 19.000 | 23.000 | 23.000 | 23.000 | 23.000 |
| sweet_spot_per_ab | 0.000 | 0.000 | 0.077 | 0.182 | 0.267 | 0.222 | 0.214 | 0.194 | 0.194 | 0.194 | 0.194 |
| tb | 0.000 | 1.000 | 4.000 | 10.000 | 22.000 | 23.000 | 26.000 | 29.000 | 29.000 | 29.000 | 29.000 |
| tb_platoon | · | · | · | · | · | · | · | 20.000 | 20.000 | 20.000 | 20.000 |
| walk | 0.000 | 0.000 | 3.000 | 3.000 | 4.000 | 5.000 | 5.000 | 7.000 | 7.000 | 7.000 | 7.000 |
| walk_platoon | · | · | · | · | · | · | · | 6.000 | 6.000 | 6.000 | 6.000 |
| walk_rate | 0.000 | 0.000 | 0.231 | 0.136 | 0.133 | 0.139 | 0.089 | 0.097 | 0.097 | 0.097 | 0.097 |
| xbh | 0.000 | 0.000 | 1.000 | 3.000 | 6.000 | 6.000 | 7.000 | 7.000 | 7.000 | 7.000 | 7.000 |
| xbh_rate | 0.000 | 0.000 | 0.077 | 0.136 | 0.200 | 0.167 | 0.125 | 0.097 | 0.097 | 0.097 | 0.097 |
| z_swing_rate | · | · | · | · | · | 0.662 | 0.686 | 0.681 | 0.681 | 0.681 | 0.681 |
| zone_rate | · | · | · | · | · | · | 0.473 | 0.475 | 0.475 | 0.475 | 0.475 |