For DTC founders and operators · A field guide

THECATALOG

Stockouts, discontinuations, reformulations and cuts to the range, treated as what they are: retention events.

Andrew LauchnerAuthor of The Second Order and The Whole MachineSeptember 2026 · 14 chapters · About 65 minutes

A note before you start

Most brands treat the catalog as an operations question and retention as a marketing question. The customer doesn’t see the line between them. When the thing they reorder every six weeks says “sold out,” or comes back tasting different, or quietly disappears, that is the retention program talking, whatever the email calendar says.

22%
lower buying over the next 13 months from catalog customers whose every ordered item was out of stock, compared with customers who had no stockouts (Anderson, Fitzsimons and Simester, 2006)
25%
longer gaps between orders after an online grocer cut its range, at the same grocer where category sales had risen 11% (Borle and colleagues, 2005; Boatwright and Nunes, 2001)

Those two numbers frame the guide. The first says a stockout isn’t one lost sale. It follows the customer into the next year. The second says the same cut to a range can look like a win when you count category sales and a loss when you count customers. Both findings come from careful studies with control groups, and both point at the same blind spot: the people who buy from you again and again are the ones most exposed to every change in what you sell.

So this is a guide to handling those changes on purpose: ranking stockout risk by who buys each product, finding the customers who depend on a product before you change or retire it, telling them what and when, and cutting a long tail by each product’s role in repeat orders, not its margin alone.

Every change to what a repeat customer can buy is a retention event. Most of them are scheduled by someone who never looks at retention.

It builds on The Second Order, which covers replenishment timing and the second purchase, and on The Whole Machine for contribution margin and the core flows. Discount training and the sale calendar live in The First Offer.

How to read it

Start with The Catalog Audit, or with the map just below. Or follow a path:

Three tools run in the page. Nothing you type leaves your browser.

What’s proven and what isn’t

Examples that open with Say or Picture use made-up round numbers. Every source is listed in Appendix C.

Andrew LauchnerScottsdale, Arizona
Front

TEN POSITIONS

What this guide argues, and what would prove each claim wrong.

A position says what would prove it wrong. Test each on your own store.

  1. A stockout costs future orders, not only today’s.Wrong if customers who hit a stockout reorder at the same rate over the next six months as similar customers who didn’t.
    What a Stockout Costs
  2. Rank stockout risk by who buys the product, not by how many units it sells.Wrong if your top ten products by units are the same ten as your top ten by repeat customers.
    Who a Stockout Hits
  3. When something is out, give the customer a reason to wait or a good alternative. Don’t pay them to wait.Wrong if customers you gave a discount to wait go on to buy more over the next year than customers you gave an honest explanation.
    Back in Stock, or Something Close
  4. The cheapest safety stock is information from customers who already told you what they’ll need.Wrong if your subscription and replenishment data predict next month’s demand for your top products no better than last month’s sales do.
    Information for Inventory
  5. Clearing overstock with sitewide discounts moves the problem from the warehouse to your customers’ expectations.Wrong if customers acquired or reactivated during clearance sales buy at full price as often as everyone else.
    The Markdown Trap
  6. Before any product changes, name the customers who depend on it.Wrong if your last discontinued product’s heaviest buyers reordered something else at the usual rate.
    Find the Dependents
  7. A discontinued product needs notice, a last chance to stock up, and a replacement you’ve tested on the people who’ll lose it.Wrong if the dependents of a product retired with that playbook churn at the same rate as the dependents of one retired without it.
    The Discontinuation Playbook
  8. A reformulation is a discontinuation with the same name on the label. Handle it like one.Wrong if repeat buyers of a changed formula reorder at the same rate as before the change.
    Reformulation, and New Coke
  9. Cutting duplicates can raise sales; cutting what someone relies on loses the customer, not just the sale.Wrong if customers who lost their usual product in a cut order as often afterwards as customers who didn’t.
    Fewer Products, For and Against
  10. Prune by a product’s role in repeat baskets, not by its margin alone.Wrong if the low-margin products you cut last year took no other orders with them.
    Prune by Basket Role
Front

EVERY CHANGE ON ONE PAGE

Five ways the catalog changes under a repeat customer. Each has a customer it hurts most, a number that tells you how it’s going, and a first move.

Find the change you’re facing this quarter. You may be facing three of them at once and managing one.

Every chapter, on its own page

The whole book is above and always will be. These are the same chapters addressed individually, for linking to one idea rather than to ninety.

  1. TEN POSITIONSWhat this guide argues, and what would prove each claim wrong.
  2. EVERY CHANGE ON ONE PAGEFive ways the catalog changes under a repeat customer. Each has a customer it hurts most, a number that tells you how it’s going, and a first move.
  3. THE CATALOG AUDITTwelve checks on whether changes to what you sell are being handled as retention events. About forty minutes with your inventory report, your email platform and your order data.
  4. WHAT A STOCKOUT COSTSThe lost sale is the part you can see. A field test with 22,921 customers found the larger part in the orders that didn’t come afterwards.
  5. WHO A STOCKOUT HITSRank products by the repeat customers who buy them, and a different top ten appears. That list is the one to protect.
  6. BACK IN STOCK, OR SOMETHING CLOSEWhen something is out, capture the intent, explain why, offer a real alternative, and don’t pay people to wait.
  7. INFORMATION FOR INVENTORYDell ran on days of stock while competitors held months. The idea that made it work transfers to any brand whose customers reorder.
  8. THE MARKDOWN TRAPOverstock is the other side of a stockout. Clear it with a sitewide sale and you pay twice: once on the stock and again on every full-price customer who learns to wait.
  9. FIND THE DEPENDENTSBefore any product is retired or changed, pull the list of customers who rely on it. Its sales figure tells you what the product earns. The list tells you what its loss would cost.
  10. THE DISCONTINUATION PLAYBOOKNotice, a last chance to stock up, and a replacement tested on the people who’ll lose the original. Ninety days, in that order.
  11. REFORMULATION, AND NEW COKEA new formula with the old name is a discontinuation the customer finds in their mouth. The most famous case shows why taste tests don’t settle it.
  12. FEWER PRODUCTS, FOR AND AGAINSTThe research on cutting a range points both ways, sometimes in the same data. Read together, it says what to cut and what to protect.
  13. CHOICE OVERLOAD, MEASUREDThe famous jam study is real, and so are two meta-analyses that complicate it. What they agree on points to new visitors, not regulars.
  14. PRUNE BY BASKET ROLEMargin tells you what a product earns alone. Its role in repeat baskets tells you what it earns for the rest of the store.
  15. THE CATALOG SCORECARDNine numbers, on one page, reviewed by operations and retention together.
  16. THE FIRST THIRTY DAYSThe lists, then the numbers, then the flows, then the playbooks. Four weeks, in that order.
  17. DAY ONESix things the person who owns catalog changes needs on the first day.
  18. THE SHELFThe books and papers this guide leans on, and what to take from each.
  19. ABOUT THE AUTHOR
  20. FOR YOUR ANALYSTThe formulas behind the three tools, and five queries that turn order lines into repeat share, dependents and basket roles.
  21. TEMPLATESMessages for stockouts, retirements and reformulations, and two internal forms. Adapt the voice; keep the structure.
  22. SOURCESEvery external source, by chapter. Web sources were read in September 2026.
