Calculate the percentage of team plays used by a player while on the floor.
Player Statistics
Team Statistics
(Regulation game = 240)
Usage Percentage (USG%)
0.0%
What is Usage Rate (USG%)?
Usage Rate (USG%), often referred to as usage percentage, is an advanced basketball analytic metric used to estimate the percentage of team plays used by a specific player while they were on the floor. It essentially measures how "ball-dominant" a player is during a game or season.
A play is considered "used" by a player if it ends in one of three ways:
The player attempts a field goal (FGA).
The player attempts free throws (FTA), specifically getting to the line.
The player commits a turnover (TOV).
The Calculation Formula
The formula calculates the player's load relative to the team's total load, adjusted for the minutes the player was actually on the court. The standard formula used by analysts and the NBA is:
TmMP: Team Minutes Played (Usually 240 for a regulation game)
TmFGA, TmFTA, TmTOV: Team totals for the respective stats
0.44: A coefficient used to estimate the number of possessions used during free throw trips.
Interpreting the Results
The average usage rate for a player is theoretically 20% (since there are 5 players on the court, 100% / 5 = 20%). However, roles differ significantly:
> 30% (High Usage): Typically reserved for superstars and primary offensive options (e.g., Luka Dončić, Joel Embiid, Giannis Antetokounmpo). These players control the offense.
20% – 25% (Moderate Usage): Common for secondary scoring options or key rotation players.
< 15% (Low Usage): Usually defensive specialists or players who do not take many shots, often focusing on setting screens or passing without ending the possession.
It is important to note that a high usage rate does not automatically equal efficiency. The best players combine a high USG% with a high True Shooting Percentage (TS%).
function calculateUsageRate() {
// Get Player Stats
var pFGA = parseFloat(document.getElementById('pFGA').value);
var pFTA = parseFloat(document.getElementById('pFTA').value);
var pTOV = parseFloat(document.getElementById('pTOV').value);
var pMP = parseFloat(document.getElementById('pMP').value);
// Get Team Stats
var tFGA = parseFloat(document.getElementById('tFGA').value);
var tFTA = parseFloat(document.getElementById('tFTA').value);
var tTOV = parseFloat(document.getElementById('tTOV').value);
var tMP = parseFloat(document.getElementById('tMP').value);
// Validation
if (isNaN(pFGA) || isNaN(pFTA) || isNaN(pTOV) || isNaN(pMP) ||
isNaN(tFGA) || isNaN(tFTA) || isNaN(tTOV) || isNaN(tMP)) {
alert("Please fill in all fields with valid numbers.");
return;
}
if (pMP <= 0) {
alert("Player minutes played must be greater than 0.");
return;
}
if (tMP 35) {
contextMsg = "Elite/Heliocentric usage (MVP level load)";
} else if (usg > 25) {
contextMsg = "All-Star level offensive load";
} else if (usg > 18) {
contextMsg = "Standard rotation player usage";
} else {
contextMsg = "Low usage / Role player";
}
// Display Result
document.getElementById('result-value').innerText = usgFormatted + "%";
document.getElementById('result-context').innerText = contextMsg;
document.getElementById('result-container').style.display = "block";
}