By comparing each customer with their own rhythm, never with an average. A single rule of the “thirty days without a visit means a lost customer” kind gets it wrong in both directions at once: it chases, for nothing, the one who came once a fortnight, and it lets the one who used to pass by every morning go three weeks too late.
A person's rhythm is not an average either. Kanz takes the median of the gaps between their visits, and the difference is anything but theoretical: one long break is enough to pull an average high enough that a weekly regular still looks healthy six weeks after they stopped coming. The median ignores that kind of accident. The average swallows it whole.
Three gaps before saying anything at all
Kanz works out no personal rhythm below four visits. Four visits is three gaps, and three is the smallest number at which a median means anything.
Two points of hygiene below that. Two scans less than six hours apart count as one visit, because coming back for a second item in the afternoon is the same trip and not a rhythm of zero days. And the rhythm is bounded between 1 and 90 days: past three months there is no habit left to detect, only visits.
Until a customer has their four visits, Kanz knows it and says so. It then works from the rhythm observed on comparable customers of the same business, which needs at least twenty gaps before it can be published, and failing that from a starting value tied to the type of business. Both of those cases are marked probable and never as measured. The distinction is structural: the function that computes a cohort rhythm has no way of emitting the “measured” level, and it is written that way on purpose.
The two thresholds
From the rhythm come two thresholds, and neither one is a plain multiple.
at risk = the greatest of: 1.5 × rhythm, rhythm + 3 days, 5 days
dormant = the greatest of: 3 × rhythm, at risk + 14 days, 21 days
The multiplications are rounded to the nearest whole number, which is what accounts for the third row of the table below: 1.5 × 7 is 10.5, so 11.
What that gives in practice:
| Customer's rhythm | At risk after | Dormant after |
|---|---|---|
| every day | 5 days | 21 days |
| every 3 days | 6 days | 21 days |
| every week | 11 days | 25 days |
| every month | 45 days | 90 days |
The floors do all the work on the left of the table. Without them, a daily customer would be “at risk” after a day and a half, which is simply the Monday of a long weekend. The five day floor and the three days added as a matter of course guarantee that somebody is always at least a full cycle late before being flagged, whatever their rhythm.
On the right, the multiplier takes over: a monthly customer gets a month and a half before anyone starts worrying, which a blanket thirty day rule would never have allowed them.
The five states, and the one that expires
A customer is in one of these five states: new, regular, at risk, dormant, recovered.
The last is not a resting state, it is a badge with an expiry date. It goes on somebody who was dormant and who came back, and it drops after thirty days. A customer who has been “recovered” for eight months is not recovered, they are regular, and leaving the badge on for life would turn the one interesting thing it carries into decoration.
The single-visit customer
There is one case handled separately on purpose, and it is the one that pays best.
Somebody who came once and never came back does not stay “new” for ever. Past their grace period, they fall back into the risk thresholds like everybody else. That is deliberate: that customer tried, they took a card, and nothing happened. They have no habit to protect and nothing to lose, and they are the most interesting return the product has.
Most loyalty programmes ignore them, because a customer with one visit has no rhythm and most systems only know how to talk to people who do.
What that changes for you
Three things, concretely.
You can stop picking a number of days. The question "how long before I follow up?" has no good blanket answer, and that is exactly why it is hard: it has a good answer per person.
You can see the difference between not having come back and having stopped coming. The two look alike on a dashboard and have nothing in common: the first is a Sunday, the second is a customer who has gone somewhere else.
And you know when Kanz is guessing. A measured rhythm and a rhythm borrowed from a cohort do not carry the same label, and software that does not make that distinction hands you a guess with all the confidence of a fact.
The rest of how it works, from the first scan to the reward, is described here.