Sport Analytics
HomeMatchesPlayersTeamsLeaderboardsLabGlossary→ Projects

Glossary

Definitions and formulas for every stat in the site. Hover any dotted-underlined abbreviation on a table or tile to jump straight to the relevant entry here.

Sections
  • Counting Stats
  • Shooting
  • Efficiency & Advanced
  • Ratings & Possessions
  • Lineup Stats
  • Data Quality & Methodology

Counting Stats

GPGames Played

Count of distinct matches in which the player accumulated any minutes during the selected season. Used as the denominator for per-game averages (PPG, RPG, etc.).

MINMinutes

Player's minutes for one game, sourced from the scorekeeper's box-score MIN column (authoritative) when available, otherwise inferred from substitution intervals. Fractional values reflect the underlying inferred-minutes path; box-score minutes are whole numbers.

Step 7.7's box-score scrape replaces inferred minutes with scorekeeper-recorded ones as it backfills. `minutes_source` on the underlying row records which path produced the value.

MPGMinutes per Game

Total minutes across all games this season divided by Games Played. A rough proxy for how much the coach trusts a player on the floor.

Total minutes / GP

PTSPoints

Sum of made FG (2 or 3 pts each, based on shot type) plus made free throws (1 pt each).

PPGPoints per Game

Total points across all games this season divided by Games Played. The most basic measure of a scorer; doesn't account for efficiency or shot volume.

Total PTS / GP

REBRebounds (total)

Combined total of offensive and defensive rebounds for one game. Box scores split these into OREB and DREB in some views but we report the combined figure on most tables.

RPGRebounds per Game

Total rebounds (offensive + defensive) across all games this season divided by Games Played.

Total REB / GP

ASTAssists

Passes that directly lead to a teammate's made field goal. Scorekeeper-credited; conventions vary slightly by gym.

APGAssists per Game

Total assists divided by Games Played. A rough proxy for a player's playmaking volume.

Total AST / GP

STLSteals

Times the player took the ball away from an opponent and gained possession for their team without a foul.

SPGSteals per Game

Total steals divided by Games Played.

Total STL / GP

BLKBlocks

Times the player legally deflected an opponent's field goal attempt out of its path to the basket.

BPGBlocks per Game

Total blocks divided by Games Played.

Total BLK / GP

TOTurnovers

Bad passes, offensive fouls, traveling, etc. — any play that ends the player's team's possession via the player's mistake. Lower is better.

W-LWins-Losses Record

The team's win count and loss count for the season, separated by a dash (e.g., '14-7'). Derived per-match from team_match_stats by comparing points scored to points allowed — there is no dedicated outcome column on the schema, but every match has both scores populated.

Win %Winning Percentage

Displayed in basketball standings convention — three decimal places, leading zero dropped for fractional values (.875, .700, .500, .000) but kept as '1.000' for a perfect record. For U Sports, every regular-season game is decided so the denominator equals games played.

W / (W + L)

Opp PPGOpponent Points per Game

Total points the team's opponents scored across the season, divided by games played. The defensive counterpart to PPG. Lower is better.

Total opponent points / GP

DiffPoint Differential per Game

Per-game margin: how many points (on average) the team outscored its opponents by. Equivalent to (Total points − Total opponent points) / GP. A first-pass team-strength signal that doesn't normalise for pace; for that, see NetRtg.

PPG − Opp PPG

Sign-color-coded across the site: green positive, red negative, '+' prefix on positive values.

Shooting

FGField Goals

Includes layups, jump shots, and three-pointers — every shot from the floor, free throws excluded. Reported as 'made-attempted'. We follow NCAA box-score convention: FG includes 3-pointers (do NOT subtract).

FG%Field Goal Percentage

Doesn't weight three-pointers vs. two-pointers — a 3-for-10 night is the same 30% as a 3-for-10 night on layups. Use eFG% (or TS%) when shot mix matters.

100 × FG made / FG attempted

Tinted on the page: <40% red, >50% green. Same thresholds for both genders for v1 (documented limitation).

3PThree-Point Field Goals

Reported as 'made-attempted'. The 3PM portion gets the half-weight bump in eFG% to reflect the extra point.

