Skip to content

Build the Replacement-Level Study

This command builds the descriptive all-player low-exposure study used to assess a candidate replacement-level RAPM reference. It does not train or modify a lineup model.

uv run nba-build-replacement-level-study --through-season 2025-26

The builder reads the validated player-season panel and the matching validated regular-season RAPM stint partition for every included season. It derives a player's on-court possession share from full team possession opportunities, then validates that the resulting on-court totals agree with rapm_possessions in the panel.

Use a different low-exposure reference cutoff only as an explicit sensitivity analysis:

uv run nba-build-replacement-level-study \
  --through-season 2025-26 \
  --replacement-share-cutoff 0.05

Outputs

Each run is immutable:

artifacts/models/replacement_level/<through-season>/<run_id>/
File Purpose
player_exposure_cohort.parquet All player-season RAPM outcomes joined to computed team-opportunity shares
exposure_band_summary.parquet Fixed exposure-band statistics and bootstrap intervals
low_exposure_season_estimates.parquet Season-balanced inputs to the candidate reference
low_exposure_experience_summary.parquet Low-exposure pool composition and RAPM by career stage
candidate_replacement_prior.json Candidate estimate and diagnostic-only status
replacement-level-study.svg Documentation diagnostic chart
metadata.json / manifest.json Reproducibility and integrity records

The chart is copied to docs/assets/images/replacement-level/replacement-level-study.svg. See Replacement-Level Exposure Study for its interpretation and limitations.