NBA · v0 Research
Pace & Total Tendency
Per-team pace (possessions/game), points scored, points allowed, and combined total environment over the last 14 days. League averages and per-team deltas surface where games tend to run high or low.
How this works
For each game in the 14-day window, both teams' scoring possessions are estimated and per-team averages are computed across games played. Both sides of every game need to be observed via player_logs for the row to count — preseason games and All-Star events are excluded.
- Pace — FGA + 0.44 × FTA per team per game (Dean Oliver reduced form). Slight undercount vs the full possessions formula (which requires turnovers + offensive rebounds, neither in current game-logs), but consistent across teams so rankings hold. v0.5 will swap in a full formula when team-level box scores are captured.
- Points scored / allowed — sum of each team's players' points; "allowed" is the opponent's total.
- Total environment — scored + allowed. Highest values are over-leaning environments; lowest are under-leaning.
- vs Lg Avg — this team minus the league pool average for the same view.
- Labels — Fast (pace ≥ +3 vs lg), Slow (≤ −3), Over-lean (total ≥ +6), Under-lean (total ≤ −6). Thresholds tighten as the season fills in.
- Completeness pill — High (5+ games), Medium (3–4), Low (1–2), Insufficient (0).
Note: when only one team's player logs have been ingested for a game, that game's pace entry may reflect partial data. This self-corrects on the next pipeline cycle.
Refreshes with each NBA pipeline cycle. Source feed: public/nba/pace.json, built by scripts/basketball/pace.py --league nba.