What offense and defense each control
By George Boyle · Published 2026-09-26 · 7 min read
The Matchups page's four-factors table puts each team's shooting, turnovers, rebounding and free-throw numbers side by side. This measures, factor by factor, how much of what actually happens belongs to the team doing it, how much belongs to whoever it's playing, and how much is closer to noise.
The question behind the table
A four-factors table quietly assumes something that sounds right but isn't obviously true for every stat in it: that a shooting or rebounding number is roughly half offense, half defense, the way box scores are usually talked about. This measures it directly. For each factor, a team's own season-to-date rate (strictly before the game, reset every season) and its opponent's season-to-date rate allowing that same factor are each given a weight, fit to explain what actually happens in the game. A weight near 1.0 means that side's own history carries straight into the matchup; a weight near zero means it barely matters — the league average is just as good a guess.
The weights were fit on three seasons (2022-23 through 2024-25) and every number below is how they performed on seasons they never saw.
Who controls each factor
Every factor beats guessing the league average, by anywhere from a fraction of a percent to nearly a fifth. "Shared" means both sides carry real, comparable weight; "offense-driven" or "defense-driven" means one side clears roughly 60% of the combined weight.
| Factor | Offense weight | Defense weight | Beats league average by | Who controls it |
|---|---|---|---|---|
| 3-point attempt rate | 0.80 | 0.64 | 19.8% | shared, offense-leaning |
| Assist rate | 0.65 | 0.65 | 8.7% | shared (dead even) |
| Offensive rebound rate | 0.70 | 0.49 | 8.3% | shared, offense-leaning |
| Turnover rate | 0.57 | 0.64 | 8.1% | shared |
| 2-point FG% | 0.61 | 0.55 | 6.6% | shared |
| Steals forced/allowed | 0.40 | 0.65 | 6.4% | defense-driven |
| Shots blocked | 0.41 | 0.68 | 6.1% | defense-driven |
| Free-throw rate | 0.50 | 0.61 | 5.4% | shared |
| Effective FG% | 0.58 | 0.51 | 5.2% | shared |
| Points in the paint | 0.25 | 0.34 | 4.3% | shared, defense-leaning |
| Free-throw % | 0.49 | n/a | 1.8% | offense-driven (only side there is) |
| 3-point FG% | 0.25 | 0.16 | 0.5% | shared (barely beats the mean) |
Shot volume and shot accuracy are opposite stories
Three-point attempt rate is the single most predictable factor in the whole table, and it isn't close — nearly double the next-best factor. It's shared close to evenly, tilted toward the shooting team: whether a team hunts threes is a real, stable identity, and the defense it's facing moves the number too, if it's built to run shooters off the line.
Three-point percentage is the opposite: the weakest factor in the table by a wide margin, and both its weights are the smallest of any factor. A team's or a defense's 3-point percentage to date says almost nothing about what happens in the next game — treat it as close to noise. How often a team shoots threes tells you far more than how well it has shot them.
Blocks and steals are genuinely a defensive skill
Blocks and steals are the only two factors — besides free-throw percentage, which has no defensive side to compare against — where the defense clearly carries more weight than the offense. A team's own tendency to get its shots blocked or the ball stolen matters less than the specific defense's own shot-blocking or ball-hawking rate to date. These read as real, persistent defensive skills, not something that happens evenly to whoever a good defense faces.
Assist rate, for what it's worth, is the cleanest 50/50 split in the entire table — ball movement is exactly as much a habit of the offense as it is something the defense allows, a useful sanity check that the method isn't just defaulting to "offense wins" by construction.
Does the slower team really control pace?
Yes, measurably — the slower of the two teams (by its own season-to-date pace, not by which team is expected to win) pulls the game toward its own tempo more than the faster team pushes it toward theirs. The two effects are about seven combined standard errors apart, which is not close.
| Model | Held-out error (possessions per 40 min) |
|---|---|
| Slower team weighted more (0.80) than the faster team (0.66) | 3.60 |
| Both teams weighted equally (0.73) | 3.64 |
| Guess the league-average pace every time | 4.27 |
What each factor is worth in points
The four factors above, plus free-throw percentage, explain almost all of a team's scoring efficiency in a given game — 97.4% of it, on a held-out season, which is why this five-number decomposition has been the standard way to break down a college or pro box score for decades. Converting each factor into its actual point value shows they are not remotely equal.
| Factor | Points per 100 possessions |
|---|---|
| Effective FG% | +1.42 |
| Turnover rate | −1.23 |
| Offensive rebound rate | +0.61 |
| Free-throw % | +0.18 |
| Free-throw rate | +0.12 |
How the Matchups page uses this
The four-factors table itself is unchanged — both teams' raw numbers next to the D1 average, exactly as before. Underneath it, a plain-English section turns the weights above into sentences about the two specific teams in front of you: which of their edges are actually worth points, which factors are close to a coin flip regardless of what either team's history says, which ones are genuinely one-sided, and which way the tempo tug-of-war leans. It's the same information as the numbers above, without naming a regression.
Method
Every factor weight is fit by ordinary least squares with no intercept (the model already reads "league average" when both teams' deviations are zero), on three seasons of D1-vs-D1 college basketball box scores, and tested on seasons it never saw. A side's weight has to clear two standard errors from zero to count as meaningful at all — every weight above clears that easily, since each factor has tens of thousands of games behind it. The points-per-100-possessions conversion is a separate, same-game regression fit directly on the realized box score of every game, which is why it can explain 97.4% of scoring efficiency rather than predict it in advance.
Written by George Boyle, who builds The Sport Stack — the models, the ratings and these write-ups. Corrections and questions: hello@thesportstack.io. Who runs this.