Audited ·Last updated 28 Jul 2026·6 citations·Tier 1·0 uses

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

Season total minutes. PER is a per-minute rating, so this is the divisor for the whole formula. Use season totals throughout — mixing totals with per-game figures will not work.
Season total made field goals, twos and threes combined.
Season total field goal attempts. FGA minus FG is the missed-shot term the formula penalises.
Made threes. In the formula this is a straight bonus term, because the field goal term already credits the make itself at two points.
Season total made free throws.
Season total free throw attempts. FTA minus FT drives the missed-free-throw penalty.
Offensive rebounds only. The formula values these more highly than defensive rebounds because they create a possession rather than merely ending one.
Offensive plus defensive rebounds. Must be at least as large as the offensive rebound figure above.
Season total assists. Credited at two thirds of a point-equivalent in the formula.
Season total steals, credited at the full league value of a possession (VOP).
Season total blocked shots, credited at VOP times the league defensive rebound rate — a block only creates a possession if your team recovers the ball.
Season total turnovers, penalised at the full league value of a possession.
Season total personal fouls. Penalised using the league free-throws-per-foul rates entered further down.
The whole team's season assist total. Used only as the ratio Tm AST / Tm FG, which measures how assisted the team's offence is.
The whole team's season made field goals. Together with team assists it sets how much credit a player's own makes receive versus the passer who set them up.
factor = 2/3 - (0.5 x (lgAST/lgFG)) / (2 x (lgFG/lgFT)). Default 0.60279103 is the 2023-24 NBA value derived from Basketball-Reference's League Average totals row.
VOP = lgPTS / (lgFGA - lgORB + lgTOV + 0.44 x lgFTA). Default 1.12497357 is 2023-24 NBA: an average possession was worth 1.125 points.
DRB% = (lgTRB - lgORB) / lgTRB, entered as a fraction, not a percentage. Default 0.75770308 for 2023-24 — Basketball-Reference publishes the league figure as 75.8%.
League made free throws divided by league personal fouls. Default 1397 / 1536 = 0.90950521 for 2023-24.
League free throw attempts divided by league personal fouls. Default 1781 / 1536 = 1.15950521 for 2023-24.
League-wide possessions per 48 minutes. Default 98.5 is the published 2023-24 NBA figure.
The player's team pace for the same season. Default 101.7 is Indiana in 2023-24 — the fastest team in the league, which is why the pace adjustment lowers this player's rating.
The minutes-weighted league average aPER, used only for the final scaling PER = aPER x 15 / lgaPER. Basketball-Reference does not publish it; 0.3410 was back-solved from their own published 2023-24 PER values for seven players across three teams. Set it equal to a player's own aPER to see what a league-average rating of 15 corresponds to.
Player Efficiency Rating (PER)
23.2787
aPER rescaled so that the league average is 15. Hollinger's published landmarks: 15.00 is a league-average player, 20 an All-Star candidate, 25 a weak MVP candidate, 30+ a runaway MVP season.
Unadjusted PER (uPER)
0.5464
Pace-adjusted PER (aPER)
0.5292
Pace adjustment factor
0.9685
PER above league average
8.2787

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

uPER = (1/MP) x [3P + (2/3)AST + (2 - factor x qAST)FG + FT x 0.5 x (1 + (1-qAST) + (2/3)qAST) - VOP x TOV - VOP x DRB% x (FGA-FG) - VOP x 0.44 x (0.44 + 0.56 x DRB%) x (FTA-FT) + VOP x (1-DRB%) x (TRB-ORB) + VOP x DRB% x ORB + VOP x STL + VOP x DRB% x BLK - PF x (lgFT/lgPF - 0.44 x lgFTA/lgPF x VOP)]

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.

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.

blocks68
field Goals822
steals108
team Assists2,415
free Throw Attempts438
personal Fouls194
total Rebounds976
offensive Rebounds223
field Goal Attempts1,411
assists708
free Throws358
minutes Played2,737
turnovers237
team Pace96.8
team Field Goals3,610
three Pointers Made83

Frequently asked questions.