3P%Three-Point Percentage

A specialist's stat; many bench players have tiny denominators and wild 3P%. The page tints <30% red and >37% green.

100 × 3P made / 3P attempted

FTFree Throws

Reported as 'made-attempted'. FTA enters TS% via the 0.44 multiplier (an approximation for the number of possessions that ended in FTs).

FT%Free Throw Percentage

Lower bar than FG% — anything below 70% draws the eye. Page tints <70% red, >80% green.

100 × FT made / FT attempted

TS%True Shooting Percentage

Single number that captures how efficient a player is at putting the ball in the basket across all three shot types (2pt FGs, 3pt FGs, FTs). The 0.44 in the denominator approximates the share of FTAs that came from a normal possession (vs. and-1s).

100 × PTS / (2 × (FGA + 0.44 × FTA))

Page tints <50% red, >58% green. NBA league-average is ~57%; college roughly 52%.

eFG%Effective Field Goal Percentage

Corrects FG% for the extra point that 3-pointers are worth. Always ≥ FG% (equality only when no threes are attempted).

100 × (FGM + 0.5 × 3PM) / FGA

Page tints <45% red, >53% green.

Efficiency & Advanced

PERPlayer Efficiency Rating

John Hollinger's per-minute composite of nearly every box-score stat (scoring, rebounding, assists, steals, blocks, turnovers, fouls) calibrated against league-wide pace and possessions so that the league average comes out to 15.0. It's NOT a measure of a player's defense and doesn't capture context (who you played with / against). Useful as a quick efficiency tier: >25 elite, 20–25 great, 15–20 above average, 10–15 below average, <10 poor.

Hollinger's PER formula — per-minute composite weighted by league context (pace_factor, league_avg_PER = 15). v2's match-level PER is computed in Python at ingestion; season-level PER on this page is a minutes-weighted average across games for a first cut. Precise season recomputation from cumulative counts is a future enhancement.

Page tints: >25 elite (deep green), 20–25 great (green), 10–20 unmarked (league band), 5–10 yellow, <5 red.

TRB%Total Rebound Percentage

Of all the rebounds available in a team's games this season (offensive + defensive on both sides), the percentage the team itself collected. 50% means the team rebounded as well as its opponents on average; 55%+ is a strong rebounding edge. More informative than raw rebound totals because pace and miss rate inflate the denominator on faster / worse-shooting teams.

100 × team TRB / (team TRB + opp TRB)

v2 computes opp TRB via a self-join on team_match_stats — the other team's row in the same match.

TOV%Turnover Percentage

Estimates the fraction of team possessions that ended with a turnover. The 0.44 multiplier on FTA approximates the share of free-throw trips that came from non-and-1 fouls (i.e., consumed a possession). Lower is better; league-average TOV% in college is typically 15-19%.

100 × TOV / (FGA + 0.44 × FTA + TOV)

Not tinted on the page — directionality matters (lower is better) but gender/league-specific benchmarks aren't wired up yet.

+/-Plus-Minus

Sum of points the player's team scored MINUS points allowed during the player's on-court minutes. A high single-game +/- can come from being on the floor during a hot run (often just luck); season-level +/- is more stable but still strongly affected by lineup quality. Use alongside NetRtg for a possession-normalised view.

pts_team_while_on − pts_team_against_while_on

Color-coded across the site: green if positive, red if negative, '+' prefix on positive values.

Ratings & Possessions

OffRtgOffensive Rating

Per-100-possessions scoring rate while the player was on the floor — possession-normalised so the number is comparable across teams of different paces. Higher is better. League average is roughly 100–110; elite teams push 115+.

100 × pts_team_while_on / off_possessions

DefRtgDefensive Rating

The flip side of OffRtg — opponents' scoring rate per 100 possessions during the player's minutes. **LOWER is better.** League average is roughly 100–110.

100 × pts_team_against_while_on / def_possessions

On the Player Page Skill Radar, the DefRtg axis is INVERTED so a higher radar percentile means a better (lower) defensive rating — same direction as every other axis.

NetRtgNet Rating

