WHAT IS EPA? (EXPECTED POINTS ADDED)
Yards are a lie. Not a malicious lie — more of a useful shorthand that people mistook for the real thing. A 5-yard gain on 3rd-and-4 is a first down, a sustained drive, and possibly a touchdown. A 5-yard gain on 3rd-and-8 is a punt. Same yards. Wildly different value.
Expected Points Added (EPA) is the metric that fixes this. It measures how much a play changed the expected point value of a drive — accounting for down, distance, field position, and what history says teams score from there.
// HOW EPA WORKS
The foundation is an expected points model. Every combination of down, distance, and yard line has a historical average: how many net points does the offense score (or allow) from this spot, across thousands of NFL games?
Before any play, there's an Expected Points value (EP) for that game state. After the play, there's a new EP value for the new game state. The difference is EPA:
EPA = Expected Points After − Expected Points Before
A positive EPA means the play helped the offense (moved the expected score up). A negative EPA means it hurt (moved it down — incompletions, sacks, penalties). Turnovers produce large negative EPA because the expected points flip from the offense's perspective to the defense's.
// THE CONTEXT PROBLEM EPA SOLVES
Here's why this matters. Take two identical 5-yard gains:
| SITUATION | RESULT | EPA |
|---|---|---|
| 3rd & 4 from the 30 | 5-yd gain → 1st down | +1.4 |
| 3rd & 8 from the 30 | 5-yd gain → still facing 4th down | −0.9 |
Yards-per-play treats these identically. EPA doesn't. The first play extended a drive. The second is essentially a punt.
The same logic applies to touchdowns. A TD with 3 minutes left down by 14 has much lower EPA than a TD that puts you up by 7 with 2 minutes left — even though the scoreboard says "6" either way. More on that in the Win Probability article.
// EPA/PLAY — THE EFFICIENCY RATE
A single play's EPA is noisy. Over a season, EPA/play is one of the most predictive efficiency metrics in football. It's better than points per game (not strength-of-schedule adjusted), better than yards per play (not situation-adjusted), and correlates strongly with future winning percentage.
The nflverse open-source model — which powers this site's data — is built on decades of NFL play-by-play and is the same foundation ESPN's Analytics team uses. It's not perfect (no model is), but it's the most thoroughly validated public EP model available.
// EPA/DRIVE IN THE DRIVE TRACKER
The Drive Tracker aggregates EPA across every play in a drive to give you EPA_TOTAL — how much that entire possession was worth. A drive that gains 40 yards but punts might have negative EPA. A 5-play TD drive from the 20 might have +3.8 EPA.
This is how you identify which drives actually won a game, versus which ones looked good on the stat sheet and contributed nothing.
// WHAT EPA DOESN'T TELL YOU
EPA is a play-by-play metric. It measures execution, not scheme. A QB who consistently checks down for positive EPA (because the defense always sells out deep) looks good by EPA but may be avoiding the harder throws that break a defense. CPOE helps with this — see the CPOE explainer.
EPA also doesn't account for garbage time perfectly. A TD drive with 2 minutes left in a 30-point game inflates season EPA totals for players on bad teams. Filtering by score differential is the workaround, which the nflverse tools support.
Drive Tracker shows EPA per drive for every game in the dataset. Each drive's EPA_TOTAL and WP_SWING are in the drive log and the summary charts.
[OPEN DRIVE TRACKER →]