ShotQuality

ShotQuality RAPM

Break down every player's shooting efficiency impact into shot quality, shot making, and free throw value — plus their defensive counterparts. No box priors. Powered by 3-year time-decay RAPM (700-day half-life).

Interested in accessing this data? Request access here

Min poss:
PlayeroTSSQoSQoMakeoFTPoss
DEN
+6.6
+1.8
+3.7
+1.0
17,767
GSW
+5.1
+2.5
+2.3
+0.3
13,087
HOU
+4.5
+1.1
+2.5
+0.8
16,130
MIL
+4.3
+3.1
+1.4
-0.2
12,460
OKC
+3.9
-0.4
+2.7
+1.4
18,195
LAL
+3.4
+1.1
+2.1
+0.3
15,768
LAC
+3.4
+0.5
+2.4
+0.2
11,695
DEN
+3.2
-0.0
+3.0
+0.3
16,266
IND
+3.1
+1.7
+1.5
-0.0
12,235
NYK
+3.0
+0.8
+1.4
+0.8
16,097
LAL
+2.6
+0.1
+2.7
-0.1
8,677
LAL
+2.6
+0.8
+0.5
+1.1
14,481
MIN
+2.6
-0.3
+2.1
+0.7
14,127
PHI
+2.5
-0.2
+1.4
+1.3
6,738
POR
+2.3
+0.3
+1.6
+0.4
13,812
MEM
+2.3
+0.3
+1.8
+0.4
4,029
MEM
+2.3
-0.0
+1.6
+0.7
3,337
CLE
+2.2
+1.1
+1.4
-0.1
13,604
CLE
+2.2
+1.1
-0.4
+1.4
16,253
TOR
+2.2
-0.4
+2.7
-0.4
11,260
PHX
+2.1
+0.2
+1.1
+0.7
15,382
SAS
+2.1
+1.4
+0.1
+0.2
11,388
CHA
+2.1
+1.3
+0.9
-0.1
5,234
WAS
+1.9
+1.0
+0.1
+0.9
10,968
CLE
+1.9
-0.1
+1.4
+0.5
14,927
MIN
+1.9
-0.4
+1.6
+0.7
17,970
DET
+1.9
+0.2
+1.0
+0.5
14,335
IND
+1.9
+1.0
+0.7
0.0
9,234
LAL
+1.9
+0.3
+1.5
+0.3
11,784
GSW
+1.9
-0.2
+0.8
+1.3
10,779
CHI
+1.8
+0.5
+1.2
+0.1
12,459
OKC
+1.8
+0.3
+1.4
+0.1
13,017
SAS
+1.8
-0.2
+1.9
+0.1
12,941
MIN
+1.8
+0.3
+1.5
+0.1
2,990
NYK
+1.8
+0.1
+1.5
+0.5
17,931
IND
+1.8
+0.0
+1.4
+0.3
11,519
CHA
+1.8
-0.0
+1.5
+0.2
13,500
CHA
+1.7
+1.1
+0.5
-0.1
8,968
BOS
+1.6
-0.1
+1.6
+0.1
16,410
ATL
+1.6
-0.3
+1.8
+0.2
14,732
MIL
+1.6
+0.9
+0.6
+0.1
14,918
SAS
+1.5
-0.3
+1.7
-0.1
15,002
LAC
+1.5
+0.9
+0.9
-0.2
12,444
PHX
+1.5
+0.9
+0.1
+0.5
11,223
DAL
+1.5
+0.2
+1.3
+0.0
9,649
MIL
+1.5
-0.1
+2.4
-0.5
6,589
SAS
+1.4
+0.5
+0.8
+0.2
11,918
SAC
+1.4
+0.3
+1.4
-0.1
9,513
OKC
+1.4
+0.5
+0.6
+0.5
10,284
BOS
+1.4
+1.2
+0.5
-0.4
11,448
UTA
+1.4
+0.8
+0.2
+0.4
9,813
IND
+1.4
-0.9
+3.0
-0.5
8,924
ATL
+1.3
-0.1
+2.0
-0.5
13,545
BOS
+1.3
-0.1
+1.0
+0.2
13,987
DET
+1.3
-0.1
+1.6
-0.3
9,923
LAL
+1.3
-0.1
+1.2
+0.3
6,194
LAL
+1.3
+1.1
+0.1
-0.1
14,487
DET
+1.2
+0.7
+0.8
-0.3
11,906
ATL
+1.2
+0.1
+1.4
-0.2
7,401
NOP
+1.2
+0.4
+0.7
+0.1
9,540
DEN
+1.2
+0.8
+0.2
+0.0
10,262
LAC
+1.2
-0.5
+1.2
+0.5
3,458
PHI
+1.2
-0.3
+1.4
+0.2
5,604
CHI
+1.2
+0.2
+1.2
-0.3
6,639
ORL
+1.1
-0.3
+0.7
+0.4
13,702
MIA
+1.1
+0.7
+0.8
-0.2
10,989
MIL
+1.1
+0.7
-0.6
+0.9
10,042
MIA
+1.1
+0.3
+0.5
+0.5
12,486
DAL
+1.1
-0.4
+2.1
-0.7
2,489
SAS
+1.1
+0.4
+0.9
-0.3
4,442
GSW
+1.1
-0.3
+1.3
+0.3
4,807
OKC
+1.0
-0.2
+0.8
+0.3
6,523
UTA
+1.0
+0.1
+0.8
+0.0
6,815
SAC
+1.0
-1.6
+2.1
+0.6
16,666
ORL
+1.0
+0.6
0.0
+0.1
9,735
CHA
+0.9
-0.4
+1.1
+0.0
6,690
LAC
+0.8
+0.2
+0.9
-0.2
7,285
ORL
+0.8
+0.1
+0.4
+0.6
11,743
ATL
+0.8
+0.2
+0.3
+0.3
12,167
TOR
+0.8
-0.4
+1.2
+0.1
10,976
MEM
+0.8
+0.3
-0.0
+0.5
2,924
LAL
+0.8
-0.2
+0.7
+0.4
4,389
MEM
+0.8
+0.6
+0.4
-0.2
8,208
BOS
+0.7
+0.9
-0.2
-0.0
17,560
NYK
+0.7
+0.5
+0.5
-0.3
15,637
GSW
+0.7
+0.1
+1.1
-0.4
10,625
MIL
+0.7
-0.1
+1.2
-0.3
1,712
LAC
+0.7
+0.4
+0.1
+0.3
13,733
CHI
+0.7
+0.2
+0.6
-0.1
1,709
DAL
+0.7
+0.0
+0.8
-0.1
9,450
DAL
+0.7
+0.5
+0.6
-0.2
5,546
DAL
+0.7
-0.2
+1.1
-0.2
3,270
MIL
+0.7
+0.1
+0.8
-0.2
10,149
SAS
+0.7
-0.3
+1.3
-0.2
2,451
NOP
+0.7
+0.2
-0.3
+0.8
4,250
TOR
+0.7
+0.4
+0.1
+0.0
5,977
MIA
+0.7
-0.0
+0.4
+0.1
856
WAS
+0.6
-0.1
+0.7
+0.2
2,091
UTA
+0.6
+0.5
-0.7
+0.9
12,043
PHI
+0.6
-0.1
+0.1
+0.8
15,431
MEM
+0.6
-0.2
+0.5
+0.2
1,742
MIL
+0.6
+0.8
+0.0
-0.4
9,464
IND
+0.6
-1.1
+1.9
-0.1
17,567
UTA
+0.6
+0.5
+0.3
-0.2
4,924
MIN
+0.6
+0.5
+0.1
-0.1
14,947
CHI
+0.6
-0.3
+1.3
-0.4
10,101
WAS
+0.6
-0.0
+0.5
+0.1
233
BKN
+0.6
+1.4
-0.3
-0.4
15,800
UTA
+0.6
+0.3
-0.0
+0.1
7,724
UTA
+0.6
+0.8
-0.7
+0.5
3,764
MIA
+0.6
-0.4
+0.9
-0.1
5,610
TOR
+0.6
+0.1
+1.2
-0.5
8,496
DAL
+0.5
+0.2
+0.1
+0.3
8,335
SAC
+0.5
+0.1
-0.2
+0.7
10,114
MIA
+0.5
-0.8
+0.9
+0.2
15,664
PHI
+0.5
+0.0
+1.0
-0.3
4,364
MIL
+0.5
-0.3
+0.5
+0.4
7,529
BOS
+0.5
+0.0
+0.6
-0.3
2,197
POR
+0.5
+0.6
+0.3
-0.0
13,675
OKC
+0.5
+0.3
+0.5
-0.2
9,885
DAL
+0.5
-0.2
+0.5
+0.2
8,862
HOU
+0.5
0.0
+0.6
-0.1
8,948
OKC
+0.5
+0.1
-0.2
+0.4
4,402
DET
+0.5
-0.2
+1.0
-0.2
10,195
IND
+0.4
+0.9
+0.3
-0.6
12,393
DEN
+0.4
+0.0
+0.6
-0.0
8,879
LAC
+0.4
+0.1
+0.2
+0.1
10,779
GSW
+0.4
+0.4
+0.1
+0.2
11,630
MIN
+0.4
-0.0
+0.6
-0.1
669
CHA
+0.4
+0.6
-0.6
+0.1
10,677
BOS
+0.4
+0.5
+0.6
-0.7
13,665
WAS
+0.4
+0.1
+0.4
+0.0
10,566
PHX
+0.4
-0.3
+1.3
-0.7
6,258
+0.4
-0.0
+0.3
-0.1
266
MIA
+0.4
-0.6
+1.3
-0.4
10,799
GSW
+0.4
-0.0
+0.5
-0.1
563
PHI
+0.4
-0.1
+0.6
-0.1
454
NOP
+0.3
+0.5
-0.5
+0.1
10,357
LAC
+0.3
-0.5
+1.1
-0.3
2,986
PHI
+0.3
+0.2
+0.2
-0.1
10,323
OKC
+0.3
-0.0
+0.9
-0.4
6,438
DEN
+0.3
+0.8
-0.9
+0.6
13,917
DET
+0.3
-0.1
+0.7
-0.1
5,304
LAL
+0.3
-0.5
+0.8
+0.3
4,694
IND
+0.3
-0.1
+0.5
-0.1
1,155
SAC
+0.3
+1.2
-0.4
-0.4
12,180
MEM
+0.3
+0.2
+0.5
-0.3
2,911
BKN
+0.3
+0.5
-0.3
+0.1
2,609
NOP
+0.3
-0.3
+0.2
+0.3
8,914
DAL
+0.3
-0.4
+0.1
+0.6
11,145
DET
+0.3
-0.7
+0.8
+0.1
6,113
CLE
+0.3
+0.6
-0.2
-0.3
13,223
CHI
+0.3
+0.0
+0.2
+0.2
11,176
+0.3
-0.3
+0.4
+0.2
1,297
CLE
+0.3
+0.9
-0.8
-0.2
8,498
NYK
+0.3
-0.2
+0.8
-0.4
1,361
DET
+0.3
+1.0
-0.7
-0.1
12,362
CHI
+0.3
-0.5
+1.0
-0.3
5,776
MIN
+0.2
+0.6
-0.5
+0.3
11,338
LAL
+0.2
-0.0
+0.3
+0.0
283
NOP
+0.2
+0.4
-0.6
+0.2
12,539
GSW
+0.2
+0.4
+0.0
-0.1
5,984
+0.2
-0.0
+0.0
+0.2
623
PHI
+0.2
-0.4
+0.1
+0.4
12,025
LAC
+0.2
-0.4
+0.6
-0.4
11,596
NYK
+0.2
-0.1
+0.2
+0.2
17,643
LAC
+0.2
0.0
+0.1
+0.1
823
SAS
+0.1
-0.5
+0.6
+0.0
3,254
SAS
+0.1
+0.2
-0.1
+0.1
13,671
HOU
+0.1
+0.2
+0.0
-0.3
14,761
GSW
+0.1
-0.1
-0.4
+0.6
8,339
ATL
+0.1
-0.6
+1.0
-0.3
13,373
+0.1
+0.1
+0.3
-0.2
1,039
MEM
+0.1
+0.4
-0.0
-0.2
9,615
GSW
+0.1
-0.2
+0.2
-0.1
4,957
MEM
+0.1
-0.6
+0.5
+0.0
5,885
SAC
+0.1
+0.1
-0.4
+0.4
11,143
CHI
+0.1
+0.0
+0.1
-0.0
636
WAS
+0.1
-0.4
+0.6
-0.1
1,413
MEM
+0.0
+0.2
-0.8
+0.6
5,361
CLE
+0.0
+0.6
-0.3
-0.2
7,971
SAC
+0.0
-0.8
+0.9
-0.1
3,828
DEN
+0.0
+0.4
-0.2
-0.2
386
MEM
+0.0
+0.5
-0.8
+0.2
4,111
CLE
0.0
-0.8
+0.3
+0.3
13,006
LAL
-0.0
+0.1
-0.6
+0.4
8,578
DEN
-0.0
+0.2
+0.3
-0.3
9,984
SAS
-0.0
-0.1
-0.1
+0.0
8,834
UTA
-0.0
-0.3
+0.0
+0.2
1,438
LAC
-0.0
+0.4
+0.1
-0.4
8,213
LAC
-0.0
+0.1
-0.6
+0.6
10,023
MIN
-0.1
-0.4
+0.5
-0.3
14,110
ORL
-0.1
-0.5
+0.7
-0.1
2,076
BKN
-0.1
+0.1
-0.2
-0.0
9,940
ORL
-0.1
-0.5
+0.2
-0.1
2,562
PHI
-0.1
+0.2
-0.2
+0.0
5,489
WAS
-0.1
-0.6
+0.2
+0.3
3,410
IND
-0.1
-0.0
-0.5
+0.1
2,619
GSW
-0.1
-0.1
+0.7
-0.3
1,093
NYK
-0.1
-0.2
+0.3
-0.3
18,751
MIA
-0.1
-0.5
+0.2
+0.3
11,753
CHI
-0.1
-0.3
+0.1
+0.2
3,612
ATL
-0.1
-0.7
+0.6
+0.1
5,559
HOU
-0.1
-0.2
+0.1
-0.4
5,838
BKN
-0.1
-0.2
+0.1
-0.0
851
ORL
-0.1
-1.6
+0.8
+0.3
14,794
MIL
-0.1
-0.7
+1.3
-0.6
10,471
IND
-0.1
-0.4
+0.3
-0.3
3,530
BKN
-0.1
-0.3
+0.4
+0.1
2,443
MIN
-0.1
+0.1
-0.1
+0.0
3,845
-0.1
+0.0
-0.2
+0.1
981
BOS
-0.1
+0.1
+0.2
-0.3
14,846
MIL
-0.1
-0.3
+0.4
-0.2
10,914
ATL
-0.1
+0.7
-1.0
+0.3
12,135
CHA
-0.1
+0.4
-1.0
+0.7
3,628
DEN
-0.1
+0.6
-0.8
-0.1
13,176
DEN
-0.1
+0.2
-0.5
+0.0
11,587
WAS
-0.1
-0.3
+0.3
-0.3
6,097
WAS
-0.1
-0.6
+0.3
+0.0
3,278
MIN
-0.1
+0.5
-0.4
-0.1
15,978
NOP
-0.1
-0.9
+0.6
+0.2
3,669
LAC
-0.2
-0.4
-0.3
+0.7
9,010
PHX
-0.2
+0.1
+0.2
-0.4
1,841
UTA
-0.2
0.0
+0.2
-0.1
606
OKC
-0.2
-0.6
+0.7
-0.2
13,640
CLE
-0.2
+0.0
-0.6
-0.1
8,911
HOU
-0.2
+0.0
-0.2
+0.1
10,656
IND
-0.2
+0.0
-0.2
+0.0
4,121
SAS
-0.2
+0.2
-0.2
-0.1
6,129
MIA
-0.2
-0.3
-0.4
+0.2
2,107
-0.2
-0.1
-0.0
-0.1
228
-0.2
+0.0
-0.1
-0.1
233
ORL
-0.2
+0.2
-0.7
+0.3
5,041
LAC
-0.2
+0.1
-0.8
+0.6
2,750
-0.2
-0.0
-0.1
-0.1
204
POR
-0.2
+0.2
-0.2
-0.1
3,012
OKC
-0.2
-0.0
-0.7
+0.5
9,515
CLE
-0.2
+0.3
-0.7
-0.0
9,150
-0.2
-0.1
-0.2
+0.1
1,716
MEM
-0.3
-0.2
+0.4
-0.4
3,860
OKC
-0.3
-0.2
+0.4
-0.4
11,457
DEN
-0.3
+0.5
-0.7
-0.1
3,172
POR
-0.3
-1.2
-0.1
+0.8
10,411
MIL
-0.3
-0.3
+0.3
-0.4
5,024
WAS
-0.3
-0.2
+0.3
-0.5
5,951
BOS
-0.3
+0.8
-0.8
-0.6
6,346
-0.3
-0.1
-0.0
-0.1
723
DAL
-0.3
-0.6
-0.2
+0.1
4,357
POR
-0.3
-0.5
+0.1
+0.1
9,937
POR
-0.3
-0.0
-0.1
-0.2
348
BOS
-0.3
+0.1
-0.3
-0.1
3,445
CHI
-0.3
-0.0
-0.4
+0.1
9,936
CLE
-0.3
-0.2
+0.3
-0.4
4,759
GSW
-0.3
-0.3
+0.8
-0.6
3,211
DET
-0.3
-0.1
-0.5
+0.2
14,279
CHA
-0.3
-0.2
-0.2
+0.1
221
-0.3
-0.2
+0.2
-0.3
2,629
LAC
-0.3
-0.2
-1.5
+1.2
11,493
IND
-0.3
-0.2
+0.3
-0.4
13,430
PHI
-0.3
+0.0
-0.1
-0.2
1,714
BOS
-0.3
-0.1
-0.3
-0.2
3,146
LAL
-0.4
+0.0
-0.1
-0.3
949
POR
-0.4
-0.1
+0.1
-0.3
2,090
DAL
-0.4
+0.5
-0.6
-0.4
9,611
DAL
-0.4
+1.1
-1.0
-0.6
11,921
-0.4
-0.1
-0.1
-0.2
390
-0.4
-0.1
-0.2
-0.1
629
-0.4
-0.3
+0.0
-0.1
903
PHX
-0.4
-0.2
-0.1
-0.0
291
NOP
-0.4
+0.6
-1.1
+0.4
9,231
BOS
-0.4
+0.4
-0.7
-0.2
3,444
DAL
-0.4
+0.1
-0.4
-0.2
913
-0.4
-0.1
-0.3
-0.0
348
PHI
-0.4
-0.3
-0.1
-0.1
1,975
-0.4
-0.0
-0.3
-0.1
701
MIA
-0.4
-0.5
-0.2
+0.4
4,431
-0.4
-0.2
-0.1
-0.1
412
-0.4
-0.3
-0.1
-0.0
313
WAS
-0.4
-0.2
+0.0
-0.1
826
BKN
-0.4
-0.1
-0.2
-0.1
1,050
ATL
-0.4
+0.2
-0.5
-0.1
8,471
POR
-0.4
-0.0
-0.3
-0.2
14,571
TOR
-0.4
-0.8
+0.1
+0.2
10,592
-0.4
-0.1
-0.3
-0.0
238
BKN
-0.4
-0.2
+0.1
-0.2
2,478
-0.4
0.0
-0.4
-0.1
356
CHA
-0.4
-0.3
+0.1
-0.1
1,481
PHX
-0.5
-0.5
+0.6
-0.6
5,749
TOR
-0.5
+0.0
-0.1
-0.3
543
PHX
-0.5
-0.2
-0.4
+0.3
7,500
LAC
-0.5
-0.2
-0.2
-0.1
3,941
LAC
-0.5
+0.1
-0.4
-0.1
8,956
-0.5
-0.1
-0.2
-0.1
338
-0.5
-0.2
-0.2
-0.0
373
WAS
-0.5
-0.2
-0.2
-0.0
2,216
SAC
-0.5
-0.1
-0.5
-0.3
1,887
DAL
-0.5
-0.3
-0.4
+0.3
10,748
-0.5
+0.0
-0.6
+0.1
361
OKC
-0.5
-0.1
-0.2
-0.3
3,597
-0.5
+0.1
-0.5
-0.1
854
PHX
-0.5
+0.0
-0.2
-0.3
1,358
PHX
-0.5
-0.3
+0.0
-0.1
3,796
-0.5
-0.2
-0.3
-0.1
298
GSW
-0.5
-0.0
-0.5
-0.0
204
DET
-0.5
+0.1
-0.2
-0.1
317
WAS
-0.5
-0.6
+0.4
-0.1
3,667
LAC
-0.5
+0.0
-0.3
-0.1
1,034
IND
-0.5
+0.0
-0.3
-0.2
203
-0.5
-0.0
-0.4
-0.1
227
GSW
-0.5
+0.1
-0.7
+0.1
1,456
-0.5
-0.5
+0.1
-0.1
3,078
WAS
-0.5
-0.5
-0.2
+0.2
2,665
PHX
-0.5
-0.5
-0.3
+0.4
13,683
-0.5
+0.1
-0.4
-0.2
720
ORL
-0.5
-0.2
-0.1
-0.1
1,142
CHI
-0.5
-0.2
-0.1
-0.1
7,732
IND
-0.5
-0.5
-0.4
-0.2
1,276
IND
-0.5
+0.0
-0.0
-0.4
2,088
OKC
-0.5
+0.1
+0.1
-0.5
1,512
MIN
-0.5
-0.3
-0.3
-0.0
1,933
-0.5
+0.0
-0.3
-0.2
2,113
DET
-0.5
+0.2
-0.4
-0.1
534
-0.5
+0.2
-0.7
0.0
1,321
UTA
-0.6
+0.0
-0.4
-0.1
3,373
CHA
-0.6
+0.2
-0.7
-0.0
543
-0.6
+0.1
-0.6
-0.1
925
CLE
-0.6
+0.1
-0.8
0.0
1,124
NYK
-0.6
-0.3
-0.2
-0.2
7,799
LAL
-0.6
+0.9
-1.6
-0.1
6,334
ORL
-0.6
-0.3
-0.9
+0.1
7,115
-0.6
-0.3
+0.1
-0.3
1,220
DAL
-0.6
-0.2
-0.0
-0.3
1,760
IND
-0.6
+0.1
-0.5
-0.1
3,253
MIA
-0.6
-0.3
-0.5
+0.1
8,571
WAS
-0.6
+0.4
-0.9
-0.1
3,090
NYK
-0.6
-0.5
-0.3
+0.3
7,921
ATL
-0.6
+0.1
-0.6
-0.2
1,067
TOR
-0.6
-0.1
-0.4
-0.1
992
CHA
-0.6
-0.0
-0.6
+0.1
742
OKC
-0.6
-0.0
-0.2
-0.2
319
-0.6
-0.2
-0.6
+0.1
822
PHI
-0.6
-0.4
-0.3
-0.2
5,170
TOR
-0.6
-0.2
-0.3
-0.1
6,836
ATL
-0.6
-0.4
-0.4
+0.0
9,720
CHA
-0.6
-0.4
-0.1
-0.1
9,503
CHA
-0.6
-0.3
-0.2
-0.1
14,150
-0.6
+0.1
-0.8
+0.1
1,285
CLE
-0.6
+0.4
-1.4
+0.2
4,602
-0.6
-0.1
-0.5
+0.0
206
DET
-0.6
-0.5
+0.5
-0.6
6,167
-0.6
-0.1
-0.5
-0.1
777
-0.6
-0.3
-0.1
-0.2
804
-0.6
-0.1
-0.5
+0.0
465
MIA
-0.6
+0.1
-0.9
+0.2
6,155
ORL
-0.6
-0.7
-0.3
-0.0
11,675
DAL
-0.6
-0.6
-0.0
+0.0
4,828
CHA
-0.7
-0.2
-0.6
-0.1
6,599
MIN
-0.7
+0.2
-0.9
+0.1
11,145
-0.7
-0.2
-0.5
+0.0
226
CHI
-0.7
-0.2
-0.6
-0.1
325
GSW
-0.7
-0.2
-0.7
+0.2
2,811
NYK
-0.7
-0.2
-0.3
-0.4
2,034
CLE
-0.7
-0.2
-0.3
-0.2
421
-0.7
+0.0
-0.5
-0.1
220
MIA
-0.7
-0.0
-0.2
-0.4
6,597
-0.7
+0.1
-0.8
-0.1
930
-0.7
-0.2
-0.4
-0.0
1,656
-0.7
+0.1
-0.8
+0.1
1,641
POR
-0.7
-0.7
+0.3
-0.1
8,850
NYK
-0.7
-0.3
-0.3
-0.0
1,134
ATL
-0.7
-0.1
-0.5
-0.2
239
NOP
-0.7
+0.2
-0.8
-0.1
1,940
NYK
-0.7
-0.4
-0.6
-0.1
5,620
IND
-0.7
+0.1
-0.7
-0.1
488
-0.7
-0.1
-0.7
+0.1
857
BKN
-0.7
-0.3
-1.0
+0.6
6,301
MIL
-0.7
-0.5
-0.0
-0.1
5,755
IND
-0.7
+0.1
-0.8
-0.4
5,122
NOP
-0.7
+0.1
-0.4
-0.3
3,473
PHI
-0.7
-0.3
-0.6
-0.1
4,409
PHI
-0.7
-0.5
-0.5
+0.3
3,135
-0.7
-0.1
-0.5
-0.1
545
HOU
-0.8
-0.6
-0.2
0.0
6,034
WAS
-0.8
-0.5
-0.2
-0.1
6,504
UTA
-0.8
-0.4
-0.3
-0.1
5,727
MIL
-0.8
-0.1
-0.6
-0.0
773
PHX
-0.8
-0.3
-0.4
-0.1
1,674
UTA
-0.8
+0.1
-0.5
-0.4
8,782
HOU
-0.8
-0.2
-0.3
-0.3
662
PHX
-0.8
+0.2
-0.9
-0.0
12,472
-0.8
+0.1
-0.6
-0.2
1,620
-0.8
-0.3
-0.4
+0.0
809
-0.8
-0.2
-0.5
-0.1
206
GSW
-0.8
-0.0
-0.4
-0.4
3,993
TOR
-0.8
+0.1
-0.6
-0.3
1,625
ORL
-0.8
-0.2
-0.4
+0.2
1,219
IND
-0.8
+0.3
-0.9
-0.4
951
DET
-0.8
-0.7
-0.2
+0.0
8,472
TOR
-0.8
-0.2
-0.6
-0.1
14,331
CLE
-0.8
+0.0
-0.4
-0.5
4,634
POR
-0.8
-0.1
-0.3
-0.4
6,324
UTA
-0.8
-0.2
-0.4
-0.1
1,796
CHA
-0.8
+0.1
-0.8
-0.0
555
TOR
-0.8
+0.1
-0.3
-0.4
3,205
MIL
-0.8
-0.2
-0.6
+0.2
5,769
-0.8
-0.1
-0.6
-0.1
639
DAL
-0.8
+0.4
-1.2
-0.2
5,450
DAL
-0.8
-0.1
-0.9
-0.0
612
MEM
-0.8
+0.1
-0.8
-0.1
1,488
PHI
-0.8
-0.2
-0.5
-0.2
5,976
WAS
-0.8
-0.1
-0.3
-0.4
4,429
PHX
-0.8
+0.1
-0.8
-0.2
6,756
-0.8
-0.2
-0.6
-0.1
254
MIA
-0.8
-0.3
-0.3
-0.1
12,346
HOU
-0.9
-0.2
-0.5
-0.5
14,258
GSW
-0.9
-0.0
-0.7
-0.1
591
LAL
-0.9
+0.2
-0.6
-0.4
3,952
DET
-0.9
+0.1
-0.8
-0.1
239
CHI
-0.9
-0.8
+0.3
-0.3
7,713
DET
-0.9
-0.5
-0.7
+0.4
3,044
SAC
-0.9
-0.6
+0.5
-0.5
2,443
SAC
-0.9
-0.5
-0.1
-0.2
5,196
UTA
-0.9
+0.2
-1.0
-0.1
6,730
NOP
-0.9
-0.3
-0.3
-0.2
477
DET
-0.9
-0.1
-0.3
-0.5
10,188
MIA
-0.9
+0.1
-1.2
+0.2
2,451
NYK
-0.9
-0.6
+0.0
-0.3
3,009
-0.9
-0.0
-0.7
-0.2
803
WAS
-0.9
-0.5
-0.5
+0.1
10,452
-0.9
-0.1
-0.7
-0.1
503
CLE
-0.9
-0.2
-0.5
-0.3
1,276
-0.9
-0.3
-0.6
-0.1
448
-0.9
-0.3
-0.6
-0.1
1,452
OKC
-0.9
+0.2
-0.5
-0.4
14,861
DEN
-0.9
+0.2
-0.6
-0.4
10,409
LAL
-0.9
-0.1
-0.3
-0.4
1,065
SAC
-0.9
-1.4
+0.2
-0.2
4,010
BKN
-1.0
-0.5
-0.4
-0.1
6,053
NYK
-1.0
-0.2
-0.5
-0.1
486
DAL
-1.0
0.0
-0.7
-0.3
1,139
HOU
-1.0
-0.5
-0.3
-0.3
7,564
MIN
-1.0
-0.3
-0.3
-0.3
3,434
DAL
-1.0
+0.1
-0.9
-0.2
673
CHA
-1.0
-0.7
-0.1
-0.1
2,367
NOP
-1.0
-0.4
-0.5
-0.1
667
-1.0
-0.0
-0.7
-0.3
1,386
CHI
-1.0
-0.1
-0.6
-0.2
7,344
SAC
-1.0
+0.0
-0.7
-0.2
12,330
IND
-1.0
-0.0
-1.2
-0.1
692
DAL
-1.0
-0.6
-0.3
+0.0
13,458
HOU
-1.0
+0.2
-1.2
+0.2
5,948
SAC
-1.0
-0.0
-0.8
-0.1
2,747
POR
-1.0
-0.3
-0.2
-0.6
3,908
NYK
-1.0
+0.1
-0.9
-0.1
9,579
ATL
-1.0
-0.1
-0.6
-0.3
5,936
CLE
-1.0
+0.0
-0.8
-0.3
2,239
-1.0
+0.1
-0.8
-0.3
2,027
-1.0
-0.3
-0.9
+0.2
1,068
PHI
-1.0
-0.1
-0.5
-0.4
3,022
LAL
-1.0
-0.3
-0.4
-0.3
799
SAC
-1.0
-0.1
-0.6
-0.2
1,492
ATL
-1.0
+0.3
-0.7
-0.7
10,885
-1.0
-0.5
-0.2
-0.3
2,639
DET
-1.0
-0.1
-0.7
-0.2
674
-1.0
-0.4
-1.1
+0.4
3,338
-1.0
-0.2
-0.9
+0.0
541
HOU
-1.0
-0.6
-0.4
-0.2
3,362
DAL
-1.1
-0.1
-1.1
-0.1
562
CHA
-1.1
-0.4
-0.6
-0.1
530
MIL
-1.1
-0.1
-0.9
-0.1
578
WAS
-1.1
-0.3
-0.3
-0.2
1,467
PHI
-1.1
-0.6
-0.6
-0.0
6,655
BOS
-1.1
+0.3
-1.1
-0.4
3,671
POR
-1.1
-0.2
-0.8
+0.0
3,461
NOP
-1.1
-0.3
-0.6
-0.1
276
DAL
-1.1
+0.0
-0.9
-0.2
285
BKN
-1.1
-0.9
+0.1
-0.3
3,914
LAL
-1.1
-0.3
-0.9
+0.1
3,150
-1.1
-0.2
-0.8
-0.1
834
LAC
-1.1
+0.2
-1.4
+0.1
1,609
UTA
-1.1
-0.3
-0.5
-0.4
6,771
-1.1
-0.1
-0.8
-0.2
252
ORL
-1.1
+0.1
-1.3
-0.2
6,981
-1.1
+0.1
-1.2
+0.0
929
LAC
-1.1
-0.2
-0.7
-0.2
503
PHI
-1.1
-0.5
-0.5
-0.1
858
SAC
-1.1
+0.1
-1.1
-0.1
2,648
SAC
-1.1
-0.1
-0.3
-0.5
3,605
SAS
-1.1
-1.3
+1.1
-0.9
2,884
PHI
-1.1
-0.4
-0.5
-0.2
3,355
PHX
-1.1
-0.5
-0.1
-0.4
13,416
ORL
-1.1
-0.0
-1.0
-0.3
4,596
TOR
-1.1
+0.1
-1.2
-0.1
8,089
SAC
-1.1
-1.0
+0.1
-0.1
12,153
MEM
-1.2
-0.3
-0.5
-0.4
5,328
-1.2
-0.1
-0.8
-0.1
328
LAL
-1.2
-0.6
-0.1
-0.6
9,933
DEN
-1.2
+0.2
-1.6
+0.1
5,911
OKC
-1.2
-0.3
-0.7
-0.3
259
NOP
-1.2
-0.4
-0.8
+0.0
3,416
BOS
-1.2
+0.1
-1.1
-0.3
682
MIL
-1.2
-0.6
-0.1
-0.6
12,368
TOR
-1.2
-0.3
-0.8
-0.1
1,196
LAL
-1.2
-0.3
-0.3
-0.5
1,691
TOR
-1.2
-0.1
-0.9
-0.2
2,540
-1.2
-0.3
-0.9
-0.0
598
GSW
-1.2
-0.2
-0.8
-0.2
1,332
CLE
-1.2
+0.2
-0.9
-0.5
3,204
BKN
-1.2
-1.2
+0.1
+0.0
7,013
POR
-1.3
-0.3
-0.9
-0.1
590
NYK
-1.3
-0.2
-0.8
-0.1
354
MIL
-1.3
+0.1
-1.1
-0.5
4,003
OKC
-1.3
+0.0
-1.1
-0.3
13,033
TOR
-1.3
+0.1
-1.1
-0.1
2,238
-1.3
-0.4
-0.6
-0.2
887
DEN
-1.3
-0.1
-0.9
-0.2
300
-1.3
-0.2
-0.9
-0.1
351
MEM
-1.3
-0.2
-1.1
-0.1
3,943
DET
-1.3
-0.5
-0.9
+0.2
10,305
MEM
-1.3
-0.4
-0.6
-0.1
1,386
-1.3
-0.3
-0.9
-0.1
271
PHI
-1.3
-0.3
-0.7
-0.2
533
MEM
-1.3
-0.2
-0.8
-0.3
4,182
DEN
-1.3
+0.0
-1.5
+0.2
9,762
HOU
-1.3
+0.1
-1.1
-0.2
286
SAS
-1.3
+0.3
-1.0
-0.5
8,454
ATL
-1.3
-0.1
-0.8
-0.5
2,051
ORL
-1.3
-0.3
-0.9
+0.3
10,109
CHI
-1.3
-0.5
-0.5
-0.3
731
UTA
-1.3
-0.4
-0.6
-0.1
1,624
BKN
-1.3
-0.3
-0.7
-0.2
1,785
-1.4
-0.6
-0.7
-0.1
1,098
PHX
-1.4
-0.3
-0.9
-0.1
374
UTA
-1.4
-0.3
-0.7
-0.2
5,519
MIN
-1.4
+0.1
-0.8
-0.5
3,994
LAL
-1.4
-0.4
-0.9
-0.1
2,897
GSW
-1.4
-0.9
-0.2
-0.2
3,688
SAS
-1.4
-0.1
-0.6
-0.7
2,743
TOR
-1.4
-0.3
-1.0
-0.2
5,288
POR
-1.4
-0.3
-1.0
-0.1
4,008
ATL
-1.4
-0.2
-0.8
-0.5
3,692
ATL
-1.4
-0.0
-1.1
-0.3
1,425
GSW
-1.4
-1.0
-0.3
-0.3
13,136
NOP
-1.4
-0.2
-1.0
-0.2
1,238
WAS
-1.4
-0.2
-0.8
-0.4
4,670
DAL
-1.4
-0.4
-1.0
-0.1
4,986
CHA
-1.4
+0.9
-2.9
+0.1
3,044
POR
-1.4
-0.1
-1.0
-0.5
4,561
OKC
-1.4
-0.1
-0.8
-0.4
1,300
TOR
-1.4
-0.1
-1.4
+0.1
304
MIN
-1.4
+1.3
-1.8
-1.0
16,412
MIA
-1.4
-0.3
-1.1
-0.2
935
ATL
-1.4
-0.1
-0.7
-0.8
7,091
PHI
-1.4
-0.5
-0.7
-0.3
1,565
PHI
-1.4
+0.3
-2.1
+0.3
10,788
-1.4
-0.3
-0.9
-0.3
1,486
-1.5
-0.5
-0.8
-0.2
1,853
CLE
-1.5
+0.2
-1.5
-0.0
4,453
HOU
-1.5
-0.3
-1.3
+0.1
14,516
PHI
-1.5
-0.2
-0.8
-0.5
4,640
BKN
-1.5
-0.2
-1.0
-0.3
833
CHA
-1.5
-0.3
-1.2
-0.1
750
ORL
-1.5
-0.2
-1.4
-0.1
3,029
UTA
-1.5
-0.9
-1.2
+0.6
12,387
BOS
-1.5
-0.1
-1.4
-0.1
279
BKN
-1.5
-0.3
-1.0
-0.2
8,818
NOP
-1.5
-0.5
-0.6
-0.4
1,030
MIN
-1.5
-0.7
-0.9
+0.2
2,933
WAS
-1.5
-0.4
-0.9
-0.2
1,811
CHA
-1.5
-0.0
-1.5
+0.1
5,446
IND
-1.5
-0.7
-0.8
-0.1
7,285
-1.5
-0.2
-1.1
-0.3
410
CLE
-1.6
+0.2
-1.5
-0.2
411
SAC
-1.6
-0.3
-0.9
-0.4
3,211
NOP
-1.6
-0.6
-0.7
-0.3
771
POR
-1.6
-0.3
-0.8
-0.2
4,637
NYK
-1.6
-0.5
-0.7
-0.3
2,054
PHX
-1.6
-0.1
-1.1
-0.2
835
HOU
-1.6
-0.1
-1.4
-0.1
3,927
-1.6
-0.6
-1.2
+0.1
1,938
NOP
-1.6
-0.3
-1.3
-0.0
4,534
DEN
-1.6
-0.1
-1.4
-0.2
3,243
PHI
-1.6
-0.5
-1.3
+0.2
5,288
SAS
-1.6
+0.3
-2.0
+0.1
1,660
MEM
-1.6
-0.1
-1.4
-0.1
783
DET
-1.6
-0.7
-0.6
-0.4
1,449
IND
-1.6
-0.3
-1.3
0.0
2,323
IND
-1.6
-0.2
-1.1
-0.3
8,299
PHX
-1.6
+0.1
-1.9
+0.1
6,566
NOP
-1.6
+0.5
-2.1
0.0
11,035
MEM
-1.7
-0.4
-0.8
-0.1
12,776
OKC
-1.7
-0.2
-1.1
-0.4
436
GSW
-1.7
-0.3
-1.3
-0.1
9,332
MEM
-1.7
-0.1
-1.5
-0.2
946
IND
-1.7
-0.7
-1.0
-0.1
2,385
DAL
-1.7
-0.9
-0.5
-0.2
4,003
-1.7
-0.1
-1.6
-0.0
1,136
WAS
-1.8
-0.3
-1.1
-0.5
6,354
POR
-1.8
-0.1
-1.6
-0.1
7,726
PHX
-1.8
-0.2
-0.8
-0.7
1,583
MIL
-1.8
-0.5
-1.0
-0.1
7,430
WAS
-1.8
-0.4
-1.3
-0.1
483
ATL
-1.8
-0.5
-0.6
-0.6
3,412
PHI
-1.8
-0.5
-1.3
-0.0
5,173
DET
-1.8
-0.3
-1.2
-0.3
1,334
CHI
-1.8
-0.4
-1.1
-0.2
5,529
LAL
-1.8
-0.3
-1.3
-0.2
875
SAC
-1.8
-0.6
-1.2
-0.2
2,309
CHI
-1.8
-0.5
-0.6
-0.4
3,118
BKN
-1.8
-0.4
-1.7
+0.3
2,481
NYK
-1.8
-0.6
-1.0
-0.2
1,423
ORL
-1.8
-0.6
-1.1
-0.1
1,561
HOU
-1.8
-0.4
-1.4
-0.1
4,213
DET
-1.9
-0.4
-1.8
+0.4
5,744
BKN
-1.9
-0.7
-1.0
-0.2
942
NOP
-1.9
-1.0
-0.4
-0.5
2,778
UTA
-1.9
+0.0
-2.0
+0.0
4,219
POR
-2.0
-0.3
-1.4
-0.2
990
CHA
-2.0
-0.3
-1.2
-0.2
3,809
NYK
-2.0
-0.7
-1.1
-0.2
2,065
GSW
-2.0
+0.0
-1.8
-0.2
1,530
WAS
-2.0
-0.7
-1.1
-0.2
2,077
SAC
-2.0
-0.6
-1.1
-0.1
1,832
IND
-2.1
-0.7
-1.3
-0.1
4,011
POR
-2.1
-0.4
-1.2
-0.6
7,315
HOU
-2.1
-1.3
-0.3
-0.3
3,645
ATL
-2.1
+0.2
-2.3
-0.0
607
UTA
-2.1
-0.2
-1.6
-0.4
2,372
SAC
-2.1
-0.3
-2.0
+0.1
4,986
CHA
-2.1
-0.3
-1.4
-0.3
2,898
BKN
-2.2
-0.5
-1.5
-0.2
2,307
NYK
-2.2
-0.0
-1.8
-0.1
8,271
DEN
-2.2
-0.6
-1.4
-0.2
2,202
MIL
-2.2
+0.2
-2.3
-0.3
3,765
NYK
-2.2
-0.6
-0.9
-1.0
5,601
TOR
-2.2
+0.2
-1.7
-0.7
5,527
TOR
-2.3
-0.3
-1.8
-0.1
1,084
CHI
-2.3
-0.6
-1.5
-0.1
10,791
NOP
-2.3
-0.4
-1.8
+0.1
6,661
SAS
-2.3
-1.0
-1.3
+0.0
12,186
BKN
-2.3
-0.0
-2.5
+0.3
7,633
NOP
-2.3
-0.3
-1.2
-0.7
2,673
BOS
-2.3
-0.2
-1.8
-0.3
2,840
ATL
-2.3
-0.7
-1.8
+0.1
1,336
CLE
-2.4
-0.4
-1.3
-0.7
1,974
LAL
-2.4
-1.1
-0.9
-0.3
4,889
MIA
-2.4
-0.7
-1.3
-0.4
7,398
SAC
-2.4
-0.7
-1.2
-0.6
9,589
OKC
-2.5
-0.2
-2.1
0.0
692
PHX
-2.5
-0.9
-1.3
-0.3
6,579
PHI
-2.5
-0.6
-1.6
-0.4
4,163
DAL
-2.5
-0.9
-1.2
-0.3
7,905
DEN
-2.5
-0.5
-1.6
-0.4
3,660
MIN
-2.5
-0.9
-1.4
+0.1
7,784
WAS
-2.5
-0.7
-1.1
-0.6
9,591
DEN
-2.6
+0.1
-2.4
-0.2
1,303
BKN
-2.6
-0.2
-1.8
-0.6
11,612
CHA
-2.6
-1.0
-1.5
-0.0
3,607
PHX
-2.7
+0.4
-2.1
-0.8
5,535
CHA
-2.7
-0.8
-1.3
-0.5
1,431
PHI
-2.7
-0.6
-1.8
-0.4
4,656
NOP
-2.8
-0.9
-1.7
-0.2
5,827
ORL
-2.9
-0.7
-1.9
-0.3
2,294
CHI
-2.9
-0.6
-2.1
-0.1
8,853
DAL
-2.9
-0.8
-2.0
-0.2
2,200
MIA
-2.9
-0.6
-2.5
+0.0
3,263
ORL
-3.1
-0.4
-2.6
-0.0
5,564
UTA
-3.1
-0.4
-2.3
-0.3
6,037
HOU
-3.3
-0.3
-1.9
-1.1
8,593
TOR
-3.3
-0.1
-2.7
-0.3
3,157
NOP
-3.8
-1.5
-1.7
-0.8
6,877
PHI
-3.9
-0.7
-2.5
-0.6
6,942
MEM
-4.0
-1.1
-2.7
-0.3
4,488
Positive impact (gold)Negative impact (cyan)Values in pts/100 shots vs league average. No box priors. Positive is always good on both offense and defense.

