StrategyOctober 18, 20263 min

Read retention without comparing incomplete cohorts

Build retention tables with explicit eligibility, blank unobserved cells and matched-age comparisons, then aggregate rates from compatible counts.

The cover shows stepped black stone triangle with one unfinished upper corner.

Who could have produced this retention outcome?

A retention cell needs an eligible starting population and a completed observation period. If a September cohort has only reached month one, its month-three result is unavailable. Filling that cell with zero creates artificial deterioration. Keep incomplete periods distinct from completed periods with no retained customers.

Microsoft documents SUMPRODUCT as summing products of corresponding arrays. That can help with weighted calculations, but the correct weighting still depends on compatible populations and valid observations. A spreadsheet formula cannot decide whether an immature cohort belongs in the denominator. [SUMPRODUCT function]

An illustrative cohort triangle

Fictional retention; each cell is retained customers divided by starting eligible customers
CohortStartMonth 1Month 2Month 3
May10070 / 100 = 70%60 / 100 = 60%55 / 100 = 55%
June8060 / 80 = 75%48 / 80 = 60%Not yet observed
July12084 / 120 = 70%Not yet observedNot yet observed

This example uses a fixed starting denominator, not conditional survival from one month to the next. A conditional definition would divide by a different eligible population and answer a different question. Name the method in the caption so the table can be interpreted without guessing.

At month one, all three cohorts are mature. Combined retention is (70 + 60 + 84) ÷ (100 + 80 + 120) = 214 ÷ 300 ≈ 71.33%. The simple average of 70%, 75% and 70% is approximately 71.67%, which gives each cohort equal weight despite different sizes.

What can be compared fairly?

Compare May, June and July at month one. Compare only May and June at month two. At month three, this table contains only May, so it cannot show whether later cohorts improved at that age. A blank region is evidence of observation limits, not a reason to extrapolate a trend.

The combined month-two rate for eligible cohorts is (60 + 48) ÷ (100 + 80) = 60%. Do not add July’s starting 120 customers to that denominator while leaving its unobserved numerator blank or zero. That would mix observed and unobserved opportunity.

Keep a retention-definition log

  • Starting event: first paid purchase, activation or another explicit cohort entry.
  • Retained event: the specific meaningful activity or paid state being measured.
  • Period: calendar month, rolling interval or another declared age rule.
  • Eligibility: exclusions, cancellations, refunds and incomplete identities.
  • Timezone and cutoff: the boundary used to consider a period complete.
  • Method changes: version and backfill decision when the definition changes.

Avoid comparing a purchase-based cohort with a login-based cohort under the same retention label. Both can be useful, but their numerators answer different questions. A lower purchase frequency does not automatically mean lower product engagement, and a login does not prove recurring revenue.

Test the table before drawing a trend

Use a fixture with one mature cohort, one partial cohort and one completed period with genuinely zero outcomes. Verify that aggregation excludes unobserved cells, exports preserve the distinction and charts do not connect unknown future values to zero. Keep original counts available for reconciliation.

I would review the eligibility rule before interpreting a colorful heat map. Once the table respects maturity and denominator boundaries, it can support a meaningful next question: which same-age cohort differs, and what evidence might explain that difference?

Sources

AI-assisted writing and an AI-generated editorial cover. Source links and checked dates are listed below; illustrative examples are labeled in the text.

More on the topic