Retention & Survival Curves

Customer Analytics Cohorts & Survival

A subscriber who cancels in month two is worth a fraction of one who stays a year. This tool shows how long your customers actually stay, which sign-up groups hold on best, and why the churn rate most companies quote is wrong.

Not sure what a survival curve is? Professor Mode walks you through one dataset end to end — why the customers who have not left yet are the hardest ones to count, and how a single definition of “gone” can change your answer by months.

OVERVIEW & WHAT THIS TOOL SOLVES

Dividing this year's cancellations by total customers—or averaging tenure across only the customers who have already cancelled—gives a systematically wrong retention picture because recent sign-ups haven't had time to churn yet. The Retention & Survival Curve Lab aligns staggered customer cohorts at Tenure Period 0 and applies the Kaplan–Meier estimator to handle right-censored active customers properly, pairing survival curves with cohort drift heatmaps and Log-Rank segment tests.

🎯 Questions It Answers

  • What percentage of customers truly survive past Month 3, Month 6, and Month 12 once right-censoring is accounted for?
  • Where is the sharpest drop-off cliff in the customer lifecycle (period hazard rate h_t), and what is the median customer lifetime?
  • Do acquisition channels, plans, or sign-up cohorts differ significantly in retention (Log-Rank test and cohort drift audit)?

📂 What Data You Need

  • Subscription / Contract Records: Customer tenure duration (t), churn event indicator (1 = churned, 0 = active/censored), and optional segment/cohort
  • Transaction Log Mode: Raw order dates per customer with a tunable inactivity churn rule (k missed periods = churned)
  • Landmark Case Studies: Pre-loaded subscription, repeat-order, heavy-censoring, and segment-comparison datasets

💡 What You'll Discover

  • Kaplan–Meier Survival & Hazard Curves: Step-by-step retention probability Ŝ(t) with Greenwood 95% confidence bands
  • Median Lifetime & RMST: Half-life tenure and Restricted Mean Survival Time (expected active periods up to horizon T)
  • Cohort Heatmap & Log-Rank Test: Sign-up cohort quality drift detection and formal chi-square comparison across segments
🔍 Key Nuances & Common Traps to Watch For

What is Right-Censoring? A customer who signed up 4 months ago and is still active today has not "churned at 4 months" and has not "stayed for 12 months"—their ultimate lifetime is right-censored at period 4. Kaplan–Meier keeps them in the at-risk denominator through period 4 and removes them cleanly afterward without counting them as a cancellation.

  • Why Naive Retention Flatters Growing Businesses: A flood of new sign-ups last month inflates your active denominator today, making a 45% annual churn problem look like 15% churn.
  • When Median Lifetime Is Undefined: If more than 50% of customers are still active at the end of your observation window, the survival curve never crosses 0.50—report Restricted Mean Survival Time (RMST) instead of inventing a half-life.
  • Contractual vs. Non-Contractual Churn: In grocery or retail repeat-buying, no one calls to cancel; use the inactivity window slider (k periods) to test how sensitive your survival curve is to the churn definition.
📐 Under the Hood: Model Equations & Variable Definitions

1. Kaplan–Meier Survival Estimator & Period Hazard Rate

\[ h_t = \frac{d_t}{n_t}, \qquad \hat{S}(t) = \prod_{t_i \le t} \left(1 - \frac{d_i}{n_i}\right), \qquad \text{SE}\!\left[\hat{S}(t)\right] = \hat{S}(t)\sqrt{\sum_{t_i \le t} \frac{d_i}{n_i(n_i - d_i)}} \]

💬 Read it in plain English: At each tenure period t_i, the conditional survival rate is 1 minus the fraction of at-risk customers who churned (d_i / n_i); multiplying those step survival rates from period 1 to t gives cumulative retention Ŝ(t).

nt
Number at Risk at Period tYOUR DATA ⓘ
Customers still active and uncensored just before tenure period t begins.
dt
Observed Churn Events at Period tYOUR DATA ⓘ
Number of customers who cancel or churn at tenure period t.
ht
Discrete Period Hazard RateESTIMATED ⓘ
Conditional probability of churning in period t given survival up to period t.
Ŝ(t)
Kaplan–Meier Survival ProbabilityOUTPUT ⓘ
Estimated probability that a customer remains active past tenure period t.
SE[Ŝ(t)]
Greenwood Standard ErrorINFERENCE ⓘ
Standard error of the survival estimate used to construct 95% confidence bands.