The on-court differential between how well the team scored and how well it defended per 100 possessions, while the player was on the floor. Combines the two ratings into a single 'how much did this lineup outscore the opponent' number.

OffRtg − DefRtg

Sign-color-coded across the site: green positive, red negative, '+' prefix on positive values.

USG%Usage Percentage

Percentage of the team's possessions the player 'used' (ended with a shot attempt, free throw, or turnover) while on the floor. A 'role' indicator more than a quality one — high-USG players carry more of the offense; low-USG players are spot-up shooters or defenders. League average is by definition 20% (5 players × 20% = 100% of possessions).

100 × (FGA + 0.44 × FTA + TOV) × (team_min / 5) / (player_min × (team_FGA + 0.44 × team_FTA + team_TOV))

Not tinted on the page — high USG isn't inherently good or bad. v2 computes a minutes-weighted approximation over the season; precise possession-weighted version is a future revision.

PossPossessions

Denominator for OffRtg (and reflects the volume of basketball this player participated in). A player with 200 possessions across the season swings advanced metrics by a fraction of a player with 800.

PacePace (Possessions per 40 Minutes)

Tempo measure: estimated number of possessions the team consumes per 40 minutes of basketball. Higher pace means faster game (more possessions for both teams); lower pace means a grind-it-out style. Pace itself isn't 'good' or 'bad' — it provides context for the ratings: a 110 OffRtg at pace 75 is more impressive than the same OffRtg at pace 85.

v2 reports each team's per-match pace from team_match_stats; season-level Pace on the Team Hub is a simple average across the team's games (the possessions-weighted mean is a future refinement; the gap is negligible at this dataset size).

Lineup Stats

Lineup +/-Lineup Plus-Minus

Same as a single player's +/- but for a specific 5-player combination. Useful for evaluating lineup chemistry, but watch the MIN column — many lineups only log a handful of minutes and the +/- swings wildly.

pts_team_while_on − pts_team_against_while_on (for the lineup)

Lineup OffRtgLineup Offensive Rating

Per-100-possessions scoring rate while these five players were all on the floor together.

Lineup DefRtgLineup Defensive Rating

Per-100-possessions points allowed while these five players were all on the floor together. Lower is better.

Lineup NetRtgLineup Net Rating

On-court scoring differential per 100 possessions for the specific 5-player combination. Combines the two lineup ratings into a single comparable figure.

Lineup OffRtg − Lineup DefRtg

Data Quality & Methodology

lineup_qualityLineup Quality (clean / best_effort / unavailable)

A three-value flag (clean / best_effort / unavailable) on every match recording how well the substitution-event chain in the play-by-play parsed. CLEAN: no anomalies. BEST_EFFORT: one or more anomalies recovered without raising — some interval gaps may exist. UNAVAILABLE: the strict pipeline produced no usable intervals (though in practice many label='unavailable' matches still have full play-by-play data; the page renders them when present).

Displayed as a colored badge in the Match Page header: clean=neutral, best_effort=amber, unavailable=red. Advanced and lineup tables surface an extra disclaimer when the underlying minutes came from a best-effort reconstruction.

Percentile CohortSkill Radar percentile cohort

The Skill Radar's 0–100 percentile values are computed by ranking the player against everyone else in the same season and same league/gender who played at least 5 games AND accumulated at least 100 total minutes. Players below that threshold are excluded from the cohort entirely (so they don't skew the rankings). Cohort sizes are typically 300–500 qualifying players per season-gender, which makes the percentile ranks meaningful.

If the cohort drops below 20 qualifying peers the radar is hidden in favour of a 'cohort too small' note. If the player viewed didn't meet the 5g/100m bar themselves, the radar shows 'Insufficient minutes' instead.

DefRtg (inverted on radar)Inverted DefRtg axis on the Skill Radar

Defensive Rating is one of the few stats where LOWER is better (fewer points allowed per 100 possessions). To keep the radar visually consistent — where 'further from the centre = better' on every axis — the DefRtg percentile is computed on DESCENDING raw values: the lowest DefRtg in the cohort becomes the 100th percentile, the highest becomes the 0th. The radar's caption flags this explicitly.