Almost every consumable brand I look at has the same hole in the same place. The welcome series is built. The abandoned cart flow is running. There is a post-purchase sequence that fires three days after the order with a thank you and a cross-sell. And then nothing. The customer receives campaign emails alongside everyone else, and the single most predictable revenue event in the entire business, the moment they run out, passes without a word.
This matters more for consumables than for anything else, because consumption is a clock. A 60-serving supplement finishes at a roughly knowable date. A 200ml serum runs low on a schedule. A coffee subscriber gets to the bottom of the bag. You are not guessing at intent the way you are with an apparel customer. You are looking at a deadline you can calculate from your own order data, and the brands that calculate it capture the reorder at close to full margin while everyone else discounts their way back into a customer's inbox two months late.
This is the flow, the timing maths behind it, and the mistakes that make most replenishment sequences underperform.

Why replenishment converts when nothing else does
Published benchmarks put replenishment reminders at 8-15% conversion against 1-3% on a standard promotional campaign, with open rates commonly landing in the 40-60% band. The first time an operator sees those numbers the instinct is to assume the sample is flattering. It is not. The mechanism is straightforward and it has almost nothing to do with the email itself.
A promotional campaign asks someone to want something. A replenishment reminder arrives at a moment when the customer already has a decision to make. They are going to run out. They are going to either reorder from you, order from someone else, or stop using the product category entirely. Your email is not creating demand, it is claiming demand that already exists, at the precise point where the alternative is one search away.
That is also why the discount instinct is so damaging here. When you attach 15% off to a message the customer would have acted on regardless, you have not increased conversion by very much and you have permanently reduced the margin on your most efficient retention channel. Worse, you teach a repeat buyer that reordering is a discount event, and next cycle they will wait for the code.
Step one: find your real consumption window
Most brands set replenishment timing by looking at the label. Sixty servings, one a day, so send at day 60. That number is almost always wrong, because customers skip days, buy ahead of finishing, share the product, or take two servings when they remember. What you need is the observed gap, not the theoretical one. Here is how to get it.
Export repeat orders by SKU
In Shopify admin, export your full order history for the last 12-18 months with line item detail. Filter to customers who purchased the same SKU more than once. You want a table with three columns: customer ID, SKU, and order date. Anything under about 40 repeat pairs for a given SKU is too thin to draw a window from, so group slow-moving variants with their closest sibling product for now.
Calculate the median gap, not the mean
For every customer with two or more orders of the same SKU, calculate the days between consecutive orders. Take the median across the whole set. The mean is misleading here because a handful of customers who reorder after 400 days will pull it a long way out and push your send date past the point of usefulness. The median tells you when the typical customer actually comes back.
Trigger at 70-80% of that window
If the median gap on your flagship SKU is 68 days, your first reminder goes out at day 48 to 54. Sending at the median itself is too late: by then a meaningful share of your repeat buyers have already reordered, and the ones who have not are running on empty and may have already bought elsewhere. Landing a few days before the shortage is what makes the email read as helpful rather than as marketing.
Segment by pack size and product type
A 30-day pack and a 90-day pack are two different flows, not one flow with a variable delay you forgot to set. The same applies across categories: a daily oral supplement, a twice-weekly mask, and a topical serum will have three genuinely different rhythms. Build a separate branch per consumption profile. Three or four branches usually covers a whole catalogue, and the accuracy gain is worth far more than the extra hour of setup.
Recalculate every quarter
Consumption windows move. A formulation change, a new pack size, a shift in who is buying after a creative change on paid, all of it moves the median. Put a quarterly recalculation in the calendar and adjust the delays. Brands that set the flow once in year one and never revisit it are usually sending 10-20 days off by the time it matters.
Step two: build the flow in Klaviyo
The build is not complicated. What separates a flow that produces meaningful revenue from one that produces unsubscribes is the filter logic and the restraint in the copy. These are the six components.
Trigger and consumption branch
Trigger the flow on Placed Order. Immediately after the trigger, add a conditional split on the product or collection in the order so that each consumption profile routes to its own delay. If your catalogue is small you can trigger separate flows per product family instead, which is easier to maintain and easier to read in reporting.
Set the time delay to the 70-80% figure you calculated. Klaviyo handles this as a simple wait step, and the accuracy of that single number does more for flow performance than any copy decision you will make afterwards.
Exclusion filters that keep it honest
Before the first send, add flow filters to skip anyone who has placed an order containing the same SKU since the flow trigger, anyone with an active subscription, and anyone who has already received a replenishment email in the last 30 days. Without these you will email people who reordered last week, which is the fastest way to have a customer conclude your brand does not know who they are.
Add a global suppression for anyone currently in a win-back or heavy campaign sequence. Replenishment should be the only message in the inbox at that moment. Stacking it against a sitewide promotion dilutes both.
Email one: helpful, no discount
Send at 70-75% of the window. The job of this email is a single click back to the exact product, at the exact quantity, with as little navigation as possible. Use a dynamic product block filtered to the item they actually bought rather than a general product grid. The subject line should read like a reminder from a person, not a promotion: something along the lines of 'Running low on your magnesium?' rather than '20% off your favourites'.
No discount here. This message reaches customers who were going to reorder anyway, and every one of them you can convert at full price is margin you keep. Add one line of genuine utility if you have it, such as the reminder that consistency matters for the outcome they bought the product for.
Email two: the subscription conversation
Send at roughly 100% of the window, filtered to skip anyone who converted from email one. This is where subscribe and save belongs, because you are talking to somebody who has now demonstrated a genuine repeat consumption pattern and is about to buy the same thing manually for the second time.
Frame it as never having to think about this again rather than as a percentage saving. The saving matters, but the reason people subscribe to consumables is that running out is annoying. Lead with the annoyance you are removing, then support it with the number.
Email three: the last-chance message
Send at 120-130% of the window. This customer has now ignored two well-timed prompts and, statistically, has either run out and not replaced the product or replaced it with something else. This is the only message in the sequence that should carry an incentive, and even then a free shipping threshold or a gift with purchase usually outperforms a straight percentage off on margin.
Stop after this one. A fourth and fifth email past the consumption window do not recover meaningfully more revenue and reliably raise unsubscribe and spam complaint rates, which then costs you deliverability across your entire list.
SMS on the shortest windows only
For products with a consumption window under about 45 days, adding an SMS between email one and email two is usually worth it. Short-cycle consumables are habitual purchases and the reorder decision is made quickly, so channel immediacy has real value.
For anything with a window over 60 days, keep it to email. An SMS about a supplement two months after purchase reads as intrusive to a large share of recipients, and the opt-out cost on your SMS list is far higher than the incremental revenue.
The mistakes that make replenishment flows underperform
The most common failure is one flow for the whole catalogue. A brand sets a 60-day delay because that is roughly right for the hero SKU, then routes every product through it. The 30-day pack customers get reminded a month after they ran out and the 90-day customers get reminded while they still have a third of the tub left. Both messages feel wrong, and the flow reports a mediocre average that hides two separate timing failures.
The second is treating it as a promotional slot. Once someone notices the flow converts, the temptation is to attach the current campaign offer, add a second product, and turn a focused reorder prompt into a general newsletter. The performance falls immediately, because the thing that made it work was relevance to a specific need at a specific moment. Every additional product you add to that email reduces the probability of the one click you actually want.
The third is failing to exclude subscribers. Sending a reorder reminder to someone whose subscription ships automatically next week is a small thing that does real damage. It tells the customer that your systems do not talk to each other, and it is one of the more common triggers for a subscription cancellation review.
The fourth is measuring the flow on open rate. Judge it on revenue per recipient and on reorder capture rate, meaning the share of one-time buyers of that SKU who place a second order within 150% of the consumption window. Those two numbers tell you whether the timing is right. Open rate tells you whether the subject line was interesting, which is a much smaller question.
What this looks like in practice
A wellness brand I worked with had a strong first-purchase engine and a repeat purchase rate sitting under 20%, which for a daily-use supplement is a leak rather than a plateau. Their post-purchase flow ended eight days after the order. Nothing existed between day eight and the next campaign send.
The order export showed a median reorder gap of 71 days on the hero SKU and 34 days on the smaller trial size, two numbers nobody in the business had ever calculated. We built two branches, triggered at day 52 and day 25 respectively, with subscriber and recent purchaser exclusions and no discount on the first email. The subscription pitch moved to email two.
The interesting result was not the flow revenue in isolation, though it became one of the top three flows in the account within a quarter. It was that subscription starts rose noticeably, because the reminder was catching people at the only moment where subscribing is an obviously rational decision. The replenishment flow ended up being the best subscription acquisition asset in the business, which was not the reason we built it.
Inside the system
How we build this for brands
When we take on a consumable brand, the lifecycle work is built and deployed in Klaviyo by AI rather than by a person copying a template between accounts. The consumption windows come out of the brand's own Shopify order history, calculated per SKU rather than assumed, and the flows are written against those numbers. Welcome, replenishment, post-purchase and win-back all get built from the same view of how that specific customer base actually behaves, which is why the timing tends to be right on the first deployment instead of after two quarters of tuning.
Sitting alongside it is a VOC engine that mines reviews and support conversations for the language customers use about running out, about the results they were chasing, and about why they stopped, which is what the reminder copy is built from rather than from a writer's guess. A reporting agent then watches revenue per recipient and reorder capture rate weekly and flags when a consumption window has drifted. Part of this runs live for portfolio brands today; the full system is what we deploy when we take a brand on.
Klaviyo Audit
Find Out How Many Reorders Your Flows Are Missing
I will calculate your real consumption windows from your order data, map them against what your Klaviyo flows are currently doing, and show you the reorders falling through the gap. For most consumable brands this is the largest piece of unclaimed revenue in the account, and it is sitting behind timing rather than budget.
Book Your Klaviyo AuditFrequently asked questions
What is a replenishment flow in Klaviyo?
A replenishment flow is an automated email and SMS sequence triggered a set number of days after a customer buys a consumable product, timed to land shortly before they run out. It is triggered off the Placed Order metric with a time delay calculated from the product's real consumption window, then filtered so anyone who has already reordered or holds an active subscription is skipped. Unlike a post-purchase flow, which fires within days of the order and focuses on onboarding and cross-sell, a replenishment flow is patient. It waits weeks or months and does one job: capture the reorder at the moment the need is real.
How well do replenishment emails convert compared to normal campaigns?
Published benchmarks put replenishment reminders at roughly 8-15% conversion against 1-3% for a general promotional send, with open rates commonly in the 40-60% range. The gap is not clever copywriting. It is timing against real need. The recipient already bought the product, already knows whether they liked it, and is being contacted at the point where the jar is nearly empty. Very little marketing lands at a moment where the customer was going to have to make a decision anyway.
How do I calculate the right replenishment timing for my products?
Export your Shopify order history and, for every customer who bought the same SKU twice, calculate the number of days between the two orders. Take the median rather than the mean, because a small number of very late reorders will drag the average out. That median is your observed consumption window for that SKU. Trigger the reminder at roughly 70-80% of it. If your median reorder gap on a 60-serving supplement is 68 days, send at day 48-54. Do this per SKU, not per store: a daily supplement and a twice-weekly treatment product have completely different rhythms and one blended number will be wrong for both.
Does a replenishment flow cannibalise my subscription programme?
It should not, if you exclude active subscribers from the flow and use the sequence to sell the subscription rather than compete with it. The correct structure is to filter out anyone with an active subscription at the profile level, then position subscribe and save as the default option inside the reminder itself. A one-time buyer receiving a well-timed reorder prompt is the single warmest subscription prospect you have, because you are catching them at the exact moment they are about to repeat the purchase manually. Brands that run replenishment and subscription as competing programmes usually see both underperform.
How many emails should a replenishment sequence contain?
Three is the reliable structure for most consumable brands. The first lands at 70-75% of the consumption window and is purely helpful with no discount, giving a one-click path back to the exact SKU. The second lands at roughly 100% of the window and adds the subscription option and a reason to act. The third lands at 120-130% and is the last-chance message, which is the only one that should carry an incentive if you use one at all. Adding a fourth and fifth email rarely improves revenue and reliably increases unsubscribes, because past the point where they have run out you are no longer timing the message, you are just chasing.
Should replenishment reminders include a discount?
Not on the first message. Discounting a reminder the customer would have acted on anyway is the fastest way to turn a full-margin repeat order into a discounted one, and it trains buyers to wait for the code. Lead with convenience: the exact product they bought, one click, correct quantity, no browsing. Hold any incentive back for the final message in the sequence, where the customer has already ignored two prompts and the alternative is losing them to a competitor. On a brand doing meaningful repeat volume, moving the discount from email one to email three is often worth several points of blended margin on the retention channel.
Related reading
About the author
Caner Veli is a DTC operator who has helped 350+ brands fix broken growth engines. He built Liquiproof from zero to 3,000+ global retailers in under 6 years. He now runs the same playbook, supported by AI systems he built himself, for DTC and CPG brands.