Replenishment reminders: the right day is already in your order table
If you sell anything that runs out, the highest-return automation you can build is a reminder timed to when it actually runs out — computed per product, from your own repeat orders, rather than guessed at thirty days.
Coffee, skincare, supplements, pet food, filters, contact lenses, candles. If the thing is used up, the customer will buy it again from somebody, and the only question is whether they have to think about it. A reminder landing a few days before they run out converts at rates no campaign matches, because it is not persuasion — it is convenience.
Nearly every shop that builds one guesses the interval. Thirty days, because the pack says a month. The data almost never agrees.
Compute the interval per product, not per shop
For each product, take every customer who bought it more than once and collect the gaps between consecutive orders of that product. The median of those gaps is your interval. Not the mean — a few people who reordered after a year will drag the mean somewhere useless.
- Require a minimum sample. Under about thirty repeat pairs, the median is noise. Fall back to the category's interval, then the shop's.
- Recompute quarterly. Pack sizes change, customers change, and an interval set once in 2024 is now a guess with a spreadsheet behind it.
- Send a little early. Aim for 80–85 % of the median. Arriving after somebody has run out means they have already bought elsewhere.
When the distribution has two humps, split it
Plot the gaps for a product and you will often see two clusters rather than one: heavy users at three weeks, occasional users at three months. The median sits in the valley between them and is the one interval that is wrong for everybody.
When that happens, branch on quantity and history rather than averaging. Somebody who bought three units is on the heavy clock; somebody with one unit and one previous order at ninety days is on the slow one. Two intervals for one product is normal and it is not overengineering.
The message is a reorder button, not a campaign
- Name the product they bought, with the variant. "Your Oud Royale 50 ml" beats "time to restock".
- One button, straight to a filled cart. Every extra step loses a large share of a conversion you had already earned.
- Price from the shop, at send time. A reorder email quoting last quarter's price is a support ticket you wrote yourself.
- No discount. This is the one email where people are buying on convenience. Discounting it is pure margin given away.
- Offer the obvious upgrade once: the larger size, or a subscription, as a secondary line rather than the main call to action.
Suppress hard, or it becomes nagging
Replenishment is the flow most likely to go wrong quietly, because it fires on a schedule and nobody watches it.
- They already reordered — through any channel, including in person. Check at send time, not at flow entry.
- The product is out of stock. Reminding somebody to buy something unbuyable is worse than silence.
- The product was discontinued. Send the replacement or send nothing.
- They returned it. Obvious, routinely missed.
- One reminder per product per cycle, and a cap across all products so somebody with eight items does not get eight emails in a week.
If it works, the reminder is a stepping stone
A replenishment flow with a strong response rate is telling you something specific: a meaningful share of your customers would rather not think about this purchase at all. That is a subscription, and the flow is the cheapest possible test of whether one is worth building.
Run the reminders for a quarter, count the people who reorder the same product on a stable rhythm, and you have both the demand and the pricing evidence before writing a line of subscription code.
Sources and further reading (3)
- M3AAWG — Sender best common practices
- Google — Email sender guidelines
- WooCommerce — Product and order data in the REST API
Checked on 23 September 2026. Provider prices, mailbox rules and legal guidance change — verify anything you plan to act on.
Reminders timed to your real reorder gaps
Auralata reads every order and line item from WooCommerce, so the reorder interval is the median gap for that product in your shop — and stock and returns suppress the send at the last moment.