Your visits
One row per visit. A client can be a name, email or id; first names or ids keep the file light on personal data. Same-day rows merge. At least 30 clients, 40 cases of a client coming back, and 180 days of history. Overdue is measured from the newest date in the file, so export fresh data.
Upload or paste your visits, then click Analyse.
Result
Overdue but still recoverable
Still likely active, at least 1.25x their own usual gap since the last visit. Sorted by chance still active times average spend. First 25 shown; the CSV has everyone.
| Client | Visits | Last visit | Usual gap | Quiet for | Still active | Avg spend |
|---|
Due now
| Client | Visits | Last visit | Usual gap | Quiet for | Back in window | Avg spend |
|---|
Probably lost
Under a 20% chance of still being active. Biggest past customers first.
| Client | Visits | Last visit | Usual gap | Quiet for | Still active | Est. value a year |
|---|
Contact plan
The overdue clients worth the most first, then the due ones, spread over weeks so you can keep up. Lost clients are left out. The tool sends nothing: copy the messages and send them yourself, only to clients who agreed to hear from you.
| Week | Client | Last visit | Chance back | Avg spend |
|---|
Back-test
How it is calculated
Model: the gap between a client's visits is lognormal. A client's own average log-gap is shrunk toward the shop-wide average by an empirical-Bayes weight, so a client with one or two visits borrows your shop's rhythm and a client with ten visits mostly uses their own. After every visit a client either returns (probability π) or has silently gone (1 − π); π is fitted by maximum likelihood over every client's whole history. A client quiet for t days is still active with probability π·S(t) ÷ (π·S(t) + 1 − π), where S(t) is the chance a gap that long happens, and the chance they are back within your window is that, times the chance the visit lands inside the window given it has not happened yet. Segments: lost under 20% still active; overdue still plausibly active and at least 1.25x the client's usual gap with two or more visits; due near the usual gap. Value: average spend times visits per year (capped at weekly) gives a yearly value; these are history, not a forecast of what a message will win back. Back-test: refit at a cut-off one window ago, predict who returns in the window, and score by AUC and Brier score against the plain base rate and against ranking by recency alone.
Not modelled: seasonality, price changes, a stylist or provider leaving, moves, one-off services, referrals, and whether a message would change anyone's mind. This is prediction from past behaviour, not an experiment. Unverified: checked against simulated businesses with known rhythms and departures in unit tests, not against a published dataset or a commercial tool.
Common questions
What is a lapsed client?
A client who has stopped coming back. Most booking systems flag anyone who has not visited in a fixed 60 or 90 days, which treats a monthly regular and a twice-a-year client the same. This tool compares each client's time since the last visit with that client's own usual gap, and with how often clients in your business simply disappear.
How does it tell overdue from gone?
Every client has a usual rhythm, and every visit carries some chance that the client never returns. The longer someone stays quiet beyond their usual gap, the less likely they are still active. The tool fits both pieces from your own history: the rhythm of each client (leaning on the shop-wide rhythm when a client has only one or two visits) and the share of visits that were followed by a return. Overdue means still plausibly active but late; lost means under a 20% chance of still being active.
How accurate is it?
The page shows a back-test. It pretends it is one window earlier, predicts who will come back, then checks who did, and compares that with simply ranking clients by how recently they visited. If the ranking is barely better than chance, the page says so and tells you not to use it. On simulated businesses the ranking is well above a recency rule, but your business is not a simulation, so read the back-test on your own file.
What do I need in the file?
One row per visit: a client identifier (name, email or id), the visit date, and optionally the amount spent. At least 30 clients, at least 40 cases of a client coming back, and at least 180 days of history. A longer history and more repeat visits give a better answer.
Will it contact my clients?
No. It never sends anything and has no access to your contacts. It gives you a list to work from. If you then email or text clients, marketing messages are subject to consent and opt-out rules such as CAN-SPAM, TCPA and GDPR depending on where you and your clients are.
Does it work for one-off services?
Not well. The method assumes clients are meant to return on a rhythm: haircuts, grooming, cleanings, lawn care, physio, tutoring. For roofing or weddings the gap between visits is years and irregular, so most clients look lost, and the page will warn you when gaps are very irregular.
Is my client list uploaded anywhere?
No. The file is read and analysed in this browser tab. Nothing is sent to a server, there are no accounts or cookies, and the tool never stores your client list. It works offline once the page has loaded. Using an id or first name instead of a full name is a good habit anyway.