Plain-language questions
Ask for LTV:CAC ratio per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
KPI · Subscriptions and SaaS
The LTV:CAC ratio is a customer's lifetime value (LTV) divided by the cost of acquiring that customer (CAC). It shows whether your investment in marketing and sales pays for itself. A ratio below 1 means a customer brings in less than they cost to win.
LTV ÷ CAC, where LTV = ARPA × gross margin % ÷ monthly revenue churn
At Acme's subscription service, ARPA is €95 a month, gross margin is 80% and revenue churn averages 2.5% a month. LTV is €95 × 80% ÷ 2.5% = €76 ÷ 0.025 = €3,040. CAC is €950. The LTV:CAC ratio is €3,040 ÷ €950 = 3.2.
Fictitious figures for Acme Groothandel, a sample wholesaler.
A higher ratio means each customer acquired brings in more relative to what they cost. A very high ratio can also mean you are under-investing in growth. Compare the ratio by acquisition channel and customer segment, and read it alongside CAC payback period, as a healthy ratio with a long payback still ties up a lot of cash.
SQL & DAX
Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.
WITH params AS (SELECT 0.80 AS gross_margin, 0.025 AS monthly_revenue_churn),
active AS (
SELECT SUM(mrr) / NULLIF(COUNT(DISTINCT customer_id), 0) AS arpa
FROM subscriptions
WHERE started_at <= current_date AND (ended_at IS NULL OR ended_at > current_date)
),
acquisition AS (
SELECT (SELECT SUM(amount) FROM marketing_costs
WHERE month >= date_trunc('month', current_date) - interval '12 months')
/ NULLIF(COUNT(DISTINCT customer_id), 0) AS cac
FROM subscriptions
WHERE started_at >= date_trunc('month', current_date) - interval '12 months'
)
SELECT ROUND(a.arpa * p.gross_margin / p.monthly_revenue_churn, 0) AS ltv,
ROUND(c.cac, 0) AS cac,
ROUND(a.arpa * p.gross_margin / p.monthly_revenue_churn / NULLIF(c.cac, 0), 1) AS ltv_cac_ratio
FROM active a, acquisition c, params p;LTV =
DIVIDE([ARPA] * [Gross Margin %], [Revenue Churn %])
LTV:CAC Ratio =
DIVIDE([LTV], [CAC])In ENABLE
Ask for LTV:CAC ratio per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.
Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.
With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.
FAQ
First calculate LTV, for example ARPA × gross margin ÷ monthly revenue churn, then divide it by the average acquisition cost per new customer. With LTV of €2,400 and CAC of €800, the ratio is 3. Use the same period and customer group for both.
CAC includes every cost of winning new customers: advertising, marketing tools, events and the salaries of marketing and sales staff insofar as they focus on new business. Divide the total by the number of new customers in the same period. Record what you include so the ratio stays comparable over time.
A rule of thumb is often quoted, but there is no fixed good value: it depends on your margin, cash position and growth ambitions. What matters more is that the ratio sits comfortably above 1, stays stable per channel and, together with payback period, fits the cash you have.
In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.