Ga naar hoofdinhoud

Growth Metrics Dashboard: A Founder's Playbook

CAC, LTV, and churn tracking for early-stage startups.

This guide shows you exactly what growth metrics to track, how to calculate them, and how to build a simple but trustworthy dashboard. It favors plain-English definitions, minimal assumptions, and formulas you can paste directly into a spreadsheet or your data warehouse.


What This Dashboard Is For

A well-built growth dashboard isn't just a collection of charts; it's a decision-making engine. This playbook will help you:

  • See the health of your growth at a glance: Instantly understand your acquisition efficiency, the quality of your customer retention, and how quickly you're earning back your investment.
  • Decide where to invest your resources: Identify the channels, customer segments, and products that actually compound value, so you can double down on what works and cut what doesn't.
  • Create one source of truth: Build a dashboard that your finance, growth, and product teams can all stand behind, eliminating arguments over whose numbers are "right."

The Core Metrics (Definitions That Won’t Backfire)

Using precise and consistent definitions is the foundation of a trustworthy dashboard.

Customer Acquisition Cost (CAC)

CAC measures the cost of acquiring a single new customer. It's crucial to track both a blended and a paid version.

  • Blended CAC: The all-in cost. CAC = (All Sales & Marketing acquisition costs in period) ÷ (# new customers in period)
  • Paid CAC: Isolates the efficiency of your paid marketing channels. Paid CAC = (Media spend + agencies + creative tied to paid channels) ÷ (# new customers attributed to paid)

What to Include: All costs used for acquisition, including S&M salaries, commissions, benefits, software tools, agency fees, ad spend, creative development, and relevant contractor costs. What to Exclude: Customer Success or Support costs dedicated to retention, R&D expenses, and founder salaries (unless they are spending the majority of their time on acquisition activities). Attribution: Choose a simple model like first-touch or last-touch. The most important thing is to pick one, document it, and stick with it for consistency.

Lifetime Value (LTV)

LTV estimates the total gross profit you will earn from a customer over their entire relationship with your company.

  • Quick, Subscription-Safe Approximation (Gross LTV): This formula is great for a quick health check. LTV = ARPA × Gross Margin % ÷ Monthly Logo Churn %

    • ARPA: Average Monthly Recurring Revenue (MRR) per active account in the period.
    • Use logo churn (customer churn) here, not revenue churn. This prevents expansion revenue from masking underlying retention problems.
  • More Precise (Discounted, Cohort-Based): This method is more complex but far more accurate, as it accounts for the time value of money. It sums the monthly gross profit for a given cohort over its lifetime, discounted by a rate d (typically 10-15% annually). LTV = Σ_t (ARPA_t × Gross Margin % × Survival_t) / (1 + d)^(t/12)

Churn & Retention (Track Both Customer and Revenue)

You need to track both how many customers you lose (logo churn) and how much revenue you lose (revenue churn).

  • Logo Churn (Customers): The percentage of customers who cancel. Monthly Logo Churn % = (Customers churned this month) ÷ (Customers at start of month)
  • Gross Revenue Churn: The percentage of MRR lost from cancellations and downgrades. This is a pure measure of revenue leakage. Gross Revenue Churn % = (Churn MRR + Contraction MRR) ÷ Start-of-month MRR
  • Net Revenue Retention (NRR): The holy grail of SaaS metrics. It shows your revenue growth from your existing customer base, factoring in churn, contraction, and expansion. An NRR over 100% means your business grows even without adding new customers. NRR = (Start MRR − Churn MRR − Contraction MRR + Expansion MRR) ÷ Start MRR
  • Involuntary vs. Voluntary Churn: It's critical to separate customers who actively choose to cancel ("I don't want it") from those who churn due to a failed payment. High involuntary churn often points to correctable issues in your dunning process.

CAC Payback & LTV:CAC Ratio

These two metrics connect your acquisition costs to your unit economics.

  • CAC Payback Period (in months): How long it takes to earn back the cost of acquiring a customer. Payback = CAC ÷ (ARPA × Gross Margin % − Avg variable success cost per account)
  • LTV:CAC Ratio: The relationship between a customer's lifetime value and their acquisition cost. A common rule-of-thumb is to aim for a ratio of ≥ 3:1. A healthy business should generate at least $3 of lifetime value for every $1 spent on acquisition. Payback should ideally be < 12–18 months for SMB customers or < 24 months for mid-market/enterprise.

What the Dashboard Should Show (Layout)

Organize your dashboard into three layers, moving from high-level KPIs to granular diagnostics.

  • Top Row (Key Performance Indicators): Your at-a-glance health check.
    • New Customers | New MRR | NRR (trailing 3 & 12 months)
    • CAC (blended + paid) | CAC Payback (months) | LTV:CAC
  • Middle Row (Trends): How your core metrics are evolving over time.
    • A line chart showing CAC & Payback Period over time.
    • A line chart showing Logo Churn % and Gross Revenue Churn %.
    • A stacked bar chart visualizing your MRR movements: Expansion vs. Contraction vs. Churn.
  • Bottom Row (Diagnostics): The "why" behind the trends.
    • Cohort Heatmaps: One for customer retention and another for revenue retention, showing performance by signup month. This is the best way to see if your product and retention are actually improving.
    • Channel Performance Table: A breakdown by acquisition channel showing Spend, New Customers, CAC, 90-day Retention, and LTV:CAC.
    • Churn Reasons: A pie or bar chart showing the top 5 reasons for churn, with trends.

Data You Need (Minimal Model)

To power this dashboard, you'll need to collect and structure data from a few key sources.

  • customers: customer_id, signup_date, plan, segment, country, channel, sales_owner
  • subscriptions: customer_id, term_start, term_end, status, plan, seats, list_price, discount
  • subscription_events (strongly recommended): event_date, customer_id, event_type (new|upgrade|downgrade|churn|reactivate), mrr_delta
  • invoices/payments: invoice_id, customer_id, service_period_start, service_period_end, amount, cogs_if_any
  • ad_spend: date, channel, campaign, cost
  • s&m_costs: month, cost_type, amount, attributable_to (acquisition|retention)
  • churn_survey: customer_id, churn_date, reason_code, free_text

Pro Tip: Keep everything in monthly buckets for the dashboard view, but store the underlying events at daily granularity for more flexible analysis.


Spreadsheet Formulas (Copy/Paste)

For a simple spreadsheet model, create a sheet for each month and use these formulas:

  • ARPA = Start_MRR / Start_Customers
  • Logo_Churn_% = Churned_Customers / Start_Customers
  • Gross_Revenue_Churn_% = (Churn_MRR + Contraction_MRR) / Start_MRR
  • NRR = (Start_MRR - Churn_MRR - Contraction_MRR + Expansion_MRR) / Start_MRR
  • CAC_Blended = (S&M_Acq_Costs) / New_Customers
  • Payback_Months = CAC_Blended / (ARPA * Gross_Margin_% - Variable_Success_Cost_per_Customer)
  • LTV_Gross = ARPA * Gross_Margin_% / Logo_Churn_%
  • LTV_to_CAC = LTV_Gross / CAC_Blended

Important: Always compute churn rates against the start-of-month base, excluding new customers from the denominator. This prevents new signups from artificially lowering your churn rate for the period.


SQL You Can Adapt (Postgres)

For a more robust setup, use these SQL queries as a starting point.

1) MRR Flows Per Month This query calculates the start-of-month MRR and the key movements (new, expansion, contraction, churn) for each month.

WITH m AS (
SELECT
date_trunc('month', event_date) AS month,
SUM(CASE WHEN event_type = 'new' THEN mrr_delta ELSE 0 END) AS new_mrr,
SUM(CASE WHEN event_type = 'upgrade' THEN mrr_delta ELSE 0 END) AS expansion_mrr,
SUM(CASE WHEN event_type = 'downgrade' THEN -mrr_delta ELSE 0 END) AS contraction_mrr,
SUM(CASE WHEN event_type = 'churn' THEN -mrr_delta ELSE 0 END) AS churn_mrr
FROM subscription_events
GROUP BY 1
),
base AS (
SELECT
month,
SUM(new_mrr + expansion_mrr - contraction_mrr - churn_mrr)
OVER (ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS end_mrr
FROM m
)
SELECT
m.month,
LAG(end_mrr, 1, 0) OVER (ORDER BY m.month) AS start_mrr,
m.new_mrr, m.expansion_mrr, m.contraction_mrr, m.churn_mrr
FROM m
JOIN base b ON b.month = m.month
ORDER BY m.month;

2) Logo Churn Rate This query calculates the monthly customer churn rate based on active customers at the start of the month.

WITH actives AS (
SELECT date_trunc('month', s.term_start) AS month, s.customer_id
FROM subscriptions s
WHERE s.status = 'active'
GROUP BY 1,2
),
churns AS (
SELECT date_trunc('month', se.event_date) AS month, se.customer_id
FROM subscription_events se
WHERE se.event_type = 'churn'
)
SELECT
a.month,
COUNT(DISTINCT a.customer_id) AS start_customers,
COUNT(DISTINCT c.customer_id) AS churned_customers,
COUNT(DISTINCT c.customer_id)::decimal /
NULLIF(COUNT(DISTINCT a.customer_id),0) AS logo_churn_pct
FROM actives a
LEFT JOIN churns c
ON c.customer_id = a.customer_id AND c.month = a.month
GROUP BY 1
ORDER BY 1;

3) Channel CAC (Blended and Paid) This query calculates both blended and paid CAC for each acquisition channel.