The changeWho it hurts mostThe number to watchFirst move
A stockout, days to weeksCustomers due to reorder it this monthRepeat-weighted days out of stockStock the products repeat customers buy first; capture intent when out
OverstockFull-price customers who see the discountShare of revenue sold on markdownClear it privately, to people who already buy it
A discontinuationCustomers for whom it’s most of what they buyDependents still ordering 90 days laterNotice, a last stock-up, a tested replacement
A reformulationLoyal buyers of the old versionReorder rate of existing buyers after the switchTell them first, and let them try it before it ships
A pruned long tailCustomers whose basket is anchored by a small productRepeat-basket role of each cut productCut duplicates; protect anchors

The changes share one mechanism. A repeat customer has a routine: a product they know, a quantity, a rhythm. Anything that breaks it forces a fresh decision, and a fresh decision is a chance to leave. A stockout breaks it for weeks, a discontinuation or reformulation for good, and pruning for a few customers at a time, which is why it’s easy to miss in the totals.

A routine doesn’t need a reason to continue. A broken routine needs a reason to restart.

Do this

Start here · Chapter 1

THE CATALOG AUDIT

Twelve checks on whether changes to what you sell are being handled as retention events. About forty minutes with your inventory report, your email platform and your order data.

The audit isn’t about how good your forecasting is. It’s about whether the people who buy from you repeatedly are protected when the catalog moves under them: when something sells out, goes away, changes, or gets cut.

Open your inventory or stock report, your email and SMS platform, your product page for something that’s sold out, and whatever record you have of the last product you retired. Score each check 0 to 2: 0 if it failed or nobody can answer it, 1 if partly true, 2 if clean. “We’d know if it were a problem” doesn’t count as an answer.

If nobody measured what the last discontinuation did to its buyers, the answer isn’t “nothing.” It’s “unknown.”

The twelve checks

  1. Someone sees stock for repeat products daily · 3 minLook at: Who gets told, and how fast, when a top reorder product drops below a few weeks of cover.
    Good: A named person gets an alert with weeks of cover for your top reorder products, and the retention lead gets the same alert.
    Cost if wrong: The first person to notice a stockout is a customer.
    Read next: Who a Stockout Hits
  2. Stockout risk is ranked by repeat customers · 4 minLook at: How your team decides which products to reorder first, expedite or protect.
    Good: The ranking uses each product’s share of repeat customers, not units or revenue alone.
    Cost if wrong: You protect the product new customers try and let the one loyal customers reorder run out.
    Read next: Who a Stockout Hits
  3. You know what your last stockout cost · 4 minLook at: Your biggest stockout of the past year.
    Good: Someone compared the reorder rate of customers who hit it with similar customers who didn’t, over the following months.
    Cost if wrong: You count the lost week of sales and miss the lost customers, so you underinvest in stock.
    Read next: What a Stockout Costs
  4. Every sold-out product captures intent · 3 minLook at: A sold-out product page, on a phone.
    Good: A back-in-stock signup by email or text, an honest expected date if you have one, and a flow that fires on restock.
    Cost if wrong: A shopper who wanted to buy leaves with nothing to bring them back.
    Read next: Back in Stock, or Something Close
  5. Sold out offers something close · 3 minLook at: The same page, and what happens to a subscription order when its product is out.
    Good: The page names one or two real alternatives, and subscribers are asked before anything is swapped.
    Cost if wrong: The customer finds the alternative at a competitor, or gets a swap they didn’t agree to.
    Read next: Back in Stock, or Something Close
  6. Late orders get an honest notice, not a discount · 3 minLook at: What a customer hears when a paid order can’t ship on time.
    Good: A notice with a revised date and a one-click cancel and refund, sent before the promised date passes.
    Cost if wrong: You break the FTC’s mail order rule, and a discount to wait may cost you future orders too.
    Read next: Back in Stock, or Something Close
  7. Customer demand signals feed the buy plan · 4 minLook at: What goes into the next purchase order for your top products.
    Good: Scheduled subscription orders, predicted reorders and waitlist counts are inputs, not just last month’s sales.
    Cost if wrong: You hold more safety stock than you need and still run out of what’s already been promised.
    Read next: Information for Inventory
  8. Overstock is cleared without teaching everyone to wait · 3 minLook at: How the last excess inventory was cleared.
    Good: Targeted offers, bundles or private sales to people who already buy the product, not a sitewide markdown.
    Cost if wrong: Full-price customers learn the price is optional.
    Read next: The Markdown Trap
  9. You can list a product’s dependents in an hour · 3 minLook at: Whether anyone can pull, today, the customers who have bought a given product repeatedly or for whom it’s most of their spend.
    Good: A saved query or segment does it for any product.
    Cost if wrong: Every change reaches your most exposed customers by surprise.
    Read next: Find the Dependents
  10. Retirements follow a written playbook · 4 minLook at: The last product you discontinued.
    Good: Its dependents got notice, a last chance to stock up and a named replacement, and someone measured how many were still ordering 90 days later.
    Cost if wrong: The product’s heaviest buyers find out from a sold-out page.
    Read next: The Discontinuation Playbook
  11. Reformulations are announced before they ship · 3 minLook at: Your last formula, supplier, scent, fit or packaging change on a reorder product.
    Good: Existing buyers heard about it before it arrived, with a way to try it, and the reorder rate was watched.
    Cost if wrong: The customer discovers the change in the product, which reads as a broken promise.
    Read next: Reformulation, and New Coke
  12. Cuts are scored on basket role, not margin alone · 4 minLook at: The spreadsheet from the last range review.
    Good: Each product under review shows its repeat buyers, what else is in its orders, and how many customers depend on it.
    Cost if wrong: You cut a low-margin anchor and lose the orders it brought with it.
    Read next: Prune by Basket Role

Score as you go; your band appears when all twelve are in.

Run your numbers

Score the twelve checks

0: failed, or nobody can answer it. 1: partly true. 2: clean. Scores stay in this browser.
0
of 24 points
0 of 12
checks scored

Read your score

ScoreWhat it meansRead next
20–24Your catalog changes are managed as retention events. The job now is measuring each one against a comparison group, so the playbook keeps improving.The Catalog Scorecard, then Prune by Basket Role
14–19The basics exist, but some changes still reach your best customers by surprise. Fix the zeros first.The chapter linked from your lowest check, then Find the Dependents
8–13Operations decides what customers can buy, and retention finds out afterwards. Connect the two before the next change.Who a Stockout Hits, then The Discontinuation Playbook
0–7Every stockout and retirement is costing you customers you can’t see. Start with the list of what’s changing and who depends on it.Find the Dependents, then The First Thirty Days

If you’ve never retired or reformulated a product, score checks 10 and 11 as 1; they’ll matter the first time you do. Check 9 applies to every brand, and it’s the one to fix before it’s needed.

Part one · Out of stock · Chapter 2

WHAT A STOCKOUT COSTS

The lost sale is the part you can see. A field test with 22,921 customers found the larger part in the orders that didn’t come afterwards.

Most stockout reports count one thing: units you could have sold while the product was out. The best measurement of what else goes missing comes from a large field test at a mail-order catalog, and it’s the study every inventory decision in this guide leans on.

The test

Eric Anderson, Gavan Fitzsimons and Duncan Simester worked with a catalog selling bedding and home accessories. For five weeks they tracked 22,921 customers and what happened when an item they ordered was out of stock, then followed the same customers for 13 months Published. Three findings matter for a DTC brand.