How to Read the Numbers

All values are in points per 100 shots vs league average. Zero means average. Turnover possessions are excluded — only possessions with a shot attempt or free throw are in the model.

Positive = goodon both offense and defense
Negative = badon both offense and defense
Offense example

+2.0 oTS means the team shoots ~2 points better per 100 shots with this player on the floor.

Defense example

-1.5 dTS means opponents shoot ~1.5 points better per 100 shots (bad). Display values are sign-flipped so positive is always good.

This is a lineup-adjusted estimate with no box-score priors — pure lineup signal, not stabilized like DARKO or EPM.

Column Glossary

Offense

oTS

Offensive shooting efficiency impact in pts/100 shots vs league average. oSQ + oMake + oFT = oTS in the decomposition framework.

oSQ

RAPM impact on shot quality: the quality of looks generated (spacing, gravity, playmaking, shot selection) as measured by ShotQuality pre-shot expected value.

oMake

RAPM impact on shot finishing: actual points minus ShotQuality pre-shot prediction — how often a player's lineup over/underperforms expectations.

oFT

RAPM impact on free throw value: offense from drawing trips to the line and converting better/worse than a foul-type baseline derived from average FGA value (avg_pts).

Defense

dTS

Defensive shooting efficiency impact in pts/100 shots vs league average. Positive = good (opponents shoot worse). dSQ + dContest + dFT ≈ dTS. Signs flipped so positive always means good defense.

