Cohort analysis on transaction data
Cohort analysis groups units by when they entered and follows each group over time. It is most familiar with customers and it applies just as well to stores that joined a panel, stores that took a listing, or items launched in the same period.
The value is that it separates the effect of time-since-entry from the effect of calendar time, which a simple average blends.
Why does a plain average mislead?
Because a population that is constantly gaining new members has an average that is dragged toward the behaviour of new members. A store that joined last month behaves differently from one that has been reporting for three years, and averaging them describes neither.
The same applies to items. A brand's average velocity falls when it launches items, not because anything got worse but because new items start low.
What does a store cohort show?
How stores behave as a function of tenure. Stores that took a listing in January followed for twelve months, against stores that took it in June followed for their own twelve months, on a common "months since listing" axis.
If the curves overlay, behaviour is a function of tenure and the listing process is consistent. If later cohorts perform worse, something changed — the stores being recruited, the support given, or the market.
What is the most common finding?
That later cohorts are different. Early adopters of anything are not representative, and a programme that expands recruits progressively less enthusiastic participants. Seeing that in the data early is considerably better than discovering it in an aggregate decline.
That pattern also explains a great many apparently deteriorating averages that are actually a mix effect.
How should a cohort chart be built?
Rows as cohorts, columns as periods since entry, values as the measure. Plotted, it is a set of curves on a common axis; tabulated, it is a triangle with the most recent cohorts having the fewest observations.
The triangle shape matters. The bottom-right of the table is empty because that time has not happened, and reading an incomplete cohort as though it were complete is the standard error.
What does this do for a launch programme?
It answers whether the programme is improving or decaying. A launch rolled out over several months produces natural cohorts, and comparing them tests whether execution held up as the rollout scaled.
That is a question nobody can answer from an aggregate line, and it is usually the question that matters for deciding whether to continue.
What about seasonal cohorts?
Stores or items that entered at different points in the year experience different seasons at the same tenure, which contaminates the comparison. Either compare cohorts entering at similar seasonal points or adjust for season explicitly.
It is the main technical trap in retail cohort work and it is easy to overlook because the chart looks clean either way.
What should be reported alongside?
Cohort sizes, because a curve from six stores and a curve from six hundred deserve different weight on the same chart. Without sizes, the eye treats all the lines as equally informative.
Frequently asked questions
Do I need shopper data to run cohorts?
No. Any unit with an entry date works — stores, listings, items, accounts. In a channel without shopper identifiers, store and item cohorts are the practical application and they answer real commercial questions.
How many periods should be followed?
Enough for the curve to flatten, which depends on what is being measured. For a listing, that is usually several months; for an item's velocity, long enough for trial to decay and settled behaviour to appear.
What if cohorts are small?
Combine adjacent entry periods into larger cohorts. That loses some resolution on timing and buys stability, which is usually the better trade when individual cohorts are in single figures.
Can cohorts be compared across markets?
Yes, and it is one of the more useful comparisons, because it controls for the different times at which markets started. Comparing raw averages across markets at different stages of rollout compares stage rather than performance.
Does churn distort a cohort?
It does, because units that leave are removed from later periods and the survivors may be the better performers. Reporting the surviving count alongside the value is what makes that visible rather than hidden.
What is survivorship bias here?
The tendency for a cohort's average to improve simply because weaker members dropped out. It is the standard caution in this technique and the defence is to show the counts, or to carry departed units at zero where that is meaningful.
Should I build cohorts by calendar month?
Monthly is the usual granularity and weekly can be right for a fast rollout. The choice should follow the pace of entry rather than a default.
How does this relate to a ramp curve?
A ramp curve is a single cohort. Cohort analysis is several ramps compared, which is what lets you see whether the ramp is changing over time.
What is the first cohort analysis worth running?
Stores by listing month for a recent launch, velocity per store, twelve months out. It tests both the product and the rollout in one chart and it is usually available from data already held.
### What does a healthy cohort pattern look like?
Curves that overlay, with later cohorts reaching similar levels at similar tenure. That indicates a repeatable process rather than a set of individually lucky outcomes.
A fan-shaped pattern is the signal to investigate, in either direction. Later cohorts performing better usually means execution improved; performing worse usually means the easy opportunities were taken first. Both are findings worth acting on. Standard treatments of cohort analysis set out the technique's assumptions.
Working with retail data? See NRS Insights data solutions or contact NRS Insights.