Player Efficiency Rating (PER) Calculator
Free PER calculator running John Hollinger's full formula: uPER, pace-adjusted aPER and league-standardised PER from a player's box-score totals.
Player Efficiency Rating (PER) Calculator
Background.
Player Efficiency Rating is John Hollinger's attempt to compress everything a box score records about a basketball player into one per-minute number, and then to scale that number so the league average is always exactly 15. It is the most widely quoted single-figure rating in basketball and also the most widely misused, because almost every calculator that claims to compute it actually computes a simplified approximation and quietly drops the parts that make it PER.
This calculator does not do that. It runs the complete published formula from Basketball-Reference's 'Calculating PER' page — all twelve terms of unadjusted PER, the three derived league-environment constants, the pace adjustment, and the final league standardisation — and reports each stage separately so you can see where the number came from. Enter a player's thirteen season box-score totals, two team totals, and the league environment for that season, and you get uPER, the pace adjustment factor, pace-adjusted aPER, the standardised PER, and the distance from the league-average rating of 15.
The implementation is verified against Basketball-Reference's own published values. Running Nikola Jokić's 2023-24 season through it returns PER 30.95 against a published 31.0; Tyrese Haliburton returns 23.28 against a published 23.3; Jayson Tatum returns 22.32 against a published 22.3. Those are not curve-fits — the same league constants, derived once from the 2023-24 League Average totals row, reproduce every one of them.
One quantity requires an honest disclosure. The final standardisation step is PER = aPER x (15 / lg_aPER), where lg_aPER is the minutes-weighted league average of aPER across every player in the league. Basketball-Reference does not publish that figure and it cannot be computed from a single player's line. Rather than invent it, it was back-solved from Basketball-Reference's own published PER values for seven players across three teams: the seven implied values span 0.34011 to 0.34167, a spread of half a percent, and the mean of 0.3410 is the shipped default. It is an editable input, labelled as a 2023-24 quantity, with the derivation printed below. Everything upstream of it — uPER and aPER — is exact.
It is worth being clear about what the three stages are actually doing, because the structure explains most of PER's behaviour. Stage one converts every box-score event into a points-equivalent using that league's average value of a possession, so a steal and a turnover are priced at what a possession was genuinely worth that year rather than at some fixed guess. Stage two divides out tempo, so a player on a run-and-gun team does not gain credit for the extra chances his coach hands him. Stage three fixes the league mean at 15 so that a 22 in 1996 and a 22 in 2024 both mean the same thing relative to their peers. Nothing in the design attempts to measure absolute quality across eras, and reading it that way is the single most common error people make with the statistic.
PER is per-minute, which means a bench player who plays eleven high-usage minutes can out-rate a starter, and it is heavily offence-weighted, because the box score simply does not record most of what defence consists of. Hollinger said as much himself. It also rewards volume scoring at moderate efficiency more than the plus-minus family of metrics does, since the penalty the formula applies to a missed shot is smaller than the credit it gives a made one at ordinary efficiency levels. Read below for the full derivation, the meaning of each of the twelve terms, how to recompute the league constants for any season from a published league-average row in about two minutes, the documented substitutions for pre-1974 and pre-1980 seasons where turnovers, steals, blocks and three-pointers were not recorded, what changes if you want to run this for the WNBA or NCAA, and a candid account of what PER is bad at.
What is player efficiency rating (per) calculator?
Player Efficiency Rating is a per-minute composite rating of a basketball player's box-score production, developed by John Hollinger. In Hollinger's own description, quoted by Basketball-Reference, 'The PER sums up all a player's positive accomplishments, subtracts the negative accomplishments, and returns a per-minute rating of a player's performance.' The calculation runs in three stages. First, unadjusted PER (uPER) applies a weight to every box-score event — points from field goals, assists, free throws, three-pointers, offensive and defensive rebounds, steals, blocks, turnovers, missed shots, missed free throws and personal fouls — and divides the total by minutes played. The weights are not arbitrary: they are derived from the league's average value of a possession (VOP), the league's defensive rebound rate (DRB%), and the degree to which the player's own team creates baskets by assist rather than by isolation. Second, uPER is multiplied by the pace adjustment lg_Pace / team_Pace, producing aPER, which strips out the advantage a player on a fast-breaking team gets from simply having more possessions per minute in which to accumulate counting stats. Third, aPER is multiplied by 15 / lg_aPER so that the league average PER is exactly 15 in every season, which is what makes cross-era comparison possible at all. Because the league average is fixed at 15 by construction, PER is explicitly a relative measure: a 20 PER in 2024 and a 20 PER in 1994 both mean 'well above that season's average', not 'the same absolute quality of play'. Hollinger's published interpretive landmarks are roughly: 15.00 league average, 16.5 third option on a good team, 18.0 second option, 20.0 borderline All-Star, 22.5 All-Star, 25.0 weak MVP candidate, 27.5 strong MVP candidate, 30.0+ runaway MVP.
How to use this calculator.
- Gather the player's season totals from a box-score source: minutes, field goals made and attempted, threes made, free throws made and attempted, offensive rebounds, total rebounds, assists, steals, blocks, turnovers and personal fouls. Use season totals throughout — never mix totals with per-game averages.
- Enter the player's team totals for assists and field goals made for the same season. Only the ratio matters, so per-game team figures work here too as long as both come from the same source.
- Leave the five league-environment constants at their defaults if you are analysing the 2023-24 NBA season. For any other season, recompute them from that season's league-average totals using the four formulas in the explanation below — it takes about two minutes with a league-average row in front of you.
- Set team pace to the player's team's pace for that season and league pace to the league-wide figure. Both are published on any advanced team table. The ratio between them is the pace adjustment.
- Leave league average aPER at 0.3410 for 2023-24. If you are working in another season and want a rating on the familiar 15-average scale, back-solve it the same way this page did: compute aPER for a player whose published PER you already know, then set lg_aPER = aPER x 15 / published PER.
- Read the four intermediate outputs, not just the headline. uPER tells you the raw per-minute production; the pace adjustment tells you how much the team's tempo was inflating or deflating it; aPER is the number the whole league is ranked on before rescaling.
- Interpret against Hollinger's scale: 15 is average, 20 is a fringe All-Star, 25 is an MVP candidate, 30 is a historic season. And read it alongside usage rate and true shooting percentage, because PER on its own cannot distinguish a high-volume creator from an efficient role player.
The formula.
PER is computed in three stages, all reproduced verbatim from Basketball-Reference's 'Calculating PER' page.
Stage 1 — unadjusted PER. Every box-score event gets a weight expressed in points-equivalent, and the sum is divided by minutes played. Reading the terms in order: a made three is a straight +1 bonus on top of the two points already credited by the field goal term; an assist is worth two thirds of a possession's value to the passer, with the other third staying with the shooter; a made field goal is worth (2 - factor x qAST), where qAST is the team's assists-per-made-field-goal ratio, so a player on a heavily assisted team gets slightly less credit for each of his own makes; a made free throw carries a similar team-context weighting at half value. On the negative side, a turnover costs a full possession (VOP); a missed field goal costs VOP times the league defensive rebound rate, because a miss only surrenders the ball if the defence rebounds it; a missed free throw costs a fraction of that scaled by the 0.44 possession coefficient; a personal foul costs the free throws the league converts per foul, net of the possession value those free throws consume. On the positive side, a defensive rebound is worth VOP x (1 - DRB%) — small, because your team would have got most of those anyway — while an offensive rebound is worth VOP x DRB%, which is much larger, because you took back a possession the defence expected to win. Steals are worth a full possession. Blocks are worth VOP x DRB%, since a blocked shot only creates a possession if it is recovered.
Stage 2 — the three league constants. factor = 2/3 - (0.5 x (lgAST/lgFG)) / (2 x (lgFG/lgFT)) calibrates how much credit to move from shooters to passers in that league environment. VOP = lgPTS / (lgFGA - lgORB + lgTOV + 0.44 x lgFTA) is the average number of points a possession was worth. DRB% = (lgTRB - lgORB) / lgTRB is the share of all rebounds that were defensive. The two foul-related ratios lgFT/lgPF and lgFTA/lgPF complete the set. All five come out of a single published league-average totals row, and all five are ratios, so it does not matter whether you feed in season totals or per-game averages as long as you are consistent. For the 2023-24 NBA the League Average row gives PTS 9365, FG 3458, FGA 7290, FT 1397, FTA 1781, ORB 865, TRB 3570, AST 2187, TOV 1116, PF 1536, producing factor 0.60279103, VOP 1.12497357, DRB% 0.75770308, lgFT/lgPF 0.90950521 and lgFTA/lgPF 1.15950521. The DRB% figure is confirmed independently by Basketball-Reference's own published league DRB% of 75.8%.
Stage 3 — pace and standardisation. aPER = uPER x (lgPace / teamPace) removes tempo. PER = aPER x (15 / lg_aPER) rescales so the league average is exactly 15. lg_aPER is the minutes-weighted league average aPER, which Basketball-Reference does not publish. The default of 0.3410 used here was back-solved from their own published PER values: for seven 2023-24 players across three teams, aPER x 15 / published PER gave 0.340431, 0.341358, 0.340107, 0.340689, 0.341673, 0.341320 and 0.341423, a range of half a percent, whose mean is 0.3410. Using that value reproduces every one of those published ratings to within 0.07.
Historical seasons. Hollinger documents substitutions for years where the data does not exist: before 1979-80 there were no three-pointers; before 1977-78 turnovers were not recorded; before 1973-74 offensive rebounds, steals and blocks were not recorded. His solution is to zero the missing categories, set VOP to 1, set DRB% to 0.7, and estimate ORB as 0.3 x TRB. This calculator does not apply those substitutions automatically, because doing so silently would change what your inputs mean; enter them yourself if you are working in that era.
What the formula cannot see. PER is built entirely from the box score, so it cannot see contested shots that were never taken, help rotations, screens, gravity, or defensive positioning. Hollinger himself described it as a measure that heavily favours offence. It also rewards volume: because a missed shot costs less than a possession, high-usage scorers at merely average efficiency tend to rate above efficient low-usage players. Use it as one input, not as a verdict.
A worked example.
Nikola Jokić's 2023-24 MVP season for the Denver Nuggets: 2737 minutes, 822-for-1411 from the floor with 83 threes, 358-for-438 from the line, 223 offensive and 976 total rebounds, 708 assists, 108 steals, 68 blocks, 237 turnovers and 194 personal fouls. Denver made 3610 field goals with 2415 assists, so the team's assisted-basket ratio qAST is 2415 / 3610 = 0.668975, and Denver played at a pace of 96.8 against a league average of 98.5. Working through the twelve terms with the 2023-24 league constants gives: threes +83.00, assists +472.00, field goals +1312.53, free throws +318.08, turnovers -266.62, missed field goals -502.06, missed free throws -34.23, defensive rebounds +205.25, offensive rebounds +190.08, steals +121.50, blocks +57.96, fouls -65.10. The bracket sums to 1892.40, and dividing by 2737 minutes gives uPER = 0.691414. Denver's slow pace means the adjustment is 98.5 / 96.8 = 1.017562, so aPER = 0.691414 x 1.017562 = 0.703557. Finally PER = 0.703557 x (15 / 0.3410) = 30.95. Basketball-Reference publishes Jokić's 2023-24 PER as 31.0, confirming the implementation. Three observations from the term list. His single largest positive is the field goal term, not the assist term, despite 708 assists — PER credits the shooter more than the passer. His largest negative by far is missed field goals at -502, which is why volume shooters with poor percentages struggle to rate well. And the pace adjustment added about 1.8% to his rating purely because Denver played slowly; had he produced identically on Indiana's 101.7-pace team, his PER would have been about 29.4 instead.
Frequently asked questions.
What is the formula for Player Efficiency Rating?
What is a good PER?
Why is the unadjusted PER such a small number?
Where does the league average aPER of 0.3410 come from?
How do I compute the league constants for a different season?
Why does PER adjust for pace?
What are the main criticisms of PER?
Can I compute PER for a single game?
Does PER work for the WNBA, NCAA or international basketball?
How do I handle seasons before turnovers or three-pointers were recorded?
References& sources.
- [1]Basketball-Reference.com, 'Calculating PER' — the complete published uPER expression, the definitions of factor, VOP and DRB%, the pace adjustment lg_Pace / team_Pace, the final standardisation PER = aPER * (15 / lg_aPER), and Hollinger's documented substitutions for pre-1974 and pre-1980 seasons. Every term implemented by this calculator is taken from this page.
- [2]Basketball-Reference.com Glossary, entry 'PER': "Player Efficiency Rating (available since the 1951-52 season); PER is a rating developed by ESPN.com columnist John Hollinger. In John's words, 'The PER sums up all a player's positive accomplishments, subtracts the negative accomplishments, and returns a per-minute rating of a player's performance.'" Also the source of the Pace formula used in the pace adjustment.
- [3]Basketball-Reference.com, 2023-24 NBA season summary — the League Average team-totals row (PTS 9365, FG 3458, FGA 7290, FT 1397, FTA 1781, ORB 865, TRB 3570, AST 2187, TOV 1116, PF 1536) from which the five league-environment constants shipped as defaults were derived, the league pace of 98.5, the published league DRB% of 75.8% used as a cross-check, and the Denver, Indiana and Boston team totals and paces.
- [4]Basketball-Reference.com, 2023-24 NBA advanced player table — the published PER values (Jokić 31.0, Murray 20.7, Gordon 16.8, Haliburton 23.3, Turner 19.3, Tatum 22.3, Brown 18.6) used to back-solve the league average aPER of 0.3410 and to verify this implementation.
- [5]Basketball-Reference.com, NBA league per-game averages by season — the independent cross-check on the 2023-24 league averages (PTS 114.2, FGA 88.9, FT 17.0, FTA 21.7, ORB 10.6, TRB 43.5, AST 26.7, TOV 13.6, PF 18.7, Pace 98.5) used to confirm the derived constants.
- [6]Oliver, D. (2004). Basketball on Paper: Rules and Tools for Performance Analysis. Potomac Books. The origin of the possession-based framework and of the pace adjustment concept that PER's second stage borrows, and of the skill-curve argument that efficiency ratings must be read alongside usage.
In this category
Embed
Quanta Pro
Paid features are coming later.
- All 590 calculators remain free
- No billing is enabled