Home / Blog / Klaviyo flows
Klaviyo flows

Shopify replenishment email timing: how to send the reorder reminder right before they run out

A replenishment email sent a week too early is spam. A week too late, they’ve bought from someone else. Here’s how to find the right day for every product from the orders you already have.

By Surendar KumarUpdated Oct 30, 20268 min read
TL;DR
  • Shopify replenishment email timing should be set per product, from how long it lasts and how long your customers actually wait to reorder. One store-wide “day 30” is a guess.
  • Klaviyo’s example: a 30-day supplement gets its reminder around day 20–25, so there’s time to order and receive it before running out.
  • Use the median days between reorders, not the average. A few slow buyers drag the average late.
  • Send 2 reminders, then 1 follow-up after the cycle has passed. Klaviyo suggests saving the incentive for that last one.
  • Filter out anyone who already reordered that product, then measure with the repeat purchase rate calculator.

Get Shopify replenishment email timing right and you have the most welcome email you’ll ever send: “running low? Here’s one click to reorder.” Get it wrong and it’s just another promo in a crowded inbox.

The fix is simple. Stop picking one delay for the whole store. Work out each product’s real reorder window from your order history, then send a little before it. Klaviyo’s own replenishment guide uses the same logic: a 30-day supplement gets its reminder around day 25.

Tricks first, then the timing formula, a cheat sheet and the exact Klaviyo build.

Repeat Purchase Rate CalculatorFind out how many customers come back today, then see what a well-timed reorder reminder could add.Run my numbers →

6 tricks for Shopify replenishment email timing

1. One flow per use time, not one per store

Mascara and foundation don’t run out on the same day. Klaviyo’s replenishment blog uses that exact example. Group products by how long they last (2 weeks, 1 month, 3 months) and give each group its own delay.

2. Use the median, not the average

Averages lie here — the same trap shows up in the time to second purchase ecommerce benchmark. A few customers who stocked up, or forgot for six months, push the average later. Repeat’s help docs show an example face wash with a median of 74 days but a mean of 94. Time to the average and you’d send three weeks late for most people.

3. Pull the reminder in before runout

The email has to arrive while they still have some left, with time to order and get the delivery. Klaviyo’s blog sets a 30-day supply at 20–25 days. Its seltzer example: if customers go through a 24-pack in about 10 weeks, set the delay to 9.

4. Adjust for pack size

A 3-month bundle shouldn’t get a 30-day reminder. Multiply the per-unit window by the quantity they bought, or split the flow by variant.

5. Suppress anyone who already reordered

Klaviyo’s filter is Placed Order zero times since starting this flow, limited to that product. Without it, you’re thanking loyal customers with a nag. Also exclude active subscription customers if you run Recharge or similar.

6. Save the discount for the last email

Klaviyo’s rule of thumb: two reminders, then a follow-up after the buying cycle has passed with an extra incentive. Most people who are going to reorder don’t need a coupon to do it. Protect your margin with the profit margin calculator before you pick a number.

How to find each product’s reorder window

You already have the data. Here’s the spreadsheet method:

  1. Export orders from Shopify admin for the last 12 months or more, if you have them.
  2. Keep repeat buyers only: customers who bought the same product (or SKU) at least twice.
  3. Calculate the gap in days between each pair of consecutive orders of that product.
  4. Take the median gap per product. Also note the 25th percentile, the point where your fastest quarter of buyers reorders.
  5. Sanity-check volume. A median from 5 repeat orders is noise. Group similar products until you have a decent number of gaps.

Because you’re measuring order date to order date, shipping time is already baked in. If instead you start from the label (“30 servings”), add your normal delivery time.

No volume yet? Start from use time, then replace the guess with real data after a few months. If you have Klaviyo’s predictive analytics, its average time between orders is another input Klaviyo suggests.

The send-day formula

Reorder window (W) = median days between repeat orders of that product Email 1 = W − (days to ship + a few days of buffer) Email 2 = about W, only if they haven’t reordered Email 3 = after W has clearly passed, with the incentive Pack of N units → use N × the single-unit window

Then compare: if your 25th percentile is far below the median, some customers run out much faster. Consider sending email 1 nearer the 25th percentile for that product, and let the suppression filter catch the ones who already bought.

Timing cheat sheet by product type

Starting points only. Your own order data beats this table every time.

How long it lastsTypical examplesEmail 1Email 2Email 3 (incentive)
About 2 weeksCoffee beans, fresh pet treatsDay 9–11Day 14–16Day 21+
About 30 daysDaily supplements, contact solutionDay 20–25Day 30Day 40+
About 60 daysShampoo, skincare serumsDay 45–52Day 60Day 75+
About 90 daysRazor refills, filters, bulk packsDay 70–80Day 90Day 110+

The 30-day row follows Klaviyo’s published supplement example. The other rows apply the same logic, roughly 70–85% of the cycle for email 1, and are my working defaults, not benchmarks.

Worked examples

Worked example · supplement · illustrative numbers