dSQ

RAPM impact on opponent shot quality: forcing worse looks through help defense, contest timing, and positioning. Positive = good.

dContest

RAPM impact on shot alteration: making opponents miss shots they would normally make. Rim protection, closeouts, contest quality. Positive = good.

dFT

RAPM impact on opponent free throws: defensive pressure on trips to the line and suppression of opponent free throw scoring. Positive = good.

Overview

Traditional RAPM asks: how much does this player impact team scoring? The ShotQuality decomposition answers why — breaking the shooting efficiency component into shot quality, shot making, and free throw value.

Using ShotQuality's pre-shot expected value (based on shot location, closest defender distance, shot type, shooter movement, touch time, and other contextual factors), we decompose each player's lineup-level shooting efficiency impact into three components that sum exactly on every possession.

The Four Parallel Regressions

We process ~650,000 non-turnover possessions from the 2023-24 through 2025-26 seasons, running four separate ridge regressions on the same possessions — same +1/-1 design matrix, same stints, same ridge penalty — each scoring them differently:

1
True Shooting (TS)

What actually happened? FGAs scored at actual points. FT possessions at shooter's expected FT value.

2
Shot Quality (SQ)

How good was the look? FGAs at ShotQuality pre-shot EV. FT possessions at a foul-type-specific baseline representing the expected shot value the foul replaced.

