Well over a decade ago, John Hollinger developed the omnipresent NBA metric Player Efficiency Rating, or PER, which is an attempt to stuff all the available information into a single statistic to help judge and compareĀ players. Itās a wonder the metric is still used, as weāve had years of basketball analysis to update beliefs and add useful information. Itās a metric from another era unable to reap from the benefits of the big data revolution or any new statistical techniques.
Despite its shortcomings, PER is still used frequently, and in fact may still be the most cited NBA metric. This is probably due to Hollingerās overall influence as the advanced stat media guru for years, ESPNās ubiquity, and PERās subsequent appearance on Basketball-Reference.
If the metric isnāt going away any time soon, perhaps itās time to update the stat.
Letās reinvent PER.
How PER works
Thereās a narrow spectrum of understanding for the metric.Ā Most people who know PER see it as a way of summarizing box-score stats into one number, and when people try to learn more theyāre referred to the formula where they become more confused and seek simpler explanations.Ā PER, in fact, has been deconstructed and rebuilt as a linear weights formula multiple times. ThatāsĀ how far people go to understand PER becauseĀ the formula itself eludes easy digestion. But if you break it down piece by piece itās not impossible to comprehend.
Read More:Ā Embiidās minutes restrictions are more logical than Strasburgās were
Most PERĀ guides out there are too basic and miss the important details and assumptions. There are exceptions, like this article, which is a handy breakdown Iād recommend reading too. But the best way to understand PER is to calculate it, which isnāt too difficult when you know how to manipulate a lot of data quickly[1.]. Crunching the numbers, you actually see there are a few levels of stats, and theyāre there for a reason: there are the individual player stats, of course; then there are team stats, so you can adjust some of those individual stats based on the teamās average; and then there are league-wide stats because the value of all the individual stats are tied to league average expected rates.
If you want to see how itās calculated, hereās the R code to do so. It just plucks the player data from Basketball-Reference for a specified season, calculates the league stats for said season, and then cycles through every player building PER[2.]. Note that I, unfortunately, couldnāt get 100% accuracy in matching the PER displayed onĀ ESPN and Basketball-Reference, but the error is less than a tenth, which I think is fine[3.]. The discrepancy may be due to the assumption about how a possession is calculated, or theyāre just rounding errors.
Hereās what PER is doing: itās looking at net points created by a player per minute, which is then adjusted for pace and league averages. Points, obviously, are easy to translate into points, but things like rebounds and steals are transformed by the āValue of a Possessionā statistic. Since a steal is a net possession, the player is credited with the league average point value of a possession. Itās a little more convoluted, but itās done with missed shots too. A missed shot, or free throw, is a loss of a possession, which is also adjusted by league averages for defensive rebound rates. Player fouls are transformed too, and itās done so by league-wide rates of free throws made and total fouls. Think of it this way: itās an estimate of the damage caused by one foul based on the proportions of free throws made and attempted to all other fouls adjusted by the value of a possession.
Calculating PER

