Win probability is modeled from every 1st-and-10 outcome each choice can lead to. Rare, extreme states carry more noise. v1 has no weather, injuries, or timeout context.
WIN PROBABILITY BURNED BY KICKING
For every real 4th-down punt or field-goal attempt from 2020–2024, when the model preferred going for it, the coach is charged the win probability they gave up. Summed across five seasons. Lower is bolder.
| # | Coach | Team | WP burned ▾ | Conservative kicks | Per kick |
|---|
HOW THE MODEL DECIDES
A 4th down is a choice between three lotteries. The model prices each one in the only currency that matters at the end of a game: win probability.
- Win probability model. A gradient-boosted model trained on ~450,000 plays (nflverse play-by-play, 2015–2024) learns the chance the team with the ball wins, given score, time, field position, down, and distance.
- Go for it. Win prob = P(convert) × WP(1st-and-10 at the new spot) + P(fail) × WP(opponent takes over on downs). Conversion rates come from a decade of 3rd- and 4th-down attempts by distance.
- Field goal. WP = P(make) × WP(up 3, opponent receives) + P(miss) × WP(opponent takes over at the spot). Make rates are empirical by kick distance.
- Punt. WP = WP(opponent takes over at the expected post-punt field position), measured from real punt outcomes by field position.
- The option with the highest win probability is the call. The edge shown is how many win-probability points it beats the next-best option by.
Honesty
- Empirical win probability is noisy in rare states (long distances, extreme score gaps, final seconds). Treat those calls as directional.
- v1 ignores weather, injuries, kicker/defense quality, and timeouts. A great or terrible kicker moves the field-goal line the model can't see.
- The coach leaderboard uses the model's own preference as the yardstick. It measures conservatism against this model, not against ground truth. Public models like nfl4th reach the same broad conclusion: coaches kick too much.
Data & build
Play-by-play from nflverse (open, no scraping of Sports-Reference). The Python pipeline pulls ten seasons locally, trains the model, and bakes small JSON lookup tables; the page does all the decision math in your browser, so there is zero server cost and the arithmetic is fully inspectable. Academic anchor: arXiv:2311.03490.
Built end-to-end with Claude Code — data pipeline, win-probability model, and this interface. Source: github.com/agv117/nfl-4th-down. Project 01 in a series of interactive sports-analytics builds.