PublishedAnderson, Fitzsimons and Simester, “Measuring and Mitigating the Costs of Stockouts,” Management Science, 2006.

The authors put the short-run cost of a stockout at $13.13 per item, against the $25.96 the catalog expected to earn from an item in stock, and found long-run profits fell by a further $9.56 Published. So in their data the future cost was about 42% of the total, and a report that counts only the lost sale misses it Derived ($9.56 of $22.69).

A stockout report that counts only lost units measures the cheaper half of the damage.

Substitution or defection

When a shopper meets a stockout, there are only a few things they can do. Daniel Corsten and Thomas Gruen, who studied out-of-stocks in grocery stores around the world, list five: buy the same brand in another size or variety, buy another brand, wait, buy the item somewhere else, or not buy at all Published. A supermarket keeps the sale in the first two cases. A DTC brand keeps it only in the first and the third, because “another brand” and “somewhere else” both mean a competitor.

That’s why the catalog finding on substitution matters. Customers there had alternatives in the same catalog, and “the level of substitution was negligible” Published. People who order a specific product mostly want that product. Don’t count on substitution happening by itself; the flows in chapter 4 exist to make it more likely.

Who gets hit

One more finding changes where to look. The study saw “little evidence that the impact of a stockout varies across customers,” but found that “customers who purchase frequently from a firm are the most likely to experience a stockout” Published. The damage per customer was about the same. The exposure wasn’t. Frequent buyers simply meet more stockouts, because they place more orders.

A later study at an online grocer, by Xiaoqing Jing and Michael Lewis, found that prioritizing inventory by customers’ transaction histories and basket contents “can lead to large increases in contribution” Published. Decide what to protect by who’s buying, not only by how much sells.

One caution: the catalog sold bedding, not a consumable on a reorder cycle, and a customer who reorders the same serum every six weeks may be more forgiving, or less. The direction of the findings is solid. The size in your store is something to measure, and Appendix A shows how.

Do this

Part one · Out of stock · Chapter 3

WHO A STOCKOUT HITS

Rank products by the repeat customers who buy them, and a different top ten appears. That list is the one to protect.

Inventory teams rank products by units or revenue because that’s what the stock report shows. Retention needs a second column: of the orders containing this product, what share come from customers who have bought from you before?

Two products, same sales

Say a brand ships 10,000 orders a month and sells two products at about 2,500 units each. The starter kit is in most first orders: 85% of its orders come from new customers. The refill is the opposite: 80% of its orders come from customers on their second order or later. The stock report treats them as twins. A three-week stockout on each is not the same event.

If both are running low and you can only air-freight one, the answer depends on the second column.

The repeat share of a product

For each product, count the orders containing it over the last 90 days, and the share placed by customers who had ordered before. That’s its repeat share. Sort by repeat orders (orders times repeat share) instead of by units, and read the top of the list. It’s usually refills, consumables, basics in a customer’s size and anything bought on subscription. The query is in Appendix A.

Then weight stock cover by it. A product with high repeat share and three weeks of cover is a bigger risk than a new-customer product with one week. The tool below turns one product’s numbers into a daily cost of being out, split into the part you’ll see this month and the part you won’t.

Run your numbers

What would a stockout on this product cost?

Example numbers. Replace with yours. Use one product, and its orders from the last 90 days.
orders that meet the stockout
contribution lost now
future contribution lost from repeat customers
total cost of the stockout
cost per day out of stock
Lost outright: the customer neither waited nor took an alternative from you (in the catalog study, 38% of out-of-stock items never became revenue). The 22% default is that study’s drop in future buying; replace it with your own from chapter 2. First-time buyers’ future orders are left out, so this is conservative.

With the defaults, a three-week stockout hits 600 orders and costs about $19,080: $7,200 in contribution lost that month and $11,880 in future contribution from repeat customers. That’s about $909 a day, and 62% of it never appears in a lost-sales report Derived. Run the same numbers for a product with a 15% repeat share and the future part falls to under a third.

What to do with the ranking

  1. Set cover by tierGive the top of the repeat list more weeks of safety stock than units alone would earn, and pay for it by holding less on products bought mostly by new customers.
  2. Use cost per day as the expedite ruleWhen a top repeat product is heading out, the daily cost from the tool is the most you should pay per day saved. It turns an argument about air freight into arithmetic.
  3. Point new traffic elsewhere when cover is thinIf a product is down to its last weeks, stop sending paid traffic to it and save what’s left for the people who reorder it. A new visitor who meets “sold out” costs you an ad click; a regular who meets it costs you part of a year.

Do this

Part one · Out of stock · Chapter 4

BACK IN STOCK, OR SOMETHING CLOSE

When something is out, capture the intent, explain why, offer a real alternative, and don’t pay people to wait.

You’ll run out of things. What decides the cost is what happens on the sold-out page and in the inbox of the customer who was about to reorder. Three flows handle most of it: back in stock, substitution, and the late-order notice.

Capture the intent

Every sold-out product page needs a way to say “tell me when it’s back,” by email and, with their consent, by text. Then:

Explain, don’t discount

The catalog study in chapter 2 also tested what to tell customers whose item was out of stock. Each customer heard one of five scripts: a plain “out of stock,” an explanation that the supplier had a problem, “This item is out of stock because it is extremely popular,” $5 off shipping, or 10% off, the last two offered in return for waiting instead of canceling. The “extremely popular” script and the 10% discount kept about the same share of items (68% and 66%). But the popular script earned $20.51 of profit per out-of-stock item and the 10% discount $15.97, and the two discounts were the least profitable of the five Published.

The long-run result is the one to remember. In the two discount conditions, customers who had met stockouts went on to buy much less than customers who hadn’t: the no-stockout group ordered 24% more units in the following months in the $5 condition, and more than 50% more in the 10% condition Published. One reading is that a discount signals something went wrong that you’re paying to smooth over. Either way, the data gives no support for paying people to wait.

A short, honest reason to wait did as much as a discount, at a lower cost, without the damage later.

So the back-in-stock and delay messages in Appendix B explain and give a date. They don’t apologize with a coupon. If you want to recognize the inconvenience, do it for the customers who waited, after it ships, and not as a price.

Offer something close

Because customers rarely substitute on their own, make the alternative concrete: one or two products, named on the sold-out page and in the stockout email, chosen from what past buyers of the missing product also bought. A different size of the same thing, a sister scent, or a bundle containing it converts better than “you may also like.”

Dell ran a version of this at scale. In Stanford’s case on the company, a phone rep whose customer asked for a configuration could suggest a better component for a small extra payment, which arrived faster “because the component is already in stock” Published. The rep steered demand toward what was on hand, and the customer got something at least as good. That’s the model: the alternative should be equal or better, and it should be the customer’s choice.

Subscriptions and late orders: the rules

Two rules from the FTC’s Mail, Internet, or Telephone Order Merchandise Rule matter here Published:

The FTC’s business guide to the rule dates from 2011, with a January 2025 update to penalty amounts. States and other countries add their own requirements; have counsel review your backorder, preorder and subscription-swap language. This isn’t legal advice.

Do this

Part two · Inventory as a promise · Chapter 5

INFORMATION FOR INVENTORY

Dell ran on days of stock while competitors held months. The idea that made it work transfers to any brand whose customers reorder.

