Skip to content

Level 3 — Head coach

Level 3 · Head coach

Identity. Game-by-game decisions. Situational thinking, not just averages.

You move from describing the past to evaluating choices. EV, win probability, and the calculus of should you have gone for it on 4th-and-2.

SQLPython
Window functions (ROW_NUMBER, RANK, LAG/LEAD)plotly for interactive viz
CTEs and subqueriesscipy.stats for distributions and significance
CASE expressionsplay-by-play parsing with nfl_data_py

Lions 4th-down decision analyzer. Given down, distance, field position, score, and clock, output expected value of going vs kicking vs punting. Run it on every Lions 4th down 2022-2025.

Working calculator + a writeup of one Lions game where your model disagreed with Dan Campbell’s call. Defend or concede the disagreement.

  1. Window functions — RANK and ROW_NUMBER
  2. PARTITION BY and running totals
  3. LAG and LEAD
  4. CTEs — readable multi-step queries
  5. CASE expressions
  6. plotly for interactive charts
  7. scipy.stats — significance and intervals
  8. Play-by-play with nfl_data_py

Lessons 8 and the capstone need the pbp table loaded — it’s not part of the default L1/L2 setup. From data/:

Terminal window
uv run python -m onepride_data.load --years 2022-2024 --tables pbp

That pulls a few hundred MB. One-time cost.