Swing Profiles
Bat Speed, Acceleration, and Jerk through an MLB hitter's swing. The Bat Speed curve is derived from the player's Baseball Savant swing-path image. The swing duration is imputed from the bat-tracking leaderboard, with Acceleration and Jerk based on it.
The image this was derived from:
How it works
Bat Speed Curve: Savant's swing-path images carry a small chart in the bottom-left panel: Bat Speed against normalized swing time (0 at the start of the swing and 1 at contact). This page fetches the card, reads each point on the Speed-over-time chart, smooths with a local linear fit, and resamples into 101 evenly spaced points. Imputed Bat Speed values at contact are within ~0.7 mph of stated values on Baseball Savant.
Swing Duration: Baseball Savant/Statcast do not provide individual or aggregated swing duration times (T). It is derived using the player's swing length (s) and swing speed (v): T = s / mean(v), where the mean is integrated from the imputed Bat Speed curve. This makes it a "representative swing" for that player and bat side, not necessarily any individual observed one. It assumes Baseball Savant's swing start window for swing_length matches the card's t = 0.
Derivative Kinematics: Acceleration is derived using a Savitzky–Golay filter (window 15, cubic). The first and last few samples are trimmed from the plotted derivatives, where the edge fit is least trustworthy.
Sanity Check: The card's imputed speed at contact and the player's avg_bat_speed via Baseball Savant are independent measurements of the same quantity. When they differ by more than 2 mph, the two sources are not describing the same swings, and the duration is flagged as suspect (Bat Speed description highlighted in yellow).