What Is PIV?
PIV (Play Incremental Value) is Held Out's measure of what a single play is worth, in points. Nearly every number on this site starts from it. BRADY is built on the quarterback's plays, DEION on everyone else's, and RICE's team strengths are PIV per play.
If you know EPA (expected points added), you already know the idea. Before the snap, the offense is in some situation, such as 2nd and 6 at its own 40, up 3 in the second quarter. On average, that situation is worth some number of points. After the play, the offense is in a new situation worth a different number, and the difference is the play's value. A four-yard run on 2nd and 6 is worth a fraction of a point, and an interception in your own territory costs several. Because everything is in points, values add up over a drive, a game, or a season.
So why not use EPA? EPA is good, and PIV is built the same way. I built my own for a few specific things the public model doesn't give me. I also wanted every piece of the value function fitted the way the rest of this site is: only on seasons before the one being valued.
Why PIV, Instead of EPA?
1. It's Fitted Holding the Teams Fixed
This difference is the subtle one, and I think the most interesting. A standard expected-points model learns what each field position is worth from every drive that reached it. Good offenses reach the red zone more often, and bad ones start more drives pinned deep. So "what the 15-yard line is worth" is partly "what the kind of team that gets there is worth." The score has the same problem. A team up 17 is usually the better team, so a model that sees the score without seeing the teams credits some of the teams' quality to the scoreboard. (Brill and coauthors made this point about public EP models in 2024.)
PIV fits the value function with each offense's and defense's quality in the model: their opponent-adjusted points per drive over each half of their season. It then credits every play as if both teams were average. The quality controls absorb the selection bias during fitting. Then they're set to zero, so they can't absorb the thing PIV is trying to measure. A great quarterback isn't graded against his own team's high expectations. He's graded against what an average unit would do in his exact situation.
Those controls are measured from the play-by-play itself. PIV doesn't read RICE, BRADY, or any player rating, so the value of a play never depends on the ratings built from it.
2. It Values the Next Score and the Final Margin
A play matters for two reasons: it changes who scores next, and it changes how the game is likely to end. Early in a game, those two effects are close to the same thing. At the end of a close first half, they differ. A field goal drive and a kneel-down can be worth the same "next score" and very different final margins.
PIV blends both. Each play's credit is a weighted mix of its change in the next score of the half and its change in the expected final margin. The weight depends on the half and the clock. For most of a game, the next score carries nearly all of the weight. At the end of a close first half, the final margin carries about 70 percent. The weighting is fitted so that each team's season-to-date PIV best predicts its next game's margin, using only earlier seasons.
3. Cleaner Data
Public play-by-play has errors, and a model that reads the raw feed inherits them without knowing. Every touchdown and safety the Jaguars scored at home in 2001 and 2002 (42 plays over sixteen games) was credited to the visiting team. A 2011 Lions-Saints game charts seventeen plays twice. I repair those errors before anything reads them.
4. It Values Every Play
Kickoffs, extra points, and two-point tries don't have a normal down and distance, so most models skip them. PIV values a kickoff by the field position the receiving team is left with. It values an extra point or a two-point try by its points. Each is measured against the league's average before that week. Nothing falls back to EPA, and if a play has no value, the build stops.
What Goes In
- The situation before the snap: down, distance, field position, clock, score, timeouts, whether it's goal to go, and who gets the second-half kickoff.
- The weather: the reported conditions where there are some, and the forecast at kickoff where there aren't. A dome or a closed roof counts as 70 degrees with no wind.
- The league's scoring level so far that season, pulled toward last season's.
- The two teams' quality, used only in fitting (see It's Fitted Holding the Teams Fixed).
Nothing about the play itself goes in: not the passer, the receivers, the line, or the result. Those are what the value is supposed to measure.
How the Value Is Learned
The next score of the half has seven outcomes: each kind of score by either team, or no score before halftime. An ensemble of gradient-boosted trees predicts it, averaged with a small neural network. The network also predicts the final margin, and the margin model is averaged the same way. Every season's values come from models fitted only on earlier seasons.
On predicting the next score over 2000-19, the trees alone beat the public EP model by 0.012 in log loss (0.002 to 0.018). Averaging in the network raises the gain to 0.014 (0.006 to 0.020). The public model was fitted on all of those seasons, so it's scored on games it has already seen. PIV beats it out of sample.
The more important test is downstream: does PIV make BRADY and RICE better? Mostly, by less than you'd think. Moving BRADY onto an earlier PIV in place of the public EPA helped it predict the next three games' offense on both 2000-19 and 2020-25. The final step put the blended version into every model at once. It tied the version before it on RICE's regular-season benches and cost a little on the 2020-25 playoff games (0.003 in log loss). I took that trade to have one consistent currency everywhere on the site.
What Didn't Work
- Win probability as the currency. Valuing each play by how much it moved win probability, the way a broadcast graphic does, made RICE worse by 0.0064 on the next game. Teams play to move win probability, but it predicts their results worse. A garbage-time touchdown barely moves win probability and says plenty about an offense.
- Discounting distant scores, or valuing whole drives. Both came out worse.
- A different blend for each play type. Splitting the blend by runs, passes, and sacks didn't hold up on 2020-25. Even so, I think the most is left to gain there. Runs seem to want much more of the final margin than passes do (+0.0049 on a runs-only test), and a single blend can't give them that.
- One history across both data sources. Seasons before 1999 come from a second play-by-play source. A value function fitted across both predicted the next score better, but BRADY and RICE read it worse (RICE's next game lost 0.0020). The two sources aren't quite the same measurement, so each era is valued only from its own seasons, and nothing crosses 1998-99.
Notes
- Following nflfastR's convention, a quarterback isn't charged when his receiver fumbles after a catch. The passer's credit stops at the catch.
- The current season is valued on demand from models fitted on finished seasons. A check deletes the season from a copy of the table, values it again, and requires the same numbers.
- During a game, the live feed values plays with the next-score model alone. When the game is final, it gets the full blend.
- A value that predicts the next score well can still rate players badly. BRADY, DEION, and RICE are each tested on their own boards instead of assumed to improve with PIV.