The usual answer to stockouts is more safety stock. It works, and it’s expensive: cash sits on shelves, products age, and the overstock it creates becomes the markdown problem in the next chapter. The cheaper answer is to know more about what your customers will need.

What Dell did

In a 1998 interview with Joan Magretta in Harvard Business Review, Michael Dell described suppliers who saw the company’s needs day by day, so that information about real demand could stand in for stock on the shelf Reported. The payoff was speed. Stanford’s 2000 case on the company quotes his arithmetic: with 11 days of inventory against a competitor’s 80, a new Intel chip would reach Dell’s customers 69 days sooner Published.

The part most people skip is where the information came from. Dell’s customers told it. In the same interview he described forecasting as a sales skill: account managers walked each customer through their future PC needs, department by department, and asked which needs were certain and which were contingent Reported. He counted inventory velocity among the handful of measures the company watched most closely.

Dell built to order, and most DTC brands can’t. But the split between certain and contingent demand transfers directly.

Certain, contingent and unknown

Sort next quarter’s demand for each top product into three layers:

Only the last layer needs a large safety buffer. The contingent layer needs a modest one, and the certain layer barely any.

Say a brand sells a refill with 4,000 active subscribers on a 60-day cycle, losing 8% per cycle. That’s about 3,680 units scheduled for the next 60 days. Another 2,500 one-time buyers are due to reorder, and 35% usually do: 875 units. New customers usually take about 1,200. Forecast the total from last period’s sales with a blanket 40% buffer and you’d order about 8,060 units. Buffer each layer by its own uncertainty, 40% on new customers and 20% on the contingent layer, and you need about 6,410 units, a fifth less inventory. And the customers who’ll be most hurt by a stockout are now the ones best covered.

Your subscribers and regular reorderers have already told you most of next quarter’s demand. Buy for them first.

Ask for more information

Dell asked customers which needs were certain. A DTC brand can do a modest version:

Do this

Part two · Inventory as a promise · Chapter 6

THE MARKDOWN TRAP

Overstock is the other side of a stockout. Clear it with a sitewide sale and you pay twice: once on the stock and again on every full-price customer who learns to wait.

When a forecast misses high, there’s cash on a shelf and a strong temptation to run a sale. The sale clears the stock. It also discounts everything else in those orders, and teaches your best customers something about your prices.

Where the cost goes

Say a brand normally sells $100,000 a week at full price and is sitting on $40,000 of excess inventory at retail value in one product line. A week of 25% off sitewide lifts revenue to $150,000. Suppose the overstock line sells $30,000 of that. The other $120,000 includes the orders the store would have taken anyway, which would have brought in $100,000 at full price and now bring in $75,000: $25,000 given away on orders that needed no discount. Some of the extra sales were pulled forward from the weeks after. And the customers who bought at full price last month have learned to wait for the next one. That last cost is the subject of The First Offer, which covers discount training and the sale calendar; read it before your next clearance.

A sitewide sale clears one product by discounting every product.

Clear it where it’s wanted

Excess stock is rarely excess to everyone. It’s usually excess to your forecast of new-customer demand. The people most likely to want more of it are the people who already buy it.

  1. Offer existing buyers a stock-upA private offer to past buyers of the product: a multi-pack, a bundle with something they also buy, or a gift with a larger order. No public price change, no code on coupon sites. This is the same move as the last-chance stock-up in chapter 8, pointed at a surplus instead of a retirement.
  2. Use it to seed the next repeat productPut the overstock in orders from customers who haven’t tried it, as a sample or a gift with purchase. It costs you stock you’d otherwise mark down, and a few of those customers become its next regular buyers.
  3. Bundle it with a repeat anchorA slow product attached to a product people reorder moves without changing either list price. Check that the bundle doesn’t become the only way anyone buys the anchor.
  4. Sell off-channelOutlets, liquidators and closeout buyers take stock away from your own customers’ view. You’ll get less per unit, and you’ll keep your prices intact where it matters.

Two things never to do

Do this

Part three · Changing what they buy · Chapter 7

FIND THE DEPENDENTS

Before any product is retired or changed, pull the list of customers who rely on it. Its sales figure tells you what the product earns. The list tells you what its loss would cost.

A product’s revenue is the wrong number for deciding whether to retire it. What matters is who buys it and what else they’d stop buying if it went. For most products the answer is “nobody much.” For a few, it’s a group of customers for whom that product is the reason they’re a customer at all.

What the research says about them

When the online grocer in Peter Boatwright and Joseph Nunes’s study cut its range, of the households loyal to a brand or size that was eliminated, “nearly half continued purchasing within the category” Published. Read the other way: about half stopped buying in that category from that grocer. And that’s at a store that still sold other brands in the category. At a single-brand DTC store, losing the product is often losing the brand.

Laurens Sloot, Dennis Fok and Peter Verhoef found the same at a Dutch retailer that removed a quarter of its detergents: the short-term losses were “caused mainly by fewer category purchases by former buyers of delisted detergent items” Published. The damage concentrates in the people who bought what was cut, which is exactly what an average across all customers hides.

Three tests for a dependent

Call a customer dependent on a product if any of these is true:

Customers who pass two or more tests are core dependents; they get the most personal version of every message in the next chapter. Everyone else who bought the product in the last year is a trier: they’re told, but they’re not the risk. The query is in Appendix A, and it should be a saved segment you can run for any product in minutes.

A product’s sales tell you what it earns. Its dependents tell you what its loss would cost.

What’s at risk

When a dependent leaves, you lose their whole spend, not just the product’s share of it. So the revenue at risk from retiring a product can be far larger than the product’s own sales, and the decision should weigh that against what retiring it saves: storage, minimum orders, write-offs, the time it takes to manage. The tool puts those side by side, with and without the playbook from chapter 8.

Run your numbers

What’s at risk if we discontinue it?

Example numbers. Replace with yours. Revenue is each customer’s total yearly spend with you, on everything.
customers lost, with no plan
yearly revenue at risk, with no plan
net yearly result of dropping it, with no plan
net yearly result, with the playbook
Net result: savings minus the contribution lost from customers who leave. The 50% default loosely follows the grocer study above; measure your own after your next retirement. Count only savings that really go away.

With the defaults, 2,000 buyers include 500 dependents. Without a plan, 325 customers leave, taking $59,000 a year of revenue and $35,400 of contribution, so dropping the product loses $10,400 a year despite saving $25,000. With a playbook that prevents half those losses, the same decision gains $7,300 a year Derived. Dependents are a quarter of the buyers and 85% of the revenue at risk. The decision flips on how well you handle a few hundred people.

Do this

Part three · Changing what they buy · Chapter 8

THE DISCONTINUATION PLAYBOOK

Notice, a last chance to stock up, and a replacement tested on the people who’ll lose the original. Ninety days, in that order.

Most products are retired by an operations decision and a product page that one day says “sold out” and never changes. The customers who depend on it find out by trying to reorder. The playbook replaces that surprise with a sequence of messages that gives them time, choice and something to switch to.

Why customers need a last chance

When customers learn a product they rely on is going away, many stock up whether you offer it or not. When Coca-Cola announced its formula change in 1985, by the company’s own account “some consumers panicked, filling their basements with cases of Coke,” and a man in San Antonio bought $1,000 worth from a local bottler Reported. Better that the stock-up happens with you, on a schedule you planned, than on a resale site at three times the price.

