{"product_id":"customer-retention-rate","title":"Customer Retention Rate Calculator","description":"\u003cstyle\u003e\n.crr-calculator {\n  --ink: #0f172a;\n  --muted: #475569;\n  --border: #e2e8f0;\n  --surface: #ffffff;\n  --tint: #f8fafc;\n  --primary: #1d4ed8;\n  --accent: #c2410c;\n  --accent-hover: #9a3412;\n  --chart-1: #1e40af;\n  --chart-2: #0d9488;\n  --chart-3: #7c3aed;\n  --chart-4: #be185d;\n  --chart-5: #334155;\n  container-name: crr;\n  container-type: inline-size;\n  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\n  color: var(--ink);\n  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n}\n.crr-calculator,\n.crr-calculator *,\n.crr-calculator *::before,\n.crr-calculator *::after {\n  box-sizing: border-box;\n}\n.crr-calculator * {\n  min-width: 0;\n}\n.crr-calculator h2,\n.crr-calculator h3,\n.crr-calculator p {\n  margin-top: 0;\n}\n.crr-calculator h2 {\n  margin-bottom: 8px;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n  letter-spacing: -0.02em;\n}\n.crr-calculator h3 {\n  margin-bottom: 12px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.crr-calculator a {\n  color: var(--primary);\n  text-decoration-thickness: 1px;\n  text-underline-offset: 2px;\n}\n.crr-calculator a:hover {\n  text-decoration-thickness: 2px;\n}\n.crr-calculator button,\n.crr-calculator input {\n  font: inherit;\n}\n.crr-header {\n  padding: 24px;\n  border: 1px solid var(--border);\n  border-radius: 8px 8px 0 0;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.crr-subtitle {\n  max-width: 760px;\n  margin-bottom: 16px;\n  color: var(--muted);\n}\n.crr-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.crr-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  min-height: 32px;\n  padding: 5px 10px;\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.crr-pill strong {\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n}\n.crr-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  padding: 16px 24px;\n  border-right: 1px solid var(--border);\n  border-left: 1px solid var(--border);\n  background: var(--tint);\n}\n.crr-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  min-height: 44px;\n  padding: 11px 18px;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  cursor: pointer;\n  font-size: 15px;\n  font-weight: 650;\n  line-height: 1.2;\n  white-space: nowrap;\n  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;\n}\n.crr-button:hover {\n  transform: translateY(-1px);\n  box-shadow: 0 3px 8px rgba(15, 23, 42, .12);\n}\n.crr-button:active {\n  transform: translateY(0);\n}\n.crr-button:focus-visible,\n.crr-input:focus-visible,\n.crr-calculator a:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .35);\n  outline-offset: 2px;\n}\n.crr-download {\n  order: 1;\n  border-color: var(--accent);\n  background: var(--accent);\n  color: #ffffff;\n}\n.crr-download:hover {\n  border-color: var(--accent-hover);\n  background: var(--accent-hover);\n}\n.crr-reset {\n  order: 2;\n  border-color: #94a3b8;\n  background: var(--surface);\n  color: var(--ink);\n}\n.crr-icon {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 18px;\n}\n.crr-workspace {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 16px;\n  padding: 24px;\n  border: 1px solid var(--border);\n  background: #f1f5f9;\n}\n.crr-card {\n  padding: 20px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.crr-input-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));\n  gap: 16px;\n}\n.crr-field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n}\n.crr-label {\n  display: block;\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.crr-input {\n  width: 100%;\n  min-height: 44px;\n  padding: 9px 12px;\n  border: 1px solid #94a3b8;\n  border-radius: 6px;\n  background: var(--surface);\n  color: var(--ink);\n  font-size: 15px;\n  line-height: 1.4;\n  font-variant-numeric: tabular-nums;\n}\n.crr-input:hover {\n  border-color: #64748b;\n}\n.crr-input[aria-invalid=\"true\"] {\n  border-color: #b91c1c;\n  box-shadow: 0 0 0 1px #b91c1c;\n}\n.crr-helper,\n.crr-error {\n  min-height: 40px;\n  margin: 0;\n  font-size: 13px;\n  line-height: 1.45;\n}\n.crr-helper {\n  color: var(--muted);\n}\n.crr-error {\n  display: none;\n  color: #991b1b;\n  font-weight: 600;\n}\n.crr-field.crr-has-error .crr-helper {\n  display: none;\n}\n.crr-field.crr-has-error .crr-error {\n  display: block;\n}\n.crr-results {\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n}\n.crr-primary-result {\n  padding: 18px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.crr-eyebrow {\n  margin-bottom: 4px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.crr-primary-value {\n  margin-bottom: 6px;\n  color: #172554;\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.crr-primary-note {\n  margin-bottom: 0;\n  color: #334155;\n  font-size: 13px;\n  line-height: 1.5;\n}\n.crr-result-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));\n  gap: 12px;\n}\n.crr-result-card {\n  min-height: 104px;\n  padding: 14px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--tint);\n}\n.crr-result-label {\n  display: block;\n  margin-bottom: 5px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.crr-result-value {\n  display: block;\n  font-size: 20px;\n  line-height: 1.25;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.crr-status {\n  min-height: 44px;\n  padding: 10px 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.crr-section {\n  margin-top: 16px;\n  padding: 20px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.crr-section-intro {\n  max-width: 780px;\n  margin-bottom: 16px;\n  color: var(--muted);\n}\n.crr-chart-cluster {\n  display: grid;\n  grid-template-columns: 1fr;\n  align-items: center;\n  justify-content: center;\n  gap: 16px;\n  width: min(100%, 680px);\n  margin: 0 auto;\n}\n.crr-plot-wrap {\n  display: grid;\n  place-items: center;\n  width: 100%;\n}\n.crr-chart-svg {\n  display: block;\n  width: min(100%, 320px);\n  height: auto;\n  aspect-ratio: 1 \/ 1;\n  overflow: visible;\n}\n.crr-chart-bg {\n  fill: none;\n  stroke: #e2e8f0;\n  stroke-width: 42;\n}\n.crr-chart-segment {\n  fill: none;\n  stroke-width: 42;\n  stroke-linecap: butt;\n  transform: rotate(-90deg);\n  transform-origin: 160px 160px;\n}\n.crr-chart-center-label {\n  fill: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  text-anchor: middle;\n}\n.crr-chart-center-value {\n  fill: var(--ink);\n  font-size: 28px;\n  font-weight: 700;\n  text-anchor: middle;\n  font-variant-numeric: tabular-nums;\n}\n.crr-legend {\n  display: grid;\n  gap: 12px;\n  width: fit-content;\n  max-width: 100%;\n  margin: 0 auto;\n}\n.crr-legend-row {\n  display: grid;\n  grid-template-columns: 14px minmax(82px, auto) auto auto;\n  align-items: center;\n  gap: 8px 12px;\n  width: fit-content;\n  max-width: 100%;\n  padding: 8px 10px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  font-size: 13px;\n  font-weight: 500;\n}\n.crr-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n}\n.crr-legend-name {\n  font-weight: 650;\n}\n.crr-legend-value,\n.crr-legend-percent {\n  font-variant-numeric: tabular-nums;\n  white-space: nowrap;\n}\n.crr-legend-percent {\n  color: var(--muted);\n}\n.crr-chart-callout,\n.crr-table-note {\n  margin-top: 16px;\n  padding: 10px 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  line-height: 1.5;\n}\n.crr-empty-state {\n  display: none;\n  width: min(100%, 520px);\n  margin: 0 auto;\n  padding: 12px 14px;\n  border: 1px dashed #94a3b8;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  text-align: center;\n  font-size: 13px;\n  font-weight: 600;\n}\n.crr-chart-card.crr-chart-empty .crr-chart-cluster,\n.crr-chart-card.crr-chart-empty .crr-chart-callout,\n.crr-chart-card.crr-chart-empty .crr-chart-summary {\n  display: none;\n}\n.crr-chart-card.crr-chart-empty .crr-empty-state {\n  display: block;\n}\n.crr-safe-stack .crr-chart-cluster {\n  grid-template-columns: 1fr;\n  row-gap: 20px;\n}\n.crr-safe-stack .crr-chart-callout {\n  margin-top: 20px;\n}\n.crr-table-overflow {\n  width: 100%;\n  overflow-x: auto;\n  overscroll-behavior-inline: contain;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n}\n.crr-table {\n  width: 100%;\n  min-width: 660px;\n  border-collapse: collapse;\n  font-size: 13px;\n  font-variant-numeric: tabular-nums;\n}\n.crr-table th,\n.crr-table td {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: left;\n  vertical-align: top;\n}\n.crr-table th {\n  background: #e2e8f0;\n  color: var(--ink);\n  font-weight: 700;\n}\n.crr-table td:last-child,\n.crr-table th:last-child {\n  text-align: right;\n}\n.crr-table tbody tr:last-child td {\n  border-bottom: 0;\n}\n.crr-safe-table-stack .crr-table-note {\n  margin-top: 24px;\n}\n.crr-education {\n  margin-top: 16px;\n  padding: 24px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.crr-education-grid {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 24px;\n}\n.crr-education p,\n.crr-education li {\n  color: #334155;\n}\n.crr-education ul,\n.crr-education ol {\n  margin-top: 0;\n  padding-left: 22px;\n}\n.crr-formula {\n  padding: 12px 14px;\n  border-left: 4px solid var(--primary);\n  border-radius: 0 6px 6px 0;\n  background: #eff6ff;\n  color: #172554;\n  font-weight: 650;\n  font-variant-numeric: tabular-nums;\n}\n.crr-sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n@container crr (min-width: 640px) {\n  .crr-chart-cluster {\n    grid-template-columns: minmax(260px, 320px) max-content;\n    column-gap: 24px;\n  }\n  .crr-safe-stack .crr-chart-cluster {\n    grid-template-columns: 1fr;\n  }\n}\n@container crr (min-width: 900px) {\n  .crr-workspace {\n    grid-template-columns: minmax(0, 1.05fr) minmax(330px, .95fr);\n    align-items: start;\n  }\n  .crr-education-grid {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n  .crr-education-wide {\n    grid-column: 1 \/ -1;\n  }\n}\n@container crr (max-width: 420px) {\n  .crr-header,\n  .crr-toolbar,\n  .crr-workspace,\n  .crr-education {\n    padding-right: 16px;\n    padding-left: 16px;\n  }\n  .crr-card,\n  .crr-section {\n    padding: 16px;\n  }\n  .crr-button {\n    width: 100%;\n  }\n  .crr-legend-row {\n    grid-template-columns: 14px minmax(76px, auto) auto;\n  }\n  .crr-legend-percent {\n    grid-column: 2 \/ 4;\n  }\n  .crr-primary-value {\n    font-size: 28px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"crr-calculator\" data-calculator-root\u003e\n  \u003csection class=\"crr-header\"\u003e\n    \u003ch2\u003eCustomer Retention Rate Calculator\u003c\/h2\u003e\n    \u003cp class=\"crr-subtitle\"\u003eMeasure how effectively your business kept its starting customer base during a selected period, while separating newly acquired customers from the calculation.\u003c\/p\u003e\n    \u003cdiv class=\"crr-pills\" aria-label=\"Live calculation summary\"\u003e\n      \u003cspan class=\"crr-pill\"\u003eRetention \u003cstrong data-crr-pill-retention\u003e50.00%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"crr-pill\"\u003eAttrition \u003cstrong data-crr-pill-attrition\u003e50.00%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"crr-pill\"\u003eRetained \u003cstrong data-crr-pill-retained\u003e500\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"crr-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"crr-button crr-download\" type=\"button\" data-crr-download\u003e\n      \u003csvg class=\"crr-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"\u003e\n        \u003cpath fill=\"currentColor\" d=\"M11 3h2v10.17l3.59-3.58L18 11l-6 6-6-6 1.41-1.41L11 13.17V3Zm-6 16h14v2H5v-2Z\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"crr-button crr-reset\" type=\"button\" data-crr-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"crr-workspace\"\u003e\n    \u003cdiv class=\"crr-card\"\u003e\n      \u003ch3\u003eCustomer counts\u003c\/h3\u003e\n      \u003cdiv class=\"crr-input-grid\"\u003e\n        \u003cdiv class=\"crr-field\" data-crr-field=\"existing\"\u003e\n          \u003clabel class=\"crr-label\" for=\"crr-existing\"\u003eExisting customers at start\u003c\/label\u003e\n          \u003cinput class=\"crr-input\" id=\"crr-existing\" data-crr-input=\"existing\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" value=\"1,000\" aria-describedby=\"crr-existing-help crr-existing-error\"\u003e\n          \u003cp class=\"crr-helper\" id=\"crr-existing-help\"\u003eActive customers at the beginning of the same reporting period.\u003c\/p\u003e\n          \u003cp class=\"crr-error\" id=\"crr-existing-error\" data-crr-error=\"existing\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crr-field\" data-crr-field=\"newCustomers\"\u003e\n          \u003clabel class=\"crr-label\" for=\"crr-new-customers\"\u003eNew customers acquired\u003c\/label\u003e\n          \u003cinput class=\"crr-input\" id=\"crr-new-customers\" data-crr-input=\"newCustomers\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" value=\"1,500\" aria-describedby=\"crr-new-help crr-new-error\"\u003e\n          \u003cp class=\"crr-helper\" id=\"crr-new-help\"\u003eCustomers first acquired during the selected period.\u003c\/p\u003e\n          \u003cp class=\"crr-error\" id=\"crr-new-error\" data-crr-error=\"newCustomers\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crr-field\" data-crr-field=\"ending\"\u003e\n          \u003clabel class=\"crr-label\" for=\"crr-ending\"\u003eTotal customers at end\u003c\/label\u003e\n          \u003cinput class=\"crr-input\" id=\"crr-ending\" data-crr-input=\"ending\" type=\"text\" inputmode=\"numeric\" autocomplete=\"off\" value=\"2,000\" aria-describedby=\"crr-ending-help crr-ending-error\"\u003e\n          \u003cp class=\"crr-helper\" id=\"crr-ending-help\"\u003eAll active customers at period end, including newly acquired customers.\u003c\/p\u003e\n          \u003cp class=\"crr-error\" id=\"crr-ending-error\" data-crr-error=\"ending\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"crr-card crr-results\"\u003e\n      \u003cdiv class=\"crr-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n        \u003cp class=\"crr-eyebrow\"\u003eCustomer retention rate\u003c\/p\u003e\n        \u003cdiv class=\"crr-primary-value\" data-crr-primary\u003e50.00%\u003c\/div\u003e\n        \u003cp class=\"crr-primary-note\" data-crr-interpretation\u003eHalf of the starting customer cohort remained active at the end of the period.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"crr-result-grid\"\u003e\n        \u003cdiv class=\"crr-result-card\"\u003e\n          \u003cspan class=\"crr-result-label\"\u003eAttrition rate\u003c\/span\u003e\n          \u003cspan class=\"crr-result-value\" data-crr-attrition\u003e50.00%\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crr-result-card\"\u003e\n          \u003cspan class=\"crr-result-label\"\u003eRetained customers\u003c\/span\u003e\n          \u003cspan class=\"crr-result-value\" data-crr-retained\u003e500\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"crr-result-card\"\u003e\n          \u003cspan class=\"crr-result-label\"\u003eLost customers\u003c\/span\u003e\n          \u003cspan class=\"crr-result-value\" data-crr-lost\u003e500\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"crr-status\" data-crr-status\u003eInputs are internally consistent: retained plus lost customers equals the starting cohort.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"crr-section crr-chart-card\" data-crr-chart-card\u003e\n    \u003ch3\u003eStarting cohort outcome\u003c\/h3\u003e\n    \u003cp class=\"crr-section-intro\"\u003eThe chart splits only the customers who were present at the beginning of the period. New acquisitions are excluded so they do not inflate retention.\u003c\/p\u003e\n    \u003cdiv class=\"crr-empty-state\" data-crr-chart-empty\u003eEnter valid customer counts above to see the retained-versus-lost breakdown.\u003c\/div\u003e\n    \u003cdiv class=\"crr-chart-cluster\" data-crr-chart-cluster\u003e\n      \u003cdiv class=\"crr-plot-wrap\" data-crr-plot\u003e\n        \u003csvg class=\"crr-chart-svg\" data-crr-chart viewbox=\"0 0 320 320\" role=\"img\" aria-labelledby=\"crr-chart-title crr-chart-desc\"\u003e\n          \u003ctitle id=\"crr-chart-title\"\u003eRetained and lost customers\u003c\/title\u003e\n          \u003cdesc id=\"crr-chart-desc\" data-crr-chart-desc\u003e500 retained customers, 50.00 percent; 500 lost customers, 50.00 percent.\u003c\/desc\u003e\n          \u003ccircle class=\"crr-chart-bg\" cx=\"160\" cy=\"160\" r=\"110\"\u003e\u003c\/circle\u003e\n          \u003cg data-crr-segments\u003e\u003c\/g\u003e\n          \u003ctext class=\"crr-chart-center-label\" x=\"160\" y=\"150\"\u003eStarting cohort\u003c\/text\u003e\n          \u003ctext class=\"crr-chart-center-value\" x=\"160\" y=\"184\" data-crr-center\u003e1,000\u003c\/text\u003e\n        \u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"crr-legend\" data-crr-legend aria-label=\"Chart legend\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"crr-chart-callout\" data-crr-chart-caption\u003eOf 1,000 customers at the start, 500 remained and 500 were lost during the period.\u003c\/div\u003e\n    \u003cdiv class=\"crr-chart-summary crr-sr-only\" data-crr-chart-summary\u003e\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"crr-section crr-table-card\" data-crr-table-card\u003e\n    \u003ch3\u003eCalculation detail\u003c\/h3\u003e\n    \u003cp class=\"crr-section-intro\"\u003eEach row is generated from the same live model used by the result cards, chart, accessible summary, and Excel workbook.\u003c\/p\u003e\n    \u003cdiv class=\"crr-table-overflow\" data-crr-table-wrap tabindex=\"0\" aria-label=\"Customer retention calculation table\"\u003e\n      \u003ctable class=\"crr-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth scope=\"col\"\u003eMetric\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eCalculation\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eValue\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody data-crr-table-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"crr-table-note\" data-crr-table-note\u003eRetention and attrition are complementary when the data is consistent, so the two rates total 100.00%.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"crr-education\"\u003e\n    \u003cdiv class=\"crr-education-grid\"\u003e\n      \u003cdiv\u003e\n        \u003ch2\u003eWhat this calculator estimates\u003c\/h2\u003e\n        \u003cp\u003eCustomer retention rate measures the share of the customers you had at the start of a period who are still active at the end. It is a cohort-based measure: customers acquired during the period are removed from the ending count before the retained share is calculated. That separation matters because acquisition can make an ending customer total look healthy even while many earlier customers have left.\u003c\/p\u003e\n        \u003cp\u003eThe calculator also reports attrition rate, retained customers, and lost customers. Attrition is the inverse of retention for the same customer cohort. A 72% retention rate therefore corresponds to 28% attrition. The count outputs make the percentage easier to audit and connect the rate to operational activity.\u003c\/p\u003e\n        \u003cdiv class=\"crr-formula\"\u003eRetention rate = (ending customers − new customers) ÷ starting customers × 100%\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv\u003e\n        \u003ch2\u003eHow to complete each input\u003c\/h2\u003e\n        \u003ch3\u003eExisting customers at start\u003c\/h3\u003e\n        \u003cp\u003eEnter the number of active customers immediately before the reporting period begins. This field is required and must be greater than zero. Use one consistent definition of “active,” such as an account with a current subscription, a customer who purchased within a defined window, or a contract that had not expired. A larger starting base changes the denominator and usually makes each retained or lost customer have a smaller percentage-point effect.\u003c\/p\u003e\n        \u003ch3\u003eNew customers acquired\u003c\/h3\u003e\n        \u003cp\u003eEnter customers whose first qualifying activity occurred during the period. This field is required and may be zero. Do not include reactivated customers unless your reporting policy consistently treats them as new. Overstating new customers reduces the implied retained count and can understate retention.\u003c\/p\u003e\n        \u003ch3\u003eTotal customers at end\u003c\/h3\u003e\n        \u003cp\u003eEnter all active customers at the end of the period, including new customers acquired during that same interval. This field is required. The ending total cannot be lower than new customers, and the implied retained count cannot exceed the starting base. Those conditions protect the calculation from contradictory cohort data.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv\u003e\n        \u003ch2\u003eUnderstanding the results\u003c\/h2\u003e\n        \u003ch3\u003eCustomer retention rate\u003c\/h3\u003e\n        \u003cp\u003eThe primary result is the percentage of the starting cohort that remained. A higher rate means fewer starting customers left during the selected period, but “high” must be judged against your business model, contract cadence, purchase frequency, and comparable historical periods. A zero rate means none of the starting cohort remained. This calculator prevents negative rates and rates above 100% by flagging inconsistent counts rather than presenting an impossible cohort result.\u003c\/p\u003e\n        \u003ch3\u003eAttrition rate\u003c\/h3\u003e\n        \u003cp\u003eAttrition, often called customer churn, is the percentage of the starting cohort that was lost. It equals 100% minus retention when the same population and period are used. The \u003ca href=\"https:\/\/www.investopedia.com\/terms\/c\/churnrate.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia overview of churn rate\u003c\/a\u003e provides additional context on how attrition is used in subscription and service businesses.\u003c\/p\u003e\n        \u003ch3\u003eRetained and lost customers\u003c\/h3\u003e\n        \u003cp\u003eRetained customers equal ending customers minus newly acquired customers. Lost customers equal starting customers minus retained customers. These counts are often more actionable than a percentage alone because they can be connected to cancellation reasons, customer-success outreach, renewal pipelines, and revenue analysis.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv\u003e\n        \u003ch2\u003eReading the chart and table\u003c\/h2\u003e\n        \u003cp\u003eThe donut chart divides the starting customer base into retained and lost segments. The center shows the starting cohort total, while the legend shows exact counts and percentages. New customers are not charted because they were not available to be retained at the start. When all inputs are empty or invalid, the visual is replaced by a compact message rather than a decorative or misleading chart.\u003c\/p\u003e\n        \u003cp\u003eThe calculation table provides an audit trail. The first three rows restate the inputs. The next two rows show the derived retained and lost counts. The final two rows show the rate formulas. Use the table to confirm that the retained and lost counts add back to the starting cohort and that retention plus attrition equals 100%.\u003c\/p\u003e\n        \u003cp\u003eThe Excel download captures the current state, including inputs, outputs, breakdown data, and assumptions. It is useful for period-to-period reporting, management reviews, or reconciling the metric to CRM and billing-system extracts.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"crr-education-wide\"\u003e\n        \u003ch2\u003eChoosing a period and avoiding common mistakes\u003c\/h2\u003e\n        \u003cp\u003eUse a period that fits the natural customer lifecycle. Monthly tracking may suit subscription products, while quarterly or annual tracking may be more meaningful for infrequent purchases or long contracts. Always compare like with like: the start and end dates, active-customer definition, treatment of pauses, and treatment of reactivations should remain consistent. Guidance from \u003ca href=\"https:\/\/www.qualtrics.com\/articles\/customer-experience\/customer-retention\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eQualtrics on customer retention\u003c\/a\u003e, \u003ca href=\"https:\/\/www.shopify.com\/blog\/customer-retention-statistics\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eShopify’s retention-rate overview\u003c\/a\u003e, and \u003ca href=\"https:\/\/blog.hubspot.com\/service\/customer-retention-metrics\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHubSpot’s retention metrics guide\u003c\/a\u003e can help frame related measures such as repeat purchase rate and customer lifetime value.\u003c\/p\u003e\n        \u003cp\u003eCommon errors include mixing customer counts with subscriptions, combining regions with different reporting cutoffs, counting returning customers as newly acquired, and using cumulative new-customer totals that extend beyond the chosen period. Another mistake is comparing retention across periods of different lengths without adjustment: a twelve-month rate will usually be lower than a one-month rate because customers have more time to leave.\u003c\/p\u003e\n        \u003cp\u003eRetention should not be interpreted in isolation. A stable rate can coexist with declining revenue if retained customers downgrade, and strong acquisition can mask a deteriorating existing cohort. Review retention alongside revenue retention, customer lifetime value, support issues, product usage, and acquisition quality. The metric is descriptive rather than personalized business, financial, or investment advice.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909485830387,"sku":"customer-retention-rate","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/customer-retention-rate.webp?v=1783935486","url":"https:\/\/financialmodelslab.com\/products\/customer-retention-rate","provider":"Financial Models Lab","version":"1.0","type":"link"}