How lineups and RAPM are fitted

How is RAPM calculated on this site?

Possessions are cut into stints of unchanged personnel from GameRotation, then a ridge regression assigns each player an offensive and a defensive coefficient per 100 possessions. The penalty is cross-validated per season (lambda = 3200), and the fit shrinks toward a box-score prior rather than toward zero.

Why a prior instead of zero

Shrinking a thin sample toward zero calls a 200-possession player exactly average. The prior is a fit on per-100 box-score rates, explaining about 34% of offensive and 10% of defensive variance. Each prediction is itself damped toward the fitted league mean by that player's own possession count, because an unshrunk prior becomes the estimate whenever the data is thin.

Does it beat the alternatives?

Out-of-sample RMSE, pooled across seasons: RAPM against a home-court-only baseline
ModelRMSE
RAPM15.17
Home court only16.58

RAPM wins in all 6 seasons individually as well as pooled.

Error bars

Intervals are 95% shrinkage-aware sandwich intervals, approximate rather than posterior: the penalty is plugged in from cross-validation rather than modelled with its own uncertainty. Players whose intervals overlap are grouped into tiers instead of ranked, because a 1-to-N list would assert distinctions the intervals do not support.

What it does not tell you

Lineup synergy, the residual between a five-man unit and the sum of its parts, does not persist out of sample (r = 0.02, n = 321), so it is published as description, not as a forecast. 190 of 7230 games are skipped where possession reconstruction does not tie to the official final.

Over Expected is a basketball shot-value platform covering NBA, EuroLeague, EuroCup, Liga ACB, Lega Basket Serie A, Basketball Bundesliga, Greek Basket League, ABA Liga, WNBA.