Train The Box-Score RAPM Prior
Build the validated possession-native panel first:
uv run nba-build-box-score-prior-panel
Then train the returning-player forecast with its default latest-target holdout:
uv run nba-train-box-score-prior
To make the locked evaluation explicit:
uv run nba-train-box-score-prior --holdout-season 2025-26
The command uses chronological expanding target-season folds to select ridge regularization, fits through the season before the holdout, and writes an immutable run below:
artifacts/models/box_score_prior/<holdout-season>/<run-id>/
Each run includes fold-level validation metrics, the candidate summary, out-of-fold and holdout predictions, cohort-level holdout metrics, standardized feature coefficients, the serialized pipeline, and a hash-validated manifest. Completed runs are indexed in local MLflow; see Track experiments with MLflow.
The current model accepts only returning players with prior RAPM and a complete prior box profile. It is a component experiment, not yet a complete RAPM prior or a Leaderboard entrant. The holdout metrics compare it with lagged RAPM persistence at the player-season target level; see Box-Score RAPM Prior.