Renewal Rate Calculator

Renewal Rate Calculator

Quickly measure your customer retention and subscription health.

Total customers/contracts eligible to renew in this period.
Number of customers who successfully renewed.

Result:

Understanding Renewal Rate

Renewal Rate is a critical SaaS and subscription metric that measures the percentage of customers who choose to extend their relationship with your business at the end of their contract period. Unlike general retention rates, the renewal rate focuses specifically on the "decision moment" when a contract expires.

The Renewal Rate Formula

Renewal Rate = (Number of Successful Renewals / Total Number of Contracts Up for Renewal) x 100

Why it Matters for Your Business

  • Customer Satisfaction: High rates indicate that users find consistent value in your product.
  • Predictable Revenue: Higher renewal rates lead to more stable and predictable Monthly Recurring Revenue (MRR).
  • Product-Market Fit: If customers leave as soon as their initial contract ends, it may signal a gap in long-term value.

Example Calculation

If a software company has 200 customer contracts expiring in Q1, and 180 of those customers sign a new agreement, the renewal rate is calculated as follows:

(180 / 200) * 100 = 90% Renewal Rate.

This also implies a 10% "renewal churn rate," representing the 20 customers who chose not to continue.

function calculateRenewalRate() { var eligible = document.getElementById('eligible_contracts').value; var renewed = document.getElementById('renewed_contracts').value; var resultBox = document.getElementById('result-box'); var renewalDisplay = document.getElementById('renewal-result'); var churnDisplay = document.getElementById('churn-result'); var e = parseFloat(eligible); var r = parseFloat(renewed); if (isNaN(e) || isNaN(r) || e e) { alert('Renewals cannot exceed the number of eligible contracts for this calculation.'); return; } var rate = (r / e) * 100; var churn = 100 – rate; resultBox.style.display = 'block'; renewalDisplay.innerHTML = rate.toFixed(2) + '% Renewal Rate'; churnDisplay.innerHTML = 'Churn Rate: ' + churn.toFixed(2) + '%'; // Smooth scroll to result resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment