Scraping
The scraper walks every month page of each requested season, so the raw CSV gets full regular-season coverage instead of just the opening month. It parses Basketball-Reference's box-score tables directly, not a third-party feed.
- Only games with a final score are written. Postponed, suspended, or not-yet-played rows are dropped at parse time.
- For the current season, the import stops at the most recent completed game, so a scheduled result never gets fed to the model as a played one.
- Each scrape writes one CSV per season range under
data/raw/, and a copy is downloadable straight from the Scrape page. - Season-range input lets you pull 2016 through 2025 in a single run; the scraper fans out across years and merges the results.