WITH new_logos AS (
SELECT date_trunc('month', signup_date) AS month, channel, COUNT(*) AS new_customers
FROM customers
GROUP BY 1,2
),
paid_spend AS (
SELECT date_trunc('month', date) AS month, channel, SUM(cost) AS spend
FROM ad_spend
GROUP BY 1,2
),
s_and_m AS (
SELECT month, SUM(amount) AS acq_costs
FROM s_m_costs
WHERE attributable_to = 'acquisition'
GROUP BY 1
)
SELECT
n.month,
n.channel,
n.new_customers,
COALESCE(p.spend,0) AS paid_spend,
CASE WHEN n.new_customers > 0
THEN COALESCE(p.spend,0)::decimal / n.new_customers
ELSE NULL END AS paid_cac,
s.acq_costs,
CASE WHEN (SELECT SUM(new_customers) FROM new_logos WHERE month = n.month) > 0
THEN s.acq_costs::decimal / (SELECT SUM(new_customers) FROM new_logos WHERE month = n.month)
ELSE NULL END AS blended_cac
FROM new_logos n
LEFT JOIN paid_spend p ON p.month = n.month AND p.channel = n.channel
LEFT JOIN s_and_m s ON s.month = n.month
ORDER BY n.month, n.channel;

4) Cohort Revenue Retention Heatmap This query generates the data for a revenue retention heatmap, showing the percentage of initial MRR retained over time for each monthly signup cohort.

