Calculate Customer Churn, Revenue Churn (Gross MRR), and Average Customer Lifetime.
Customer Metrics
Revenue Metrics (Optional)
Customer Churn Rate
–
Avg Customer Lifetime
–
Gross MRR Churn
–
function calculateSaaSMetrics() {
// Get Input Values
var custStart = parseFloat(document.getElementById('customersStart').value);
var custLost = parseFloat(document.getElementById('customersLost').value);
var mrrStart = parseFloat(document.getElementById('mrrStart').value);
var mrrLost = parseFloat(document.getElementById('mrrLost').value);
// Validation for Customer Data
if (isNaN(custStart) || isNaN(custLost) || custStart custStart) {
alert("Customers lost cannot be greater than customers at the start.");
return;
}
// Calculate Customer Churn
var customerChurnRate = (custLost / custStart) * 100;
// Calculate Customer Lifetime (1 / Churn Rate)
// If churn is 0, lifetime is theoretically infinite, but we handle it gracefully
var customerLifetime = 0;
var lifetimeDisplay = "Infinite";
if (customerChurnRate > 0) {
customerLifetime = 1 / (customerChurnRate / 100);
lifetimeDisplay = customerLifetime.toFixed(1) + " Months";
}
// Calculate MRR Churn (if data provided)
var mrrChurnDisplay = "N/A";
var mrrChurnRate = 0;
if (!isNaN(mrrStart) && !isNaN(mrrLost) && mrrStart > 0) {
if (mrrLost > mrrStart) {
alert("MRR lost cannot be greater than MRR at start.");
return;
}
mrrChurnRate = (mrrLost / mrrStart) * 100;
mrrChurnDisplay = mrrChurnRate.toFixed(2) + "%";
}
// Display Results
document.getElementById('resultsArea').style.display = 'block';
// Update DOM
var custChurnEl = document.getElementById('custChurnResult');
custChurnEl.innerHTML = customerChurnRate.toFixed(2) + "%";
// Color coding for Customer Churn (General SaaS benchmark: <5% is okay, 5 ? "bad" : "good");
document.getElementById('lifetimeResult').innerHTML = lifetimeDisplay;
var mrrEl = document.getElementById('mrrChurnResult');
mrrEl.innerHTML = mrrChurnDisplay;
if(mrrChurnDisplay !== "N/A") {
mrrEl.className = "result-value " + (mrrChurnRate > 5 ? "bad" : "good");
}
// Insight Text
var insight = "";
if(customerChurnRate > 5) {
insight = "Your Customer Churn Rate is above 5%, which is considered high for most SaaS B2B businesses. Focus on user onboarding and customer success.";
} else if (customerChurnRate 2) {
insight = "Your Churn Rate is average. There is room for improvement in retention strategies.";
} else {
insight = "Excellent! Your Churn Rate is healthy (below 2%). Keep doing what you are doing.";
}
document.getElementById('insightText').innerText = insight;
}
Understanding SaaS Churn Rate
For any Software as a Service (SaaS) business, Churn Rate is arguably the most critical metric to track. It represents the percentage of customers (or revenue) who cancel their subscriptions within a given time period. High churn indicates product dissatisfaction or poor market fit, while low churn creates a compounding growth effect.
How to Calculate Customer Churn
The standard formula for calculating Monthly Customer Churn Rate is:
(Customers Lost During Month ÷ Customers at Start of Month) × 100 = Churn Rate %
Example: If you start January with 500 customers and 25 cancel their subscriptions by the end of the month, your calculation is:
(25 ÷ 500) = 0.05
0.05 × 100 = 5% Monthly Churn
Why is Average Customer Lifetime (LTV) Important?
There is a direct mathematical relationship between your Churn Rate and the average lifespan of a customer subscription. The formula is simply:
1 ÷ Churn Rate = Average Customer Lifetime
Using the example above with a 5% churn rate (0.05), the average customer stays for 20 months (1 ÷ 0.05). If you reduce churn to 2%, the lifetime jumps to 50 months. This drastically increases the Lifetime Value (LTV) of every customer you acquire.
Customer Churn vs. Revenue Churn (MRR Churn)
This calculator allows you to measure both:
Customer Churn: Measures the loss of logos (accounts). This is useful for understanding user satisfaction.
Gross MRR Churn: Measures the loss of revenue. This is often more important for financial health because losing one high-paying enterprise client hurts more than losing ten small self-serve users.
Ideally, you want your Net Negative Churn, meaning expansion revenue from existing customers (upsells) exceeds the revenue lost from cancellations.