Usage Percentage, commonly referred to as USG%, is a basketball metric used to estimate the percentage of team plays used by a specific player while they are on the floor. It essentially measures how "ball-dominant" a player is by factoring in their shot attempts, trips to the free-throw line, and turnovers.
A high usage rate typically indicates a primary scorer or playmaker (like Luka Dončić or Giannis Antetokounmpo), while a lower usage rate indicates a role player who focuses more on defense, spacing, or off-ball movement.
The Usage Rate Formula
The calculation is based on the formula originally developed by Dean Oliver. It compares the player's "possessions used" against the team's total potential possessions during the minutes that player was active.
Tm: Prefix indicating Team totals (Team FGA, Team FTA, etc.)
0.44: The coefficient used to estimate possessions used by free throws.
Interpreting the Results
Understanding the output of the calculator is crucial for analysis:
> 30% (Elite/Heliocentric): Reserved for superstars who carry the offense. Players in this range often win MVP awards but carry a heavy physical load.
20% – 25% (Average/Starter): A standard usage rate for an average starter or a secondary scoring option.
< 15% (Low Usage): Typical for defensive specialists, spot-up shooters who rarely dribble, or bench players with limited offensive responsibilities.
Why Usage Rate Matters
Usage rate is context-dependent. A high usage rate combined with high efficiency (True Shooting Percentage) defines a superstar. However, high usage with low efficiency is detrimental to a team's success. This calculator helps coaches and analysts determine if a player is taking on an appropriate share of the offensive workload relative to their production capability.
function calculateNBAUsage() {
// Get Player Values
var pFGA = parseFloat(document.getElementById('p_fga').value);
var pFTA = parseFloat(document.getElementById('p_fta').value);
var pTOV = parseFloat(document.getElementById('p_tov').value);
var pMP = parseFloat(document.getElementById('p_mp').value);
// Get Team Values
var tmFGA = parseFloat(document.getElementById('tm_fga').value);
var tmFTA = parseFloat(document.getElementById('tm_fta').value);
var tmTOV = parseFloat(document.getElementById('tm_tov').value);
var tmMP = parseFloat(document.getElementById('tm_mp').value);
// Result Elements
var resultContainer = document.getElementById('nba-result-container');
var resultValue = document.getElementById('usg-result');
var resultText = document.getElementById('usg-text');
// Validation: Check for valid numbers
if (isNaN(pFGA) || isNaN(pFTA) || isNaN(pTOV) || isNaN(pMP) ||
isNaN(tmFGA) || isNaN(tmFTA) || isNaN(tmTOV) || isNaN(tmMP)) {
alert("Please fill in all fields with valid numbers.");
return;
}
// Validation: Minutes Played cannot be zero
if (pMP 35) {
interpretation = "Extremely High (MVP Caliber Load)";
resultText.style.color = "#C9082A";
} else if (usgRate > 30) {
interpretation = "High Usage (All-Star Primary Option)";
resultText.style.color = "#C9082A";
} else if (usgRate >= 20) {
interpretation = "Average/Starter Usage";
resultText.style.color = "#17408B";
} else {
interpretation = "Low Usage (Role Player/Specialist)";
resultText.style.color = "#555";
}
resultText.innerHTML = interpretation;
}