Building a Real-Time SaaS Metrics Dashboard
- Topic
- Product Engineering
- Published
- Read
- 9 min
How to design the data model, pipeline and UI for a dashboard that tracks MRR, churn and product usage accurately, and that your team will actually trust.
Every SaaS team wants one place to see how the business is doing. The hard part is not the charts. It is agreeing on definitions and building a pipeline that produces numbers people trust. Here is how we approach it.
Define the metrics before you build
Write a one-line definition for each metric and get finance, product and leadership to agree. The usual core set:
- MRR (monthly recurring revenue): the normalized monthly value of all active subscriptions
- MRR movements: new, expansion, contraction, churned and reactivated MRR
- Customer churn: customers lost in a period divided by customers at the start
- Net revenue retention: revenue from a cohort now versus a year ago, including expansion
- Activation: the share of new sign-ups who reach the first meaningful action
- Active usage: daily, weekly or monthly active accounts
Small definition choices, such as how annual plans, discounts and trials are counted, change the numbers a lot. Document them where people can see them.
Use billing as the source of truth for revenue
Revenue metrics should come from your billing system, such as Stripe, Chargebee or Razorpay, not from your product database. Ingest subscription and invoice events through webhooks, and store them as an append-only event log. From that log you can rebuild any metric for any date, which makes corrections and audits easy.
Model usage as events
For product metrics, track events with a consistent schema: who did what, when, and in which account. Keep the list of tracked events short and intentional. A few well-defined events beat hundreds of vague ones.
Build the pipeline in layers
- Raw: events exactly as received
- Cleaned: deduplicated, typed and joined to accounts
- Metrics: daily snapshots of each metric per account and plan
A warehouse such as BigQuery, Snowflake or plain PostgreSQL handles this well at most SaaS scales. Tools like dbt keep transformations versioned and tested.
Decide what "real time" really means
Truly real-time revenue metrics are rarely needed. Most teams are well served by hourly or daily refreshes, which are simpler and cheaper. Reserve streaming for operational views like sign-ups today or failed payments, where minutes matter.
Design the dashboard for decisions
- Put the few numbers leadership checks every week at the top
- Show trends over time, not just the current value
- Let people drill from a total into the accounts behind it
- Show the definition of each metric on hover
- Flag data freshness so nobody acts on stale numbers
Test the numbers
Reconcile dashboard revenue with your billing system every month. Add automated checks for gaps, duplicates and sudden jumps. Trust is hard to win back once a board meeting catches a wrong number.
Build or buy?
Off-the-shelf tools work well for standard Stripe-based subscription metrics. A custom dashboard makes sense when you have usage-based pricing, multiple billing systems, or need product and revenue data in one view.
If you need a metrics dashboard built into your product or for your team, talk to us.
- SaaS
- Analytics
- Dashboards
Working on something like this?
We help teams design, build and run these systems in production.