Customer Health Dashboard
A SQL-driven account health scoring engine and dashboard, built to mirror the kind of health-score tooling a CSM/TAM team relies on — synthetic login, feature-adoption, and support-ticket data feed a scoring model written entirely in SQL, surfaced through both a Streamlit app and a zero-install HTML dashboard.
📊 Project Summary
- Generated a synthetic 60-account SaaS dataset — 90 days of daily logins, feature-adoption records, and support tickets — loaded into SQLite.
- Built the entire scoring model in SQL: a chain of views using window functions (rolling 30-day sums,
NTILE, PERCENT_RANK) and CTEs to compute engagement, adoption, and support sub-scores. - Combined sub-scores into a 0–100 health score and risk tier (Healthy / At Risk / Critical) per account, with peer quartile benchmarking.
- Visualized results in a Streamlit app — KPI cards, risk distribution, an engagement-vs-adoption risk matrix, a filterable account table, and a full account drill-down.
- Packaged a second, self-contained HTML/Chart.js version of the same dashboard so it can be viewed instantly with no install — see the live demo below.
🧰 Tools Used
- SQLite — CTEs, window functions, views
- Python, Pandas — data generation and the SQL-to-export pipeline
- Streamlit, Plotly — interactive dashboard
- Vanilla JS + Chart.js — standalone HTML dashboard
🖥️ Live Demo
Explore the interactive dashboard directly — filter by risk tier, plan, industry, or CSM, sort the account table, and drill into any account's trend line, score breakdown, and ticket history.
Open the Dashboard📁 Files
Download the SQL scoring logic, the Streamlit app, the data generator, or a sample of the scored output.
📂 GitHub Repository
View Project on GitHub