How PQS works

Full details in the paper: Pitch-Quality Surplus (PQS): measuring hitter value net of pitch quality · code: zenodo.21972304

The problem

wOBA, xwOBA, and wRC+ all condition on what the hitter did. None of them condition on what the pitcher threw. A home run off a 99 mph fastball with late movement is treated identically to one off an 88 mph hanging slider — but those are not the same skill.

Expected run value, pitches only

We train a gradient-boosted model to predict Statcast's delta_run_exp (the run value of a pitch's outcome) using pre-contact information only:

Leave-one-year-out scoring

To score the 2025 season we train on 2022–2024 and predict every 2025 pitch — so no hitter is ever graded by a model that saw him. This repeats for each season (four models total).

pqs_pitch = delta_run_exp − expected_rv(pitch)

The metrics

MetricMeaning
PQSCounting runs of surplus — actual run value above what his pitches implied
PQS/100Surplus per 100 pitches faced (rate stat)
PQS+PQS/100 scaled so league average = 100
TPS/100Surplus per 100 against the toughest tercile of pitches — who produces vs. elite stuff
MPS/100Surplus per 100 against the softest tercile — how fully he punishes mistakes

Fantasy translation

Honest limitations