3
FT Value (FT)

Value from the line? FGAs at zero. FT possessions at expected FT value minus the foul-type baseline — capturing the premium above what a normal possession would have produced.

4
Shot Making (CONTEST)

Beat the expectation? FGAs as actual minus SQ EV. FT possessions at zero.

TS (total target) = SQ + Shot Making + FT Value (three components) on every possession

The dependent variables sum exactly by construction. After ridge regression, the RAPM coefficients sum approximately due to differential shrinkage across the four regressions.

Foul-Type Baselines

Not all free throw possessions are equal. A 2-shot foul replaces a normal possession; an and-1 is pure bonus on top of a made basket. The SQ and FT components use foul-type-aware baselines to split each FT possession correctly:

  • - avg_pts = average points scored on FGA possessions (~1.09) — the counterfactual value of a normal possession if no foul occurred
  • - 2-shot foul: baseline = avg_pts / 2 per FT (~0.54) — the foul replaced a ~1.09 possession, split across 2 free throws
  • - 3-shot foul: baseline = avg_pts / 3 per FT (~0.36) — same idea, split across 3 free throws
  • - And-1: baseline = 0 — the basket already counted, the FT is pure bonus
  • - Technical: baseline = 0 — no possession was replaced
MetricRoleFGA2-Shot Foul (per FT)3-Shot Foul (per FT)And-1 / Tech FT
TSTargetActual pointsExpected FT valueExpected FT valueExpected FT value
SQComponent 1 of 3ShotQuality pre-shot EVavg_pts / 2 (~0.54)avg_pts / 3 (~0.36)0
FT ValueComponent 2 of 30ExpFT - avg_pts/2ExpFT - avg_pts/3ExpFT
CONTESTComponent 3 of 3Actual points - SQ EV000
SumSQ + FT + CONTEST = TS= Actual points= Expected FT value= Expected FT value= Expected FT value