WITH firsts AS (
SELECT customer_id, date_trunc('month', MIN(signup_date)) AS cohort_month
FROM customers
GROUP BY 1
),
mrr_by_month AS (
SELECT date_trunc('month', event_date) AS month, customer_id,
SUM(mrr_delta) OVER (PARTITION BY customer_id ORDER BY event_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS mrr
FROM subscription_events
),
cohorts AS (
SELECT f.cohort_month, m.month,
EXTRACT(YEAR FROM age(m.month, f.cohort_month)) * 12 +
EXTRACT(MONTH FROM age(m.month, f.cohort_month)) AS months_since,
SUM(GREATEST(m.mrr,0)) AS cohort_mrr
FROM firsts f
JOIN mrr_by_month m USING (customer_id)
GROUP BY 1,2,3
)
SELECT cohort_month, months_since,
cohort_mrr / NULLIF(MAX(CASE WHEN months_since = 0 THEN cohort_mrr END)
OVER (PARTITION BY cohort_month),0) AS revenue_retention
FROM cohorts
ORDER BY cohort_month, months_since;

Instrumentation Checklist (Don’t Skip This)

Good data in, good metrics out. Ensure your product and systems are instrumented to capture these critical events:

  • UTMs: Track UTM parameters on every signup path and save them to the account record at the moment of creation.
  • Cancel Event: When a customer churns, capture a structured reason_code and offer an optional free-text field.
  • Dunning Events: Track payment retries and their success/failure to properly identify and analyze involuntary churn.
  • Seat/Plan Changes: Log seat changes and plan upgrades/downgrades as distinct events, each with an associated mrr_delta.
  • Reactivation: Explicitly track customer reactivations. A returning customer is not a "new" customer.
  • Financials: Store the price and discount on each invoice line. If you have significant variable costs (e.g., infrastructure, AI model inference, third-party API fees), store the associated COGS.

Segmentation That Actually Helps Decisions

Never rely solely on blended, company-wide metrics. Segment your data to uncover hidden truths about your business. Analyze your core metrics (CAC, LTV, Churn) by:

  • Plan / ACV Band: e.g., <$1k, $1–10k, $10–100k annual contract value.
  • Channel: Paid search, content, partner, outbound sales, etc.
  • ICP Fit: Your ideal customer profile vs. non-ICP customers.
  • Go-to-Market Motion: Self-serve vs. sales-led.
  • Region: If pricing, competition, or user behavior differs significantly.

You will almost always find that some segments are highly profitable while others are a drag on your overall metrics.


Review Cadence

Integrate this dashboard into your team's operating rhythm.

  • Weekly: Review high-velocity metrics like CAC trends, New MRR, the Expansion vs. Churn MRR chart, and the top churn reasons.
  • Monthly: Dive deeper into NRR (trailing 3-month and 12-month), CAC Payback, and LTV:CAC. Use these to review channel and segment performance.
  • Quarterly: Analyze the Cohort Retention curves to assess long-term product health. Use this meeting to sanity-check your attribution model and discuss the impact of pricing and packaging changes.

Benchmarks (Rules of Thumb)

While every business is different, here are some common benchmarks for healthy SaaS companies.

  • LTV:CAC: A ratio of ≥ 3:1 is considered healthy. A ratio > 5:1 might suggest you are under-investing in growth.
  • CAC Payback: Aim for < 12–18 months for SMB/PLG models and < 24 months for enterprise sales.
  • Monthly Logo Churn: For SMBs, 2–4% is common; for mid-market, 1–2%; for enterprise, <1%.
  • NRR: For SMBs, 90–110%; for mid-market, 100–120% or more; for enterprise, 110–130% or more.

Remember: Write down your own targets. Compare against yourself first, the market second.


Common Pitfalls (And How to Avoid Them)

  • Mixing revenue and customer churn in the same formula. → Always use the right numerator and denominator (customers for logo churn, revenue for revenue churn).
  • Using revenue churn for LTV when you have expansion. → This will dramatically inflate your LTV. Use logo churn for the simple LTV formula or build a proper cohort-based LTV model.
  • Counting bookings or cash as MRR. → Recognize revenue over the service delivery period, not when the cash hits the bank.
  • Ignoring stock-based compensation and tools in CAC. → This understates your true customer acquisition cost.
  • Averaging churn rates across months. → This is mathematically incorrect. Prefer cohort curves or always compute churn on the start-of-period base.
  • Attribution thrashing. → Switching attribution models every month makes your data impossible to compare over time. Pick one, document when you make changes, and version your metrics.

“Good → Better → Best” Implementation

You don't need a perfect data stack on day one. Start simple and evolve.

  • Good (1–2 hours):
    • A Google Sheet with monthly manual inputs for New Customers, MRR flows, and S&M costs.
    • Use the formulas from this guide. Manually track UTMs and churn reasons.
  • Better (1–2 days):
    • A Postgres or BigQuery database connected to a BI tool like Metabase or Looker Studio.
    • Automate a subscription_events table and ingest ad spend data via an API. Build the cohort heatmap visualizations.
  • Best (1–2 weeks):
    • Use a tool like dbt to create version-controlled data models and write tests for data integrity.
    • Use a BI tool like Mode or Looker with governed data "explores" to enable self-service analysis. Implement historical data backfills and discounted LTV calculations.

Minimal Metrics Dictionary (Paste into Your Wiki)

Use this table to ensure everyone in your company is speaking the same language.

MetricDefinitionNotes
CAC (blended)S&M acquisition costs ÷ new customersIncludes salaries, tools, agencies, ads, commissions
CAC (paid)Paid media costs ÷ paid-sourced new customersUse a consistent attribution window
LTV (gross)ARPA × GM% ÷ monthly logo churnOK for sanity checks; document your GM% assumption
CAC paybackCAC ÷ (ARPA × GM% − variable success cost)Measured in months; segment by plan/ACV
Logo churn %Churned customers ÷ start-of-month customersExclude new customers from the denominator
Gross rev. churn %(Churn MRR + Contraction MRR) ÷ Start MRRExpansion revenue is excluded
NRR(Start MRR − Churn − Contraction + Expansion) ÷ Start MRRTrack Trailing 3-Month (T3M) and T12M

What to Decide Once This Is Live

Your dashboard is live. Now what? Use it to answer critical business questions:

  • Scale or cut channels based on their paid CAC and, more importantly, their 90-day retention.
  • Adjust pricing and packaging if you see that expansion MRR is flat and contraction MRR is rising.
  • Invest in onboarding and customer success if voluntary churn is high. If involuntary churn is high, fix your payment and dunning systems first.
  • Tighten your ICP definition if you find that non-ICP segments are consistently dragging your LTV:CAC ratio below your target.