The ninety days

  1. Day minus 90: decide, and pull the listRun the dependents segment from chapter 7. Choose the replacement: the product past buyers of the original most often also buy, or the closest match in what they bought it for. Size the last buy from dependents’ usage (below).
  2. Day minus 75: test the replacement on themSend the replacement free to a random sample of core dependents, 50 to 200 people, and ask one question a week later: would you reorder this instead? If fewer than half say yes, look for a better replacement before you announce. You’re testing whether it replaces the original for the people losing it, not whether new customers like it.
  3. Day minus 60: tell them firstA personal note to dependents, before anything public: what’s changing, the honest reason, the last date to order, the replacement and why you chose it, and the stock-up offer. Triers get a shorter version a week later.
  4. Day minus 45: send the replacementA free sample of the replacement in the next order of every core dependent, with a note. The best time to try the new thing is while they still have the old one.
  5. Day minus 30 to 0: remind, and handle subscriptionsA last-chance reminder at 14 days and at 3 days. Subscribers get a choice: switch to the replacement, stock up, or pause. With no answer, pause and tell them; don’t swap without their yes (chapter 4 has the rule).
  6. Day 0 onward: keep the pageLeave the product page up, marked discontinued, with the replacement. Customers will search for it for years.
  7. Days 30, 60 and 90: measureWhat share of dependents ordered anything, and what share took the replacement, compared with how the same customers ordered in the 90 days before the announcement. Reach out personally to core dependents who’ve gone quiet.

Tell the people who’ll lose it before you tell anyone else, and give them something tested to switch to.

Sizing the last buy

Say 500 core dependents each use one unit every six weeks, and you offer each up to six months’ supply: four units. If 60% take the full offer, that’s 1,200 units. Add the triers at a lower rate, and hold a little back for customer service. Cap quantities per customer so resellers don’t take it, and price the stock-up at full price or with a modest multi-unit saving. People who depend on a product want it, not a deal; the scarcity does the work a discount would.

Stock-up revenue is pulled forward, so don’t read the spike as growth, and time the replacement’s first reorder reminder for when the stock-up runs out.

When there’s no replacement

Sometimes there isn’t one. Say so plainly and give a larger stock-up allowance. Customers remember who was straight with them when something they relied on went away.

Do this

Part three · Changing what they buy · Chapter 9

REFORMULATION, AND NEW COKE

A new formula with the old name is a discontinuation the customer finds in their mouth. The most famous case shows why taste tests don’t settle it.

Brands reformulate for good reasons: a cheaper supplier, a cleaner ingredient list, a regulation, a better product. From the repeat customer’s side, the product they chose has been replaced without their consent. The label says the same thing and the product doesn’t.

What happened in 1985

Coca-Cola’s lead over its chief rival had been slipping for 15 years when it decided to change the formula for the first time in 99 years. Nearly 200,000 consumers took part in its taste tests, and the new formula was preferred. The change was announced on April 23, 1985. Calls to the company’s consumer line went from about 400 a day to 1,500 a day by June. A customer named Gay Mullins started a group called Old Cola Drinkers of America. On July 11, 79 days after the launch, the company brought the original back as Coca-Cola Classic Reported.

Company president Donald Keough said all the consumer research “could not measure or reveal the depth and abiding emotional attachment” people felt to the original Reported. To those who suspected the whole thing was a stunt, he said: “The truth is we’re not that dumb and we’re not that smart” Reported. The new formula was renamed Coke II in 1990 and discontinued in 2002 Reported.

Sources: The Coca-Cola Company’s history of New Coke; CBS News, 2015; History.com. Call volumes differ between accounts; these are the company’s own.

What the research missed

The taste tests asked which of two sips people preferred. They didn’t ask how people would feel if the one they drank every day were taken away, which is the question the launch actually posed. The research did pick up a warning. Later histories of the company report that a minority of testers were angry at the thought of a change and said they might stop drinking Coke Reported. A minority of testers is easy to dismiss. It was also, very likely, the loyal core: the people most attached to the product and most likely to buy it every week.

A taste test asks which one people prefer. A reformulation asks whether they’ll accept losing the one they have.

So test a change on current heavy buyers, and ask “instead of,” not “compared with.” Treat the angry minority as the signal: they are the dependents from chapter 7. And write down, before launch, the reorder rate among existing buyers that would make you reverse. Coca-Cola reversed in 79 days under public pressure; you can decide in calm.

The reformulation playbook

  1. Ask whether they’ll noticeA new supplier for an identical ingredient may be invisible. A new scent, texture, taste, fit, size or active ingredient won’t be. If they’ll notice, it’s the discontinuation playbook from chapter 8, with the replacement already chosen.
  2. Tell them before it arrivesExisting buyers, and especially subscribers, hear about the change before the new version ships: what changed, why, and what they’ll notice. Discovering it in the product reads as something slipped past them.
  3. Let them try it firstA sample of the new version in their last order of the old one. Ask what they think, and read the answers.
  4. Offer the old one while it lastsSell remaining stock of the old version to the people who want it, as a last-chance stock-up, instead of blending it out quietly.
  5. Watch the reorder rateExisting buyers’ reorder rate for 90 days, against their rate before the change and the rollback line.

For supplements, cosmetics and food, a formula change can also change what the label must say. Have counsel or a regulatory specialist review the new label and any “new” or “improved” claim.

Do this

Part four · Pruning the range · Chapter 10

FEWER PRODUCTS, FOR AND AGAINST

The research on cutting a range points both ways, sometimes in the same data. Read together, it says what to cut and what to protect.

Every few years a brand decides its range has grown too long, and someone brings a slide saying that fewer choices sell more. Sometimes they do. The careful studies of real assortment cuts found gains, losses and something in between, and the differences tell you exactly where the risk sits.

The case for cutting

Boatwright and Nunes studied an online grocer that cut its range sharply. Across the 42 categories they examined, sales rose an average of 11%; sales rose in more than two-thirds of the categories, and 75% of households increased their overall spending Published. Customers “uniformly welcomed the elimination of clutter brought on by the reduction in redundant items,” but reacted in different ways to losing sizes, and category sales still depended on how many items were left Published.

An earlier set of experiments by Susan Broniarczyk, Wayne Hoyer and Leigh McAlister found that shoppers’ sense of how much choice a store offered barely changed when low-selling items were removed, as long as their favorite item was still there and the category kept its shelf space Published.

The case against

Sharad Borle, Boatwright, Nunes and two colleagues then went back to data from the same grocer. They say plainly that Boatwright and Nunes used a subset of the same categories and households Published. This time they compared 840 households who got the reduced range, where cuts ran from 24% to 91% of items in a category, with 378 who kept the full range. The cut lengthened the expected time between deliveries by 25.0% and lowered the expected order size by 4.8%, and it reduced overall store sales. Most of the loss came from customers shopping less often, not from smaller orders. Frequently bought categories were hurt less Published.

In between

Sloot, Fok and Verhoef studied a major Dutch retailer that removed a quarter of its detergents. They found “substantive short-term category sales losses but only a weak negative long-term category sales effect.” The losses came mainly from former buyers of the removed items. The smaller range also attracted new category buyers, and shoppers in the test stores searched faster Published.

StudyWhat was cutWhat happened
Broniarczyk and colleagues, 1998Low-selling items, in experimentsPerceived variety held, if favorites stayed
Boatwright and Nunes, 2001Redundant items at an online grocerCategory sales up 11% on average
Borle and colleagues, 200524% to 91% of items per category, same grocerCustomers ordered less often; store sales fell
Sloot, Fok and Verhoef, 200625% of detergents at a Dutch retailerShort-term loss from buyers of cut items; new buyers partly offset it

