Descriptive only — these are measured per-36 rates, not projections.
NBA players · NBA · as of 2026-04-12
Khris Middleton
Historical measurements from this snapshot.
Corpus measurements: 3 seasons in the snapshot, 149 games, 3,664.2 minutes; snapshot 2026-04-12
- Assists per 36 minutes, corpus seasons
- 6Percentile rank 86 among 482 measured profilespct 86 of 482 measured
- Field-goal percentage, corpus seasons
- 46.8%Percentile rank 60 among 482 measured profilespct 60 of 482 measured
- Three-point percentage, corpus seasons
- 37.2%Percentile rank 71 among 482 measured profilespct 71 of 482 measured
- Free-throw percentage, corpus seasons
- 85.9%Percentile rank 88 among 482 measured profilespct 88 of 482 measured
- Games played, corpus seasons
- 149Percentile rank 50 among 482 measured profilespct 50 of 482 measured
- Minutes played, corpus seasons
- 3664.2Percentile rank 57 among 482 measured profilespct 57 of 482 measured
- Points per 36 minutes, corpus seasons
- 18.4Percentile rank 74 among 482 measured profilespct 74 of 482 measured
- Rebounds per 36 minutes, corpus seasons
- 6Percentile rank 55 among 482 measured profilespct 55 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
WAS: active 0.3529 vs missed 0.0667 (delta +0.2863)
n_active=34, n_missed=15, ci95_offset=[-0.2043, 0.2043]
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 #8
delta=-8.727
n_qual_games=149
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