Stat Explainer

CPOE Explained: Completion Percentage Over Expected

How tracking data turns every throw into a probability — and isolates a quarterback's accuracy from scheme.

Published June 6, 2026 · NFL Analytics

The Problem With Raw Completion Percentage

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.

The core idea: instead of asking "did he complete it?", CPOE asks "did he complete it more often than an average quarterback would have, given how hard these specific throws were?"

How the Expected Completion Model Works

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:

Air distance
how far the ball travels
Receiver separation
space from nearest defender
Pressure
was the QB hurried?
Throw location
sideline vs. middle, depth

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.

The CPOE Formula

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.

Scale intuition: CPOE is centered near zero (league average). Sustained values a few percentage points above zero over a full season indicate genuinely strong accuracy. Single-game CPOE is volatile and should not be over-read.

An Illustrative Example

Hypothetical: two QBs, same completion percentage

Invented numbers to show the mechanics, not real player data.

QB X
  • Completed 65% of passes
  • Model expected ~62% given his throws
  • CPOE = +3% (beating tough throws)
QB Y
  • Also completed 65% of passes
  • Model expected ~68% given his throws
  • CPOE = −3% (easy throws, under-converted)
Identical completion percentage, opposite accuracy stories. QB X was more accurate than his raw number suggests because he attempted harder throws; QB Y attempted easier ones and still fell short of expectation. Raw completion percentage would have called them equal.

Combining CPOE With EPA

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:

  • CPOE isolates accuracy and degree-of-difficulty - the throwing skill.
  • EPA/play captures the value created, including decision-making, depth of target, and avoiding negative plays.

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.

Caveats and Limits

It's model-dependent

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.

Drops and decisions blur it

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.

Sacks aren't throws

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.

Throwaways and context

Intentional throwaways, spikes, and unusual game scripts can distort small samples. CPOE is most meaningful over many attempts.

The bottom line

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.

Further reading

Go deeper

Want the code behind these metrics? Work through the 45-chapter NFL analytics tutorial.

Browse tutorials Free tools