Why one category figure can't set your send day
If you sell consumables, you need to decide when to send a replenishment email: how many days after the order the reminder should go out. The obvious move is to look up your category's interval and use it. That falls apart once you see how far those intervals swing depending on how they were measured.
Consultancy eightx publishes two tables for overlapping categories, and they do not line up. In one, the median time from a first order to a second is 15 to 27 days for beauty and skincare. In the other, the median gap between consecutive orders for beauty and skincare is 75 days, in a range of 60 to 120. Both cover the same category, and they are far apart. They answer different questions, and that gap is the whole problem. eightx also says order gaps skew right, so a handful of once-a-year buyers pull any average up.
Neither table is a clean measurement. For the between-orders table, eightx says no public report gives a clean table of days between orders by category, and that its midpoints are estimates it synthesized from other inputs. It calls the second-purchase bands working benchmarks and says its source doesn't disclose the sample mix by category.
A search for an independent, measured benchmark of replenishment send days by category found none. Every per-category figure traced back to an email platform, an agency or a consultancy, and all of them sell something. So don't borrow a number. Work it out from your own orders, product by product.
For the flow itself (triggers, suppression, follow-ups and the holdout), see the replenishment email flow post.
What to base the send day on, by product type
The useful part of what vendors say about replenishment email timing by product type is what to base the number on. The number itself matters less. Omnisend's blog names a different signal for each category:
- Supplements: expected supply duration, or the previous reorder interval.
- Pet food: pack size, purchase frequency and past orders.
- Beauty and skincare: individual reorder history.
- Filters and replacement parts: expected product lifespan, or the previous purchase date.
Omnisend sells the platform it's describing, so read this as one vendor's view. The idea shows up elsewhere too. Klaviyo, another vendor, tells you to set the delay based on how long customers take to consume the product, and its help center recommends a separate flow for each replenishment cycle. Omnisend's help center says to create separate workflows for each product type or collection.
One profile-level date can't do this job. Klaviyo's help center says its Expected Date of Next Order doesn't consider which products the customer ordered. If your products run on different cycles, the send day has to be set per product.
A method for working it out from your own orders
None of these sources lays out the whole method, and they disagree on a few choices, which come up below. Pieced together, though, they give you these steps.
- Work per product. Not per store, not per order. A bottle of vitamins and a bag of dog food each get their own calculation.
- Use repeat buyers only, and decide which gap to measure. One order means no gap to measure, so skip those customers. For each repeat buyer, take the number of days between their purchases of the same product. The sources split on which gap that is, the same split behind the eightx contrast above. Growth Rocket takes the gap between first and second purchase dates for repeat buyers on a given SKU. A 2018 walkthrough does the same in a spreadsheet built from a Shopify customer export: first and second order dates for each repeat customer, then the difference. That walkthrough works across all of a store's orders, so to use it for one product you'd filter the export to that product first. RetentionX, which sells software that runs this calculation, measures the median number of days before the same customer repurchases, per SKU, product, category or brand. The choice is between the first repeat only and every consecutive repeat, and they give different answers. Pick one, write down which, and don't mix them.
- Pick one clock and use it throughout. This one is reasoning from how the platforms work, not a sourced practice. Omnisend starts its clock at Order Fulfilled, when the item ships. Klaviyo's blog starts from the Placed Order event. If you measure gaps between order dates but the flow counts from the ship date, the two differ by the fulfillment time. Measure the gap on the same clock the flow uses.
- Choose average or median, and remove the outliers. Both are covered next.
- Subtract a buffer and test it. Covered below.
- Recalculate. Growth Rocket advises recalculating cycle data quarterly. Klaviyo says to keep checking the estimate to keep the emails timely.
A product with no repeat buyers yet has no gaps to measure. Base its first delay on how long the product should last. Klaviyo's guidance is to set the delay on how long customers take to consume the product, and Omnisend's signals for supplements and filters are expected supply duration and expected product lifespan. The replenishment email flow post covers moving from a fixed interval to a predictive one as order history builds.
Average or median
Here the sources split. Growth Rocket takes the average and does not mention the median. RetentionX uses the median. eightx uses the median on purpose, since order gaps skew right and a few infrequent buyers drag the average up. Klaviyo's predictive model is named Average Time Between Orders.
No source settles it, so don't treat it as settled. Pick one, write down which, and stick with it every time you recalculate. Otherwise the send day can move because the arithmetic changed, and the customers did nothing.
Outliers and stock-up buyers
Someone who bought a year's supply in one order will skew the numbers for everyone. Growth Rocket pulls deal-hunting stock-up buyers out of the baseline using cohort analysis. For its client, the 2018 walkthrough kept only customers who reordered within 90 to 180 days. RetentionX says anyone past 250 days without a repurchase may be out of scope or need a different approach, which is its example, not a rule.
None of these gives a cut-off that carries over to another store. It's a judgment call, so make it on purpose and write it down with the calculation. If a product comes in different pack sizes or quantities, split the data by size or quantity when you measure. Growth Rocket says to segment by quantity purchased, since a customer who bought two units at once has a longer replenishment cycle than one who bought one, and Omnisend's help center describes a conditional split on purchase quantity. Omnisend also lists pack size as a signal for pet food.
Turning the cycle into a send day
The reminder has to land before the customer runs out, with a little room for shipping. Omnisend's advice is to schedule reminders a few days before customers typically run out. The sources are loose about how many.
- Growth Rocket says to subtract five to seven days from the average cycle for each SKU.
- RetentionX says to send reorder reminders just before the median day when people typically run out.
Even inside one source the offset moves around. Growth Rocket's skincare example, a 30-day cycle, sends the first email on day 22, eight days before the cycle ends. None of the sources got its offset from data. Treat any of them as a starting point to test, never as an answer, and check the results against a holdout, as covered in the replenishment email flow post, which also has vendor example delays by category.
One more idea comes from the spread of gaps. A single number hides how much customers differ. An early send for faster reorderers and a later one for slower reorderers is worth testing. Still, it's an idea to test, not an established practice.
Where Tarsus fits
Tarsus Growth Company's Retain is its ecommerce work after the first order, and replenishment journeys are part of that work.

