{"product_id":"cltv","title":"CLTV Calculator — Customer Lifetime Value","description":"\u003cstyle\u003e\n.cltv-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  color: var(--ink);\n  background: var(--tint);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 24px;\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  container-type: inline-size;\n  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.cltv-calculator,\n.cltv-calculator *,\n.cltv-calculator *::before,\n.cltv-calculator *::after {\n  box-sizing: border-box;\n}\n.cltv-calculator h2,\n.cltv-calculator h3,\n.cltv-calculator p {\n  margin-top: 0;\n}\n.cltv-calculator a {\n  color: var(--primary);\n  text-underline-offset: 3px;\n}\n.cltv-calculator a:hover {\n  text-decoration-thickness: 2px;\n}\n.cltv-header {\n  display: grid;\n  gap: 16px;\n  margin-bottom: 16px;\n}\n.cltv-title-wrap,\n.cltv-header \u003e *,\n.cltv-toolbar \u003e *,\n.cltv-workspace \u003e *,\n.cltv-field-grid \u003e *,\n.cltv-results-grid \u003e *,\n.cltv-pill-row \u003e *,\n.cltv-driver-grid \u003e *,\n.cltv-chart-layout \u003e *,\n.cltv-chart-metrics \u003e * {\n  min-width: 0;\n}\n.cltv-title {\n  margin: 0 0 4px;\n  font-size: 24px;\n  line-height: 1.25;\n  font-weight: 700;\n  letter-spacing: -.02em;\n}\n.cltv-subtitle {\n  margin: 0;\n  color: var(--muted);\n  max-width: 760px;\n}\n.cltv-pill-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.cltv-pill {\n  display: inline-flex;\n  align-items: baseline;\n  gap: 6px;\n  padding: 6px 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.cltv-pill strong {\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n}\n.cltv-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 8px;\n  margin-bottom: 16px;\n}\n.cltv-button {\n  min-height: 44px;\n  border-radius: 6px;\n  border: 1px solid transparent;\n  padding: 10px 16px;\n  font: inherit;\n  font-weight: 650;\n  cursor: pointer;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  white-space: nowrap;\n  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;\n}\n.cltv-button:hover {\n  box-shadow: 0 2px 5px rgba(15, 23, 42, .12);\n}\n.cltv-button:active {\n  transform: translateY(1px);\n}\n.cltv-button:focus-visible,\n.cltv-input:focus-visible,\n.cltv-select:focus-visible,\n.cltv-link-button:focus-visible {\n  outline: 3px solid rgba(29, 78, 216, .35);\n  outline-offset: 2px;\n}\n.cltv-download {\n  background: var(--accent);\n  color: #ffffff;\n  padding: 12px 18px;\n}\n.cltv-download:hover {\n  background: var(--accent-hover);\n}\n.cltv-download-icon {\n  width: 18px;\n  height: 18px;\n  flex: 0 0 auto;\n}\n.cltv-reset {\n  background: var(--surface);\n  color: var(--ink);\n  border-color: #94a3b8;\n}\n.cltv-reset:hover {\n  border-color: var(--ink);\n}\n.cltv-workspace {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 16px;\n  align-items: start;\n}\n.cltv-card {\n  background: var(--surface);\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 20px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);\n}\n.cltv-card-title {\n  margin: 0 0 16px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.cltv-card-intro {\n  color: var(--muted);\n  margin: -8px 0 16px;\n}\n.cltv-field-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));\n  gap: 16px;\n}\n.cltv-field {\n  display: flex;\n  flex-direction: column;\n  min-width: 0;\n}\n.cltv-label {\n  display: block;\n  margin-bottom: 6px;\n  color: var(--ink);\n  font-size: 14px;\n  font-weight: 600;\n}\n.cltv-input,\n.cltv-select {\n  width: 100%;\n  min-height: 44px;\n  padding: 10px 12px;\n  border: 1px solid #94a3b8;\n  border-radius: 6px;\n  color: var(--ink);\n  background: #ffffff;\n  font: inherit;\n  font-size: 15px;\n  font-variant-numeric: tabular-nums;\n}\n.cltv-input:hover,\n.cltv-select:hover {\n  border-color: #64748b;\n}\n.cltv-helper,\n.cltv-error {\n  min-height: 40px;\n  margin-top: 6px;\n  font-size: 13px;\n  line-height: 1.45;\n  font-weight: 500;\n}\n.cltv-helper {\n  color: var(--muted);\n}\n.cltv-error {\n  color: #b91c1c;\n}\n.cltv-error:empty {\n  display: none;\n}\n.cltv-formula-strip {\n  margin-top: 16px;\n  padding: 12px;\n  border: 1px solid #bfdbfe;\n  border-radius: 6px;\n  background: #eff6ff;\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 600;\n  overflow-wrap: anywhere;\n}\n.cltv-primary-result {\n  padding: 18px;\n  border: 1px solid #bfdbfe;\n  border-radius: 8px;\n  background: #eff6ff;\n  margin-bottom: 16px;\n}\n.cltv-primary-label {\n  color: #1e3a8a;\n  font-size: 13px;\n  font-weight: 650;\n  text-transform: uppercase;\n  letter-spacing: .04em;\n}\n.cltv-primary-value {\n  margin: 4px 0 2px;\n  font-size: 30px;\n  line-height: 1.15;\n  font-weight: 700;\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.cltv-primary-note {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cltv-results-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));\n  gap: 12px;\n}\n.cltv-result-item {\n  padding: 12px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n}\n.cltv-result-label {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.35;\n}\n.cltv-result-value {\n  margin-top: 4px;\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.cltv-section {\n  margin-top: 16px;\n}\n.cltv-driver-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));\n  gap: 12px;\n  align-items: stretch;\n}\n.cltv-driver {\n  position: relative;\n  padding: 14px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n  background: var(--tint);\n}\n.cltv-driver-label {\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 600;\n}\n.cltv-driver-value {\n  margin-top: 4px;\n  font-size: 20px;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n  overflow-wrap: anywhere;\n}\n.cltv-driver-caption {\n  margin-top: 4px;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cltv-driver-operator {\n  display: none;\n}\n.cltv-chart-card {\n  display: grid;\n  gap: 16px;\n}\n.cltv-chart-card.cltv-safe-stack {\n  gap: 20px;\n}\n.cltv-chart-layout {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr);\n  gap: 16px;\n  justify-items: center;\n  max-width: 920px;\n  width: 100%;\n  margin: 0 auto;\n}\n.cltv-plot-block,\n.cltv-legend-block {\n  width: 100%;\n  min-width: 0;\n}\n.cltv-plot-shell {\n  width: 100%;\n  min-height: 260px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.cltv-chart-svg {\n  display: block;\n  width: 100%;\n  max-width: 760px;\n  overflow: visible;\n}\n.cltv-empty-state {\n  width: 100%;\n  padding: 16px;\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.cltv-empty-state[hidden],\n.cltv-chart-svg[hidden] {\n  display: none;\n}\n.cltv-legend {\n  display: grid;\n  gap: 8px;\n}\n.cltv-legend-row {\n  display: grid;\n  grid-template-columns: 12px minmax(0, auto) max-content;\n  align-items: center;\n  justify-content: start;\n  column-gap: 10px;\n  row-gap: 4px;\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: 600;\n}\n.cltv-legend-swatch {\n  width: 12px;\n  height: 12px;\n  border-radius: 3px;\n  background: var(--chart-1);\n}\n.cltv-legend-name {\n  color: var(--ink);\n}\n.cltv-legend-value {\n  color: var(--ink);\n  font-variant-numeric: tabular-nums;\n}\n.cltv-chart-metrics {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr));\n  gap: 8px;\n  margin-top: 12px;\n}\n.cltv-chart-metric {\n  padding: 8px 10px;\n  border: 1px solid var(--border);\n  border-radius: 6px;\n}\n.cltv-chart-metric span {\n  display: block;\n  color: var(--muted);\n  font-size: 13px;\n  font-weight: 500;\n}\n.cltv-chart-metric strong {\n  display: block;\n  margin-top: 2px;\n  font-size: 15px;\n  font-weight: 700;\n  font-variant-numeric: tabular-nums;\n}\n.cltv-chart-caption,\n.cltv-table-note {\n  position: static;\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  font-weight: 500;\n}\n.cltv-safe-stack .cltv-chart-caption {\n  margin-top: 20px;\n}\n.cltv-visually-hidden {\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.cltv-table-card {\n  display: block;\n}\n.cltv-table-card.cltv-safe-table-stack .cltv-table-note {\n  margin-top: 20px;\n}\n.cltv-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  background: var(--surface);\n}\n.cltv-table {\n  width: 100%;\n  min-width: 680px;\n  border-collapse: collapse;\n  font-size: 13px;\n  font-variant-numeric: tabular-nums;\n}\n.cltv-table th,\n.cltv-table td {\n  padding: 10px 12px;\n  border-bottom: 1px solid var(--border);\n  text-align: right;\n  vertical-align: middle;\n  white-space: nowrap;\n}\n.cltv-table th {\n  background: #e2e8f0;\n  color: var(--ink);\n  font-weight: 700;\n}\n.cltv-table th:first-child,\n.cltv-table td:first-child {\n  text-align: left;\n}\n.cltv-table tbody tr:last-child td {\n  border-bottom: 0;\n  font-weight: 700;\n  background: #eff6ff;\n}\n.cltv-education {\n  margin-top: 24px;\n  padding-top: 24px;\n  border-top: 1px solid var(--border);\n  max-width: 880px;\n}\n.cltv-education h2 {\n  margin: 0 0 12px;\n  font-size: 22px;\n  line-height: 1.3;\n  font-weight: 700;\n}\n.cltv-education h3 {\n  margin: 24px 0 8px;\n  font-size: 18px;\n  line-height: 1.35;\n  font-weight: 650;\n}\n.cltv-education p {\n  margin-bottom: 12px;\n  color: #334155;\n}\n.cltv-education ul {\n  margin: 0 0 12px;\n  padding-left: 22px;\n}\n.cltv-education li {\n  margin-bottom: 8px;\n  color: #334155;\n}\n.cltv-callout {\n  margin: 16px 0;\n  padding: 12px 14px;\n  border-left: 4px solid var(--primary);\n  border-radius: 0 6px 6px 0;\n  background: #eff6ff;\n  color: #1e3a8a;\n}\n@container (min-width: 640px) {\n  .cltv-chart-layout {\n    grid-template-columns: minmax(0, 2fr) minmax(220px, .85fr);\n    align-items: center;\n    gap: 24px;\n  }\n  .cltv-chart-card.cltv-safe-stack .cltv-chart-layout {\n    grid-template-columns: minmax(0, 1fr);\n    max-width: 760px;\n  }\n}\n@container (min-width: 900px) {\n  .cltv-header {\n    grid-template-columns: minmax(0, 1fr) auto;\n    align-items: end;\n  }\n  .cltv-workspace {\n    grid-template-columns: minmax(0, 1fr) minmax(340px, .82fr);\n  }\n  .cltv-driver-grid {\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n  }\n  .cltv-driver-operator {\n    display: block;\n    position: absolute;\n    right: -11px;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 22px;\n    height: 22px;\n    border: 1px solid var(--border);\n    border-radius: 50%;\n    background: var(--surface);\n    color: var(--muted);\n    text-align: center;\n    line-height: 20px;\n    font-size: 13px;\n    font-weight: 700;\n    z-index: 1;\n  }\n  .cltv-driver:last-child .cltv-driver-operator {\n    display: none;\n  }\n}\n@container (max-width: 480px) {\n  .cltv-calculator {\n    padding: 16px;\n  }\n  .cltv-card {\n    padding: 16px;\n  }\n  .cltv-button {\n    width: 100%;\n  }\n  .cltv-primary-value {\n    font-size: 28px;\n  }\n  .cltv-legend-row {\n    grid-template-columns: 12px minmax(0, 1fr);\n  }\n  .cltv-legend-value {\n    grid-column: 2;\n  }\n  .cltv-table-note,\n  .cltv-chart-caption {\n    margin-top: 12px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"cltv-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"cltv-header\"\u003e\n    \u003cdiv class=\"cltv-title-wrap\"\u003e\n      \u003ch2 class=\"cltv-title\"\u003eCustomer Lifetime Value Calculator\u003c\/h2\u003e\n      \u003cp class=\"cltv-subtitle\"\u003eEstimate the revenue an average customer contributes over the full relationship, then inspect the value path period by period.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cltv-pill-row\" aria-label=\"Live calculation summary\"\u003e\n      \u003cspan class=\"cltv-pill\"\u003ePurchase \u003cstrong data-cltv-pill-purchase\u003e$10.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cltv-pill\"\u003eFrequency \u003cstrong data-cltv-pill-frequency\u003e2.50\/yr\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cltv-pill\"\u003eLifespan \u003cstrong data-cltv-pill-lifespan\u003e1.50 yrs\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"cltv-pill\"\u003eCLTV \u003cstrong data-cltv-pill-cltv\u003e$37.50\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n\n  \u003cdiv class=\"cltv-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"cltv-button cltv-download\" type=\"button\" data-cltv-download\u003e\n      \u003csvg class=\"cltv-download-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=\"cltv-button cltv-reset\" type=\"button\" data-cltv-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cltv-workspace\"\u003e\n    \u003csection class=\"cltv-card\" aria-labelledby=\"cltv-inputs-title\"\u003e\n      \u003ch3 class=\"cltv-card-title\" id=\"cltv-inputs-title\"\u003eCustomer value assumptions\u003c\/h3\u003e\n      \u003cp class=\"cltv-card-intro\"\u003eUse averages from one consistent measurement period, normally a year.\u003c\/p\u003e\n      \u003cdiv class=\"cltv-field-grid\"\u003e\n        \u003cdiv class=\"cltv-field\"\u003e\n          \u003clabel class=\"cltv-label\" for=\"cltv-purchase-value\"\u003eAverage purchase value\u003c\/label\u003e\n          \u003cinput class=\"cltv-input\" id=\"cltv-purchase-value\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"$10.00\" data-cltv-input=\"purchaseValue\" data-cltv-kind=\"currency\" aria-describedby=\"cltv-purchase-help cltv-purchase-error\"\u003e\n          \u003cdiv class=\"cltv-helper\" id=\"cltv-purchase-help\"\u003eRevenue per transaction, in U.S. dollars.\u003c\/div\u003e\n          \u003cdiv class=\"cltv-error\" id=\"cltv-purchase-error\" data-cltv-error=\"purchaseValue\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cltv-field\"\u003e\n          \u003clabel class=\"cltv-label\" for=\"cltv-purchase-frequency\"\u003eAverage purchase frequency\u003c\/label\u003e\n          \u003cinput class=\"cltv-input\" id=\"cltv-purchase-frequency\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"2.50\" data-cltv-input=\"frequency\" data-cltv-kind=\"number\" aria-describedby=\"cltv-frequency-help cltv-frequency-error\"\u003e\n          \u003cdiv class=\"cltv-helper\" id=\"cltv-frequency-help\"\u003eAverage purchases made by one customer per year.\u003c\/div\u003e\n          \u003cdiv class=\"cltv-error\" id=\"cltv-frequency-error\" data-cltv-error=\"frequency\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cltv-field\"\u003e\n          \u003clabel class=\"cltv-label\" for=\"cltv-customer-lifespan\"\u003eAverage customer lifespan\u003c\/label\u003e\n          \u003cinput class=\"cltv-input\" id=\"cltv-customer-lifespan\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" value=\"1.50\" data-cltv-input=\"lifespan\" data-cltv-kind=\"number\" aria-describedby=\"cltv-lifespan-help cltv-lifespan-error\"\u003e\n          \u003cdiv class=\"cltv-helper\" id=\"cltv-lifespan-help\"\u003eAverage active relationship length, in years.\u003c\/div\u003e\n          \u003cdiv class=\"cltv-error\" id=\"cltv-lifespan-error\" data-cltv-error=\"lifespan\" aria-live=\"polite\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-formula-strip\" data-cltv-formula\u003eCLTV = $10.00 × 2.50 purchases\/year × 1.50 years\u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003csection class=\"cltv-card\" aria-labelledby=\"cltv-results-title\"\u003e\n      \u003ch3 class=\"cltv-card-title\" id=\"cltv-results-title\"\u003eLive results\u003c\/h3\u003e\n      \u003cdiv class=\"cltv-primary-result\"\u003e\n        \u003cdiv class=\"cltv-primary-label\"\u003eCustomer lifetime value\u003c\/div\u003e\n        \u003cdiv class=\"cltv-primary-value\" data-cltv-primary\u003e$37.50\u003c\/div\u003e\n        \u003cdiv class=\"cltv-primary-note\" data-cltv-primary-note\u003eEstimated lifetime revenue per average customer.\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-results-grid\"\u003e\n        \u003cdiv class=\"cltv-result-item\"\u003e\n          \u003cdiv class=\"cltv-result-label\"\u003eAverage customer value\u003c\/div\u003e\n          \u003cdiv class=\"cltv-result-value\" data-cltv-annual-value\u003e$25.00\/yr\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cltv-result-item\"\u003e\n          \u003cdiv class=\"cltv-result-label\"\u003eLifetime purchases\u003c\/div\u003e\n          \u003cdiv class=\"cltv-result-value\" data-cltv-lifetime-purchases\u003e3.75\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cltv-result-item\"\u003e\n          \u003cdiv class=\"cltv-result-label\"\u003eMonthly customer revenue\u003c\/div\u003e\n          \u003cdiv class=\"cltv-result-value\" data-cltv-monthly-value\u003e$2.08\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cltv-result-item\"\u003e\n          \u003cdiv class=\"cltv-result-label\"\u003eProjection rows\u003c\/div\u003e\n          \u003cdiv class=\"cltv-result-value\" data-cltv-row-count\u003e18\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-visually-hidden\" aria-live=\"polite\" data-cltv-live\u003eCustomer lifetime value is $37.50.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"cltv-card cltv-section\" aria-labelledby=\"cltv-drivers-title\"\u003e\n    \u003ch3 class=\"cltv-card-title\" id=\"cltv-drivers-title\"\u003eValue equation\u003c\/h3\u003e\n    \u003cdiv class=\"cltv-driver-grid\"\u003e\n      \u003cdiv class=\"cltv-driver\"\u003e\n        \u003cdiv class=\"cltv-driver-label\"\u003ePurchase value\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-value\" data-cltv-driver-purchase\u003e$10.00\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-caption\"\u003eRevenue per order\u003c\/div\u003e\n        \u003cspan class=\"cltv-driver-operator\" aria-hidden=\"true\"\u003e×\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-driver\"\u003e\n        \u003cdiv class=\"cltv-driver-label\"\u003ePurchase frequency\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-value\" data-cltv-driver-frequency\u003e2.50\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-caption\"\u003eOrders per year\u003c\/div\u003e\n        \u003cspan class=\"cltv-driver-operator\" aria-hidden=\"true\"\u003e=\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-driver\"\u003e\n        \u003cdiv class=\"cltv-driver-label\"\u003eAnnual customer value\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-value\" data-cltv-driver-annual\u003e$25.00\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-caption\"\u003eRevenue per year\u003c\/div\u003e\n        \u003cspan class=\"cltv-driver-operator\" aria-hidden=\"true\"\u003e×\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-driver\"\u003e\n        \u003cdiv class=\"cltv-driver-label\"\u003eCustomer lifespan\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-value\" data-cltv-driver-lifespan\u003e1.50 years\u003c\/div\u003e\n        \u003cdiv class=\"cltv-driver-caption\" data-cltv-driver-result\u003eProduces $37.50 CLTV\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cltv-card cltv-section cltv-chart-card\" aria-labelledby=\"cltv-chart-title\" data-cltv-chart-card\u003e\n    \u003cdiv\u003e\n      \u003ch3 class=\"cltv-card-title\" id=\"cltv-chart-title\"\u003eCumulative customer value\u003c\/h3\u003e\n      \u003cp class=\"cltv-card-intro\" data-cltv-chart-intro\u003eThe projection shows revenue accumulating evenly across the 1.50-year customer relationship.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cltv-chart-layout\"\u003e\n      \u003cdiv class=\"cltv-plot-block\"\u003e\n        \u003cdiv class=\"cltv-plot-shell\" data-cltv-plot-shell\u003e\n          \u003csvg class=\"cltv-chart-svg\" role=\"img\" aria-labelledby=\"cltv-chart-title cltv-chart-summary\" data-cltv-chart-svg\u003e\u003c\/svg\u003e\n          \u003cdiv class=\"cltv-empty-state\" data-cltv-chart-empty hidden\u003eEnter positive values above to see the projection.\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cltv-legend-block\" data-cltv-legend-block\u003e\n        \u003cdiv class=\"cltv-legend\" data-cltv-legend\u003e\n          \u003cdiv class=\"cltv-legend-row\"\u003e\n            \u003cspan class=\"cltv-legend-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n            \u003cspan class=\"cltv-legend-name\"\u003eCumulative revenue\u003c\/span\u003e\n            \u003cspan class=\"cltv-legend-value\" data-cltv-legend-value\u003e$37.50\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cltv-chart-metrics\"\u003e\n          \u003cdiv class=\"cltv-chart-metric\"\u003e\n\u003cspan\u003eStart\u003c\/span\u003e\u003cstrong\u003e$0.00\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"cltv-chart-metric\"\u003e\n\u003cspan\u003eEnd\u003c\/span\u003e\u003cstrong data-cltv-chart-end\u003e$37.50\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"cltv-chart-metric\"\u003e\n\u003cspan\u003eResolution\u003c\/span\u003e\u003cstrong data-cltv-chart-resolution\u003eMonthly\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cltv-chart-caption\" data-cltv-chart-caption\u003eAt a steady purchase rate, value grows linearly. Real customer behavior may be seasonal or uneven.\u003c\/div\u003e\n    \u003cdiv class=\"cltv-visually-hidden\" id=\"cltv-chart-summary\" data-cltv-chart-summary\u003eCustomer revenue rises from $0.00 to $37.50 over 1.50 years.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cltv-card cltv-section cltv-table-card\" aria-labelledby=\"cltv-table-title\" data-cltv-table-card\u003e\n    \u003ch3 class=\"cltv-card-title\" id=\"cltv-table-title\"\u003eCustomer value projection\u003c\/h3\u003e\n    \u003cp class=\"cltv-card-intro\" data-cltv-table-intro\u003eMonthly projection with a final row tied exactly to the selected lifespan.\u003c\/p\u003e\n    \u003cdiv class=\"cltv-table-overflow\" data-cltv-table-overflow\u003e\n      \u003ctable class=\"cltv-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth scope=\"col\"\u003ePeriod\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eElapsed years\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003ePurchases in period\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eRevenue in period\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eCumulative purchases\u003c\/th\u003e\n            \u003cth scope=\"col\"\u003eCumulative value\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody data-cltv-table-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cltv-table-note\" data-cltv-table-note\u003eThe schedule applies a constant average purchase rate and prorates the final period when the lifespan is not a whole month, quarter, or year.\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"cltv-education\" aria-labelledby=\"cltv-education-title\"\u003e\n    \u003ch2 id=\"cltv-education-title\"\u003eHow to use and interpret customer lifetime value\u003c\/h2\u003e\n    \u003cp\u003eCustomer lifetime value, often shortened to CLTV, CLV, or LTV, estimates the revenue generated by an average customer across the entire commercial relationship. This calculator uses the simple revenue model: average purchase value multiplied by annual purchase frequency, then multiplied by average customer lifespan. It is designed for a fast, transparent baseline rather than a discounted cash flow or profit model.\u003c\/p\u003e\n\n    \u003ch3\u003eEnter the three operating assumptions\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eAverage purchase value\u003c\/strong\u003e is the average revenue from one completed transaction. Use a consistent source period and divide total recognized customer revenue by the number of purchases in that period. Enter a non-negative U.S. dollar amount. A higher purchase value increases both annual customer value and CLTV in direct proportion. Common errors include mixing gross merchandise value with net recognized revenue, combining currencies, or including refunded orders without an offset.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAverage purchase frequency\u003c\/strong\u003e is the average number of purchases made by one customer per year. For example, 2.5 means the typical customer buys two or three times annually. The value is required for a positive result and should use the same customer definition as the purchase value calculation. A higher frequency raises annual value, lifetime purchases, every projection row, and final CLTV. Avoid mixing monthly frequency with a field expressed per year; convert a monthly rate by multiplying it by 12.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAverage customer lifespan\u003c\/strong\u003e is the average number of years between acquisition and the end of the active relationship. Decimal values are valid: 18 months equals 1.5 years. A longer lifespan increases lifetime purchases and CLTV but does not change annual customer value. Use a cohort-based estimate where possible instead of guessing from only current active customers, because incomplete cohorts can overstate lifespan. The calculator accepts values up to 200 years to prevent accidental extreme entries.\u003c\/p\u003e\n\n    \u003ch3\u003eRead each result\u003c\/h3\u003e\n    \u003cp\u003e\u003cstrong\u003eCustomer lifetime value\u003c\/strong\u003e is the primary result. It represents estimated lifetime revenue per average customer, not gross profit, contribution margin, or cash flow. A high value can support larger acquisition and retention budgets, but only after costs and timing are considered. A zero result means at least one required driver is zero or invalid. Negative values are rejected because the simple revenue model does not treat refunds or losses as negative purchase activity.\u003c\/p\u003e\n    \u003cp\u003e\u003cstrong\u003eAverage customer value\u003c\/strong\u003e is annual revenue per customer: average purchase value multiplied by annual purchase frequency. It isolates the yearly economics from customer longevity. \u003cstrong\u003eLifetime purchases\u003c\/strong\u003e is frequency multiplied by lifespan and indicates the expected number of transactions over the relationship. \u003cstrong\u003eMonthly customer revenue\u003c\/strong\u003e converts annual customer value to a monthly run rate for planning. \u003cstrong\u003eProjection rows\u003c\/strong\u003e reports how many periods appear in the schedule; the calculator uses monthly rows for lifespans up to two years, quarterly rows up to ten years, and annual rows beyond ten years.\u003c\/p\u003e\n\n    \u003ch3\u003eUse the chart and projection table\u003c\/h3\u003e\n    \u003cp\u003eThe cumulative value chart starts at zero and ends at the calculated CLTV. Its line assumes revenue accumulates at a constant average rate. The legend and exact summary use the same calculated model as the headline result. The table provides the underlying period data: elapsed years, purchases during the period, period revenue, cumulative purchases, and cumulative value. The final row is prorated so it lands exactly on the entered lifespan and reconciles to the headline CLTV.\u003c\/p\u003e\n    \u003cp\u003eActual purchasing is usually uneven. Seasonal businesses may earn most customer revenue in a few months, while subscription businesses can be more regular. Use the table as an average planning path, not a transaction forecast for an individual customer. For deeper measurement, Google Analytics documents \u003ca href=\"https:\/\/support.google.com\/analytics\/answer\/12025188\" target=\"_blank\" rel=\"noopener noreferrer\"\u003euser lifetime analysis\u003c\/a\u003e, while Investopedia provides a broader \u003ca href=\"https:\/\/www.investopedia.com\/terms\/l\/lifetime-value.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003elifetime value overview\u003c\/a\u003e.\u003c\/p\u003e\n\n    \u003ch3\u003eHow assumption changes affect CLTV\u003c\/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003eRaising purchase value by 10% raises annual customer value and CLTV by 10%, with frequency and lifespan unchanged.\u003c\/li\u003e\n      \u003cli\u003eRaising purchase frequency by 10% produces the same 10% increase and also raises expected lifetime transaction count.\u003c\/li\u003e\n      \u003cli\u003eExtending lifespan by 10% raises CLTV and lifetime purchases by 10% but leaves the annual value unchanged.\u003c\/li\u003e\n      \u003cli\u003eChanging two drivers at once compounds the effect. A 10% increase in both purchase value and frequency raises annual value by 21%, not 20%.\u003c\/li\u003e\n    \u003c\/ul\u003e\n\n    \u003ch3\u003eBenefits, limits, and common mistakes\u003c\/h3\u003e\n    \u003cp\u003eThe simple CLTV model is useful because it is explainable, easy to audit, and suitable for comparing customer segments measured with the same method. It can help frame retention priorities, pricing experiments, and acquisition economics. Shopify's guide to \u003ca href=\"https:\/\/www.shopify.com\/blog\/customer-lifetime-value\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ecustomer lifetime value\u003c\/a\u003e discusses practical uses in commerce.\u003c\/p\u003e\n    \u003cdiv class=\"cltv-callout\"\u003eDo not compare this revenue CLTV directly with customer acquisition cost unless you also account for gross margin, servicing costs, refunds, taxes, and the timing of cash flows. This calculator provides general business-planning information, not personalized financial or investment advice.\u003c\/div\u003e\n    \u003cp\u003eFrequent mistakes include averaging unlike customer segments, using a purchase frequency from a different period, counting orders instead of unique customer transactions inconsistently, and assuming historical retention will continue unchanged. Recalculate by cohort or segment when customer behavior varies materially. The best input is not the most optimistic one; it is the one that can be traced to consistent source data and updated as new cohorts mature.\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909480489203,"sku":"cltv","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/cltv.webp?v=1783935371","url":"https:\/\/financialmodelslab.com\/products\/cltv","provider":"Financial Models Lab","version":"1.0","type":"link"}