Each team's projected point differential is built bottom-up: for every player in the
team's depth chart, we take his projected minutes and multiply by his
Projected NERD (his 2026-27 impact per 100 possessions, forecast
by carrying his career trajectory forward along our aging curves). Summed and
minute-weighted across the rotation, that gives a team net rating, which converts to an
expected win total. Tested on last season, this pipeline correlates 0.92 with actual
records (about ±5 wins typical error).
Minutes come from the hand-tuned depth charts where they exist, otherwise
a last-season-minutes-based estimate (same as the Depth
Charts pages). Players we don't project — rookies and anyone without NBA history — are
treated as replacement level (about −2 per 100) and tagged REP;
teams leaning on unproven youth are therefore projected conservatively. Rosters reflect the
current offseason snapshot and will shift with trades and signings.
Injury-adjusted: players with a games projection in
data/availability_2026_27.js contribute their rating for their expected
games and replacement level for the rest (their missed-night minutes go to a
replacement body). Everyone unlisted plays 82. Currently adjusted:
.
DARKO: current DPM values from
darko.app
(snapshot , their last update), run through the same
depth-chart minutes and win conversion as NERD — so differences reflect the ratings,
not the rosters. Players DARKO doesn't rate get replacement level.
Comparing raw player values across systems misleads: the two scales have
different zero points (an average rotation player carries about +1.3 NERD but +0.3
DPM), so per-player numbers and WAR/82 are comparable within a mode, not
across modes. Standings wins are always relative to each system's own league average
— that's why a team can rate similar player-by-player yet project differently.
#
Team
Net Rtg
Proj W
Proj L
Off
Def
Click a team to see its rotation. Net Rtg is centered so the league averages to .500
(projected wins across all 30 teams sum to a full season).