Finally, we get to the tougher segments of PER. The second and third factors (in order) are actually related. Players get credit for assists, but consequently they get debited for assisted shots, where a major assumption is made: since Hollinger had no data on assisted shots, he used team assist rates applied equally to every player. The same adjustment is applied for free throws; itās just more complicated because assumptions had to be made about how often free throws end a play.
This leads to a controversial consequence of PER: the idea that the field goal percentage break-even point for raising oneās PER is well below average, and thus the metric awards gunners unfairly. First of all, it isnāt true that all a player needs to do is take shots, even if theyāre just misses. You may also see people complain about how the metric is all about usage rate, but thatās missing the point. You can see this with a bit of calculus, and itās simple enough to see in the formula for yourself. The only term with a missed field goal is [- VOP * DRB% * (FGA ā FG)], and as you can see itās a negative number since it leads with a negative sign and both VOP and DRB% are positive. I mentioned calculus because itās all about rates of change, and the change to PER[4.] with respect to a missed shot is negative. But there are two terms associated with field goals, ignoring 3-pointers for now; so is it actually true that thereās a break-even point, and is it surprisingly low? With a bit of algebra, we can set the two field goal terms equal to each other and solve for that break-even field goal percentage[5.].
Break-even FG% for PER = VOP*DRB% / [ 2 ā factor*TmAST/TmFG + VOP*DRB% ]
For the 2016 season, using inputs from the average team, that field goal percentage is about 32.4%. This means that if a player only increased his 2-pointer field goal attempts with even just a field goal percentage of 33, his PER would increase, all other things being equal. Letās take an example: say, oh I donāt know, Brook Lopez had decided to take 400 more midrange shots last season, because heās funny like that, and weāll assume this didnāt affect his free throw totals. Weāll also assume his teamās ratio of assists to field goals also didnāt change. Out of those 400, he made 140Ā for a field goal percentage on those shots of 35. What would happen to his PER?
Running through the numbers, his PER would increase slightlyĀ from 21.7 to 22.2. I know thatās not much, but thereās no penalty either for some awful efficiency. His true shooting percentage would fall from 56.2 percent to 51.3 percent, and his team would have almost certainly lost more games. Of course, itās better to be efficient; if he had made 60 percent of those shots, his PER would be 27.3.
The issue here is that the Player Efficiency Rating awards based on points, and the metric doesnāt suffers from one key blindspot: if a player doesnāt take a field goal, or just score points in general, that doesnāt mean those points vanish into thin air. Another player on the team could use that shot, and while we can debate on the expected value of those shots from the theoretical teammates, that break-even point around 33 percent is almost certainly way too much. This is why having a monster usage rate, as long as your efficiency isnāt abhorrent, is so strongly correlated with PER. Itās about points.
But are there any solutions?
Updating PER
The first reinvention here is in regards to assisted field goals.Ā As I discussed earlier, every player on a specific team is assumed to have the same assisted field goal ratio. But we can just use direct assisted field goals using data from play-by-play logs and replace the team ratio. The same team ratio is used in a free-throw factor as well, and itās an easy substitution to change it so itās reflective of a playerās actual assist to field goal ratio.
Free throws are a little more complicated, however, and itās because through basic stats we donāt know which free throws end a possession ā and thatās how PER works; itās built on possessions, ending or creating them. But with play-by-play data, I can calculate (with decent accuracy) how many of those free throws end a possession (or play), which is a crucial change for the sixth term in the PER formula.
I want to do something else to free throws though, and it might be controversial: Iām ignoring all points derived from technical fouls. The guys who take them often had nothing to do with creating the free throws, and itās as replaceable as an action can be in basketball. They should not be treated the same as free throws thatĀ are created by the players who take them.
Additionally, I noticed that 3-point field goals are not adjusted at all, meaning that essentially getting a point from a 3-pointer field goal is more valuable than a normal field goal in PER. Since 3-point percentages are so chaotic, I thought it wouldnāt do any harm to apply the assisted factor to these shots.Ā To balance the sheets, I gave proper credit to 3-pointer assists as well. Thus, with every assist going to a teammate behind the arc, the passer gets an additional one-thirds of a point[6.].
One of the biggerĀ assumptions in PER is the one linked with personal fouls. With a league-average ratio of points to personal fouls, and factoring in the use of a possession, you can get an expected number of negative points from a single foul. Iāve done the same but with shooting fouls, and in the style of PER itās done with respect to league average expected values. I should add here that some of these new variables have the possibility of the dreaded division by zero, as sometimes players will, say, go without a field-goal for the season. My solution was three factors that also serve to regress ratios to the league average: an assist/field goal ratio, a free throw ratio showing the proportion of free throws that use a possession, and a 3-point assist/3-point ratio. The basic form was ( AstFG + LgAvgRatio*50 )/(FG + 50).
Hereās anotherĀ statistic I can tweak: rebounds. Field goal and free throw rebounds are fundamentally different, so Iāve split those wherever appropriate and have two different league average rebounding rates on defense. Itās a pretty easy input when you have the data, and it makes a significant difference for players who pad their totals with easy free throw rebounds.
The last minor revision has to do with blocks. In PER, the value of a block is only about how it can potentially end a possession ā note the factors used in front of blocks in the formula. Thus, I can just replace this term with the āRussell,ā which is just a block that ends in a defensive board.
We can add variables to PER too. Itās not too difficult ā I can just follow the previously established rules. My favorite miscellaneous variable, offensive fouls drawn, can be treated like a steal, so I just multiply that by VOP. Then thereās personal fouls drawn, which are calculated the same as personal fouls, as in the original formula, but with a positive sign attached[7.]. Goaltending violations are important too, and Iāll assume those are worth two points subtracting out a VOP.
Another term I can add has to do with aĀ change in VOP: after steals, offenses are much more efficient, so I gave a slight boost to steals and a penalty for live-ball turnovers. The boost is based on the historic percentage difference in how teams perform compared to the average. Via inpredictable, the coefficient is 0.14, meaning players get a total of 1.14*VOP for steals[8.]. In concert, this also hurts passers who net a lot of stolen turnovers. Lastly, I included a term for spacing, which is a product of 3-pointers attemptedĀ and the proportion of made 3-pointers that were assisted. The power of spacing canāt be ignored. This is for role players who donāt create their own shots but help others; thus, itās weighed by assisted shots, as Iām mirroring the added benefit of catch-and-shoot players.
Finally, that brings me to a major revision: I need to do something about how points are overvalued ā and, with my changes, players who create assists and unassisted shots are overvalued too. It doesnāt make sense that a player with a 35 field goal percentage, and with no outside shots or free throws, can increase his PER by taking more shots. Instead of completely overhauling the metric, I decided to make an adjustment based on the āspiritā of PER. I included a new factor, FGCoef, that is applied to all field goals and free throws made, as well as assists. Itās based on this equilibrium point: assisted field goals should not increase oneās PER unless the net value is greater than the league average Value of Possession[9.]. This means inefficient scorers get penalized, but shot creators on bad teams operating only a little under the league average will not ā their own individual field-goal assist rates move that equilibrium point downwards.
Results
You can see the results below or through this link directly. Ā What youāll note first is that the distribution of this new PER is much wider ā the highest PERs are now in the upper 40ās, instead of around 31, and players regularly dip into the negatives. This is largely because assisted field-goal ratios are no longer assumed to be the same across teammates, so high-scoring playmakers can get huge boosts to their PERs, which were already quite good because a lot of credit is given to points and assists.
You can view the top seasons in a summary table below. And yeah, this is all too perfect ā Kevin Garnett has the highest rated season with one just a shade below a pretty and memorable number, 50. I have extolled the virtues of Garnett relentlessly, and Iām all the more delighted because itās his underrated 2005 season when I believe he should have won MVP over the controversial pick for Steve Nash. Itās a decent list too, represented by LeBron James, Chris Paulās early monster seasons in New Orleans, and a few legends. PER 2.0 seems to really love high-rebounding playmakers quite strongly though, which is actually true with most modern statistical plus/minus metrics ā look at those late-prime Charles Barkley seasons ranking high.
Table: top PER 2.0 seasons, 1997-2017, min. 1500 MP
Player | Season | Team | PER | PER 2.0 |
Kevin Garnett | 2005 | MIN | 28.2 | 49.9 |
Chris Paul | 2009 | NOH | 30.0 | 48.1 |
Kevin Garnett | 2004 | MIN | 29.4 | 47.0 |
Charles Barkley | 1999 | HOU | 23.1 | 46.5 |
LeBron James | 2009 | CLE | 31.7 | 45.5 |
Charles Barkley | 1997 | HOU | 23.0 | 45.1 |
Tracy McGrady | 2003 | ORL | 30.3 | 44.8 |
Charles Barkley | 1998 | HOU | 21.6 | 43.4 |
Kevin Garnett | 2003 | MIN | 26.4 | 42.9 |
LeBron James | 2013 | MIA | 31.6 | 42.8 |
Chris Paul | 2008 | NOH | 28.3 | 42.8 |
Tim Duncan | 2005 | SAS | 27.0 | 42.6 |
Grant Hill | 1997 | DET | 25.5 | 42.0 |
David Robinson | 1998 | SAS | 27.8 | 42.0 |
LeBron James | 2010 | CLE | 31.1 | 41.3 |
Elton Brand | 2002 | LAC | 23.6 | 41.3 |
Ben Wallace | 2002 | DET | 18.6 | 41.3 |
Tim Duncan | 2002 | SAS | 27.0 | 40.7 |
If youāre wondering who has the worst rating in this time frame, itās John Amaechi by a country mile. There are, in fact, actually few seasons rated below 0 by players with a large number of minutes, but Amaechi managed to rate farĀ into the negative range. As a center, he rarely scored, scored inefficiently when he managed to, rebounded like a guard, andĀ received additional penalties from the play-by-play, like his low rate of blocks rebounded by the defense. Players with low PERās are usually soft big men who donāt rebound or score, or non-scoring, non-assisting perimeter players ā but some of those guys are defensive stalwarts whose contributions arenāt measured by these countable stats.
Table: worstĀ PER 2.0 seasons, 1997-2017, min. 1500 MP
Player | Season | Team | PER | PER 2.0 |
John Amaechi | 2001 | ORL | 8.7 | -12.8 |
Junior Harrington | 2003 | DEN | 6.4 | -6.7 |
Rodney White | 2003 | DEN | 9.8 | -6.6 |
Chris Kaman | 2004 | LAC | 9.6 | -5.3 |
Tony Battie | 2005 | ORL | 8.6 | -4.2 |
Marcus Fizer | 2001 | CHI | 11 | -3.9 |
Dickey Simpkins | 2000 | CHI | 5.5 | -3.9 |
Pat Garrity | 2001 | ORL | 10.1 | -3.7 |
Sean Rooks | 2001 | LAC | 11.5 | -3.7 |
Ron Mercer | 2002 | TOT | 10.2 | -3.5 |
Jim Jackson | 2001 | TOT | 10.7 | -3.5 |
Malik Allen | 2003 | MIA | 9.9 | -3.4 |
Rasual Butler | 2003 | MIA | 9.5 | -3.3 |
Doug West | 1997 | MIN | 8.5 | -2.9 |
George McCloud | 2002 | DEN | 9.8 | -2.7 |
Felton Spencer | 1997 | GSW | 9.1 | -2.7 |
Adam Morrison | 2007 | CHA | 7.9 | -2.5 |
Ron Mercer | 2002 | CHI | 10.8 | -2.3 |
Felton Spencer | 1997 | TOT | 9.2 | -2.1 |
If youāre wondering how much ābetterā this version is, I found that the correlation between PER 2.0 to RAPM was much higher than PERās correlation for seasons 2013 through 2015: a correlation coefficient of 0.417 compared to 0.490[10.]. Thatās a good sign, though I would not recommend using this for prediction; itās more of an experiment.
Remember that John Hollingerās own explanation of the metric includes a warning that itāsĀ just a way to summarize all the available information on a player and we should, then, make further subjective adjustments based on whatās missing. PER, even this advanced form, is not an accurate reflection of defense, and much of the subtleties of the game are lost in league-average transformations and basic box-score stats.
I donāt think this version of PER fixes all the issues people have. While I think my attempt at fixing the inefficient scorer problem was a valiant one, it all comes down to the formulaās fundamental structure: how do we distribute credit based on possessions? A rebound isnāt an additional possession, and from box-score stats, or the play-by-play, we canāt understand if that rebound was just an uncontested one any teammate could have grabbed. Defense, in particular, is tougher to parse, and the possession model of building a metric will not work well with the available data ā defending is about more than just controlling possessions; ignoring made field-goals, for one, is a massive oversight. Imagine if you had to grade a teamās defense just with steals, blocks, and rebounds: itās madness.
Next: Stephen Curry, a case study in visualizing plus-minus
I can understand wanting to value a player byĀ building up his score, brick-by-brick, through possession counting and weighing, but the data available is not fine-grained enough. Thatās why statistical plus-minus stats are so successful ā we need approximations and estimates. The box-score is not enough, even with miscellaneous stats thrown in. But, hey, if weāre going to use PER, we might as well use this more advanced version. And like the old PER, mine has plenty of warts too.
[1. The greatest issue I had was not knowing I had written FT instead of FG in one place, which caused me to curse John Hollingerās name and wonder if he had placed some tricky adjustment that wasnāt explained in the online formulas.]
[2. Note that most of the code is for data cleaning, which is pretty typical. Also, yes, I like loops, and I didnāt put in the effort for something more elegant because it was still fairly quick for an entire season.]
[3.Ā Hollingerās early articles actually display a slightly different PER than the ones currently displayedĀ ā the discrepancies are because of what team and league data are used.]
[4. Technically, just uPER. But the rates of change do correspond ultimately with PER.]
[5. For those curious, start with (2 ā factor * (team_AST / team_FG)) * FG = VOP * DRB% * (FGA ā FG). Expand the right side: VOP * DRB% * FGA ā VOP * DRB% * FG). Then move terms so FG is isolated and FGA is too on the other side: FG = VOP*DRB/((2 ā factor * (team_AST / team_FG))+VOP*DRB)*FGA. Then you can create the FG% with simple division, as FG% can be cleverly rewritten as FG/FGA.]
[6. In the original PER, assists get two-thirds the value of a field goal, which is assumed to be two points, so yes, the math checks out.]
[7. Unfortunately, itās not possible to separate personal fouls drawn by team, so I had to use season totals and prorate based on minutes played for guys who switched teams midseason. Plus the data is only available going back a decade ā but thatās true of offensive fouls drawn too. But I thought it was interesting enough to include, and the league average calculation will make it possible to compare values from 2016 to one without fouls drawn, like 1998. If you think thatās not truly PER, Iāll refer you to PER from the 60ās where they didnāt have steals, blocks, turnovers, or rebounds separated by offense or defense.]
[8. I may change this in the future by using season league averages, but this is pretty stable and much more computationally efficient.]
[9.Ā I calculated the formula for the coefficient with some algebra, so it changes year by year.]
[10. Why am I comparing it to RAPM? Itās a player rating system thatās not formed by any of the variables PER has, and itās all about how the player is associated with his team outscoring his opponent, which is what truly matters. Itās how the built public metrics today are built too.]