How tracking data turns every throw into a probability — and isolates a quarterback's accuracy from scheme.
Published June 6, 2026 · NFL Analytics
Completion percentage is the oldest accuracy stat there is, and it has a fatal flaw: not all throws are equally hard. A quarterback who dumps the ball to a wide-open back five times will complete a higher percentage than one who fires into tight coverage 30 yards downfield - even if the second quarterback is far more accurate for the difficulty involved. Raw completion percentage rewards easy passing as much as good passing.
CPOE - Completion Percentage Over Expected - fixes this. It is one of the flagship metrics from the NFL's Next Gen Stats, built on the player-tracking data captured on every play. The idea is to first estimate how likely each individual throw was to be completed, then measure how the quarterback did relative to that expectation.
Next Gen Stats trains a model on a throw's measurable features and outputs an expected completion probability for that pass - a number between 0% and 100%. The features describe the degree of difficulty, for example:
A short throw to a receiver with a step of separation might carry an expected completion probability around 85%. A deep ball into tight coverage near the sideline might be closer to 25%. The model assigns each throw its own number based on the situation, not a league-wide average.
Once every throw has an expected completion probability, CPOE is simply the gap between what actually happened and what was expected, averaged over many attempts:
CPOE = Actual Completion % − Expected Completion %
Or, written more explicitly across a quarterback's throws:
$$ \text{CPOE} = \frac{1}{N}\sum_{i=1}^{N}\Big( \text{completed}_i - \text{P(complete)}_i \Big) $$where each $\text{completed}_i$ is 1 or 0 and $\text{P(complete)}_i$ is the model's expected probability for that throw. A positive CPOE means the passer completes throws more often than expected - a sign of accuracy that survives the difficulty of what he is attempting. A negative CPOE means the opposite. Because the difficulty is already priced in, a quarterback who throws a hard deep ball and one who checks down can be compared on a level field.
Invented numbers to show the mechanics, not real player data.
Accuracy is only one piece of quarterback play. A passer can be accurate yet make poor decisions, or take too many sacks. That is why CPOE is frequently paired with EPA per play into a composite ranking. The logic:
A common public approach blends the two (sometimes as a simple average of their standardized values) to rank passers more completely than either does alone. A quarterback who is high in both is doing the hard part - throwing accurately - and converting it into points. One who is high in CPOE but low in EPA may be accurate on low-value throws. For the broader picture of scoring quarterbacks, see our guide to passer rating vs. QBR.
CPOE is only as good as the expected-completion model behind it. The features and weights are Next Gen Stats' own choices, so the metric inherits whatever the model does or does not capture.
A perfectly placed ball that a receiver drops still counts as an incompletion. CPOE measures outcomes, so receiver play and drops leak into the quarterback's number.
CPOE only scores passes that were actually thrown. A quarterback who avoids sacks, or one who takes too many, is not directly rewarded or penalized by CPOE alone - pair it with EPA.
Intentional throwaways, spikes, and unusual game scripts can distort small samples. CPOE is most meaningful over many attempts.
CPOE asks a smarter question than raw completion percentage: given how difficult each throw was - air distance, separation, pressure, location - did the quarterback complete passes more or less often than expected? By subtracting a model-based expected completion rate from the actual rate, it isolates accuracy and degree-of-difficulty, and it pairs naturally with EPA to rank passers on both throwing skill and value created. Just remember it is a model output that can be muddied by drops, throwaways, and small samples, and that it says nothing about the sacks a quarterback never threw.
Want the code behind these metrics? Work through the 45-chapter NFL analytics tutorial.
Browse tutorials Free tools