PublishedFull references in Appendix C.

How to read them together

The studies aren’t contradicting each other so much as counting different things. Sales within the categories you cut can rise when clutter goes, while the customers who lost their item quietly shop less across the whole store. A category report shows the first. Only a customer-level comparison shows the second. The consistent threads:

A cut can raise category sales and still lose customers. Only one of those shows up in the usual report.

Do this

Part four · Pruning the range · Chapter 11

CHOICE OVERLOAD, MEASURED

The famous jam study is real, and so are two meta-analyses that complicate it. What they agree on points to new visitors, not regulars.

“Too many choices hurt sales” is one of the most repeated findings in marketing. It comes from one elegant field experiment. The evidence since then is more interesting and more useful than the slogan.

The jam study

In 2000, Sheena Iyengar and Mark Lepper set up a tasting table at Draeger’s, an upscale supermarket in Menlo Park, California, showing either 24 jams or 6. The large display drew more people: 60% of passersby stopped, against 40%. But of those who stopped, 3% bought a jar at the large display and nearly 30% at the small one Published.

The meta-analyses

A decade later, Benjamin Scheibehenne, Rainer Greifeneder and Peter Todd pooled 63 conditions from 50 published and unpublished experiments with 5,036 participants. They found “a mean effect size of virtually zero but considerable variance between studies” Published. On average, more options didn’t reduce choosing or satisfaction, and several attempts to reproduce overload effects hadn’t found them.

Then Alexander Chernev, Ulf Böckenholt and Joseph Goodman analyzed 99 observations covering 7,202 participants and asked when overload happens rather than whether it does on average. They identified four conditions that reliably make it more likely: a complex set of options, a difficult decision task, a chooser who is unsure what they want, and a goal of minimizing effort. With those taken into account, they found the overall effect of assortment size on overload was significant, “a finding counter to the data reported by prior meta-analytic research” Published.

So the honest summary: choice overload is not a law, and the jam result is not a typical effect. It’s a real effect that shows up under specific conditions and vanishes under others.

What it means for a DTC range

Chernev’s conditions sort your customers for you.

Solve choice overload for new visitors with curation. Don’t solve it by removing a regular’s product.

How to test a product page change for new visitors, and whether your traffic can carry the test, is in The Honest Test.

Do this

Part four · Pruning the range · Chapter 12

PRUNE BY BASKET ROLE

Margin tells you what a product earns alone. Its role in repeat baskets tells you what it earns for the rest of the store.

The usual range review sorts products by margin or by sales and draws a line near the bottom. The products under the line go. Some of them deserve to. Others are the reason a group of customers keeps ordering, and their low margin is paid back many times in the rest of the basket.

Five roles

Before a product is scored, name its role. Four numbers from Appendix A are enough: its repeat share, its reorder rate (the share of its buyers who buy it again), its dependents, and the contribution of the other items in its orders.

RoleLooks likeDefault decision
AnchorHigh reorder rate, many dependents, big baskets around itKeep, even at low margin; fix its cost
EntryMostly in first orders; its buyers go on to buy other thingsKeep if its buyers come back; judge on what they buy next
AttachmentRides along in baskets anchored by something elseKeep if it earns its own margin; bundle it if not
DuplicateIts buyers also buy a near-identical siblingMerge into the sibling, with notice to its few dependents
Dead weightFew buyers, little repeat, nothing in its basketsCut, with a short version of the playbook

Score it

The scorer adds a product’s basket role to its margin. It compares what the product earns on its own with what the store would lose without it: the other items in orders that wouldn’t happen, and the dependents who’d leave.

Run your numbers

Should this product stay?

Example numbers. Replace with yours. Use one product and its last 12 months.
what it earns alone, after carrying cost
other business in orders that need it
dependents’ other spending at risk
net value of keeping it
The share of orders lost without it is the hard number; start from what its buyers did when it was last out of stock. Dependents’ orders are partly in the basket figure already, so if they place most of this product’s orders, lower that share to avoid counting them twice. All figures are yearly contribution.

With the defaults, the product earns −$1,500 a year on its own margin after its carrying cost, and a margin-only review would cut it. But it sits in 1,500 orders a year whose other items bring $25 each; if a fifth of those orders wouldn’t happen without it, that’s $7,500. Its 150 dependents spend $60 a year on other products, and half would leave: $4,500. Counted properly, the store is $10,500 a year better off with it Derived.

A pruning at scale: Apple, 1998

The best-known range cut in consumer products came at Apple after Steve Jobs returned. Apple’s annual report for fiscal 1998 says the company simplified its line during the year, moving “from approximately 15 separate individual products to three main product families,” and discontinued its MessagePad and eMate lines. The company went from a net loss of $1,045 million in fiscal 1997 to net income of $309 million in fiscal 1998 Filed.

Don’t read too much into the second sentence: the turnaround had many causes, and a computer maker is not a replenishment brand. The lesson is in the first. Apple didn’t cut from the bottom of a margin ranking; it cut to a few products with distinct roles, so each customer could see which one was theirs. And the cut had casualties: the MessagePad, better known as the Newton, had devoted users. Every simplification creates dependents somewhere. The question is whether you know who they are.

Apple Computer, Inc., Form 10-K for the fiscal year ended September 25, 1998, filed with the SEC on December 23, 1998.

Do this

Part five · Running it · Chapter 13

THE CATALOG SCORECARD

Nine numbers, on one page, reviewed by operations and retention together.

The scorecard exists to put the stock report and the retention report in the same meeting. Each number below connects a catalog decision to what repeat customers experienced. None of them has a published benchmark worth quoting; the target is your own trend, and a comparison group wherever a change was made.

NumberHow to count itHow often
1. Repeat-weighted in-stock rateDays each product was in stock, weighted by its repeat orders per day, over all productsWeekly
2. Cost per day at riskFor the top ten repeat products under four weeks of cover, the daily cost from the tool in chapter 3Weekly
3. Back-in-stock conversionSignups who order the product within 14 days of the restock messageEach restock
4. Alternative take rateCustomers shown a named alternative during a stockout who bought itEach stockout
5. Late notices on timeDelayed orders whose customer was notified, with a cancel option, before the promised dateMonthly; target all of them
6. Demand you already knowShare of next quarter’s forecast for top products in the certain and contingent layers (chapter 5)Each buy plan
7. Clearance shareRevenue from overstock sold at a discount, as a share of all revenue, and how much of it was sitewideMonthly
8. Dependents still orderingAfter each retirement or reformulation: dependents who ordered in the next 90 days, against their own rate before the announcementDays 30, 60, 90
9. Anchors coveredProducts labelled anchor in the last range review with at least your target weeks of coverMonthly

Put the stock report and the retention report in the same meeting. That’s most of the fix.

Reading it

Do this

Part five · Running it · Chapter 14

THE FIRST THIRTY DAYS

The lists, then the numbers, then the flows, then the playbooks. Four weeks, in that order.

