Retention

Ecommerce Churn Rate: How to Measure Customer Loss When Nobody Cancels

September 18, 20268 min read

You sell replenishable products. First-time buyers arrive, and most of them disappear without a word. There is no cancellation form, no exit survey, no date in a database. Churn in a store without subscriptions is silent, and the silence makes it easy to ignore until revenue slides. This article shows how to define churn per product from your own order history, how to turn the percentage into a named list of customers who are late, and what to do with that list.

Key takeaways

  • In a non-subscription store, churn comes from order gaps per product, not from cancellations.

  • Two thresholds from your own data define it: the median reorder gap marks a customer as at risk, and the 90th percentile marks them as churned.

  • A flat 90-day or 180-day rule calls slow buyers churned too early and notices fast buyers too late.

  • The output that matters is not the rate. It is the list of named customers who just crossed the line, in time to do something about it.

How do I calculate churn for a non-subscription e-commerce store?

From order gaps, per product, using the reorder windows in your own data rather than a "customers at start minus customers at end" formula.

The classic formula, customers lost divided by customers at the start of the period, works when every customer has the same relationship with you: a subscription, a contract, a seat. In a store, coffee runs out in 30 days, a face cream lasts 90, and a bulk bag of dog food lasts 45. One store-wide formula blends those rhythms into noise. The workable version is the share of a product's active customers who crossed that product's churn threshold during the period.

When is a customer considered churned?

When they pass the long-stop reorder window for the products they usually buy without ordering again. That window differs for every product.

Two thresholds, both drawn from your own repeat customers:

  • Typical gap, the median: half of repeat buyers reorder faster than this, half slower.

  • Long-stop gap, the 90th percentile: only one in ten repeat buyers takes longer than this between orders. Past it, the customer is almost certainly gone.

That gives every customer a status per product: active inside the median, at risk between the median and the 90th percentile, churned beyond it. It avoids both mistakes, calling loyal slow buyers churned too early and noticing lost fast buyers too late.

How do I detect at-risk customers before they churn?

Watch for a gap that is longer than the customer's own usual gap, and for purchase behaviour weakening against their own history.

The most important at-risk group is first-time buyers who have not placed a second order within the product's median second-order window. A customer who used to order every four weeks and is now at six is late. You do not need a model to see it. A calculated column comparing days since last order with the product's median is enough.

Which tools identify customers about to churn, and what can a spreadsheet do?

A spreadsheet handles one product well: sort, compute gaps, take two percentiles, tag customers. It gets painful across dozens of SKUs that need to stay current. Tools that read the full order history compute the thresholds per product, rank the customers who are late, and hand back an audience for a campaign. Affinsy does this from an uploaded export, with product roles and RFM segments alongside.

Why a flat 90-day rule misclassifies churn

A supplement buyer who reorders every 30 days has missed two full windows by day 90. They were at risk on day 45 and probably gone by day 60. Waiting until day 90 loses the moment to win them back. A customer buying a quarterly skincare bundle legitimately reorders every 100 to 120 days. At day 90 the flat rule calls them churned while they are on schedule.

The flat rule inflates churn on slow, high-value products and hides it on fast essentials. Measure per product family, tied to how your customers actually reorder.

Calculate it from an order export

Columns: customer id, order date, product id or category. Quantity and order value are useful but optional.

  1. Filter to one replenishable product.

  2. For each customer who bought it at least twice, sort their orders by date.

  3. Compute the days between consecutive orders of that product.

  4. Collect all those gaps into one list.

  5. Take the median and the 90th percentile with the percentile function.

  6. For each customer, compute days since their last order of the product and compare it with the two thresholds.

Tagging: at risk when days since last order exceed the median but not the 90th percentile; churned when they exceed the 90th percentile.

Monthly churn rate: count customers who were active at the start of the month, meaning they had not yet crossed the 90th percentile. Count how many crossed it during the month. Divide.

Illustration, with round numbers: your coffee beans have a median reorder gap of 30 days and a 90th percentile of 60. On 1 April you have 1,000 active buyers of that product. During April, 80 of them pass 60 days without ordering. April churn for coffee is 80 divided by 1,000, or 8%.

Repeat per product. The rates will differ, and the difference is the finding. The win-back timing article uses the same thresholds to decide who to contact first.

Early signals that precede churn

  • A longer gap than the customer's own usual gap for the same product.

  • A smaller basket than their normal pattern.

  • The companion product missing from an order where it usually appears: the cleanser without the cream, the food without the treats.

  • A first order on a deep discount with no full-price repeat.

  • A single purchase of a non-replenishable item with no follow-up of any kind.

A broken order pattern usually shows up before the customer is gone, and a support ticket, a refund or a poor review often explains it. Read those next to the gap table when you plan a win-back.

What to do with the list

Prioritise customers who just passed the median, especially first-time buyers with no second order. They are late and still reachable. A product-specific reminder, usage content or the companion product usually works better than a discount, which teaches the rest of your repeat buyers to wait for one.

Leave some customers alone: single low-value orders, chronic discount-only buyers, and people whose feedback says the product was not for them. Chasing them costs more than it returns.

For agencies this becomes a monthly deliverable: a ranked, exportable list of at-risk and churned customers by product, not a churn chart nobody opens.

How agencies should report churn

Report by product group, never as one blended figure, and put the definition on the slide: at risk past the median, churned past the 90th percentile. Show three views each month: customers who churned, customers at risk, and second-order conversion for recent acquisition cohorts. Separate structural problems, a product that never earns a second order, from temporary ones, a shipping delay that spiked losses in one week. The same definitions every month is what makes the number trustworthy.

Next steps

Measure reorder gaps per product from your own history. Tag customers as active, at risk or churned. Run one small campaign to the customers who just crossed the median for your best-selling consumable, and check after a month whether their gap closed.

If you want the thresholds computed for every product and the late lists ready to export, the 48-hour analysis returns them for your store.

Small warehouse with boxed supplements and coffee

FAQ

What is a good churn rate for my store?

There is no single figure. It depends on margins, acquisition cost and how often your products are naturally reordered. Track it by product family, month over month, against your own history. Falling churn and rising repeat customers is the direction that matters. The repeat purchase rate benchmark article covers why external averages mislead.

Can I measure churn if most products are not replenishable?

Use the gap between the first and second order across the whole store as the main signal, and find the segments that never return. Run the per-product method only on the items that are genuinely replenishable.

How often should I recalculate the thresholds?

Quarterly for most stores, and after a new product line, a major promotion, a shipping change or a price change.

Where does customer feedback fit?

It explains the gaps. A sudden drop in repeat buying of one product plus a run of low ratings or refunds points at the cause. Fix the cause before spending on win-back.

Do I need machine learning to predict churn?

No. Clean order history, per-product thresholds and basic segmentation get most of the value. Add cohort analysis and RFM once the basics are running.

Thanks for reading!

Want to know what earns your second order?

Send us your order history and get back, within 48 hours, the products that bring customers back, the week they go quiet, and the list to email first.