Attack Dir / Attack Dir
Batter
Mean horizontal direction of the bat's path at contact, in degrees, over competitive swings. Savant's sign convention as published, not flipped for batter handedness.
Agreement with Savant
Checked nightly. Agreement tolerance: ±227 — in °·swings: the miss times the player's competitive swings, so a 900-swing season is held to a tighter ° than a 150-swing one (runbook §60).
Pitcher
Mean horizontal direction of the bat's path at contact, in degrees, over competitive swings against this pitcher. Savant's sign convention as published, not flipped for batter handedness.
Agreement with Savant
Checked nightly. Agreement tolerance: ±159 — in °·swings: the miss times the player's competitive swings, so a 900-swing season is held to a tighter ° than a 150-swing one (runbook §60).
Shown for: batter and pitcher.
Formula
sum(comp_attack_dir_sum) / NULLIF(sum(comp_swings), 0) — mean attack direction over competitive swings, degrees, with Savant's sign as published: the spec asked whether the sign is flipped by handedness, and §58 measured that it is not (a hand-flipped reading is 18° off).
Inputs
pitches.attack_directionpitches.bat_speedplate_appearances.comp_attack_dir_sumplate_appearances.comp_swings
Era caveats
Bat tracking begins 2023-07-14
Savant's bat-tracking fields -- bat speed, swing length, attack angle, attack direction and swing tilt -- are on the wire from 2023-07-14. Every bat-tracking column is empty for 2015-2022, 2023 covers the second half of the season only, and a span that starts earlier counts only the swings from that date. Parity is unaffected: Savant's own 2023 boards carry the same partial season, and the six closed season-sides reconcile to the player. (runbook §59)
Version history
- 2026-09-13 — Facts and aggregates added (M4 S3). (runbook §59)
- 2026-09-13 — Parity-enforced nightly against the swing-path leaderboard, swing-weighted, within 227 °·swings for batters and 159 for pitchers. (runbook §60)
- 2026-09-16 — Added to the Explorer and the rolling chart (M4 S5). (runbook §61)