Descriptive only — these are measured per-36 rates, not projections.
NBA players · NBA · as of 2026-04-12
Cam Thomas
Historical measurements from this snapshot.
Corpus measurements: 3 seasons in the snapshot, 133 games, 3,734.7 minutes; snapshot 2026-04-12
- Assists per 36 minutes, corpus seasons
- 3.8Percentile rank 60 among 482 measured profilespct 60 of 482 measured
- Field-goal percentage, corpus seasons
- 43.4%Percentile rank 31 among 482 measured profilespct 31 of 482 measured
- Three-point percentage, corpus seasons
- 34.8%Percentile rank 46 among 482 measured profilespct 46 of 482 measured
- Free-throw percentage, corpus seasons
- 85.0%Percentile rank 83 among 482 measured profilespct 83 of 482 measured
- Games played, corpus seasons
- 133Percentile rank 40 among 482 measured profilespct 40 of 482 measured
- Minutes played, corpus seasons
- 3734.7Percentile rank 58 among 482 measured profilespct 58 of 482 measured
- Points per 36 minutes, corpus seasons
- 25.5Percentile rank 96 among 482 measured profilespct 96 of 482 measured
- Rebounds per 36 minutes, corpus seasons
- 3.5Percentile rank 7 among 482 measured profilespct 7 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
BKN: active 0.2083 vs missed 0.3200 (delta -0.1117)
n_active=24, n_missed=25, ci95_offset=[-0.2446, 0.2446]
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 #14
delta=-7.052
n_qual_games=130
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