What goes in a cohort retention dashboard in Metabase?
A cohort retention dashboard groups customers by when they signed up and follows each cohort's revenue over time. It answers the question a blended churn rate can't: is retention actually improving for newer customers? Build it from billing data synced into a database — see Stripe or Chargebee for the connection.
Which cards belong on a cohort retention dashboard?
Headline KPIs
- LTV — average lifetime value per customer
- Month-12 revenue retention
- Net revenue retention
- Average customer lifetime (months)
Cohort views
- Revenue-retention heatmap — cohort × months since signup
- Retention curves by cohort (line)
- LTV by acquisition cohort or channel
- Cumulative revenue per cohort (table)
What data does a cohort retention dashboard need?
- A monthly MRR model keyed to subscriptions.
- A signup or first-paid date per customer to define the cohort.
- Optionally an acquisition channel or plan for cohort segmentation and LTV by source.
How do you build a cohort retention dashboard?
- Sync your billing tool into a database (Stripe or Chargebee).
- Assign each customer a cohort month from their first paid subscription.
- Compute MRR per cohort per months-since-signup; retention is that MRR ÷ the cohort's month-0 MRR.
- Visualize as a heatmap and curves; add filters for channel, plan, and cohort range.
Example card SQL
-- Revenue retention by signup cohort and months-since-signup.
WITH base AS (
SELECT
date_trunc('month', s.started_at) AS cohort_month,
date_trunc('month', m.month) AS active_month,
m.mrr,
s.customer_id
FROM subscriptions s
JOIN modeled_mrr m ON m.subscription_id = s.id
)
SELECT
cohort_month,
(EXTRACT(YEAR FROM active_month) - EXTRACT(YEAR FROM cohort_month)) * 12
+ (EXTRACT(MONTH FROM active_month) - EXTRACT(MONTH FROM cohort_month)) AS month_index,
ROUND(SUM(mrr), 2) AS mrr
FROM base
GROUP BY cohort_month, month_index
ORDER BY cohort_month, month_index;