Individual offensive and defensive ratings are the brainchild of Dean Oliver, author of the the seminal book Basketball on Paper.
I. Individual Offensive Ratings
An individual’s offensive rating is an estimate of the number of points the player produces per 100 individual possessions. It is computed as follows:
ORtg = 100 * (PProd / Poss)
In this section, I’ll outline how to calculate individual possessions and points produced.
A. Individual Possessions
Individual possessions are made up of four components: scoring possessions (Sc_Poss), missed field goal possessions (FGX_Poss), missed free throw possessions (FTX_Poss), and turnovers (TOV):
Poss = Sc_Poss + FGX_Poss + FTX_Poss + TOV
(1) Scoring Possessions
The formula for scoring possessions (ScPoss) is:
Sc_Poss = (FG_Part + AST_Part + FT_Part) * (1 - (Tm_ORB / Tm_Sc_Poss) * Tm_ORB_Wt * Team_Play%) + ORB_Part
The formula for the field goal part (FG_Part) is:
FG_Part = FGM * (1 - 0.5 * ((PTS - FTM) / (2 * FGA)) * qAST)
where
qAST = ((MIN / (Tm_MIN / 5)) * (1.14 * ((Tm_AST - AST) / Tm_FGM))) + ((((Tm_AST / Tm_MIN) * MIN * 5 - AST) / ((Tm_FGM / Tm_MIN) * MIN * 5 - FGM)) * (1 - (MIN / (Tm_MIN / 5))))
The formula for the assist part (AST_Part) is:
AST_Part = 0.5 * (((Tm_PTS - Tm_FTM) - (PTS - FTM)) / (2 * (Tm_FGA - FGA))) * AST
The formula for the free throw part (FT_Part) is:
FT_Part = (1 - (1 - (FTM / FTA))^2) * 0.4 * FTA
The formula for team scoring possessions (Tm_Sc_Poss) is:
Tm_Sc_Poss = Tm_FGM + (1 - (1 - (Tm_FTM / Tm_FTA))^2) * Tm_FTA * 0.4
The formula for team offensive rebound weight (Tm_ORB_Wt) is:
Tm_ORB_Wt = ((1 - Tm_ORB%) * Tm_Play%) / ((1 - Tm_ORB%) * Tm_Play% + Tm_ORB% * (1 - Tm_Play%))
The formula for the team offensive rebound percentage (Tm_ORB%) is:
Tm_ORB% = Tm_ORB / (Tm_ORB + (Opp_TRB - Opp_ORB))
The formula for team play percentage (Tm_Play%) is:
Tm_Play% = Tm_Sc_Poss / (Tm_FGA + Tm_FTA * 0.4 + Tm_TOV)
The formula for the offensive rebound part (ORB_Part) is:
ORB_Part = ORB * Tm_ORB_Wt * Tm_Play%
(2) Missed Field Goal Possessions
The formula for missed field goal possessions (FGX_Poss) is:
FGX_Poss = (FGA - FGM) * (1 - 1.07 * Tm_ORB%)
where team offensive rebound percentage (Tm_ORB%) is calculated as above.
(3) Missed Free Throw Possessions
The formula for missed free throw possessions (FTX_Poss) is:
FTX_Poss = ((1 - (FTM / FTA))^2) * 0.4 * FTA
(4) Turnovers
This is simply individual turnovers (TOV).
B. Individual Points Produced
Individual points produced are made up of four components:
PProd = (FG_Part + AST_Part + FTM) * (1 - (Tm_ORB / Tm_Sc_Poss) * Tm_ORB_Wt * Team_Play%) + ORB_Part
where team scoring possessions (Tm_Sc_Poss), team offensive rebound weight (Tm_ORB_Wt), and team play percentage (Tm_Play%) are calculated as above.
(1) Field Goal Part
The formula for the field goal part is:
FG_Part = 2 * (FGM + 0.5 * FG3M) * (1 - 0.5 * ((PTS - FTM) / (2 * FGA)) * qAST)
where the assist factor (qAST) is calculated as above.
(2) Assist Part
The formula for the assist part is:
AST_Part = 2 * ((Tm_FGM - FGM + 0.5 * (Tm_FG3M - FG3M)) / (Tm_FGM - FGM)) * 0.5 * (((Tm_PTS - Tm_FTM) - (PTS - FTM)) / (2 * (Tm_FGA - FGA))) * AST
(3) Offensive Rebound Part
The formula for the offensive rebound part is:
ORB_Part = ORB * Tm_ORB_Wt * Tm_Play% * (Tm_PTS / (Tm_FGM + (1 - (1 - (Tm_FTM / Tm_FTA))^2) * 0.4 * Tm_FTA))
where team offensive rebound weight (Tm_ORB_Wt) and team play percentage (Tm_Play%) are calculated as above.
II. Individual Defensive Ratings
An individual’s defensive rating is an estimate of the number of points the player allows per 100 individual possessions faced. Defensive rating is made up of three components: team defensive rating (Tm_DRtg), opponent points per scoring possession (Opp_PTS_Per_Sc_Poss), and stop percentage (Stop%):
DRtg = Tm_DRtg + 0.2 * (100 * Opp_PTS_Per_Sc_Poss * (1 - Stop%) - Tm_DRtg)
A. Team Defensive Rating
The formula for team defensive rating (Tm_DRtg) is:
Tm_DRtg = 100 * (Opp_PTS / Opp_Poss)
where:
Opp_Poss = 0.5 * ((Tm_FGA + 0.4 * Tm_FTA - 1.07 * (Tm_ORB / (Tm_ORB + Opp_DRB)) * (Tm_FGA - Tm_FGM) + Tm_TOV) + (Opp_FGA + 0.4 * Opp_FTA - 1.07 * (Opp_ORB / (Opp_ORB + Tm_DRB)) * (Opp_FGA - Opp_FGM) + Opp_TOV))
B. Opponent Points Per Scoring Possession
The formula for opponent points per scoring possession (Opp_PTS_Per_Sc_Poss) is:
Opp_PTS_Per_Sc_Poss = Opp_PTS / (Opp_FGM + (1 - (1 - (Opp_FTM / Opp_FTA))^2) * Opp_FTA * 0.4)
C. Stop Percentage
The formula for stop percentage is:
Stop% = (Stops * Opp_MIN) / (Tm_Poss * MIN)
where:
Stops = Stops1 + Stops2
The formula for the first estimate of stops (Stops1) is:
Stops1 = STL + BLK * FM_Wt * (1 - 1.07 * Opp_ORB%) + DRB * (1 - FM_Wt)
where:
FM_Wt = (Opp_FG% * (1 - Opp_ORB%)) / (Opp_FG% * (1 - Opp_FG%) + (1 - Opp_FG%) * Opp_ORB%)
and:
Opp_ORB% = Opp_ORB / (Opp_ORB + Tm_DRB)
The formula for the second estimate of stops (Stops2) is:
Stops2 = (((Opp_FGA - Opp_FGM - Tm_BLK) / Tm_MIN) * FM_Wt * (1 - 1.07 * Opp_ORB%) + ((Opp_TOV - Tm_STL) / Tm_MIN)) * MIN + (PF / Tm_PF) * 0.4 * Opp_FTA * (1 - (Opp_FTM / Opp_FTA))^2
The formula for team possessions (Tm_Poss) is:
Tm_Poss = 0.5 * ((Tm_FGA + 0.4 * Tm_FTA - 1.07 * (Tm_ORB / (Tm_ORB + Opp_DRB)) * (Tm_FGA - Tm_FGM) + Tm_TOV) + (Opp_FGA + 0.4 * Opp_FTA - 1.07 * (Opp_ORB / (Opp_ORB + Tm_DRB)) * (Opp_FGA - Opp_FGM) + Opp_TOV))