Analyze how NHL forwards drafted between 2008 and 2022 have produced at the NHL level, broken down by overall draft pick. The project computes average career points per season for each pick and can print tables, export CSVs, and generate charts.
- Draft cohort: Forwards selected in drafts from 2008 through 2022
- Production window: NHL seasons from each player's draft year through 2021–22
- Metric: Average career points per season (total points divided by eligible NHL seasons)
- Rounds: First round (picks 1–30) and second round (picks 31–60)
Only forwards (LW, RW, C, and related position labels) are included in the round-level averages. Defensemen and goalies are excluded from those summaries.
- Python 3.13+
- uv (recommended) or pip
git clone https://github.com/<your-username>/nhl-draft.git
cd nhl-draft
uv syncOr with pip:
python -m venv .venv
source .venv/bin/activate
pip install -e .The project installs a nhl-draft CLI with three subcommands.
First round (default):
uv run nhl-draft analyzeSecond round:
uv run nhl-draft analyze --round 2Results are printed to the terminal and written to:
data/first_round_points_by_pick.csvdata/second_round_points_by_pick.csv
uv run nhl-draft pick 1First round:
uv run nhl-draft graphSecond round:
uv run nhl-draft graph --round 2To chart from existing CSV output without recomputing:
uv run nhl-draft graph --use-cached-csvCharts are saved to graphs/ as PNG files.
uv sync --dev
uv run ruff check src tests
uv run pytestnhl-draft/
├── src/nhl_draft/
│ ├── analysis.py # Core analysis logic
│ ├── charts.py # Chart generation
│ ├── cli.py # CLI entry point
│ └── paths.py # Data file locations
├── tests/
├── data/
│ ├── nhldraft.csv
│ ├── skaters_2008_to_2024.csv
│ └── *.csv
├── graphs/
│ └── *.png
├── pyproject.toml
└── LICENSE
- Draft data:
data/nhldraft.csv - Player stats:
data/skaters_2008_to_2024.csvfrom MoneyPuck.com
See data/README.md for file details and attribution requirements.
- Player names are matched between draft and stats datasets with normalization for accents, apostrophes, and common first-name variants (e.g. Matt/Matthew).
- Pre-generated CSV files in
data/and PNG charts ingraphs/are included so you can view results without rerunning the analysis.
MIT — see LICENSE.

