Determine the total revenue potential of your average subscriber over their entire relationship with your business.
Estimated Customer LTV
Understanding SaaS Customer Lifetime Value (LTV)
Customer Lifetime Value (LTV or CLV) is the most critical metric for any subscription-based business. It represents the total net profit you expect to earn from a single customer throughout the duration of their subscription. Understanding your LTV allows you to determine how much you can afford to spend on customer acquisition (CAC).
The SaaS LTV Formula
While there are several ways to calculate LTV, the industry-standard formula for SaaS companies is:
LTV = (ARPA × Gross Margin %) / Churn Rate %
ARPA: Average Revenue Per Account (usually monthly).
Gross Margin: The percentage of revenue remaining after COGS (Cost of Goods Sold), such as hosting and support costs.
Churn Rate: The percentage of customers who cancel their subscription in a given month.
Why Churn is the "LTV Killer"
As you can see from the calculator, the churn rate is in the denominator. This means that as churn increases, LTV drops exponentially. For example, reducing your monthly churn from 5% to 2.5% doesn't just halve your losses—it effectively doubles the lifetime value of every customer in your ecosystem.
Practical Example
If your average customer pays $50/month, your gross margin is 80%, and your monthly churn is 2%:
Net Monthly Contribution: $50 × 0.80 = $40
Customer Lifespan: 1 / 0.02 = 50 months
LTV: $40 × 50 = $2,000
LTV to CAC Ratio
LTV is most useful when compared to Customer Acquisition Cost (CAC). A healthy SaaS company typically aims for an LTV:CAC ratio of 3:1 or higher. This ensures that for every dollar spent on marketing and sales, you generate three dollars in gross profit over the customer's lifespan.
function calculateSaaSLTV() {
var arpa = parseFloat(document.getElementById("arpaInput").value);
var margin = parseFloat(document.getElementById("grossMarginInput").value);
var churn = parseFloat(document.getElementById("churnInput").value);
var resultBox = document.getElementById("ltvResultBox");
var ltvDisplay = document.getElementById("ltvValue");
var summaryDisplay = document.getElementById("ltvSummary");
if (isNaN(arpa) || isNaN(margin) || isNaN(churn)) {
alert("Please enter valid numerical values for all fields.");
return;
}
if (churn <= 0) {
alert("Churn rate must be greater than 0% to calculate a finite lifetime.");
return;
}
// Calculation
// Formula: (ARPA * (Margin/100)) / (Churn/100)
var marginDecimal = margin / 100;
var churnDecimal = churn / 100;
var ltv = (arpa * marginDecimal) / churnDecimal;
var lifespan = 1 / churnDecimal;
// Display
ltvDisplay.innerText = "$" + ltv.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
summaryDisplay.innerHTML = "Based on a monthly churn rate of " + churn + "%, your average customer stays for " + Math.round(lifespan) + " months. Each customer contributes approximately $" + (arpa * marginDecimal).toFixed(2) + " in gross profit per month.";
resultBox.style.display = "block";
resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}