← All projects

B2B SaaS Product Analytics Dashboard

Developed a full-stack analytics solution, from data model to live dashboard, for a 3-product B2B SaaS company (1000+ accounts, 50M+ usage events), making it a single source of truth for revenue, retention, and product engagement.

Tools: SQL, Power BI, LLM-assisted data generation

Dashboard Link: Live Dashboard Here

GitHub Link: Check SQL Queries, and more from here

View Data Schema: Data Schema

Note: After clicking on Live Dashboard, please select the “Fit to Page” or “Full Screen Mode” option.

The Problem: A growing SaaS company selling 3 products was struggling to see the business as a whole, including subscription data, usage events, and revenue. All sat disconnected and inaccurate. Leadership couldn’t answer basic questions like “Which segment is actually profitable?” or “Where are we bleeding customers?”

What I did:

  • Designed a Kimball-style star schema from scratch, having 7 dimension tables and 3 fact tables, modelling accounts, subscriptions, transactions, and product usage events across three products, with fact tables holding direct foreign keys to every dimension they report against for fast, join-light queries.
  • Wrote 30+ production-style SQL views and CTEs to calculate the metrics that actually matter to a SaaS business: MRR/ARR, NRR/GRR, churn, cohort retention, DAU/MAU stickiness, seat utilisation, and feature adoption, including the messy edge cases (rolling 12-month windows, multi-subscription churn logic, YTD comparisons).
  • Turned it into a 4-page Power BI suite (Executive, Revenue, Customer, Cohort & Product) with cross-filtering by product, segment, industry, and country.

What it found:

  • Analytics Pro drives 58% of revenue, and MRR grew 79% YoY. A clear signal on where to double down.
  • Retail alone accounted for $50K of $102K in total churned revenue, which is the retention team’s real priority, hiding in plain sight.
  • Enterprise is only 51% of the customer base but generates the outsized share of revenue. The sales were likely under-indexed here.
  • 960 of 1,064 subscriptions had auto-renew on, but seat utilisation sat at 88.6%, meaning some of that “safe” revenue was actually at upsell or leakage risk.
  • Web usage (57%) dwarfed mobile (iOS 32%, Android 28%) despite 45% overall feature adoption. A concrete gap for product to close

Impact:

Gave leadership a live, filterable view of $4.8M ARR, 133% NRR, and 2.4% churn, replacing what would otherwise be scattered spreadsheets with one dashboard non-technical stakeholders can self-serve from.

← Back to all projects