Whether you’re fixing this after a painful stockout or before a planned retirement, the order of work is the same. Find out what’s changing and who it touches. Put numbers on it. Fix the customer-facing moments. Then write down how the next change will be handled, so it doesn’t depend on who remembers.

  1. Week one: the listsCollect every catalog change planned for the next 90 days: known stockouts, retirements, formula or supplier changes and cuts (the map). Build the dependents segment and run it for each (chapter 7). Score the audit in chapter 1.
  2. Week two: the numbersAdd repeat share to the stock report and sort by repeat orders (chapter 3). Run the stockout tool for the top three. Measure your last big stockout against a comparison group (chapter 2). Split next quarter’s forecast for the top products into layers (chapter 5).
  3. Week three: the flowsBack-in-stock signup and flow on every product page, sending to past buyers first. Named alternatives on sold-out pages. A late-order notice that meets the FTC rule, and a subscription setting that skips or asks rather than swapping (chapter 4). Templates are in Appendix B.
  4. Week four: the playbooks and the scorecardPut the next retirement or reformulation on the 90-day calendar (chapter 8, chapter 9). Label the bottom of the range by role and score the anchors before any cut (chapter 12). Hold the first scorecard review (chapter 13).

At day thirty you won’t know yet whether the playbook kept the dependents; that takes 90 days after the next change. What you’ll have is a catalog whose changes are seen in advance, costed in customers, and handled in the inbox before they’re found on the product page.

See the change coming, count the customers, tell them first.

Do this

Close

DAY ONE

Six things the person who owns catalog changes needs on the first day.

Whoever owns this, an operations lead, a retention lead, or you on the Monday after a stockout that hurt, needs six things on day one.

  1. The stock report, with weeks of coverFor every active product, updated daily, with the date of the next inbound shipment.
  2. Order-line dataEvery order and its products for at least two years, joined to customers, so repeat share, dependents and basket roles can be computed.
  3. The change listEvery planned retirement, formula, supplier, pack or price change on a reorder product, with dates. Gaps are findings.
  4. The subscription scheduleScheduled orders by product for the next 90 days, and what the platform does when a product is out.
  5. Access to the email and SMS platformTo build the dependents segment, the back-in-stock flow and the notices, with the consent status of each contact.
  6. A seat in the buying meetingThe right to see a purchase order before it’s placed and to ask what it does to the products regulars buy.

Do this

Close

THE SHELF

The books and papers this guide leans on, and what to take from each.

Full references for these and the rest of the research are in Appendix C.

Close

ABOUT THE AUTHOR

Andrew Lauchner runs Growth Legend, embedding inside consumer brands to own lifecycle, email and SMS, and revenue operations. He is the author of The Second Order, on turning first-time buyers into second-time buyers, and The Whole Machine, on the fundamentals of DTC growth, along with a series of field guides for DTC operators at andrewlauchner.com.

As Senior Director of Growth and Retention Marketing at Gallery Furniture, he rebuilt the customer journey and the sales playbooks together. He has worked on growth and retention at Binance and 3Commas, and has been Head of Growth and Retention at Greatness Wins and at Nexus Agriscience.

What colleagues say

“Andrew led retention, lifecycle, and email/SMS, but what separates him from most in this space is how deeply he understands the role retention plays in the overall growth engine.”

Akram Khan, Head of Marketing at Gallery Furniture, senior to Andrew but didn’t manage Andrew directly

Andrew answers every note from operators working on this, including those looking for someone to own it. Write to andrew@growthlegend.com or message him on LinkedIn.

Appendix A

FOR YOUR ANALYST

The formulas behind the three tools, and five queries that turn order lines into repeat share, dependents and basket roles.

The formulas

ForFormulaNotes
Stockout costhit = W × D / 7
now = hit × L × c
future = hit × r × V × h
W: orders per week with the product. D: days out. L: share lost outright. c: contribution per order. r: repeat share. V: a repeat customer’s 12-month contribution. h: drop in future buying. Cost per day is (now + future) / D.
Revenue at riskrev = N·d·ld·Rd + N(1−d)·lo·Ro
net = S − rev × m × (1 − p)
N: buyers. d: dependent share. l: leave rates. R: yearly revenue per customer. m: margin. S: yearly savings. p: share of losses the playbook prevents (0 for no plan).
Basket-adjusted valueO·c − F + O·a·b + n·v·lO: orders with the product. c: its contribution per order. F: carrying cost. a: other items’ contribution per order. b: share of those orders lost without it. n, v, l: dependents, their other contribution, leave rate.
Repeat-weighted in-stock rateΣ (days in stocki × qi) / Σ (daysi × qi)qi: product i’s repeat orders per day in the prior 90 days.

Repeat share by product

-- orders containing each product in the last 90 days, and the share
-- placed by customers who had ordered before
WITH ranked AS (
  SELECT o.order_id, o.customer_id, o.created_at,
         ROW_NUMBER() OVER (PARTITION BY o.customer_id ORDER BY o.created_at) AS nth
  FROM orders o
  WHERE o.cancelled_at IS NULL
)
SELECT ol.product_id,
       COUNT(DISTINCT r.order_id)                               AS orders,
       COUNT(DISTINCT r.order_id) FILTER (WHERE r.nth > 1)       AS repeat_orders,
       ROUND(COUNT(DISTINCT r.order_id) FILTER (WHERE r.nth > 1)::numeric
             / NULLIF(COUNT(DISTINCT r.order_id), 0), 3)        AS repeat_share
FROM ranked r
JOIN order_lines ol ON ol.order_id = r.order_id
WHERE r.created_at >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY ol.product_id
ORDER BY repeat_orders DESC;

Sort by repeat orders, not repeat share: a product with a 95% repeat share and ten orders a quarter isn’t where the exposure is. Joined to daily stock snapshots, the same numbers give the repeat-weighted in-stock rate in the table above.

Dependents of one product

-- customers who pass any of the three tests for :product_id
WITH spend AS (
  SELECT o.customer_id,
         SUM(ol.price * ol.quantity)                                          AS total,
         SUM(ol.price * ol.quantity) FILTER (WHERE ol.product_id = :product_id) AS this,
         COUNT(DISTINCT o.order_id)  FILTER (WHERE ol.product_id = :product_id) AS orders_with
  FROM orders o
  JOIN order_lines ol ON ol.order_id = o.order_id
  WHERE o.cancelled_at IS NULL
    AND o.created_at >= CURRENT_DATE - INTERVAL '12 months'
  GROUP BY o.customer_id
),
subs AS (
  SELECT DISTINCT customer_id FROM subscriptions
  WHERE product_id = :product_id AND status = 'active'
)
SELECT s.customer_id,
       (s.orders_with >= 2)                        AS reorders_it,
       (s.this >= 0.5 * s.total)                   AS most_of_spend,
       (sb.customer_id IS NOT NULL)                AS subscribes,
       ((s.orders_with >= 2)::int + (s.this >= 0.5 * s.total)::int
         + (sb.customer_id IS NOT NULL)::int)      AS tests_passed
FROM spend s
LEFT JOIN subs sb ON sb.customer_id = s.customer_id
WHERE s.this > 0
ORDER BY tests_passed DESC, s.this DESC;

Two or more tests passed is a core dependent; one is a dependent; zero is a trier. Export it as a segment, with consent status, before any message goes out.

What a stockout did, against a comparison group

-- exposed: bought the stocked-out product in the 180 days before it ran out
-- comparison: bought a similar product that stayed in stock, same window,
--             and not the stocked-out one
-- :out_date is the first day at zero stock
SELECT grp,
       COUNT(*)                                          AS customers,
       AVG((next_order IS NOT NULL)::int)                AS ordered_within_90d
