River
Y CombinatorBacked by Y Combinator

Founders & Small BusinessFree

Why Small Business Customers Stop Buying

Each account is measured against its own order rhythm, so a weekly buyer silent for six weeks counts and a seasonal one does not.

Start here

Thackeray Timber has 214 trade accounts and no cancellations, because a builders' merchant has nothing for a customer to cancel. They just stop coming in. Thirty of those accounts had already stopped by the end of last year, together worth $638,800 a year, and the merchant's own report of accounts quiet for 90 days found $195,300 of it. River measures each account against its own order rhythm instead of one window, then replays the test on a year you already have.

A 90-day window asks the same question of a joinery shop that orders twice a week and a shopfitter that orders twice a year. One of Thackeray's weekly accounts had been silent 44 days, which is five and a half times its own normal gap, and the report called it active. A quarterly account silent 154 days was inside its own range, and the report called it lapsed and generated a call.

Written for the owner of a business with no cancel button: a merchant, a practice, a workshop, a wholesaler. What the lapsed accounts were paying belongs beside the profitability by job or service, and what the surviving ones should be sold is an offer and packaging design question. Where a price change is the suspected cause, the price increase communication is what to read next. Where they have taken the trade instead is what the competitor and market scan reads.

A sale being rung up at a counter, the only record the relationship leaves behind
In a business with no contract, the transaction log is the whole of the evidence.

A fixed window hides the accounts worth keeping

The academic name for this is a non-contractual setting, meaning one where the opportunities for transactions are continuous and the time at which customers become inactive is unobserved. No event marks the exit, so the exit has to be inferred from silence. Work by the same authors shows why silence alone will not do it: recency plays a much bigger role for customers who have made a large number of transactions than for an infrequent one. A quiet fortnight means something different to each.

Thackeray's ledger runs 36 months. Both tests were applied at the end of month 24 and then scored against months 25 to 36, which is a year the merchant already had. The 90-day window flagged 48 accounts. Eighteen never came back, so 30 of the calls it generated went to customers who were about to order anyway. Measuring each account against four times its own median gap flagged 34, of which 28 never came back.

The revenue is where it matters. The window found $195,300 of the $638,800 that actually walked, so 30.6%. The per-account test found $628,300, or 98.4%. Twelve lapsed accounts went silent entirely inside 90 days, eleven of them weekly or twice-weekly buyers, together $443,500 a year and 12.1% of the whole book. Then their last orders get read: 23 of the 30 had a short delivery, an invoice above quote, or a credit hold behind them.

How it works

  1. Send the ledger

    Three years if you have it, with an account identifier on every line.

  2. Add what else exists

    Delivery notes, complaints, reviews, credit holds. Anything dated and attachable to an account.

  3. Say how they arrived

    Acquisition source and opening date per account, so the lapse can be cut by cohort.

  4. Read the backtest

    The lapsed list ranked by revenue, the causes behind it, and how the test scored.

What you get

  • Each account's own order rhythm computed from its history, not a single global window
  • Silence expressed as a multiple of that account's normal gap, so it is comparable
  • The test replayed at a past date and scored against what those accounts did next
  • Lapsed revenue found and lapsed revenue missed, reported separately from account counts
  • The last order before each silence joined to delivery, pricing and credit records
  • Lapse rate by acquisition source, first product bought and year the account opened

Common questions

I do not have a churn rate. Where do I even start?

With the ledger you already have. A lapse is a gap in buying, and a gap only needs an account identifier and a date to measure. Thackeray had never computed a churn number and got one in an afternoon: 30 accounts, $638,800 a year, 17.5% of the book. No survey, no new system, no tagging.

Why four times the median gap and not some other number?

Because it was tested rather than chosen. On Thackeray's book, four times held 82.4% precision and 93.3% recall against the hold-out year, and the sweep that produced it is part of the output. On a book with steadier cadences the multiple lands lower. The threshold is fitted to your data and shown to you, not inherited.

My trade is seasonal. Does that break it?

It breaks a fixed window, which is most of the reason a merchant distrusts churn reports. An account's own gap distribution already contains its seasonality, because a customer who disappears every January has January gaps in its history. Where a whole band moves together, the shift shows up as every account in that band flagging at once, which is a signal rather than 40 lapses.

How many orders does an account need before this works?

Four is the working floor, because three gaps is the least that gives a median worth trusting. Thackeray's 214 accounts are the ones clearing it, and the rest are reported separately as too new to test rather than folded in. An account with two orders is not a lapse, it is a customer you never actually acquired.

Does it tell me why they left, or only that they did?

It gives you the last order before the silence, joined to whatever delivery, pricing and credit records you have at that date. On Thackeray's 30 lapsed accounts, 11 had a short or substituted delivery in their final three orders and 7 were invoiced above the price they had been quoted. Three had nothing in any record, and that is reported as nothing.

Who should I actually call first?

Ranked by revenue at risk, not by days of silence. Thackeray's list opens with four twice-weekly joinery accounts worth $208,000 a year between them, all of which the 90-day report had marked active. Three of the four had a short delivery in their last three orders, so the call has something to say beyond asking how business is.

Is any of this about how the customers were acquired?

Cutting the same 30 lapses by how the account opened is often the most actionable view. Thackeray's 2022 first-order discount promotion opened 21 accounts and 12 of them have lapsed, a rate of 57.1% against 4.9% for accounts referred by another trade customer. That is not a retention problem. It is an acquisition channel that was never worth running.

Why Small Business Customers Stop Buying

Fill in the form and your workspace opens with the work already underway.