Brands are obsessive about inventory — right up to the moment it ships. Inside the warehouse, every unit is counted. After checkout, nothing is.

But for replenishable products there’s a second stock position almost nobody tracks: the product already sitting in your customers’ homes.

A customer who normally buys one bottle a month buys four during a promotion. Nothing about their consumption changed. You didn’t create four months of demand — you moved three future orders into their bathroom cabinet.

The revenue is real. The cash is real. But product shipped and demand created are two different things, and most dashboards can’t tell them apart.

I’d call this Customer Inventory — and track it with one number:

Customer Inventory Days = estimated days of supply still sitting with the customer

Built from quantity bought, the product’s normal consumption rate, and the customer’s own cadence. If one customer buys one unit and another buys four, the clock shouldn’t restart identically for both.

Did the promo create demand — or borrow it?

Most promotional analysis stops at the campaign window. Revenue, conversion, AOV, ROAS — all real, and none of them answer the structural question.

Say a campaign produces $1M above baseline in November. If purchasing from those same customers then falls $600K below baseline over the following two months, calling the full $1M incremental is just wrong.

I’d separate the two explicitly. Demand Creation: purchasing that wouldn’t otherwise have happened. Demand Pull-Forward: purchasing that would have happened later, shifted into the promo window.

Pull-forward isn’t worthless — cash arrives earlier, shipping consolidates, and a stocked customer doesn’t buy from your competitor next month. But it’s a different kind of value, and it shouldn’t be celebrated as growth.

What I’d measure instead

No brand will ever count the bottles in every bathroom cabinet. That’s not the point. The point is a reasonable estimate of who still has supply.

Estimate Customer Inventory Days per customer. Track Customer Inventory Created during big promotions — if average quantity jumps from 1.2 to 3.1 units, the next-order curve has to shift, and that’s fine.

And judge repeat behavior stockpile-adjusted: not “did they reorder within 30 days,” but “did they reorder once their supply should have run out.”

A customer with 90 days of product who returns on day 100 is highly retained. A customer with 30 days of product who’s silent at day 100 is telling you something very different.

The toolkit, on one page:

✓
The Operator Playbook
The Customer Inventory toolkit
Four numbers for brands whose product gets used up and bought again.
 
✓
Customer Inventory Days.
CID = estimated days of supply still sitting with the customer
Built from quantity bought, the product’s consumption rate, and the customer’s own cadence.
✓
Customer Inventory Created.
Per major promotion. If average quantity jumps from 1.2 to 3.1 units, the next-order curve has to shift — expect it instead of panicking about it.
✓
Stockpile-Adjusted Repeat Rate.
Not “did they reorder within 30 days” — did they reorder once their supply should have run out.
•90 days of supply, back on day 100 → highly retained
•30 days of supply, silent at day 100 → a real churn signal
✓
Demand Created vs. Pulled Forward.
Campaign lift minus the post-promo dip from the same customers — the only honest read of incremental revenue.
✦  Try the AI Analyst  →

The false-churn spiral

Here’s where ignoring customer inventory gets expensive.

Black Friday: a big share of existing customers buys two or three times their usual quantity, because stocking up at a strong discount is completely rational. January: repeat rate falls, time between orders stretches. The obvious read is that post-holiday retention weakened.

But those customers may be perfectly healthy — just stocked. And if the brand reads the delay as churn risk, it fires winback discounts at people who already have months of supply. They stock up again. The next natural order moves even further out.

Promotion creates stockpile, stockpile creates silence, silence gets read as churn, churn messaging creates more stockpile. The problem was never retention — it’s the inventory nobody is counting.

DTC removed the distributor — not the inventory

Traditional consumer brands have always watched channel inventory. When distributors and retailers are overloaded, shipments grow faster than consumption — until orders stall while the channel digests the excess.

DTC removed the middle layer. It didn’t remove the inventory.

The final channel is now the customer’s home. A DTC brand can stuff that channel exactly the way CPG brands used to stuff retail — the stock just sits in thousands of bathrooms and pantries instead of one warehouse.

Which is why shipment growth and consumption growth should never be read as the same number.

The better question

For replenishable products, stop looking only at what left the warehouse. Start estimating what’s still sitting with the customer.

One change, several better decisions: honest promo analysis, a fairer read on AOV — a bigger basket can mean more demand or just more customer inventory — better replenishment timing, and no more winbacks fired at well-stocked, healthy customers.

So the next time a bundle or buy-more-save-more offer crushes it, ask one more question: Did we create demand, or did we just move inventory into our customers’ homes?

Because a customer with three months of product left isn’t lapsing. They’re stocked.

– Alex