Skip to content

Build the Cold-Start Exposure Gate

This study predicts whether a first-NBA-season player will finish below a realized regular-season team-possession share cutoff. It is only a diagnostic gate: it does not change returning-player priors or fit a lineup model.

uv run nba-build-cold-start-exposure-study --season 2025-26

The default replacement-candidate definition is less than 5% of season-long team possession opportunities. The command reconstructs exposure from the existing regular-season RAPM stints, joins draft and player-bio data from the player-season panel, tunes L2 logistic regularization with six expanding historical validation seasons, then scores target profiles without retaining their target outcomes.

Use a different retrospective definition only as a sensitivity analysis:

uv run nba-build-cold-start-exposure-study \
  --season 2025-26 \
  --replacement-share-cutoff 0.02

Outputs

Every execution creates an immutable run:

artifacts/models/cold_start_exposure/<season>/<run_id>/
File Purpose
training_first_nba_season_exposure.parquet Historical labels and features
target_first_nba_season_profiles.parquet Target profiles with outcomes removed
cross_validation.parquet Regularization search by forward fold
cross_validated_predictions.parquet Out-of-fold predictions
calibration_deciles.parquet Calibration report
target_exposure_predictions.parquet Preseason target scores
metrics.parquet Profile model versus constant-rate baseline
cold-start-exposure.svg Documentation chart

The chart is copied to docs/assets/images/cold-start-exposure/cold-start-exposure.svg. See Cold-Start Exposure Gate for the model contract and current results.