{"product_id":"churn-rate","title":"Churn Rate Calculator","description":"\u003cstyle\u003e\n.cr-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  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\n  color: var(--ink);\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 15px;\n  line-height: 1.55;\n  container-type: inline-size;\n}\n.cr-calculator,\n.cr-calculator *,\n.cr-calculator *::before,\n.cr-calculator *::after {\n  box-sizing: border-box;\n  min-width: 0;\n}\n.cr-calculator button,\n.cr-calculator input,\n.cr-calculator select {\n  font: inherit;\n}\n.cr-calculator button,\n.cr-calculator a,\n.cr-calculator input,\n.cr-calculator select,\n.cr-calculator summary {\n  -webkit-tap-highlight-color: transparent;\n}\n.cr-calculator a {\n  color: var(--primary);\n  text-underline-offset: 2px;\n}\n.cr-calculator a:hover {\n  text-decoration-thickness: 2px;\n}\n.cr-calculator button:focus-visible,\n.cr-calculator input:focus-visible,\n.cr-calculator select:focus-visible,\n.cr-calculator summary:focus-visible,\n.cr-calculator a:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .35);\n  outline-offset: 2px;\n}\n.cr-header {\n  padding: 24px 24px 16px;\n  border-bottom: 1px solid var(--border);\n  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n  border-radius: 8px 8px 0 0;\n}\n.cr-title-row {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n  gap: 16px;\n  flex-wrap: wrap;\n}\n.cr-header h2 {\n  margin: 0;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n  letter-spacing: -.02em;\n}\n.cr-subtitle {\n  margin: 8px 0 0;\n  max-width: 760px;\n  color: var(--muted);\n}\n.cr-pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: 16px;\n}\n.cr-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  min-height: 32px;\n  padding: 4px 10px;\n  border: 1px solid var(--border);\n  border-radius: 999px;\n  background: var(--surface);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-pill strong {\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n}\n.cr-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 8px;\n  padding: 16px 24px;\n  border-bottom: 1px solid var(--border);\n}\n.cr-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  min-height: 46px;\n  padding: 12px 18px;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  cursor: pointer;\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.cr-button:hover {\n  box-shadow: 0 2px 5px rgba(15, 23, 42, .12);\n}\n.cr-button:active {\n  transform: translateY(1px);\n}\n.cr-download {\n  color: #ffffff;\n  background: var(--accent);\n  border-color: var(--accent);\n}\n.cr-download:hover,\n.cr-download:active {\n  background: var(--accent-hover);\n  border-color: var(--accent-hover);\n}\n.cr-reset {\n  color: var(--ink);\n  background: var(--surface);\n  border-color: #94a3b8;\n}\n.cr-icon {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 18px;\n}\n.cr-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 24px;\n  padding: 24px;\n  background: var(--tint);\n}\n.cr-panel,\n.cr-card,\n.cr-chart-card,\n.cr-table-card {\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.cr-panel {\n  padding: 20px;\n}\n.cr-section-title {\n  margin: 0 0 16px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.cr-field-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));\n  gap: 16px;\n}\n.cr-field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n}\n.cr-label {\n  display: block;\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n}\n.cr-control {\n  width: 100%;\n  min-height: 44px;\n  padding: 10px 12px;\n  color: var(--ink);\n  background: #ffffff;\n  border: 1px solid #94a3b8;\n  border-radius: 6px;\n  font-size: 15px;\n  font-weight: 400;\n  font-variant-numeric: tabular-nums;\n}\n.cr-control:hover {\n  border-color: #64748b;\n}\n.cr-helper {\n  min-height: 40px;\n  margin: 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n  line-height: 1.45;\n}\n.cr-error {\n  min-height: 19px;\n  margin: 0;\n  color: #b91c1c;\n  font-size: 13px;\n  font-weight: 600;\n}\n.cr-control[aria-invalid=\"true\"] {\n  border-color: #b91c1c;\n  box-shadow: 0 0 0 1px #b91c1c;\n}\n.cr-results {\n  display: grid;\n  gap: 12px;\n}\n.cr-primary-result {\n  padding: 20px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n}\n.cr-result-kicker {\n  margin: 0 0 4px;\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 650;\n}\n.cr-primary-value {\n  margin: 0;\n  color: #172554;\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 700;\n  letter-spacing: -.03em;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.cr-primary-note {\n  margin: 8px 0 0;\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-result-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 12px;\n}\n.cr-result-card {\n  padding: 16px;\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  background: var(--surface);\n}\n.cr-result-label {\n  margin: 0 0 4px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.cr-result-value {\n  margin: 0;\n  color: var(--ink);\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.cr-result-detail {\n  margin: 6px 0 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-live {\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.cr-section {\n  padding: 24px;\n  border-top: 1px solid var(--border);\n}\n.cr-section-heading {\n  margin: 0 0 6px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.cr-section-intro {\n  margin: 0 0 16px;\n  color: var(--muted);\n}\n.cr-chart-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));\n  align-items: start;\n  gap: 16px;\n}\n.cr-chart-card {\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  padding: 20px;\n}\n.cr-chart-card.cr-safe-stack {\n  display: flex;\n  flex-direction: column;\n  height: auto;\n  gap: 20px;\n}\n.cr-chart-card.cr-safe-stack .cr-donut-cluster {\n  grid-template-columns: minmax(0, 1fr);\n  justify-items: center;\n}\n.cr-chart-card.cr-safe-stack .cr-legend {\n  width: 100%;\n  justify-content: center;\n}\n.cr-chart-head {\n  display: grid;\n  gap: 4px;\n}\n.cr-chart-title {\n  margin: 0;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.cr-chart-subtitle {\n  margin: 0;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-donut-cluster {\n  display: grid;\n  grid-template-columns: minmax(220px, 320px) minmax(230px, max-content);\n  align-items: center;\n  justify-content: center;\n  gap: 24px;\n}\n.cr-plot-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n}\n.cr-donut-svg {\n  display: block;\n  width: min(100%, 320px);\n  height: auto;\n  aspect-ratio: 1;\n}\n.cr-line-svg {\n  display: block;\n  width: 100%;\n  max-width: 760px;\n  height: auto;\n  aspect-ratio: 2 \/ 1;\n}\n.cr-chart-text {\n  fill: var(--muted);\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-chart-center-label {\n  fill: var(--muted);\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 13px;\n  font-weight: 600;\n  text-anchor: middle;\n}\n.cr-chart-center-value {\n  fill: var(--ink);\n  font-family: Arial, Helvetica, sans-serif;\n  font-size: 24px;\n  font-weight: 700;\n  text-anchor: middle;\n  font-variant-numeric: tabular-nums;\n}\n.cr-legend {\n  display: grid;\n  align-content: center;\n  justify-content: start;\n  gap: 10px;\n}\n.cr-legend-row {\n  display: grid;\n  grid-template-columns: 12px minmax(88px, max-content) max-content max-content;\n  align-items: center;\n  justify-content: start;\n  gap: 8px 12px;\n  color: var(--ink);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n}\n.cr-legend-value,\n.cr-legend-percent {\n  font-variant-numeric: tabular-nums;\n  white-space: nowrap;\n}\n.cr-legend-percent {\n  color: var(--muted);\n}\n.cr-chart-summary-table {\n  width: 100%;\n  border-collapse: collapse;\n  margin-top: 4px;\n  font-size: 13px;\n}\n.cr-chart-summary-table th,\n.cr-chart-summary-table td {\n  padding: 8px 10px;\n  border-bottom: 1px solid var(--border);\n  text-align: left;\n}\n.cr-chart-summary-table th {\n  color: var(--muted);\n  font-weight: 600;\n}\n.cr-chart-summary-table td:nth-child(n+2),\n.cr-chart-summary-table th:nth-child(n+2) {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}\n.cr-chart-caption {\n  margin-top: 16px;\n  padding: 10px 12px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-empty {\n  padding: 14px 16px;\n  border: 1px dashed #94a3b8;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  text-align: center;\n}\n.cr-table-card {\n  padding: 20px;\n}\n.cr-table-overflow {\n  width: 100%;\n  overflow-x: auto;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n}\n.cr-table-card.cr-safe-table-stack {\n  height: auto;\n}\n.cr-table-card.cr-safe-table-stack .cr-table-note {\n  margin-top: 20px;\n}\n.cr-table {\n  width: 100%;\n  min-width: 720px;\n  border-collapse: collapse;\n  font-size: 13px;\n}\n.cr-table th,\n.cr-table td {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: right;\n  white-space: nowrap;\n  font-variant-numeric: tabular-nums;\n}\n.cr-table th:first-child,\n.cr-table td:first-child {\n  text-align: left;\n}\n.cr-table thead th {\n  color: #ffffff;\n  background: #1e293b;\n  font-weight: 650;\n}\n.cr-table tbody tr:nth-child(even) {\n  background: var(--tint);\n}\n.cr-table tbody tr:last-child td {\n  border-bottom: 0;\n  font-weight: 700;\n}\n.cr-table-note {\n  margin-top: 16px;\n  padding: 10px 12px;\n  border: 1px solid #cbd5e1;\n  border-radius: 6px;\n  background: var(--tint);\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cr-education {\n  padding: 32px 24px;\n  border-top: 1px solid var(--border);\n}\n.cr-education-inner {\n  max-width: 860px;\n  margin: 0 auto;\n}\n.cr-education h2 {\n  margin: 0 0 12px;\n  font-size: 24px;\n  line-height: 1.3;\n  font-weight: 700;\n}\n.cr-education h3 {\n  margin: 28px 0 8px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.cr-education p {\n  margin: 0 0 14px;\n  color: #334155;\n}\n.cr-education ul {\n  margin: 8px 0 16px;\n  padding-left: 22px;\n}\n.cr-education li {\n  margin: 6px 0;\n  color: #334155;\n}\n.cr-formula {\n  padding: 14px 16px;\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.cr-hidden {\n  display: none !important;\n}\n@container (min-width: 900px) {\n  .cr-workspace {\n    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);\n    align-items: start;\n  }\n}\n@container (max-width: 1119px) {\n  .cr-chart-grid {\n    grid-template-columns: minmax(0, 1fr);\n  }\n}\n@container (max-width: 639px) {\n  .cr-header,\n  .cr-toolbar,\n  .cr-workspace,\n  .cr-section,\n  .cr-education {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n  .cr-header {\n    padding-top: 20px;\n  }\n  .cr-toolbar {\n    align-items: stretch;\n  }\n  .cr-button {\n    flex: 1 1 150px;\n  }\n  .cr-field-grid,\n  .cr-result-grid,\n  .cr-chart-grid {\n    grid-template-columns: minmax(0, 1fr);\n  }\n  .cr-donut-cluster {\n    grid-template-columns: minmax(0, 1fr);\n    justify-items: center;\n    gap: 16px;\n  }\n  .cr-legend {\n    width: 100%;\n    justify-content: center;\n  }\n  .cr-legend-row {\n    grid-template-columns: 12px minmax(80px, max-content) max-content max-content;\n    gap: 8px;\n  }\n  .cr-chart-card {\n    padding: 16px;\n    gap: 16px;\n  }\n  .cr-chart-caption,\n  .cr-table-note {\n    margin-top: 12px;\n  }\n}\n@media (max-width: 639px) {\n  .cr-calculator .cr-header,\n  .cr-calculator .cr-toolbar,\n  .cr-calculator .cr-workspace,\n  .cr-calculator .cr-section,\n  .cr-calculator .cr-education {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n}\n@media (prefers-reduced-motion: reduce) {\n  .cr-calculator * {\n    scroll-behavior: auto !important;\n    transition: none !important;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cr-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"cr-header\"\u003e\n    \u003cdiv class=\"cr-title-row\"\u003e\n      \u003cdiv\u003e\n        \u003ch2\u003eChurn Rate Calculator\u003c\/h2\u003e\n        \u003cp class=\"cr-subtitle\"\u003eMeasure customer churn, retention, expected customer lifetime, and the compounding effect of a constant churn rate over future periods.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cr-pills\" aria-label=\"Live calculator summary\"\u003e\n      \u003cspan class=\"cr-pill\"\u003eChurn \u003cstrong data-cr-pill=\"churn\"\u003e5.00%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cr-pill\"\u003eRetained \u003cstrong data-cr-pill=\"retained\"\u003e950\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cr-pill\"\u003eLifetime \u003cstrong data-cr-pill=\"lifetime\"\u003e20.00 months\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cr-pill\"\u003eProjected base \u003cstrong data-cr-pill=\"projected\"\u003e540\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n  \u003cdiv class=\"cr-toolbar\" role=\"toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"cr-button cr-download\" type=\"button\" data-cr-action=\"download\"\u003e\n      \u003csvg class=\"cr-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M5 20h14v-2H5v2Zm14-9h-4V3H9v8H5l7 7 7-7Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"cr-button cr-reset\" type=\"button\" data-cr-action=\"reset\"\u003e\n      \u003csvg class=\"cr-icon\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath fill=\"currentColor\" d=\"M12 5a7 7 0 1 1-6.32 4H3l4-4 4 4H7.77A5 5 0 1 0 12 7V5Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eReset\u003c\/span\u003e\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cmain\u003e\n    \u003csection class=\"cr-workspace\" aria-label=\"Churn calculator workspace\"\u003e\n      \u003cdiv class=\"cr-panel\"\u003e\n        \u003ch3 class=\"cr-section-title\"\u003eInputs\u003c\/h3\u003e\n        \u003cdiv class=\"cr-field-grid\"\u003e\n          \u003cdiv class=\"cr-field\"\u003e\n            \u003clabel class=\"cr-label\" for=\"cr-start\"\u003eCustomers at start of period\u003c\/label\u003e\n            \u003cinput class=\"cr-control\" id=\"cr-start\" data-cr-input=\"start\" type=\"text\" inputmode=\"decimal\" value=\"1,000\" aria-describedby=\"cr-start-help cr-start-error\"\u003e\n            \u003cp class=\"cr-helper\" id=\"cr-start-help\"\u003eThe active customer count at the beginning of the selected period.\u003c\/p\u003e\n            \u003cp class=\"cr-error\" id=\"cr-start-error\" data-cr-error=\"start\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-field\"\u003e\n            \u003clabel class=\"cr-label\" for=\"cr-lost\"\u003eCustomers lost during period\u003c\/label\u003e\n            \u003cinput class=\"cr-control\" id=\"cr-lost\" data-cr-input=\"lost\" type=\"text\" inputmode=\"decimal\" value=\"50\" aria-describedby=\"cr-lost-help cr-lost-error\"\u003e\n            \u003cp class=\"cr-helper\" id=\"cr-lost-help\"\u003eCustomers who cancelled, failed to renew, or otherwise left during the period.\u003c\/p\u003e\n            \u003cp class=\"cr-error\" id=\"cr-lost-error\" data-cr-error=\"lost\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-field\"\u003e\n            \u003clabel class=\"cr-label\" for=\"cr-period\"\u003eMeasurement period\u003c\/label\u003e\n            \u003cselect class=\"cr-control\" id=\"cr-period\" data-cr-input=\"period\" aria-describedby=\"cr-period-help\"\u003e\n              \u003coption value=\"\"\u003ePeriod only\u003c\/option\u003e\n              \u003coption value=\"week\"\u003eWeek\u003c\/option\u003e\n              \u003coption value=\"month\" selected\u003eMonth\u003c\/option\u003e\n              \u003coption value=\"quarter\"\u003eQuarter\u003c\/option\u003e\n              \u003coption value=\"year\"\u003eYear\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cp class=\"cr-helper\" id=\"cr-period-help\"\u003eSets the unit used to translate expected lifetime into months and years.\u003c\/p\u003e\n            \u003cp class=\"cr-error\" data-cr-error=\"period\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-field\"\u003e\n            \u003clabel class=\"cr-label\" for=\"cr-horizon\"\u003eProjection horizon\u003c\/label\u003e\n            \u003cselect class=\"cr-control\" id=\"cr-horizon\" data-cr-input=\"horizon\" aria-describedby=\"cr-horizon-help\"\u003e\n              \u003coption value=\"0\"\u003eNo projection\u003c\/option\u003e\n              \u003coption value=\"6\"\u003e6 periods\u003c\/option\u003e\n              \u003coption value=\"12\" selected\u003e12 periods\u003c\/option\u003e\n              \u003coption value=\"24\"\u003e24 periods\u003c\/option\u003e\n              \u003coption value=\"36\"\u003e36 periods\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cp class=\"cr-helper\" id=\"cr-horizon-help\"\u003eProjects the customer base if the same churn rate repeats and no new customers are added.\u003c\/p\u003e\n            \u003cp class=\"cr-error\" data-cr-error=\"horizon\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cr-panel cr-results\"\u003e\n        \u003ch3 class=\"cr-section-title\"\u003eLive results\u003c\/h3\u003e\n        \u003cdiv class=\"cr-primary-result\"\u003e\n          \u003cp class=\"cr-result-kicker\"\u003eCustomer churn rate\u003c\/p\u003e\n          \u003cp class=\"cr-primary-value\" data-cr-output=\"churn\"\u003e5.00%\u003c\/p\u003e\n          \u003cp class=\"cr-primary-note\" data-cr-output=\"interpretation\"\u003e95.00% of the starting customer base was retained during this period.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cr-result-grid\"\u003e\n          \u003cdiv class=\"cr-result-card\"\u003e\n            \u003cp class=\"cr-result-label\"\u003eCustomer lifetime\u003c\/p\u003e\n            \u003cp class=\"cr-result-value\" data-cr-output=\"lifetime\"\u003e20.00 months\u003c\/p\u003e\n            \u003cp class=\"cr-result-detail\" data-cr-output=\"lifetime-detail\"\u003eApproximately 1.67 years\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-result-card\"\u003e\n            \u003cp class=\"cr-result-label\"\u003eRetention rate\u003c\/p\u003e\n            \u003cp class=\"cr-result-value\" data-cr-output=\"retention\"\u003e95.00%\u003c\/p\u003e\n            \u003cp class=\"cr-result-detail\"\u003eOne minus the churn rate\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-result-card\"\u003e\n            \u003cp class=\"cr-result-label\"\u003eCustomers retained\u003c\/p\u003e\n            \u003cp class=\"cr-result-value\" data-cr-output=\"retained\"\u003e950\u003c\/p\u003e\n            \u003cp class=\"cr-result-detail\"\u003eStarting customers less losses\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-result-card\"\u003e\n            \u003cp class=\"cr-result-label\"\u003eProjected customers\u003c\/p\u003e\n            \u003cp class=\"cr-result-value\" data-cr-output=\"projected\"\u003e540\u003c\/p\u003e\n            \u003cp class=\"cr-result-detail\" data-cr-output=\"projected-detail\"\u003eAfter 12 monthly periods\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cr-live\" aria-live=\"polite\" aria-atomic=\"true\" data-cr-live\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"cr-section\" aria-labelledby=\"cr-breakdown-title\"\u003e\n      \u003ch3 class=\"cr-section-heading\" id=\"cr-breakdown-title\"\u003eCustomer movement breakdown\u003c\/h3\u003e\n      \u003cp class=\"cr-section-intro\"\u003eThe current period is split into customers retained and customers lost, using the same values as the result cards and export.\u003c\/p\u003e\n      \u003cdiv class=\"cr-chart-grid\"\u003e\n        \u003carticle class=\"cr-chart-card\" data-cr-chart-card=\"breakdown\"\u003e\n          \u003cdiv class=\"cr-chart-head\"\u003e\n            \u003ch4 class=\"cr-chart-title\"\u003eRetention versus churn\u003c\/h4\u003e\n            \u003cp class=\"cr-chart-subtitle\" data-cr-breakdown-subtitle\u003e950 retained and 50 lost from 1,000 starting customers.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-empty cr-hidden\" data-cr-empty=\"breakdown\"\u003eEnter a positive starting customer count to see the breakdown.\u003c\/div\u003e\n          \u003cdiv class=\"cr-donut-cluster\" data-cr-chart-cluster=\"breakdown\"\u003e\n            \u003cdiv class=\"cr-plot-wrap\" data-cr-plot=\"breakdown\"\u003e\n              \u003csvg class=\"cr-donut-svg\" data-cr-chart=\"breakdown\" viewbox=\"0 0 320 320\" role=\"img\" aria-labelledby=\"cr-donut-title cr-donut-desc\"\u003e\n                \u003ctitle id=\"cr-donut-title\"\u003eCustomer retention and churn breakdown\u003c\/title\u003e\n                \u003cdesc id=\"cr-donut-desc\" data-cr-chart-desc=\"breakdown\"\u003eRetained customers 950, 95 percent. Lost customers 50, 5 percent.\u003c\/desc\u003e\n                \u003cg data-cr-donut-marks\u003e\u003c\/g\u003e\n                \u003ctext class=\"cr-chart-center-label\" x=\"160\" y=\"150\"\u003eStarting base\u003c\/text\u003e\n                \u003ctext class=\"cr-chart-center-value\" x=\"160\" y=\"181\" data-cr-donut-total\u003e1,000\u003c\/text\u003e\n              \u003c\/svg\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"cr-legend\" data-cr-legend=\"breakdown\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv data-cr-summary=\"breakdown\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"cr-chart-caption\" data-cr-caption=\"breakdown\"\u003eA 5.00% churn rate means 1 in every 20 starting customers left during this period.\u003c\/div\u003e\n        \u003c\/article\u003e\n        \u003carticle class=\"cr-chart-card\" data-cr-chart-card=\"projection\"\u003e\n          \u003cdiv class=\"cr-chart-head\"\u003e\n            \u003ch4 class=\"cr-chart-title\"\u003eCustomer base projection\u003c\/h4\u003e\n            \u003cp class=\"cr-chart-subtitle\" data-cr-projection-subtitle\u003eConstant 5.00% churn over 12 monthly periods with no customer acquisition.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-empty cr-hidden\" data-cr-empty=\"projection\"\u003eChoose a projection horizon and enter valid customer values to see the trend.\u003c\/div\u003e\n          \u003cdiv class=\"cr-plot-wrap\" data-cr-plot=\"projection\"\u003e\n            \u003csvg class=\"cr-line-svg\" data-cr-chart=\"projection\" viewbox=\"0 0 700 350\" role=\"img\" aria-labelledby=\"cr-line-title cr-line-desc\"\u003e\n              \u003ctitle id=\"cr-line-title\"\u003eProjected customer base over time\u003c\/title\u003e\n              \u003cdesc id=\"cr-line-desc\" data-cr-chart-desc=\"projection\"\u003eThe customer base declines from 1,000 to about 540 after 12 periods at a constant 5 percent churn rate.\u003c\/desc\u003e\n              \u003cg data-cr-line-grid\u003e\u003c\/g\u003e\n              \u003cpath data-cr-line-area fill=\"rgba(30,64,175,.10)\" stroke=\"none\"\u003e\u003c\/path\u003e\n              \u003cpath data-cr-line-path fill=\"none\" stroke=\"var(--chart-1)\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n              \u003cg data-cr-line-dots\u003e\u003c\/g\u003e\n            \u003c\/svg\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cr-legend\" data-cr-legend=\"projection\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"cr-chart-caption\" data-cr-caption=\"projection\"\u003eAt the current churn rate, the projected customer base is 54.04% of its starting size after 12 periods.\u003c\/div\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"cr-section\" aria-labelledby=\"cr-table-title\"\u003e\n      \u003ch3 class=\"cr-section-heading\" id=\"cr-table-title\"\u003eProjection detail\u003c\/h3\u003e\n      \u003cp class=\"cr-section-intro\"\u003eEach row applies the same churn rate to the opening customer balance for that period.\u003c\/p\u003e\n      \u003cdiv class=\"cr-table-card\" data-cr-table-card\u003e\n        \u003cdiv class=\"cr-table-overflow\" data-cr-table-wrap\u003e\n          \u003ctable class=\"cr-table\"\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth scope=\"col\"\u003ePeriod\u003c\/th\u003e\n                \u003cth scope=\"col\"\u003eOpening customers\u003c\/th\u003e\n                \u003cth scope=\"col\"\u003eCustomers lost\u003c\/th\u003e\n                \u003cth scope=\"col\"\u003eClosing customers\u003c\/th\u003e\n                \u003cth scope=\"col\"\u003eCumulative loss\u003c\/th\u003e\n                \u003cth scope=\"col\"\u003eRemaining share\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody data-cr-projection-body\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cr-table-note\" data-cr-table-note\u003eProjection assumes a constant churn rate and no new customer additions, reactivations, upgrades, downgrades, or cohort mix changes.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"cr-education\"\u003e\n      \u003cdiv class=\"cr-education-inner\"\u003e\n        \u003ch2\u003eHow to calculate and interpret customer churn\u003c\/h2\u003e\n        \u003cp\u003eCustomer churn measures the share of a starting customer base that leaves during a defined period. It is commonly used by subscription businesses, software companies, membership services, marketplaces, and any organization where repeat customer relationships matter. The calculator focuses on customer-count churn rather than revenue churn, so it treats every lost customer equally regardless of account size.\u003c\/p\u003e\n        \u003ch3\u003eWhat the calculator estimates\u003c\/h3\u003e\n        \u003cp\u003eThe primary result is the churn rate for one measurement period. It also calculates the complementary retention rate, the number of customers retained, an expected customer lifetime based on a steady-state approximation, and a forward projection showing how repeated churn compounds when no new customers are added. The projection is not a forecast of actual business performance; it is a controlled scenario that isolates the effect of churn.\u003c\/p\u003e\n        \u003cdiv class=\"cr-formula\"\u003eChurn rate = customers lost during the period ÷ customers at the start of the period × 100\u003c\/div\u003e\n        \u003cp\u003eThe lifetime estimate uses the reciprocal relationship: expected lifetime in periods = 1 ÷ churn rate expressed as a decimal. For example, a monthly churn rate of 5% produces an estimated lifetime of 20 months. This approximation is most useful when churn is relatively stable and customer departures are distributed consistently through time.\u003c\/p\u003e\n        \u003ch3\u003eHow to use each input\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003e\n\u003cstrong\u003eCustomers at start of period\u003c\/strong\u003e is required for a valid churn calculation. Use the count active at the exact beginning of the measurement window. Do not use the ending count, an average balance, or a total that includes customers acquired later in the same period. A higher starting count lowers the churn rate when losses are unchanged.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eCustomers lost during period\u003c\/strong\u003e is the number of customers who cancelled, failed to renew, became inactive under your chosen definition, or otherwise exited. It must not exceed the starting count. A higher loss count directly raises churn and shortens estimated lifetime.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eMeasurement period\u003c\/strong\u003e identifies whether the churn observation is weekly, monthly, quarterly, or annual. It does not change the churn percentage itself, but it changes how the lifetime estimate is labeled and converted into months and years. Compare churn rates only when they use compatible periods.\u003c\/li\u003e\n          \u003cli\u003e\n\u003cstrong\u003eProjection horizon\u003c\/strong\u003e controls the number of repeated periods shown in the chart and table. Longer horizons make compounding more visible. Choosing no projection removes the forward-looking visual without changing the current-period churn calculation.\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003ch3\u003eUnderstanding every result\u003c\/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eChurn rate\u003c\/strong\u003e is the percentage of starting customers lost. Lower is generally preferable, but an acceptable level depends on contract length, customer segment, acquisition economics, and business maturity. A zero rate means no customers were lost in the observed period. A 100% rate means the entire starting base was lost.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eRetention rate\u003c\/strong\u003e is 100% minus churn. It shows the share of the starting base that remained. \u003cstrong\u003eCustomers retained\u003c\/strong\u003e is the corresponding count, calculated as starting customers minus customers lost. These two results cross-check the churn calculation: retained and lost customers should always sum to the starting base.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eCustomer lifetime\u003c\/strong\u003e expresses the reciprocal of churn. At zero churn, a finite lifetime cannot be calculated, so the tool reports that the estimate is not finite rather than displaying an infinite or invalid number. The estimate is a simplified average, not a contractual duration or cohort survival model.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eProjected customers\u003c\/strong\u003e is the closing customer count at the selected horizon if the same churn rate repeats and no customers are added. The line chart shows the compounding path. The table lists opening customers, losses, closing customers, cumulative losses, and the percentage of the original base remaining for every period. Decimal customer values are kept internally because the projection represents an expected value; display values are rounded for readability.\u003c\/p\u003e\n        \u003ch3\u003eWhat drives the projection\u003c\/h3\u003e\n        \u003cp\u003eThe model applies the retention factor repeatedly: projected customers after n periods = starting customers × (1 − churn rate)\u003csup\u003en\u003c\/sup\u003e. Because each period starts with a smaller base, the absolute number lost declines over time even though the percentage churn stays constant. This is why a constant churn rate creates a curved decline rather than a straight line.\u003c\/p\u003e\n        \u003cp\u003eReal businesses usually add new customers, recover paused accounts, and experience different churn by cohort, plan, geography, and tenure. For deeper analysis, compare this customer-count view with revenue churn, net revenue retention, and cohort retention. Useful background is available from \u003ca href=\"https:\/\/stripe.com\/resources\/more\/churn-rate-101\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eStripe’s overview of churn\u003c\/a\u003e, \u003ca href=\"https:\/\/www.investopedia.com\/terms\/c\/churn-rate.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia’s churn-rate definition\u003c\/a\u003e, and \u003ca href=\"https:\/\/chartmogul.com\/blog\/saas-metrics-cheat-sheet\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eChartMogul’s SaaS metrics guide\u003c\/a\u003e.\u003c\/p\u003e\n        \u003ch3\u003eCommon mistakes and practical tradeoffs\u003c\/h3\u003e\n        \u003cul\u003e\n          \u003cli\u003eMixing customers acquired during the period into the starting denominator can understate churn.\u003c\/li\u003e\n          \u003cli\u003eUsing different inactivity definitions across periods makes trend comparisons unreliable.\u003c\/li\u003e\n          \u003cli\u003eComparing monthly churn directly with annual churn ignores compounding and period length.\u003c\/li\u003e\n          \u003cli\u003eUsing only aggregate churn can hide high-risk customer segments or improving newer cohorts.\u003c\/li\u003e\n          \u003cli\u003eTreating the reciprocal lifetime estimate as a precise forecast ignores changing behavior and customer heterogeneity.\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cp\u003eUse a consistent period, a stable definition of “lost,” and the same data extraction logic each time. The Excel export records current inputs, results, breakdown values, projection rows, and model notes so the calculation can be reviewed or incorporated into a broader operating model.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/main\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909482094835,"sku":"churn-rate","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/churn-rate.webp?v=1783935403","url":"https:\/\/financialmodelslab.com\/products\/churn-rate","provider":"Financial Models Lab","version":"1.0","type":"link"}