OSCAR ROJASDATA ENGINEERING | PIPELINE

2024 · DATA ENGINEERING | PIPELINE

NBA Analytics Dashboard

End-to-end NBA analytics: Python → dbt → DuckDB → live dashboard with 5 interactive filters

NBA Analytics Dashboard dashboard

Tech Stack

PythondbtDuckDBPlotly DashPandasRender

Overview

A production data pipeline that ingests 500+ NBA player records nightly, transforms them through dbt models with automated data quality tests, and surfaces insights through a live Plotly Dash dashboard. Features interactive filtering by position, age, minutes, team, and games played, plus an Impact Score leaderboard ranking players by a weighted composite metric. Built with Python, dbt, DuckDB, and deployed on Render with auto-deploy from GitHub.

What I Built

  • 529+ NBA players tracked across the 2025-26 season
  • 5 interactive filters: Minutes, Position, Age, Team, Games Played
  • Top 15 Scorers visualization with blue gradient bars
  • Team Efficiency scatter — PPG vs FG%, bubble-sized by roster depth
  • Impact Score leaderboard: weighted composite of PPG, APG, RPG, +/-
  • 7 dbt data quality tests — all passing
  • Nightly data refresh from NBA Stats API with graceful fallback
  • Technical architecture page with pipeline diagrams

Screenshots

NBA Analytics Dashboard — Dashboard Overview

Dashboard Overview

NBA Analytics Dashboard — Filter Controls

Filter Controls

NBA Analytics Dashboard — Impact Score Leaderboard

Impact Score Leaderboard

NBA Analytics Dashboard — Technical Architecture

Technical Architecture

What I Learned

stats.nba.com blocks non-browser traffic — built graceful fallback to sample dataset

dbt + protobuf version conflicts: pinned to protobuf==4.25.9 for stable builds

pandas==2.1.4 + Python 3.11 required for Render deployment (3.14 incompatible)

Context-managed DuckDB connections prevent resource leaks in production

Plotly Dash styling requires inline styles — Tailwind CDN classes don't apply without a build step

dcc.RangeSlider is better UX than dropdown for continuous numeric filters like Games Played