xwOBA / xwOBA
Batter
Expected wOBA: the mean of Savant's per-pitch estimate over wOBA-denominator plate appearances that carry an estimate. See runbook section 10.
Agreement with Savant
Checked nightly. Agreement tolerance: ±0.001.
Pitcher
Expected wOBA against: the mean of Savant's per-pitch estimate over wOBA-denominator batters faced that carry an estimate. See runbook section 10.
Agreement with Savant
Checked nightly. Agreement tolerance: ±0.001.
Shown for: batter and pitcher.
Formula
sum(xwoba_num) / NULLIF(sum(xwoba_den), 0) — the mean of Savant's per-pitch estimate over wOBA-denominator plate appearances that carry one.
Inputs
pitches.estimated_woba_using_speedangleplate_appearances.xwoba_numplate_appearances.xwoba_den
Era caveats
Untracked contact leaves the denominator
Savant excludes batted balls it could not track rather than imputing them, and matching that is what closed the residual. The exclusion reaches the three expected stats by two different routes: xBA and xSLG subtract at aggregation time — at-bats minus at-bats whose batted ball carries no estimate — while xwOBA never counts them at all, because a plate appearance with no estimate never enters xwoba_den when its fact row is built. (runbook §10)
Three tracking systems across the seasons shown
Rows carry a tracking_era of trackman, hawkeye or hawkeye_bat (migration 001). The systems differ in what they measure and how precisely, so long spans cross a measurement boundary as well as a rule one.
Version history
- 2026-08-09 — Agreement tolerance tightened from ±0.005 to ±0.001 once the residual was removed rather than recorded. (runbook §10)