What is the formula for Player Efficiency Rating?
PER is computed in three steps. First unadjusted PER: uPER = (1/MP) x [3P + (2/3)AST + (2 - factor x qAST)FG + FT x 0.5 x (1 + (1 - qAST) + (2/3)qAST) - VOP x TOV - VOP x DRB% x (FGA - FG) - VOP x 0.44 x (0.44 + 0.56 x DRB%) x (FTA - FT) + VOP x (1 - DRB%) x (TRB - ORB) + VOP x DRB% x ORB + VOP x STL + VOP x DRB% x BLK - PF x (lgFT/lgPF - 0.44 x lgFTA/lgPF x VOP)]. Then aPER = uPER x (league pace / team pace). Then PER = aPER x (15 / league average aPER). This calculator implements all three steps, not a simplification of the first one.
What is a good PER?
By construction the league average is exactly 15.00 in every season. Hollinger's published landmarks run roughly: 16.5 a third option on a good team, 18.0 a second option, 20.0 a borderline All-Star, 22.5 an All-Star, 25.0 a weak MVP candidate, 27.5 a strong MVP candidate, and 30.0 or above a runaway MVP season. For scale, Nikola Jokić's 31.0 in 2023-24 led the league; the all-time single-season record is Wilt Chamberlain's 31.82 in 1962-63, with Giannis Antetokounmpo's 31.86 in 2019-20 marginally ahead depending on the source's rounding.
Why is the unadjusted PER such a small number?
Because uPER is denominated per minute, not per 48 minutes or per 100 possessions. A league-average player produces roughly 0.34 points-equivalent per minute, so league-average uPER sits near 0.34 rather than near 15. The familiar 15-average scale only appears at the final standardisation step, where aPER is multiplied by 15 / lg_aPER — with lg_aPER around 0.341, that multiplier is about 44. Seeing 0.69 for an MVP season is correct, not a bug: multiply by 44 and you get 30.9.
Where does the league average aPER of 0.3410 come from?
It was back-solved, and this page says so rather than presenting it as an official constant. Basketball-Reference publishes final PER but not the minutes-weighted league average aPER that the scaling step needs, and that quantity cannot be derived from one player's box score. So aPER was computed for seven 2023-24 players across three teams whose full team totals were available — Jokić, Murray and Gordon at Denver, Haliburton and Turner at Indiana, Tatum and Brown at Boston — and each was inverted through lg_aPER = aPER x 15 / published PER. The seven answers ranged from 0.34011 to 0.34167, a spread of half a percent, and their mean is 0.3410. Using it reproduces all seven published ratings to within 0.07.
How do I compute the league constants for a different season?
Find that season's league-average totals row on any published league summary and apply four formulas: factor = 2/3 - (0.5 x (lgAST/lgFG)) / (2 x (lgFG/lgFT)); VOP = lgPTS / (lgFGA - lgORB + lgTOV + 0.44 x lgFTA); DRB% = (lgTRB - lgORB) / lgTRB; and the two foul ratios lgFT/lgPF and lgFTA/lgPF taken directly. All five are ratios, so per-game league averages give exactly the same answers as season totals. You will also need that season's league pace. Cross-check your DRB% against the league DRB% the same source publishes — if they disagree, you have mixed two different rows.
Why does PER adjust for pace?
Because a player on a fast team gets more possessions per minute and therefore more opportunities to accumulate counting statistics, without being any better. The adjustment is aPER = uPER x (league pace / team pace), so a player on a slow team is scaled up and a player on a fast team is scaled down. In 2023-24 Denver played at 96.8 possessions per 48 minutes against a league average of 98.5, so Denver players were scaled up by 1.76%; Indiana played at 101.7, so Indiana players were scaled down by 3.1%. The typical adjustment lands between 0.95 and 1.05, so it rarely moves a rating by more than a point — but it is the difference between a ranking that is honest about tempo and one that is not.
What are the main criticisms of PER?
Three stand out. First, it is almost blind to defence: the box score records steals, blocks and defensive rebounds, and essentially nothing else that defenders do, so elite perimeter defenders are systematically underrated. Second, it rewards volume, because the penalty for a missed shot is smaller than the reward for a made one at typical efficiency levels — a high-usage scorer at league-average efficiency will out-rate an efficient low-usage player. Third, it is per-minute, so short high-usage bench stints can produce inflated ratings that do not survive a starter's workload. Hollinger acknowledged the defensive limitation himself. Modern all-in-one metrics such as Box Plus/Minus, RAPTOR and EPM exist largely to address these gaps.
Can I compute PER for a single game?
You can run the arithmetic, but the result is not meaningful in the way a season PER is. The pace adjustment and league standardisation are season-level constructs, and a single game's minutes total makes the per-minute denominator extremely noisy — twelve productive minutes can produce a triple-digit PER. For single-game evaluation use Game Score instead, which is Hollinger's own purpose-built single-game index and needs no league or team context at all. There is a Game Score calculator on this site.
Does PER work for the WNBA, NCAA or international basketball?
The structure transfers, but every constant must be replaced. factor, VOP, DRB% and the two foul ratios are all league-specific and must be recomputed from that league's average totals row, and the pace figures must come from that league too — note that the WNBA and NCAA play 40-minute games rather than 48, which changes pace normalisation. The 0.44 free-throw coefficient inside the formula was estimated from NBA play-by-play and drifts slightly under different bonus rules. Above all, lg_aPER must be re-derived for that league, or the 15-average scale will be wrong. uPER and aPER remain valid without it.
How do I handle seasons before turnovers or three-pointers were recorded?
Hollinger's documented approach is to zero out the categories that do not exist — three-point field goals before 1979-80, turnovers before 1977-78, offensive rebounds, steals and blocks before 1973-74 — and then to set the league value of a possession (VOP) to 1, set the league defensive rebound rate to 0.7, and estimate offensive rebounds as 0.3 x total rebounds. This calculator does not apply those substitutions automatically, because doing so silently would change what your entries mean. Enter them by hand: put zeros in the missing counting stats, 1 in the VOP box, 0.7 in the DRB% box, and 0.3 x TRB in the offensive rebounds box.

References& sources.

  1. [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. [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. [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. [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. [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. [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
Coming soon