A Shopify store sells a 60-capsule supplement, 2 a day. The label says 30 days. Orders take about 4 days to arrive.

  • From the label: 30 − 4 days shipping − 2 days buffer = email 1 on day 24. That lands inside Klaviyo’s 20–25 day range.
  • After 6 months of orders, the store exports the data. The median gap between repeat orders is 38 days, not 30. People skip doses.
  • The store moves email 1 to about day 32, email 2 to day 38, and the discounted follow-up to about day 50.
Worked example · coffee with pack sizes · illustrative numbers

A coffee brand sells 250g and 1kg bags. The median gap for repeat buyers of the 250g bag is 16 days.

  • 250g: email 1 on day 12, email 2 on day 16.
  • 1kg is four times the coffee, so the window is roughly 4 × 16 = 64 days. Email 1 around day 55.
  • Sending the 1kg buyers a day-12 reminder would have been five reminders too many.

How to build it in Klaviyo

Klaviyo has pre-built replenishment templates for Shopify and BigCommerce. Go to Flows > Create Flow, then Browse by goal > Encourage repeat purchases, or search “replenishment”.

  1. Trigger: Placed Order, with a trigger filter like Items contains [product]. For stores where one order holds several products, Klaviyo’s community points out that Shopify also sends Ordered Product once per item, which makes product-level timing cleaner.
  2. Flow filter: Placed Order zero times since starting this flow, limited to that product. Klaviyo checks it again at every step.
  3. Time delay: your email 1 day. Use “delay until a specific time of day” so it lands at a sensible hour. Without it, Klaviyo counts each day as 24 hours from the order.
  4. Email 1, delay, email 2, delay, email 3. Klaviyo warns that a time delay must be followed by a live or manual action, or people skip it and exit.
  5. Go live: Review and turn on, set to Live.

What to put in each email

  • Email 1, the easy reorder: “Running low on [product]?” Product image, one button that goes straight to the product or a pre-filled cart. Mention your subscription option if you have one.
  • Email 2, the reminder: “Don’t run out.” A short usage tip or a review. Offer a bigger size if they keep reordering.
  • Email 3, the incentive: the only one with a discount, and it can double as a check-in: “Still using [product]?”

Count these sends in your overall schedule. Replenishment plus a weekly campaign plus a post-purchase flow adds up. Plan it in the email frequency planner.

How to tell if your timing is right

  • Lots of orders before email 1 sends? Your delay is too long, and the flow is taking credit for orders that would have happened anyway.
  • Most reorders land after email 3? Your delay is too short.
  • Watch days between orders before and after the flow goes live, and the share of customers who reorder at all. That’s your repeat purchase rate.
  • Hold out a group. Send nothing to a small random slice to see the real lift. My post on Klaviyo A/B test sample size shows how many people you need.

Customers who still don’t reorder after email 3 aren’t a replenishment problem anymore. Hand them to your Shopify win-back email flow. For the bigger picture, see how to increase repeat purchase rate on Shopify, and price what each returning customer is worth with the customer lifetime value calculator.

Want Inboxoo to set this up for you?

We build and run Klaviyo email & SMS retention for Shopify brands and get paid on results.

Chat on WhatsApp

Want to know the exact quotation? Contact now

Repeat Purchase Rate CalculatorRe-run your repeat purchase rate a few months after the flow goes live to see if the timing worked.Run my numbers →

FAQ

When should I send a replenishment email?

Shortly before the customer runs out, with enough time for them to order and receive the product. Klaviyo’s example for a supplement with a 30-day supply is a reminder about 20 to 25 days after the order. For products without a fixed use time, base it on the typical gap between repeat orders of that product.

How do I calculate the reorder window for a Shopify product?

Export your Shopify orders, find every customer who bought the same product at least twice, and work out the days between those orders. Take the median of those gaps for each product. If a product has only a handful of repeat orders, group it with similar products or start from its use time.

How many replenishment emails should I send?

Klaviyo’s rule of thumb is two reminder emails, then one follow-up after the projected buying cycle has passed, which can include an extra incentive like a discount. After that, let the customer move into your win-back flow.

Should a replenishment flow use Placed Order or Ordered Product?

Klaviyo’s help article builds it on Placed Order with a trigger filter for the product. Klaviyo’s community notes that Shopify also sends an Ordered Product event for every individual item, which makes product-level timing easier when one order contains several products.

How do I stop replenishment emails going to people who already reordered?

Add a profile filter for Placed Order zero times since starting this flow. Klaviyo says to limit it to orders for that product if the flow is product-specific, otherwise an unrelated purchase would stop the reminder.

Does order date or delivery date matter for timing?

If you measure the gap between two order dates, delivery time is already inside that number. If you start from how long the product lasts, add your usual shipping time so the reminder arrives before the last dose, not after it.

Want Inboxoo to set this up for you?

We build and run Klaviyo email & SMS retention for Shopify brands and get paid on results.

Chat on WhatsApp

Want to know the exact quotation? Contact now

Keep reading