NBA Ranking System Explained

The NBA Rankings on this website are based on a formula that I have devised that rates teams based on both how they perform this season as well as how they compare to teams of the past. The statistic that I have devised is called the “Team Score.” It is calculated differently than my like-named statistic for the NFL because the two sports are inherently different and therefore deserve different formulas, however they inherently accomplish the same thing.

In order to help you understand what the Team Score means, I will explain to you how, and why, it is calculated.

Adjusted SOS & Adjusted Winning Percentage
First, I calculate the team’s winning percentage (Wins/Games Played). I then create an “adjusted winning percentage (AWP)” by multiplying that winning percentage by the team’s “adjusted strength of schedule (ASOS).” The adjusted strength of schedule (SOS) is a team’s actual strength of schedule averaged with an SOS of .500.” This is done to lessen the impact of one’s schedule (which they cannot control) upon one’s statistic. However, the ASOS must be factored in because a 60-22 record against an SOS of .600 is much more impressive than a 60-22 record against an SOS of .400, for example. The pre-adjusted SOS comes from

ASOS = (SOS+.500)/2
AWP = (Wins/Games Played)*2*ASOS

Normed Offense and Defense
Next, I calculate how many points a team scores and allows per 100 possessions. Using the “per 100 possessions” statistics shows how efficient a team is per possession as opposed to per game. This is important because teams play the game at different paces based on who they are playing and what is the proper strategy for that specific game. Just because a team scores more points per game than another team does not mean they have a better offense, it might mean that they simply use less game clock per possession and give themselves more opportunities to score. The number of points scored per 100 possessions is termed “OffScore” and the number of points allowed per 100 possessions is termed “DefScore.” These two statistics are also borrowed from

After the OffScore and DefScore is calculated for each team, those are averaged to determine what the average scores are for the entire league (AvgOffScore and AvgDefScore). The OffScore and DefScore are then “normed” by calculating their variance from the average scores. For example, to find out how good a team’s offense is compared to the rest of the teams in the league that year, the AvgOffScore is then subtracted from the team’s OffScore to create a normed offensive score (NormOff). The normed defensive score (NormDef) is calculated by subtracting the team’s DefScore from the AvgDefScore. Doing this allows us to compare teams across years and decades. The reason this has to be done is because the league scores more points on average in certain years than it does in other years. For example, the average game in 2009 was 108.3-108.3, however in 1978 the average game was 100.9-100.9. It would not make sense to think that a team which scores 106 points on average in 2009 has a better offense than a team that scores 103 points on average in 1978.

NormOff = OffScore – AvgOffScore
NormDef = AvgDefScore – DefScore

Because stopping an opponent from scoring is just as important as scoring, I added the two normed statistics together to create an efficiency statistic (Eff). However, here we run into the problem of scheduling. An Eff against tough competition is more impressive than an Eff against weak competition. But we don’t want to end up rating teams strictly based upon their SOS, because it does not tell the whole story, and the teams do not control who they play. Therefore we use the ASOS again, to adjust the Eff.

There is one more important wrinkle to consider. If a team’s Eff is negative, then simply multiplying it by the ASOS would do the opposite of what it is supposed to do. For example, if a team has a -2 Eff, multiplying that by an ASOS of .600 would increase the absolute value of that Eff whereas an ASOS of .400 would decrease it. This should be the opposite case since a team with an Eff of -2 against an ASOS of .600 is more impressive than an Eff of -2 against an ASOS of .400. Therefore, for negative Eff’s, I multiply it by (1-ASOS).

Eff = NormOff + NormDef
AdjEff = ASOS * Eff (positive)
AdjEff = (1-ASOS) * Eff (negative)

Team Score
To calculate the Team Score (TS) I now combine everything listed above. I value wins as twice as important as everything because no matter how efficient a team may be over the course of the season, the ability to win when it matters is what the game comes down to. To bring wins to the forefront, I multiply a team’s AWP by 10 to give us a larger number to work with. I use AWP instead of simply the team’s winning percentage because it gives a better view of what a team has accomplished based on the schedule it has played. The AdjEff is then added to the AWP*10, minus 5, times 2, to result in the Team Score. I subtract 5 from each team because doing this is the same as subtracting out “the average.” This gives you a view of how each team compares and takes much of the bias out of the number.

TS = ((AWP*10)-5)*2 + AdjEff

To help you understand and interpret the Team Score, you can use this as a general guide:
14 & Above: Great teams that have few to no flaws. If they do not win the championship, you have witnessed a great upset.
10-13.9: Very good teams that have real expectations to win it all.
6-9.9: Solid teams that have the ability to beat any team on any given day.
0-5.9: Flawed teams that are either too young, too old, too slow, or too incompetent.
-15.9-0: Bad, very bad teams. Best part of the season for them? Game #82.
-16 & Below: Historically bad teams. Try to forget they exist.

This statistic is limited to rating how well a team has performed in the regular season. We have seen time and time again a lesser team defeat a better team in the playoffs (or heck, any night). Also, this statistic does not take into account the natural disadvantage a team faces on the road or the advantage of playing at home because that would require far more data mining than I wish to do on top of all of the hours it has taken me to craft and categorize what I have done.

The other limitation to this statistic is that it only rates teams based on their regular season performance, so you could say that these are the “team’s regular season” rating as opposed to the “team’s” rating. However, I cannot think of a statistically sound method of evaluating a team’s performance in the post season that would be able to be combined with this statistic. I could evaluate JUST the post season, but that is something that I may do in the future, and I presume I would use a similar method as described above, but treat it as a separate statistic, completely independent of the “Team Score” for the regular season.

If you have any comment (positive, or negative) please let me know!