Calculate the percentage of customers retained over a specific time period.
Total number of customers you had when the period began.
Total number of customers you have now (at the end of the period).
Number of new customers gained strictly during this specific period.
Customer Retention Rate (CRR)
0%
Churn Rate0%
Retained Customers0
How to Calculate Retention Rate in eCommerce
In the highly competitive world of eCommerce, acquiring new customers is often significantly more expensive than retaining existing ones. The Customer Retention Rate (CRR) is a vital key performance indicator (KPI) that measures a store's ability to keep its customers over a specific period. A high retention rate indicates a loyal customer base and a healthy business model.
The Retention Rate Formula
To calculate your eCommerce retention rate, you need three specific data points for the time period you are analyzing (e.g., a month, a quarter, or a year):
S (Start): The number of customers at the start of the period.
E (End): The number of customers at the end of the period.
N (New): The number of new customers acquired during that period.
CRR = [ ( E – N ) / S ] × 100
Essentially, the formula subtracts the new customers from the total end count to isolate the customers who were there at the start and stayed. This number is then divided by the starting count to get a decimal, which is multiplied by 100 to get a percentage.
Calculation Example
Let's say you run an online clothing store and want to calculate your retention rate for Q3:
You started the quarter with 500 existing customers (S).
During the quarter, you acquired 100 new customers (N).
At the end of the quarter, you had a total of 550 active customers (E).
Applying the math:
Subtract New Customers from End Customers: 550 – 100 = 450 (These are the retained customers).
Divide by Start Customers: 450 / 500 = 0.9.
Multiply by 100: 0.9 × 100 = 90%.
Your retention rate for Q3 was 90%, meaning you only lost 10% of your original customer base (churn).
Why Retention Matters for eCommerce
Focusing on retention improves your Customer Lifetime Value (CLTV). Repeat customers tend to spend more per order and convert at higher rates than first-time visitors. Furthermore, increasing customer retention rates by just 5% can increase profits by 25% to 95%, according to research by Bain & Company.
What is a Good eCommerce Retention Rate?
Benchmarks vary by industry. For general retail and eCommerce, a retention rate typically hovers around 20% to 30%. However, subscription-based eCommerce models usually aim for retention rates above 80%. If your CRR is below industry standards, consider implementing loyalty programs, improving customer support, or enhancing the post-purchase experience.
function calculateRetention() {
// Get input values
var startCust = document.getElementById('custStart').value;
var endCust = document.getElementById('custEnd').value;
var newCust = document.getElementById('custNew').value;
var errorDiv = document.getElementById('errorDisplay');
var resultBox = document.getElementById('result-box');
// Reset error display
errorDiv.style.display = 'none';
resultBox.style.display = 'none';
// validate inputs are numbers
if (startCust === "" || endCust === "" || newCust === "") {
errorDiv.innerText = "Please fill in all fields.";
errorDiv.style.display = 'block';
return;
}
var s = parseFloat(startCust);
var e = parseFloat(endCust);
var n = parseFloat(newCust);
// Logic validations
if (s <= 0) {
errorDiv.innerText = "Customers at start (S) must be greater than 0.";
errorDiv.style.display = 'block';
return;
}
if (e < 0 || n e) {
errorDiv.innerText = "New customers cannot exceed total customers at the end of the period.";
errorDiv.style.display = 'block';
return;
}
// The core calculation: ((E – N) / S) * 100
var retainedCustomers = e – n;
// Logic check: Retained customers cannot be more than start customers
// (Unless definition of 'retained' allows returning lapsed customers, but strictly E-N shouldn't exceed S for pure retention)
// However, in messy real world data, sometimes E includes reactivations not counted in N.
// We will just calculate mathematically but warn if > 100%.
var ratio = retainedCustomers / s;
var crr = ratio * 100;
var churn = 100 – crr;
// Display results
document.getElementById('crrResult').innerText = crr.toFixed(1) + '%';
document.getElementById('churnResult').innerText = churn.toFixed(1) + '%';
document.getElementById('retainedCount').innerText = retainedCustomers;
// Interpretation
var interpretation = document.getElementById('crrInterpretation');
if (crr > 100) {
interpretation.innerText = "Note: Rate > 100% usually implies data categorization errors (e.g. reactivations not counted as new).";
interpretation.style.color = "#e67e22";
} else if (crr >= 80) {
interpretation.innerText = "Excellent retention rate.";
interpretation.style.color = "#27ae60";
} else if (crr >= 40) {
interpretation.innerText = "Healthy retention rate.";
interpretation.style.color = "#2980b9";
} else if (crr >= 20) {
interpretation.innerText = "Average retention rate.";
interpretation.style.color = "#f39c12";
} else {
interpretation.innerText = "Low retention rate. Focus on customer loyalty strategies.";
interpretation.style.color = "#c0392b";
}
resultBox.style.display = 'block';
}