Example: Fouling a 90% FT shooter on a 3-pointer has an expected value of 2.7 points (0.90 x 3). A normal FGA possession is worth 1.09 points, so FT Value is +1.61 (2.7 - 1.09). In the decomposition, SQ gets 1.09 total (0.36 per FT) and FT Value gets +1.61 total (0.54 per FT).

Calibration

ShotQuality's pre-shot EV model can have small year-to-year biases (e.g., systematically underrating 2025-26 shots by ~0.03 points). We apply a per-year additive calibration so the mean initial EV matches the mean actual points scored on FGAs. This prevents systematic over- or under-crediting of shot quality for players in any given season. Missing initial EV values (~6-10% of FGAs) are filled with the year's average actual points — contributing zero signal to both SQ and CONTEST.

Ridge Regression & WLS Decomposition

  • - Method: Ridge regression with alternating offense/defense blocks (alpha = 3000)
  • - Design matrix: One column per player (~775 players), +1 on-court offense, -1 on-court defense
  • - No box priors: Pure lineup signal — no DARKO/EPM-style stabilization
  • - Time-decay: Half-life of 700 days — six seasons for stability, recent games weighted more

With four sets of RAPM coefficients, a second-stage weighted least squares regression confirms the decomposition:

Off TS ≈ β1 Off SQ + β2 Off FT + β3 Off Contest

Def TS ≈ β4 Def SQ + β5 Def FT + β6 Def Contest

Coefficients land at ~1.000 with R² > 0.9999. The foul-type-aware baselines and per-year calibration eliminate cross-component leakage, producing a near-perfect additive decomposition.

Data & Credits

Shot quality data provided by ShotQuality, which uses spatial tracking to compute pre-shot expected values for every NBA FGA. See their stats explained page for details.