FROM (
  SELECT c.customer_id, c.grp,
         (SELECT MIN(o.created_at) FROM orders o
           WHERE o.customer_id = c.customer_id
             AND o.cancelled_at IS NULL
             AND o.created_at >= :out_date
             AND o.created_at <  :out_date + INTERVAL '90 days') AS next_order
  FROM stockout_groups c   -- customer_id, grp ('exposed' or 'comparison')
) t
GROUP BY grp;

Match the groups roughly on how recently and how often they’d ordered. The gap between the two rates replaces the 22% default in the stockout tool. After a retirement or reformulation, use the announcement date and the dependents as the exposed group.

Basket role of each product

-- for each product: how often its buyers buy it again, how often it's in a
-- first order, and the contribution of the other items in its orders
WITH ranked AS (
  SELECT order_id, customer_id,
         ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY created_at) AS nth
  FROM orders
  WHERE cancelled_at IS NULL AND created_at >= CURRENT_DATE - INTERVAL '12 months'
),
lines AS (
  SELECT r.order_id, r.customer_id, r.nth, ol.product_id, ol.contribution
  FROM ranked r JOIN order_lines ol ON ol.order_id = r.order_id
)
SELECT p.product_id,
       COUNT(DISTINCT p.customer_id)                                   AS buyers,
       ROUND(COUNT(DISTINCT p.customer_id) FILTER (WHERE pc.n_orders >= 2)::numeric
             / COUNT(DISTINCT p.customer_id), 3)                     AS reorder_rate,
       ROUND(AVG((p.nth = 1)::int)::numeric, 3)                         AS first_order_share,
       ROUND(AVG(other.contrib)::numeric, 2)                            AS other_items_contribution
FROM lines p
JOIN (SELECT customer_id, product_id, COUNT(DISTINCT order_id) AS n_orders
      FROM lines GROUP BY customer_id, product_id) pc
  ON pc.customer_id = p.customer_id AND pc.product_id = p.product_id
LEFT JOIN LATERAL (
  SELECT COALESCE(SUM(l2.contribution), 0) AS contrib
  FROM lines l2 WHERE l2.order_id = p.order_id AND l2.product_id <> p.product_id
) other ON TRUE
GROUP BY p.product_id
ORDER BY buyers DESC;

The syntax is Postgres. contribution is price less discounts, cost of goods and a share of fulfillment; if you don’t have it, use revenue times your average margin. The roles are in chapter 12.

Appendix B

TEMPLATES

Messages for stockouts, retirements and reformulations, and two internal forms. Adapt the voice; keep the structure.

Marketing messages go only to people who’ve consented: email with a working unsubscribe and your postal address, texts only to people who opted in, with a working opt-out. Notices about a paid order are transactional; keep promotions out of them. Have counsel review your versions.

Back in stock: email

SUBJECT   [Product] Is Back
PREVIEW   you asked us to tell you first. here it is.

[First name], [product] is back in stock.

You signed up to hear when it returned, so you're hearing before
we tell anyone else. We restocked [quantity or "a limited batch"];
the last run sold out in [time], so if you're due, now's the time.

[Reorder button]

Thanks for waiting.
[Name], [Brand]

[Unsubscribe link] · [Postal address]

Back in stock: SMS

[Brand]: [Product] is back. You asked us to text you first, so
here's your link before we tell anyone else: [link]
Reply STOP to opt out.

Out of stock: to customers due to reorder

SUBJECT   A Heads-Up About Your [Product]
PREVIEW   it's out until around [date]. here are your options.

[First name], you usually reorder [product] about now, and we've
run out. The next batch arrives around [date]. It's out because
[honest one-line reason: demand was higher than we planned / our
supplier is late].

Three options:
1. Get a reminder the day it's back: [link]
2. Try [named alternative], which [one line on why it's close]: [link]
3. [If you have stock of a larger size or bundle] Get it in the
   [size/bundle] we still have: [link]

[Name], [Brand]

[Unsubscribe link] · [Postal address]

Late order: the delay notice

SUBJECT   Your Order [Number] Will Ship Later Than We Said
PREVIEW   new date inside, and a one-click cancel if you'd rather.

[First name], we can't ship [product] by [original date] as
promised. Our new estimate is [revised date], because [reason].

If that works, you don't need to do anything.
If you'd rather cancel, click here for a full refund: [link]

We're sorry for the wait.
[Name], [Brand]

Send before the original date passes. The FTC’s Mail, Internet, or Telephone Order Merchandise Rule sets when you need the customer’s consent and when silence is enough; have counsel map your cases to it.

Discontinuation: to dependents, day minus 60

SUBJECT   We're Retiring [Product], and You're the First to Know
PREVIEW   the last day to order, a way to stock up, and what we'd try next.

[First name], you've ordered [product] [n] times, so I wanted you
to hear this from me before we tell anyone else.

We're retiring [product] on [date]. The honest reason: [reason].

What that means for you:
- You can order it until [date], up to [cap] units: [link]
- We think [replacement] is the closest match, because [reason].
  We're putting a free sample in your next order so you can try
  it while you still have [product].
- If you subscribe, we'll ask before changing anything.

If you have questions, reply to this email. It comes to me.

[Founder name], [Brand]

[Unsubscribe link] · [Postal address]

Discontinuation: last-chance SMS, day minus 3

[Brand]: 3 days left to order [product] before we retire it.
Stock up (up to [cap]) or try [replacement]: [link]
Reply STOP to opt out.

Reformulation: before it ships

SUBJECT   We're Changing [Product]. Here's Exactly What's Different
PREVIEW   what changes, what doesn't, and a sample before it's yours.

[First name], starting with orders after [date], [product] will
[specific change: a new supplier for X / a lighter scent / a new
fit through the waist].

What stays the same: [the things they chose it for].
Why we changed it: [honest reason].
What you'll notice: [texture / smell / taste / fit, plainly].

Your next order includes a sample of the new version. If it isn't
right for you, reply and tell us. To stock up on the current
version while it lasts: [link], up to [cap] units.

[Name], [Brand]

[Unsubscribe link] · [Postal address]

The replacement test question

SENT      7 days after the free sample arrives, to the test group only
QUESTION  "If [original] were no longer available, would you reorder
           [replacement] instead?"
           Yes / Maybe / No
FOLLOW-UP "What would it need to be closer to what you use now?"
READ      Share of Yes among core dependents. Under half: find a
          better replacement before announcing.

The product change brief

PRODUCT            name, SKU(s):
CHANGE             stockout / retirement / reformulation / cut / merge:
DATE               last day of the old version:
WHY                one line:
BUYERS, 12 MONTHS  total:        dependents:        core:
REVENUE AT RISK    from the tool in chapter 7, no plan / with plan:
REPLACEMENT        product, and test result (share of Yes):
LAST BUY           units, from dependents' usage:
MESSAGES           dates for notice, sample, reminders, subscriptions:
ROLLBACK LINE      the dependents' 90-day ordering rate that would
                   make us reverse or extend:
OWNERS             operations:            retention:
READ ON            day 30 / 60 / 90 dates:
Appendix C

SOURCES

Every external source, by chapter. Web sources were read in September 2026.

Stockouts (chapters 2 to 4)

Inventory and overstock (chapters 5, 6)

Discontinuation and reformulation (chapters 7 to 9)

Pruning and choice (chapters 10 to 12)