A demonstration on invented data
Sample data, invented for this page. No real customer is in it. Method & limitations
Run it on
Why these were flagged.
What this could mean.
How this was calculated
The calls worth making this week.
| # | Who | What happened | Why we say so | Revenue at risk / yr | Margin at risk / yr | Orders | Done this before? |
|---|
Why this order, and why there is no percentage in it
Each bar is one order, its height the amount. The gray block is when the next one was due, by their own spacing.
The arithmetic
What it read
| Date | Amount |
|---|
Run it on your own book.
Export your invoices or orders from whatever you already use. It needs three columns: the customer, the date, and the amount. Any spelling of those headings is fine.
The file never leaves this page. There is no upload and no server call. The reading happens in your browser and is gone when you close the tab. Turn off your network and try it.
What it does with a QuickBooks report
A QuickBooks report has the company name in the first row, a subtotal after every customer, a grand total at the bottom, and each customer's name written once above a block of rows with that cell empty. This reads that shape, carries the name down into the rows, and tells you what it set aside and why before it computes anything.
or drop it here
How often it is wrong.
This page can say how often it is wrong, because the sample book knows something the engine does not. Every customer in it was built healthy, fading, or stopping, and the engine never sees those labels.
A sales manager who works a list and finds the first two names are fine stops calling. So the number that matters is how many of the calls it asks for waste your morning.
Your own book has no labels, so this cannot be computed there. What carries across is the shape: lateness is close to certain, and a shrinking spend over a handful of orders is a lead, not a finding.
Method & limitations.
Four steps, all arithmetic you could check by hand. Everything kept out of the headline is here.
- 1Measure each customer against themselves. Take the gaps between their own orders and use the median. A customer who orders every ninety days is not late at forty. One who orders weekly is in trouble at three. One company-wide rule gets both wrong, and most reports use one.
- 2Decide when quiet is unusual. The silence since the last order is compared with that customer's own gaps, on a log scale. It counts as gone quiet when it is 1.6 standard deviations past their average gap and at least one and a half times their normal gap. A lumpy buyer is not flagged for being lumpy, and a clockwork buyer is not flagged for being four days late.
- 3Catch the fade separately. Some customers never go quiet. They order on schedule, for less, and no gap appears. So two more tests, each against the customer's own record: are the gaps getting longer, and are the orders getting smaller? A recent window is compared with the one before it, on a log scale, and a change counts at two standard errors.
The floor under it, and what it replaced
The window is scaled to the customer's own spacing, and a fade is not called unless both windows hold at least three orders and the change is larger than that customer's own order-to-order variation. A flat 25 percent cut, which this used to use, sits inside the noise on most books and mostly catches noise. Below the floor there is not enough to see, and the page says so rather than calling them fine.
- 4Rank on what you can check, with no probability. Anyone still inside their own rhythm goes to the bottom. Above them, the customers who have never been this quiet before come first: a gap a customer has set twice is a habit, and a gap they have never set is news. Within each group the order is the margin behind the account, largest first.
The survival curve this page used to carry, and why it is gone
An earlier version multiplied the money by a probability that the customer would still answer: e−(overdue − 1.5) ÷ 1.7, and a flat 0.82 for one still ordering. Those constants were invented. Nothing in a sales ledger measures them, and a number nobody can check should not decide the order of the list. So they are gone. What replaced them sounds less precise and is more honest.
What was set aside, and who
Where the sample data comes from
Every book on this page is invented. The names are made up, the orders come from a seeded random function written into the page, and the order sizes and cadences are settings for the four sample businesses, not anyone's real ledger. No real customer appears here and no result is claimed about one. The seed is fixed, so the same preset always produces the same book. Download it as CSV, feed it back in, and every number reproduces.
What a real implementation would need
The business's own definition of a customer, its seasons, the export it already produces, a margin from its books rather than a guess, and a place its staff will actually look on a Tuesday morning. This page is a day's work on invented data. None of those five can be guessed from outside.
Where this does not work.
Worth knowing before anybody builds on it.
A remodeler has no churn. A customer who buys once has no rhythm to break, so there is nothing to measure.
No rhythm on file. Those customers are listed as not judged rather than given an invented score.
A pool company's customers all go quiet in October. Seasons have to be modeled first, and this page does not model them.
Lateness is close to certain: a customer four gaps late has stopped. Shrinking spend is a weaker signal, measured over a handful of orders, and some of those calls will find a customer who is fine.
A rental yard's customers come back when the next job starts. A long gap can mean finished, not lost, and the order record cannot tell the two apart.
Large distributors and residential home services already have tools that do this, and those tools reach further down-market than is comfortable. The gap is everyone below and beside them.
This took a day.
It is a demonstration, not a product. The version that matters is built for one business, on the export it already has, and lives where its staff already look.
If you want to know what this would find in your numbers, send me the question.
Caspase LLC · Virginia · caspase.ai