Descriptive only — these are measured per-36 rates, not projections.
NBA players · NBA · as of 2026-04-12
Moritz Wagner
Historical measurements from this snapshot.
Corpus measurements: 3 seasons in the snapshot, 141 games, 2,368.2 minutes; snapshot 2026-04-12
- Assists per 36 minutes, corpus seasons
- 2.5Percentile rank 34 among 482 measured profilespct 34 of 482 measured
- Field-goal percentage, corpus seasons
- 56.0%Percentile rank 90 among 482 measured profilespct 90 of 482 measured
- Three-point percentage, corpus seasons
- 33.7%Percentile rank 37 among 482 measured profilespct 37 of 482 measured
- Free-throw percentage, corpus seasons
- 79.0%Percentile rank 58 among 482 measured profilespct 58 of 482 measured
- Games played, corpus seasons
- 141Percentile rank 44 among 482 measured profilespct 44 of 482 measured
- Minutes played, corpus seasons
- 2368.2Percentile rank 38 among 482 measured profilespct 38 of 482 measured
- Points per 36 minutes, corpus seasons
- 22.6Percentile rank 90 among 482 measured profilespct 90 of 482 measured
- Rebounds per 36 minutes, corpus seasons
- 9.1Percentile rank 82 among 482 measured profilespct 82 of 482 measured
- Seasons in corpus
- 3Percentile rank 64 among 482 measured profilespct 64 of 482 measured
Stored percentiles rank measured rows in this published pack; higher is only higher, not a quality judgement.
Also measured elsewhere
Joined onto 330 of 482 player cards; the leaderboard badges cover far fewer.
Team win rate with/without this player
ORL: active 0.5833 vs missed 0.4000 (delta +0.1833)
n_active=36, n_missed=5, ci95_offset=[-0.4586, 0.4586]
WITH/WITHOUT = ROSTER CONFOUND: this is NOT a causal player-impact estimate. Why a player missed games is entangled with injuries clustering, rest-game scheduling, blowout pulls, and a different replacement lineup -- none controlled for. DESCRIPTIVE_ONLY, not a predictive or advantage claim.
Read analysisForm curve mover -- top_movers_fallers #5
delta=-9.126
n_qual_games=135
NOT a live hot/cold streak or predictive signal (net-change over the whole span); NOT BPM/EPM/RAPM/DARKO (box-composite only, same limits as box_value_index.py); NOT age/opponent/role adjusted (raw box rates only); NOT player_id-deduped (accented names split across ids upstream -- carried through)
Read analysis