Reference
Glossary
Every stat on College Hoops Lab in plain English, with its formula. 107 terms.
- 20+ wins
- How often the team ends the regular season with at least 20 wins, counting games already played and games against non-D1 opponents.
P(20+) = seasons with wins now + simulated wins ≥ 20 ÷ seasons - 25+ wins
- How often the team ends the regular season with at least 25 wins, including games already played.
P(25+) = seasons with total wins ≥ 25 ÷ seasons - 2P%
- Share of two-point attempts made.
2P% = 2PM ÷ 2PA × 100 - 2P%: two-point percentage
- Share of two-point attempts (everything inside the arc) that go in.
2P% = (FGM − 3PM) ÷ (FGA − 3PA) × 100 - 3P%
- Share of three-point attempts made. Very noisy on small samples.
3P% = 3PM ÷ 3PA × 100 - 3P%: three-point percentage
- Share of three-point attempts that go in.
3P% = 3PM ÷ 3PA × 100 - 3PA rate
- How much of the offense comes from deep: the share of shots that are threes. It's style, not good or bad.
3PA rate = 3PA ÷ FGA × 100 - AdjD: adjusted defense
- Points a team would allow per 100 possessions against an average D1 offense on a neutral floor. Lower is better.
Same model as AdjO, from the other side: · AdjD = Avg + Def(team) - AdjEM: adjusted efficiency margin
- The headline rating: how many more points per 100 possessions a team scores than it allows, against an average D1 opponent on a neutral court. A +20 team would be roughly a 14-point favorite over an average team in a 70-possession game.
AdjEM = AdjO − AdjD - AdjO: adjusted offense
- Points a team would score per 100 possessions against an average D1 defense on a neutral floor. It corrects raw scoring for the defenses faced and where the games were played. Higher is better.
Every game: 100 × Pts ÷ Poss · = Avg + Off(team) + Def(opp) ± Home · Solved for all teams at once. · AdjO = Avg + Off(team) - AdjT: adjusted tempo
- How many possessions a team's games would have in 40 minutes against an average-paced opponent. It measures pace, so it's neither good nor bad.
Poss per 40 min = Avg + Pace(team) + Pace(opp) · AdjT = Avg + Pace(team) - Adjusted game margin
- How well a team played in one game, on the same scale as AdjEM. It gives credit for a close road loss to a great team and discounts a blowout of a weak one.
(OffEff − expected OffEff) · − (DefEff − expected DefEff) · expected = what an average team would do · vs this opponent at this venue - Adjusted plus-minus
- Plus-minus with the other nine players on the court accounted for. Each player starts from a guess built from their box score (points, shots, rebounds, assists, turnovers, steals, blocks, fouls) and their team's preseason projection. Then every stretch of play nudges that guess up or down. Early on, the starting point does most of the work; the more minutes a player logs, the more their on-court results count.
Rating = starting point + on-court adjustment · Starting point = Σ (weight × box rate per 40) + weight × team projection · All weights and adjustments fit together by ridge regression over stints - Adjusted plus-minus, defense
- The defensive half. Positive means opponents score less with this player on the court, after accounting for everyone else on the floor.
Defensive part of the adjusted plus-minus regression (sign flipped so + = good) - Adjusted plus-minus, offense
- The offensive half: how much the team's scoring per 100 possessions goes up with this player on, after accounting for everyone else on the floor.
Offensive part of the adjusted plus-minus regression - AP Top 25
- The Associated Press media poll: about 60 sportswriters and broadcasters rank their top 25 each week. It's opinion, not a formula, so it can differ a lot from our ratings, especially early in the season. Shown for context; it isn't used in any of our numbers.
Each voter ranks 25 teams: 1st place = 25 points … 25th = 1 point · Rank = order of total points - Assist rate
- Share of made baskets that were assisted. Higher usually means more ball movement.
Assist rate = AST ÷ FGM × 100 - Assists
- Passes that led directly to a made basket.
AST - Assists per game
- Average assists in D1 games.
APG = Assists ÷ Games - Ast%: assist rate
- Share of teammates' made baskets a player assists while on the floor.
Ast% = AST ÷ ((Min ÷ (Tm Min ÷ 5)) × Tm FGM − FGM) · × 100 - Average finish
- The team's average place in the final conference standings across simulated seasons. 1.0 would mean first every time.
Avg finish = Σ place × share of seasons at that place - Average miss
- How far the predicted final margin was from the real one, on average, in points.
mean( | predicted margin − actual margin | ) - Betting line
- The point spread (DraftKings, via ESPN), turned into the favorite's expected margin, and the moneylines turned into a win chance with the bookmaker's cut removed.
margin = −spread · chance = p(home ML) ÷ (p(home ML) + p(away ML)) - Biggest deficit overcome
- The most points the winner trailed by at any point.
max over the game of (opponent score − winner score) - Biggest lead
- Each team's largest lead, and when they had it.
max (team score − opponent score) - Blk%: block rate
- Share of opponents' two-point attempts a player blocks while on the floor.
Blk% = BLK × (Tm Min ÷ 5) ÷ (Min × Opp 2PA) × 100 - Block %
- Share of opponents' two-point attempts that this team blocks.
Block% = Blocks ÷ Opp 2PA × 100 - Blocks
- Opponent shots blocked.
BLK - Brier score
- Grades the win probabilities. Saying 90% and being right costs little; saying 90% and being wrong costs a lot. 0 is perfect; always saying 50% scores 0.25.
mean( (probability − outcome)² ) · outcome = 1 if the team won, 0 if not - Conference title odds
- How often the team finishes with the best conference record in the simulated seasons, alone or tied. A tie counts, the way a shared regular-season title does. Conference tournaments aren't included.
Title = seasons with the best conference win % (ties included) ÷ seasons simulated - Defensive efficiency
- Points allowed per 100 possessions in this game. Lower is better.
DefEff = 100 × Opp points ÷ Possessions - Defensive rebounds
- Rebounds of the opponent's misses.
DREB - DR%: defensive rebound %
- Share of available defensive rebounds a player grabs while on the floor.
DR% = DREB × (Tm Min ÷ 5) · ÷ (Min × (Tm DREB + Opp OREB)) × 100 - eFG%: effective field goal %
- Shooting percentage that gives threes their extra credit. A made three counts 1.5 times a made two.
eFG% = (FGM + 0.5 × 3PM) ÷ FGA × 100 - ESPN win probability
- ESPN's own tip-off win chance, driven by its BPI ratings. ESPN doesn't publish a predicted score.
from ESPN's game page at tip-off - Excitement index
- How much of a ride the game was. It adds up every rise and fall in the win-probability chart, then gives a bit extra for lead changes, a close finish and overtime. A mismatch that goes as expected scores under 1, a typical game about 2, and the top 10% of games 8 or more.
Excitement = total win-probability swing · + 0.25 × lead changes · + 1 if decided by 3 or fewer (or in OT) · + 1 per overtime · swing = Σ |change in home win chance| · (50% → 80% → 40% = 0.3 + 0.4 = 0.7) - Fast-break points
- Points scored in transition before the defense set up, as logged by ESPN.
from ESPN's team box score - Field goals
- Shots made and attempted, threes included (free throws not).
FGM-FGA - Final margin
- Points between the two teams at the end. Overtime games count as the closest, since they were tied after 40 minutes.
|winner points − loser points| - Fouls
- Personal fouls. Five and you're out.
PF - Fouls per 40
- Personal fouls per 40 minutes. Lower is better: foul trouble limits minutes.
Fouls/40 = PF ÷ Min × 40 - Free throws
- Free throws made and attempted.
FTM-FTA - FT rate
- How often a player gets to the line compared with how often they shoot.
FT rate = FTA ÷ FGA × 100 - FT%
- Share of free throws made.
FT% = FTM ÷ FTA × 100 - FT%: free throw percentage
- Share of free throws made.
FT% = FTM ÷ FTA × 100 - FTR: free throw rate
- How often a team gets to the line compared with how often it shoots. On defense lower is better.
FTR = FTA ÷ FGA × 100 - Game MVP
- The player on the winning team with the best Game Score, with a small nudge for how the team did while they were on the court.
MVP = best on the winning team of · Game Score + 0.25 × plus-minus - Game Score
- John Hollinger's one-number summary of a box score line. Points count fully; misses, turnovers and fouls take some back; rebounds, assists, steals and blocks add. About 10 is an average starter's night and 30+ is a monster game.
PTS + 0.4×FGM − 0.7×FGA − 0.4×(FTA − FTM) · + 0.7×OREB + 0.3×DREB + STL + 0.7×AST · + 0.7×BLK − 0.4×PF − TOV - In-game win probability
- The home team's chance to win at each moment, from the current margin, the time left and the pregame forecast. Early on the forecast matters most; late, the scoreboard does. It doesn't know who has the ball, so it adds one possession's worth of doubt that fades over the last 30 seconds, and a tie at the horn is worth the team's chance in overtime.
P(home wins) ≈ Φ( (m + μ·f) ÷ (σ·√f) ) · m = home margin now, f = share of 40 min left · μ = pregame home margin, σ = forecast spread · Last 30 s: + one possession of spread; · tie at the horn → overtime chance (OT = 5/40 of a game) - Lead changes
- How many times the team in front changed. Going from ahead to tied and back ahead doesn't count.
count of scores that put the other team ahead - Log loss
- Like Brier, but punishes confident misses much harder. Always saying 50% scores 0.693.
−mean( outcome·ln p + (1 − outcome)·ln(1 − p) ) - Matchup quality
- How good the weaker of the two teams is. Ranking by the weaker team means both teams have to be good: a great team against a bad one ranks low.
quality = min(AdjEM of team A, AdjEM of team B) - Min%: share of minutes
- How much of the available playing time a player gets. 100% = never leaves the floor.
Min% = Min ÷ (Team min ÷ 5) × 100 - Minutes
- Minutes on the court.
MIN - Minutes per game
- Average minutes played in D1 games.
MPG = Minutes ÷ Games - Model line
- The margin today's ratings would predict for this game, in points. Compare it with the result to see who over- or under-performed.
(Pred OffEff − Pred DefEff) × Poss ÷ 100 - Off-court net rating
- The same thing for the minutes this player sat. Compare it with On net.
Off net = 100 × (pts for − pts against) ÷ possessions, while off - Offensive efficiency
- Points scored per 100 possessions in this game, before any opponent adjustment.
OffEff = 100 × Points ÷ Possessions - Offensive rebounds
- Rebounds of their own team's misses.
OREB - On-court net rating
- How many more points the team scores than it allows, per 100 possessions, with this player on the court.
On net = 100 × (pts for − pts against) ÷ possessions, while on - On/off
- How much better the team is with this player on the court than off it, per 100 possessions. It corrects for how good the team is, but it's still skewed by who the player shares minutes with. Someone whose backup is excellent looks worse than they are.
On/off = On net − Off net - OR%: offensive rebound %
- Share of available offensive rebounds a player grabs while on the floor.
OR% = OREB × (Tm Min ÷ 5) · ÷ (Min × (Tm OREB + Opp DREB)) × 100 - OR%: offensive rebound rate
- Share of a team's own misses that it rebounds. On defense, it's the share opponents grab back (lower is better).
OR% = OREB ÷ (OREB + Opp DREB) × 100 - Outright title odds
- How often the team finishes alone in first place, with no one tied.
Outright = seasons alone in 1st ÷ seasons simulated - Picked winner
- How often the forecast's favorite won. Easy to read, but it ignores confidence: calling a coin flip right counts the same as calling a lock.
games where the favorite won ÷ games - Plus-minus
- The team's scoring margin while this player was on the court, all season. Simple and telling, but it mostly reflects who they played with and against: a bench player who subs in with the starters looks great.
+/- = Σ (team points − opponent points) while on the court - Plus-minus (this game)
- The team's scoring margin while this player was on the court in this game, from lineups rebuilt out of the play-by-play substitutions. Blank when the lineups couldn't be rebuilt for at least 90% of the game.
+/- = team points − opponent points, while on the court - Plus-minus per 40
- Plus-minus scaled to a full game, so starters and bench players can be compared.
+/- per 40 = +/- × 40 ÷ minutes on court - Points
- Points scored.
PTS = 2 × 2PM + 3 × 3PM + FTM - Points in the paint
- Points from shots inside the lane, as logged by ESPN.
from ESPN's team box score - Points off turnovers
- Points scored on possessions that started with the other team's turnover.
from ESPN's team box score - Points per 40
- Scoring rate per 40 minutes on the floor, so bench players and starters compare fairly.
Pts/40 = Points ÷ Minutes × 40 - Points per game
- Average points in D1 games. Fast teams inflate it; Pts/40 and usage are fairer comparisons.
PPG = Points ÷ Games - Possessions
- How many times a team had the ball. Turns totals into per-possession rates, so fast and slow teams compare fairly.
Poss = FGA − OREB + TO + 0.475 × FTA · (averaged over both teams in the game) - Predicted closeness
- How near a coin flip the forecast is.
|home win chance − 50%|, smallest first - Predicted score
- Points each team would score if the game matched today's ratings exactly. Same math as the Matchup page.
Poss = AdjT(A) + AdjT(B) − league tempo · Pts(A) = (AdjO(A) + AdjD(B) − league eff ± home edge) · × Poss ÷ 100 - Pregame win chance
- Our forecast the morning of the game, made using only games already played (the same replay as the How it works page). For games against non-D1 teams there is no morning-of forecast, so today's ratings stand in.
chance = Φ(predicted margin ÷ σ) · σ = typical miss of our margin forecasts - Prior: share from the preseason projection
- A handful of games can't say much, so ratings start from a preseason projection and blend in new results. The projection is built from who's on this year's roster: returning players, transfers, and the minutes left for newcomers. This is how much of today's rating still comes from it. It shrinks with every game.
Prior share = λ ÷ (λ + D1 games played) · λ = prior strength, chosen by cross-validation - Projected conference record
- Conference record now plus the average number of remaining conference games won in the simulations.
Projected conf wins = conf wins now + average simulated conf wins - Projected record
- Record now plus the average number of remaining games won across all simulated seasons. Games against non-D1 opponents count, as they do in the real record.
Projected wins = wins now + average simulated wins · Projected losses = games − projected wins - Rebounds
- All rebounds.
REB = OREB + DREB - Rebounds per game
- Average total rebounds in D1 games.
RPG = (OREB + DREB) ÷ Games - Roster continuity
- How much of last season's playing time is back. Returning = minutes played last year by players still on this team. Transfers = minutes incoming D1 transfers played for their old teams, as a share of a full team's minutes. Whatever is left goes to freshmen and other newcomers.
Returning = Σ last-season minutes of returning players ÷ team minutes · Transfers = Σ minutes share at old team ÷ 5 - Scoring run
- Points in a row by one team without the other team scoring at all. We list runs of 8 or more.
consecutive points by one team, opponent scoring 0 · time = first to last basket of the run - SOS: strength of schedule
- How good the opponents have been so far: the average AdjEM of every D1 team played. Higher means a tougher schedule.
SOS = average AdjEM of D1 opponents - Starting point
- What a player's box score and their team's preseason projection say before looking at plus-minus. Adjusted +/- minus this = how much the on-court results moved them.
Σ (weight × box rate per 40) + weight × team projection · weights fit from the stint data, using each player's stats from their other games - Steal %
- Steals per 100 opponent possessions.
Steal% = Steals ÷ Opp possessions × 100 - Steals
- Times they took the ball away.
STL - Stl%: steal rate
- Steals per 100 opponent possessions while on the floor.
Stl% = STL × (Tm Min ÷ 5) ÷ (Min × Opp Poss) × 100 - Strength uncertainty
- Ratings are estimates. In each simulated season a team's true strength is drawn around its rating, with a wider spread for teams with fewer games. A team that's secretly better then wins more of its games together, as in real seasons.
SD = σ₁₀₀ × √(prior share ÷ λ) · σ₁₀₀ = σ × 100 ÷ league tempo · = one game's noise ÷ √(λ + games played) - Three-pointers
- Threes made and attempted.
3PM-3PA - Times tied
- How many times the score was level after the opening tip.
count of scores that tied the game (0–0 excluded) - Title odds if they win / lose
- How much this one game matters for the conference title: the team's title odds in the simulated seasons where it won this game, and in the ones where it lost. A loss also hints the team is weaker than its rating, which shows up here.
If W = titles in seasons they won this game ÷ those seasons · If L = titles in seasons they lost it ÷ those seasons - TO%: turnover rate
- Share of possessions that end in a turnover. On offense lower is better; on defense, forcing more is better.
TO% = Turnovers ÷ Possessions × 100 - TO%: turnover rate
- Turnovers per 100 possessions a player uses. Lower is better.
TO% = TO ÷ (FGA + 0.44 × FTA + TO) × 100 - Top-4 finish
- How often the team finishes in the top four of its conference. Ties for a spot are settled by coin flip, since real tiebreakers such as head-to-head results aren't modeled.
Top 4 = seasons finishing 1st–4th ÷ seasons simulated - TS%: true shooting
- The best single shooting number: points per shot attempt, counting threes and free throws. 55% is good, and 60%+ is excellent.
TS% = PTS ÷ (2 × (FGA + 0.44 × FTA)) × 100 - Turnovers
- Possessions lost without a shot: bad passes, steals, travels, shot-clock violations.
TO - Unbeaten odds
- How often the team wins every remaining game. Even great teams rarely do this: lots of 85% chances in a row multiply down fast.
P(unbeaten) = seasons with zero losses ÷ seasons - Upset alert
- Games where the underdog's chance is between 25% and 45%: not likely, but it would surprise no one. Listed with the best favorites first.
25% ≤ underdog win chance ≤ 45% · sorted by the favorite's AdjEM - Upsets
- Games won by the team our morning-of forecast had under 40% to win.
winner's pregame chance < 40% · ("big upset" under 20%) - Usage rate
- Share of team possessions a player ends with a shot, free throws or a turnover while on the floor. 20% is average, and 28%+ is a go-to scorer. It's volume, not quality.
Usage = (FGA + 0.44×FTA + TO) × (Tm Min ÷ 5) · ÷ (Min × (Tm FGA + 0.44×Tm FTA + Tm TO)) · × 100 - Watch score
- Close games between good teams. 100 would be a coin flip between the two best teams in the country.
watch = closeness × quality ÷ 100 · closeness = 100 × (1 − |2p − 1|) · quality = average D1 percentile of the two teams' AdjEM - Win chance
- The chance this team wins this game. Same formula as the Matchup page: the rating gap, the possessions both teams play at, and the home edge, with a normal spread for game-to-game luck. Your what-ifs change it: strength tweaks, a new location, or forced results elsewhere that make a team look stronger or weaker.
Poss = AdjT(A) + AdjT(B) − league tempo · Margin = (AdjEM(A) − AdjEM(B) ± 2 × home edge) × Poss ÷ 100 · Win chance = Φ(margin ÷ σ) - Win-probability swing
- The total distance the win-probability line traveled, up and down. A wire-to-wire win by the favorite barely moves it; a seesaw game piles it up.
Σ |change in home win chance|, in whole games · (1.0 = the line traveled 100 points) - Winner's lowest chance
- The lowest the eventual winner's win probability fell during the game. Under 10% is a real comeback.
min over the game of the winner's in-game win chance - Winner's pregame chance
- How likely the team that won was to win, according to our morning-of forecast. The lower it is, the bigger the upset.
chance the eventual winner wins, · from the morning-of forecast