Chapter 15 Exercises: NFL Modeling
Part A: Foundational Concepts (Exercises 1-6)
Exercise 1. Explain why EPA (Expected Points Added) per play is considered a better measure of offensive efficiency than yards per play. Identify at least three scenarios where the two metrics would give substantially different evaluations of the same drive.
Exercise 2. An NFL team averaged 6.2 yards per play over the first four games of the season. Calculate the approximate number of plays required before yards-per-play stabilizes to the point where it is more signal than noise (use the stabilization threshold of r = 0.70 with itself season-over-season). Explain why this matters for early-season modeling.
Exercise 3. Define Success Rate in the NFL context. A team has the following drive results over a game: 3 first downs on first-down runs (of 4 attempts), 5 completions on second-and-medium (of 8 attempts), and 2 third-down conversions (of 6 attempts). Calculate the overall success rate for these plays and interpret the result.
Exercise 4. Describe the difference between DVOA (Defense-adjusted Value Over Average) and raw EPA/play. Why might a team rank highly in one metric but poorly in the other? Construct a hypothetical example.
Exercise 5. A team's offensive EPA/play is +0.12 and their defensive EPA/play allowed is -0.05 (negative is good for defense). The league-average EPA/play is 0.00. Estimate the team's expected point differential per game assuming 65 offensive plays and 62 defensive plays per game.
Exercise 6. List the five most predictive team-level statistics for NFL point spreads according to the research literature. For each, state whether it stabilizes quickly (fewer than 6 games) or slowly (more than 6 games).
Part B: Data and Feature Engineering (Exercises 7-12)
Exercise 7. Using nflfastR play-by-play data, write a query (in Python or pseudocode) that calculates each team's offensive EPA/play on early downs (first and second down) for a given season. Explain why filtering to early downs can be more predictive than using all downs.
Exercise 8. Construct a feature that captures "garbage time" in NFL games. Define specific criteria (score differential, quarter, time remaining) and explain why including or excluding garbage-time plays affects model accuracy.
Exercise 9. Build a strength-of-schedule adjustment for EPA/play. Given a team that played opponents with an average defensive EPA/play allowed of +0.08 (bad defense), explain how you would regress their offensive EPA/play toward the mean.
Exercise 10. Design a feature that captures quarterback rushing threat. Describe the data you would need, how you would calculate the feature, and why it matters for spread prediction (hint: consider its effect on defensive alignment).
Exercise 11. Weather data is available for outdoor NFL games. Create a framework for incorporating temperature, wind speed, and precipitation into a totals model. Specify which variable you expect to have the largest effect on scoring and justify your answer.
Exercise 12. NFL injury reports are released on Wednesday, Thursday, and Friday during the regular season. Design a pipeline that ingests injury report data and converts it into a numerical feature representing the expected point impact of injuries. Address how you would handle "questionable" designations.
Part C: Model Building (Exercises 13-18)
Exercise 13. Build a simple linear regression model that predicts the point spread of an NFL game using only offensive EPA/play and defensive EPA/play for each team. Write out the full regression equation with home-field advantage as an intercept adjustment.
Exercise 14. Compare the predictive accuracy (RMSE against closing spread) of three models: (a) a model using only EPA/play metrics, (b) a model using only Success Rate metrics, and (c) a model combining both. Use a minimum of two full NFL seasons as your test set. Describe your cross-validation strategy.
Exercise 15. Implement an Elo rating system for NFL teams. Start all teams at 1500, use a K-factor of 20, and include a home-field advantage of 48 Elo points. Run the system over three seasons and evaluate whether it outperforms a simple "last season's win-loss record" model against the spread.
Exercise 16. Build a logistic regression model that predicts the probability that the home team covers the spread. Use at least five features. Report the model's log-loss and Brier score on a held-out test season.
Exercise 17. Design a simulation-based approach to NFL game prediction. For each team, model the distribution of points scored per game as a normal distribution parameterized by your predicted mean and a standard deviation of 10 points. Run 10,000 simulations per game and derive spread probabilities. Compare to the closed-form normal CDF approach.
Exercise 18. Implement a rolling-window model that updates team ratings after each week of the NFL season. Compare a 4-week window, an 8-week window, and a full-season cumulative approach. Which window size minimizes prediction error in Weeks 10-17?
Part D: Market Analysis (Exercises 19-24)
Exercise 19. Obtain historical NFL closing lines and results for a full season. Calculate the closing line's RMSE and compare it to your model's RMSE. If your model's RMSE is higher, identify the minimum improvement needed to generate a positive expected value given standard -110 juice.
Exercise 20. Analyze the historical performance of NFL home underdogs of 3 or more points. Calculate their ATS (against the spread) record over the last five available seasons. Is there a statistically significant edge? Compute the p-value.
Exercise 21. NFL lines often move between the opening line (Sunday evening) and the closing line (Sunday morning of game day). Track line movement for a full season and build a model that predicts whether the closing line will be higher or lower than the opening line based on early-week features.
Exercise 22. The "key number" concept is central to NFL spread betting. Analyze how often NFL games land exactly on 3 and 7 (the two most common margins). Calculate the implied probability adjustment a bettor should make when a line sits at exactly 3 versus 3.5.
Exercise 23. Compare the efficiency of the NFL point-spread market to the NFL totals market. Using historical data, test whether one market shows more exploitable inefficiency than the other. Present your methodology and results.
Exercise 24. Build a teaser analysis framework. Calculate the historical win rate of 6-point NFL teasers that cross both 3 and 7. Determine the breakeven win rate for a standard two-team teaser at -110 and assess whether this strategy shows positive expected value.
Part E: Advanced Applications (Exercises 25-30)
Exercise 25. Build a player-level model that estimates the impact of a starting quarterback change on the point spread. Use historical data to estimate the "replacement-level" quarterback effect and apply it to three real-world examples from recent seasons.
Exercise 26. Construct a drive-level simulation model for an NFL game. Model each drive's outcome (touchdown, field goal, punt, turnover) as a function of field position, offensive efficiency, and defensive efficiency. Validate against actual scoring distributions.
Exercise 27. Implement a Bayesian updating framework for NFL team ratings. Start with a prior based on preseason projections (e.g., win totals) and update week by week using game results. Compare the Bayesian approach to a frequentist rolling-average approach.
Exercise 28. Study the "Bye Week Effect" in the NFL. Collect data on team performance in the game immediately following a bye week. Control for team quality and opponent quality. Is the bye week advantage real, and if so, how large is it in points?
Exercise 29. Build a second-half model that re-predicts the final score of an NFL game at halftime. Use first-half scoring, first-half EPA/play, and pre-game ratings as inputs. Evaluate whether live betting on second-half lines using this model can be profitable.
Exercise 30. Design and backtest a complete NFL betting system for an entire season. Your system should: (a) generate point-spread predictions for every game, (b) identify games where your edge exceeds a specified threshold, (c) apply a Kelly-criterion-based staking plan, and (d) report end-of-season ROI with confidence intervals.