Dashboard

What goes in an MRR dashboard in Metabase?

An MRR dashboard is the single view of recurring revenue and how it's moving month to month. It's the number the whole company steers by. Build it from billing data synced into a database — see Stripe, Chargebee, Paddle, or Recurly for the connection.

For: Founders, finance, RevOps. Refresh: daily is plenty. Source: a modeled monthly MRR table (one row per subscription per month), normalized to a monthly amount and one currency.

Which cards belong on an MRR dashboard?

Headline KPIs (top row)

  • Current MRR and ARR (MRR × 12)
  • Net new MRR this month
  • MRR growth rate (month over month)
  • ARPU — MRR ÷ active accounts

Movement

  • MRR by month (trend)
  • Net-new MRR waterfall — new, expansion, contraction, churn
  • New vs. churned MRR by month

Mix

  • MRR by plan / tier
  • MRR by segment or region
  • Top accounts by MRR (table)

What data does an MRR dashboard need?

  • A modeled monthly MRR table — one row per subscription per month, with the amount normalized to a monthly value and one reporting currency.
  • Subscription start, plan changes, and cancellation events to split net-new MRR into new, expansion, contraction, and churn.
  • Plan, segment, and region attributes for the mix cards.

How do you build an MRR dashboard?

  1. Sync your billing tool into a database (Stripe, Chargebee, Paddle, or Recurly).
  2. Build the monthly MRR model: normalize every plan to a monthly amount, convert to one currency, one row per subscription per month.
  3. Derive movement categories (new / expansion / contraction / churn) from period-over-period changes per subscription.
  4. Create one saved question per card; add filters for plan, segment, and date.

Example card SQL

MRR and net-new MRR by monthPostgreSQL
-- Monthly MRR with net-new movement, from a monthly MRR model:
-- one row per subscription per month with a normalized monthly amount.
WITH by_month AS (
  SELECT
    month,
    SUM(mrr)                                    AS mrr,
    LAG(SUM(mrr)) OVER (ORDER BY month)         AS prev_mrr
  FROM modeled_mrr
  GROUP BY month
)
SELECT
  month,
  mrr,
  mrr - COALESCE(prev_mrr, 0)                   AS net_new_mrr
FROM by_month
ORDER BY month;

Integrations

Analytics

Dashboards

Metrics

FAQ

What's the difference between MRR and ARR?
MRR is the normalized monthly value of active subscriptions; ARR is simply MRR × 12 (or the annual-contract value for annual plans). Track MRR as the working number month to month and present ARR for annual and board-level framing — they should always reconcile.
How do I split net-new MRR into new, expansion, and churn?
Compare each subscription's MRR to the prior month: a subscription that appears is new MRR, one that increases is expansion, one that decreases is contraction, and one that disappears is churned MRR. The four categories should sum to the net change, giving you the MRR waterfall.
Why build MRR in Metabase instead of reading it in Stripe?
Stripe's built-in MRR is fine for a quick look but is locked to one tool, uses its own definitions, and can't join to product usage or CRM data. Modeling MRR in your warehouse lets you define it once, blend Stripe with Chargebee or other sources, and share one governed number.
How often should an MRR dashboard refresh?
Daily is plenty. MRR is a slow-moving, month-grain metric, so an overnight refresh of the modeled tables keeps the dashboard current without the cost of frequent reloads.