Compare RAPM Across Eras
This report standardizes each completed season's full-season forward-prior RAPM against its own exposure-weighted league distribution. It then converts the standardized rate to wins above an average player at a fixed 2,000-minute role. It is a retrospective player-season comparison, not a preseason forecast.
uv run nba-build-era-comparison \
--forward-lagged-run-dir artifacts/models/prior_rapm/2025-26/forward-lagged-rapm-2025-26-20260803T203054Z-c627d89d \
--forward-calibration-run-dir artifacts/models/forward_calibration/2025-26/forward-calibration-2025-26-20260804T132355Z-7ec43aa9
Outputs are written under artifacts/reports/era_comparison/2025-26/:
player_season_comparisons.parquetcontains every player-season;qualified_peak_seasons.parquetapplies the default 2,000-minute threshold;top_25_qualified_peak_seasons.parquetis the published peak-season table.canonical_player_season_comparisons.parquetapplies the same standardization to the existing one-season canonical RAPM panel;canonical_top_25_qualified_peak_seasons.parquetis its qualified peak table;forward_canonical_comparison.parquetaligns player-seasons estimated by both specifications and records their standardized-score differences.
The fixed-role rate deliberately separates quality from availability.
wins_above_average_actual_minutes is included as a descriptive total, but it
depends on the player's realized usage and should not be treated as a pure
talent estimate.
The common wins conversion was fit on forward-prior RAPM. It is used for the canonical table only as a common-unit translation; it is not a separately validated canonical-RAPM win forecast.