2. Restricted Mean Survival Time (RMST) & Log-Rank Segment Test

\[ \text{RMST}(T) = \sum_{t=0}^{T-1} \hat{S}(t), \qquad \chi^2_{\text{log-rank}} = \frac{\left(\sum_{t} (d_{1t} - E_{1t})\right)^2}{\sum_{t} V_{1t}}, \quad E_{1t} = d_t \frac{n_{1t}}{n_t} \]

💬 Read it in plain English: RMST sums the area under the survival curve up to horizon T to estimate expected active periods per customer, while the Log-Rank test compares observed vs. expected churn counts at every time step across customer segments.

RMST(T)
Restricted Mean Survival TimeOUTPUT ⓘ
Expected number of active periods per customer within observation horizon T.
d1t, E1t
Observed & Expected Group ChurnESTIMATED ⓘ
Actual churns in Segment 1 at time t vs. expected churns under identical hazard rates.
χ2log-rank
Log-Rank Test StatisticINFERENCE ⓘ
Chi-square statistic testing whether two or more survival curves differ significantly.

Step 1 CHOOSE YOUR DATA

Each case is a real retention question. Start with Parcel & Pantry if this is your first time — a meal-kit company whose March and April sign-ups look suspiciously bad. Or bring your own file: either one row per customer per period, or one row per customer with a duration.

📚

Use a Case Study

📤

Upload Your Data

Drag & Drop raw data file (.csv, .tsv, .txt)

Two shapes are accepted. An activity panel has one row per customer per period (customer_id, period, is_active). A duration table has one row per customer (customer_id, duration, churned). Optional columns are picked up automatically: signup_cohort (or cohort), segment and spend. Without a cohort column, an activity panel groups customers by the period they first appear in. Files of up to 250,000 rows are accepted. Coming from the CLV tool? Its files work here unchanged.

No file uploaded.

Step 2 DEFINE WHAT “GONE” MEANS

This comes first because it decides everything after it. There is no statistical answer to it — it is a business judgement, and the honest thing is to make it on purpose, write it down, and check how much it mattered.

What kind of business is this?

How long someone has to go quiet before you give up on them. Shorter is twitchier; longer waits around for people who were never coming back.

Settings

Splits the curve so you can see whether one group leaves sooner than another.

The age the headline numbers are quoted at. Pick one your data can actually support.

🤔 Try this:

  1. Load Crave (a delivery app) and leave the rule at 3 quiet periods. Note the median lifetime.
  2. Now drag the slider to 1. The median collapses — on this data from about 21 periods to about 3.
  3. Look at the reactivation line underneath. At a one-period rule almost every customer you just declared “lost” came back. The rule is not measuring churn, it is measuring people who skipped a month.
  4. Nothing about the customers changed between those two runs. Only your definition did.

EXPLORATORY QUESTIONS

All answerable with the controls above. The last two are the ones worth arguing about.

  1. How much does the definition matter? On Crave, record the median at 1, 2 and 3 quiet periods. Which would you report to a board, and what would you say when asked why?
  2. How wrong is the shortcut? Compare the three bars in “How honest is your churn rate?”. If your company quoted the optimistic one, how many customers would that overstate by over a year?
  3. Where should the money go? Look at “When do you lose them?”. If the first period is the worst by far, what does that say about spending on a loyalty discount for month-twelve customers?
  4. Was it really February’s fault? On Parcel & Pantry, find the two weak cohorts. The Head of Growth says the promotion “brought in 520 customers”. Using the cohort table, what would you say back?
  5. When can you not answer the question? Load Marlowe Riptide. Most of those fans joined recently. Why does the tool refuse to give a lifetime, and what can you honestly report?
  6. Can a test miss a real difference? Find the case where two group curves cross. The log-rank test may say there is no significant difference. Is that the same as the groups behaving the same way? What would you report instead?