nbadbArena Data Lab
Schema ReferenceHalf-Court MapAnalytics Views9 waypoints

Court Geometry

Analytics Views

Playbook for the 4 analytics_ outputs that pre-join common analytical workflows

Analytics Views

Analytics views are the warehouse fast break: pre-joined analytics_* outputs that trade a little duplication for a much faster first read in notebooks, dashboards, and exploratory SQL.

analytics_ views
4
pre-joined surfaces for quick analyst reads
Manual joins saved
5+
common player-game and season joins are already packed
Best entry
First read
start here before dropping to raw fact grain

Use analytics views when the question is familiar and speed matters more than reconstructing the entire possession chain yourself. Drop to facts or agg_ tables only when you need a different grain or a field these views intentionally leave behind.

How to use this page

  1. Start here for the first read when the workflow is common and the model already has a packed convenience surface.
  2. Check the row grain before using a view as a downstream source; convenience does not change the underlying grain.
  3. Drop down deliberately to Facts & Bridges or Derived Aggregations when you need more detail or a different summary boundary.

Quick navigation

Jump to section

Choose a view fast

Start with View chooser when you know the workflow but not the exact analytics_ object.

Jump to section

Read each view surface

Jump to View scouting reports for a one-card explanation of what each analytics view includes and when to trust it.

Jump to section

Know when not to use them

Go to When not to use an analytics view when you suspect the fast-break surface is hiding too much detail.

Generated boundary

Finish on exact contracts

Use Star Reference for exact schema-backed columns after you choose the right view family here.

Pick your outlet pass

Four views at a glance

ViewRow grainWhat it already packs togetherBest first use
analytics_player_game_completeone player-game rowplayer-game stat families plus player, team, and game contextnotebook exploration, player game logs, quick dashboards
analytics_player_season_completeone player-season rowseason totals, averages, and per-minute normalizationsleaderboard work and player season comparison
analytics_team_season_summaryone team-season rowteam summary metrics, standings, and team contextseason snapshots, standings overlays, team comparison
analytics_head_to_headone team-opponent summary rowopponent results and scoring margin contextrivalry, matchup prep, and opponent scouting

View chooser

If you want...Start hereWhy it clears space
Single-game player analysisanalytics_player_game_completeMultiple player-game fact families plus player, team, and game context land in one row set
Season leaderboards and rate comparisonsanalytics_player_season_completeTotals, averages, and per-minute normalizations stay together
Team snapshots with standings contextanalytics_team_season_summaryTeam rollups and standings move in the same possession
Rivalry or opponent scouting summariesanalytics_head_to_headTeam-vs-team results and scoring margins are already grouped for you

View scouting reports

View surface

analytics_player_game_complete

The all-purpose player-game read: traditional, advanced, misc, hustle, and tracking stats joined with player, team, and game context.



Best when: you want one player-game row with most common context already attached.

View surface

analytics_player_season_complete

A season dossier for player comparison: totals, averages, and per-36/per-48 normalization in one place.



Best when: you are ranking players, building season dashboards, or comparing volume to rate stats.

View surface

analytics_team_season_summary

Team-season summary that layers season rollups with standings and team context.



Best when: you need quick team snapshots, standings overlays, or year-over-year club comparison.

View surface

analytics_head_to_head

Opponent scouting summary that condenses team-vs-team outcomes and scoring margins.



Best when: you want rivalry, matchup, or opponent-prep reporting without rebuilding the join yourself.

Common entry questions

If the analyst says...Best opening moveWhy
"Just give me the complete player game row."analytics_player_game_completeIt eliminates most manual player/team/game joins on day one
"I need a player season comparison table now."analytics_player_season_completeTotals, averages, and rate views are already aligned
"Show me the team season picture with standings context."analytics_team_season_summarySummary and standings logic travel together
"How have these two teams played each other?"analytics_head_to_headOpponent-focused summary work is already shaped for that question
Exit ramps

When not to use an analytics view

SituationBetter choiceWhy
You need event-by-event tapeFactsAnalytics views intentionally sit above atomic event grain
You need a reusable rollup, not a denormalized readDerived Aggregationsagg_ tables keep the summary at its natural aggregated grain
You are validating exact schema-backed columnsStar ReferenceThe generated tier page is the contract surface

Common drop-down targets

Starting viewDrop down when...Likely next stop
analytics_player_game_completeyou need a specific player-game stat family field or finer event detailfact_player_game_*, fact_play_by_play, or fact_shot_chart
analytics_player_season_completeyou need custom split logic or a missing player summary componentplayer profile/splits facts or agg_player_* tables
analytics_team_season_summaryyou need a different team-season rollup or deeper game-level detailagg_team_* tables or team-game facts
analytics_head_to_headyou need atomic game rows behind the rivalry summarydim_game, fact_team_game, and supporting dimensions

Keep moving

Stay in the same possession

Keep the mental model warm with adjacent pages, section hubs, and search-friendly routes into the same topic cluster.

Section hub

On this page