Case study · Pet retail
A good month and a better business are not the same number
The companion to the loyalty work, on the same business. RFM answered who to act on this week. Cohorts answered the harder question the monthly number cannot: whether anything we did actually made the company better.
The situation
Monthly revenue was the number everyone watched, and it is close to useless as a verdict. It moves with acquisition spend, with the season, with whatever promotion ran that fortnight. A month can be up because the business got better or because it bought more customers, and the monthly number cannot tell you which.
In a repeat category that distinction is the whole business. Buying a customer once is a cost; the return on it arrives over the following year, or it does not arrive.
What we built
Every customer filed by the month of their first order, then followed forward. That single change turns one ambiguous number into a table you can interrogate three ways, and the three readings answer genuinely different questions — which is the mistake most often made with cohorts, reading the diagonal as if it were performance when it is only the calendar.
The reading that mattered was down the column: the newest intake against the previous one at the same age. That is the only view in which a change to the business shows up as a change, rather than as a good month.
What it changed
It became the control on the loyalty program. A program that rewards people who were already coming back produces an excellent current month and completely flat cohorts — the reward lands on behaviour that was going to happen anyway, and nothing in the curve moves. That failure is invisible on a revenue chart and obvious on a cohort table.
So the test we held the program to was not enrolment or redemption. It was whether month-two and month-three repeat rose for intakes that arrived after a change, against the intakes that arrived before it.
What we would do differently now
A cohort table is a rear-view mirror with excellent resolution: it tells you what an intake did, once it has done it. The version we build for clients now runs the same cut against a warehouse rather than a monthly export, so the curve is current rather than a quarter old — and pairs it with the unit economics, because a cohort that retains beautifully at a contribution margin of nothing is not a cohort worth acquiring more of.
One table, three questions
Every customer is filed by the month of their first order and followed forward. Which question you are answering depends on which way you read it.
How to read it
- Across a row
- Does this group keep buying? The curve of one intake as it ages — and where it stops falling, which is the number a repeat category lives on.
- Down a column
- Is the newest intake better than the last one at the same age? This is the only reading that tells you the business improved rather than that the month was good.
- Along the diagonal
- Everything that happened in one calendar month, across every cohort at once. Seasonality, a promotion, a stockout — never read it as performance.
Structure only. The shading is the shape a retention table takes as cohorts age, not this business’s figures.
A loyalty program that only rewards the already-loyal shows up as a very good month and a completely flat cohort.
More case studies