Email a skincare customer about a week before their product runs out. Work out the run-out date as the order date plus the number of days the pack lasts at normal use, which comes from pack size divided by daily usage. AI helps by turning your order export into a per-product timing table you can load into your email tool.
Most refill-email advice stops at "send it after 30 days". That works only if every product lasts 30 days. A 15 ml eye cream used morning and night can last four months, while a 250 ml body wash may last six weeks. Timing from the actual pack and the actual customer gives you reminders that arrive when the bottle is nearly empty, which is the one moment the message is useful rather than annoying.
The method rests on four parts: a usage-rate table for each product, a check of what your own order history says about real reorder gaps, a flow in Klaviyo (the email and SMS tool many online stores use), and a test group that proves the timing before it goes to everyone.
Why refill timing depends on the pack, not the calendar
A replenishment email has one job: reach the customer when they are thinking about running out. Too early and it feels pushy, because they still have weeks left. Too late and they have already bought something from somewhere else, or gone without and decided the routine is not worth it.
Three things set the right moment.
- Pack size. Millilitres or grams in the container.
- Dose per use. A pea-sized amount of cleanser, two pumps of serum, a coin-sized dab of moisturiser. Your instructions on the box usually say.
- Frequency. Twice daily, once at night, three evenings a week.
From these you get days of supply. Then you subtract a buffer so the email arrives before the customer runs out, and so the order can be delivered in time. The buffer is delivery time plus a few days to decide.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowStep one: build a days-of-supply table for every product
Start with the products that make up most of your repeat revenue. For a small brand that is often three to eight items. For each one you need an honest estimate of how long a pack lasts.
Do not guess from the label. Better sources are, in order of reliability: your own test (weigh a bottle before and after a month of normal use), a quick customer survey asking "how long did your first bottle last?", and your own order gaps, covered in step three. If you have no data at all, ask the AI to propose a first estimate and then treat it as a hypothesis to test.
I run a skincare brand. For each product below, estimate how many days one pack lasts for a typical customer, using the pack size and the directions I give. Show your sum. Give a low, typical and high figure, and say what assumption drives the range. Do not invent studies.
1. Gentle cleanser, 150 ml, pump dispenser, directions: one to two pumps (about 1.5 ml per pump), morning and evening.
2. Vitamin C serum, 30 ml, dropper, directions: 4 to 6 drops (about 0.25 ml) each morning.
3. Barrier cream, 50 ml, jar, directions: pea to coin-sized amount (about 1 ml), morning and evening.
4. Eye cream, 15 ml, tube, directions: a rice-grain amount (about 0.15 ml), each evening.
Here is the kind of answer you can expect. Figures are illustrative, and your own test should replace them.
| Product | Pack | Use per day | Low | Typical | High |
|---|---|---|---|---|---|
| Gentle cleanser | 150 ml | 1.5 to 6 ml (one or two pumps, once or twice a day) | 25 days | 50 days | 100 days |
| Vitamin C serum | 30 ml | 0.2 to 0.35 ml (typical 0.3) | 85 days | 100 days | 150 days |
| Barrier cream | 50 ml | 0.7 to 3 ml (once or twice a day) | 17 days | 35 days | 70 days |
| Eye cream | 15 ml | 0.12 to 0.21 ml (typical 0.15) | 70 days | 100 days | 125 days |
The spread between low and high is the real finding. A typical-day figure of 50 days for a cleanser hides the fact that a heavy user finishes in 25 days. If you email everyone at day 42, you reach the heavy user too late and the light user far too early.
The arithmetic is simple enough to do yourself in a spreadsheet, and it is worth checking the AI's sums, because models sometimes slip on unit conversions. For the cleanser: 150 ml divided by (2 uses × 3 ml) is 25 days at the heavy end; divided by (2 × 1.5) is 50 days at the typical end; and one pump a day (1.5 ml) stretches it to 100 days at the light end. For general guidance on why you should verify AI arithmetic, see why AI is bad at maths.
Step two: set a reminder date from the supply table
For each product, choose a trigger day. A reasonable starting rule is the typical days-of-supply, minus a buffer of 7 to 10 days.
- Cleanser: 50 days minus 8 = send on day 42.
- Vitamin C serum: 100 minus 8 = day 92.
- Barrier cream: 35 minus 8 = day 27.
- Eye cream: 100 minus 8 = day 92.
Counting from the delivery date is more accurate than counting from the order date, because the customer starts using the product when it arrives. If your store only records the order date, add your typical delivery time to the buffer. Four days of shipping, for instance, means moving the trigger four days later.
Be wary of treating the typical figure as truth. It is a first version. The following steps tell you whether it was right.
Step three: ask your own order history how long people really wait
Your orders already contain the answer. For every customer who bought the same product twice, the gap between the two orders is a real reorder interval. Group those gaps by product and you can see how people behave, not how you assume they behave.
Export orders from your store as a CSV with these columns: customer ID or email, order date, product name, quantity. Remove anything you do not need, particularly names, addresses and phone numbers. If you are using a consumer AI plan, check its data settings first, and consider pseudonymising customer emails to numbers. A business plan, which does not train on your content by default, is safer for customer data.
This is a CSV of skincare orders. Columns: customer_id, order_date, product, quantity.
For each product:
1. Find every customer who bought it more than once.
2. Calculate the days between each of their consecutive orders of that product.
3. Report the number of repeat gaps, the median gap, and the 25th and 75th percentile.
4. Flag any product with fewer than 20 repeat gaps as "too little data".
5. Say how many customers bought quantity 2 or more, because a larger quantity stretches the gap.
Give the result as a table. Show your method in two lines. Do not guess missing values.
If your file is big, ask the AI to give you the spreadsheet formulas or a pivot-table recipe instead of calculating directly. That way the numbers come from Excel rather than from the model's reading of a long file, which is more reliable. The guide to using ChatGPT with Excel shows how to do that.
Reading the result: an illustration
Say the analysis returns this for a small brand with about 1,800 orders a year. Figures are illustrative.
| Product | Repeat gaps | Median gap | 25th to 75th percentile | Planned trigger |
|---|---|---|---|---|
| Gentle cleanser | 212 | 58 days | 44 to 81 days | Day 42 |
| Vitamin C serum | 96 | 74 days | 55 to 110 days | Day 92 |
| Barrier cream | 140 | 47 days | 34 to 70 days | Day 27 |
| Eye cream | 14 | not enough data | - | Day 92 |
Read this carefully. For the cleanser and the barrier cream, the median gap is longer than the supply estimate. That is normal: customers rarely reorder the day they run out. They finish the bottle, stretch it with the last scrapings, or wait for a promotion. The median gap measures when people buy, not when they run out, and the two are not the same.
For the cleanser, the median gap (58 days) is eight days later than the typical supply (50 days). The planned trigger of day 42 sits just before the 25th percentile of the real gaps (44 days), which means about three-quarters of repeat buyers will receive the email before they would have reordered by themselves. That is what you want: a nudge ahead of the natural moment, not one that arrives after it.
The serum shows the opposite problem: the supply estimate is 100 days but the median gap is 74. Customers are using it faster than the label directions suggest, perhaps with more drops, or on neck and chest as well as the face. Move the trigger earlier, to around day 62 to 66, and treat the usage assumption in your table as wrong.
The barrier cream needs the opposite correction. Its trigger at day 27 lands a full week before even the 25th percentile (34 days), so most customers would hear from you while the jar is still well used but far from empty. Try day 32 to 34 in the test instead.
The eye cream has only 14 repeat gaps, so the data is thin. Keep your supply-based estimate and revisit it when you have 30 or more repeat orders.
Step four: handle the awkward cases in the data
Order data is untidy. Five situations distort your gaps, and each has a simple fix.
Bundles and multi-packs
A customer who buys two cleansers has twice the supply. Divide the gap by the quantity or, more simply, treat quantity two as its own group with its own trigger (roughly double the single-pack timing). Check how many orders are multi-packs; if it is under 10%, ignore it in the first version.
Gifts
A first order bought as a gift for someone else produces no reorder, or a reorder at an odd time. If your checkout has a gift flag, exclude those orders from the gap analysis and from the flow.
Discount-driven orders
Customers who stock up during a sale have long gaps afterwards. If you can, mark orders placed during promotions and look at the median for non-promotional orders. A flow built on sale-period behaviour will fire too late for everyone else.
Subscriptions already in place
Do not send a refill reminder to someone with an active subscription for that product. Add a flow filter that excludes them, or the reminder will confuse them and may trigger a cancellation.
Refunds and returns
A returned order is not a purchase. Strip those rows before you calculate anything, or you will count a customer who never used the product as a repeat buyer.
Step five: build the flow in Klaviyo
Klaviyo offers two ways to time reminders, and for skincare I would start with the second.
Predicted date. Klaviyo can calculate an "expected date of next order" for each profile and use it as a date-based trigger. Its help article explains that the prediction draws on the individual's order history and on how all your customers behave, and that it does not consider which products were ordered. That makes it a poor fit when products last very different lengths of time. It also says that counting down to the date for repeat customers can mean the same emails reach them before every order, and suggests limiting it to one-time buyers if many customers buy repeatedly.
Placed Order trigger with product filters and delays. The same article points to separate flows triggered by a placed order, with trigger filters for a product and a time delay, for products with known replenishment cycles. This is the right approach for skincare. You build one small flow per product (or per group of products with similar timing), each using the days-of-supply figures from your table.
A product-specific flow looks like this:
- Trigger: Placed Order.
- Trigger filter: items include the product (for example the vitamin C serum, 30 ml). Add a condition for quantity if you handle multi-packs separately.
- Flow filter: exclude profiles with an active subscription, and profiles who have placed a later order for the same product.
- Time delay: the planned trigger in days (for the serum, about 64 days from the order after the step-three correction, adjusted for delivery).
- Conditional split: has the customer placed another order containing this product since the flow started? If yes, exit.
- Email 1: the refill reminder.
- Time delay: 7 days.
- Conditional split again, same check.
- Email 2: a short follow-up, with a different angle.
The conditional splits matter. Without them, someone who reordered on day 38 still gets a reminder on day 42, which looks careless.
Klaviyo prices by the number of profiles you hold. Its pricing page lists a free plan for up to 250 profiles and 500 emails a month; paid email plans are priced through a calculator on the same page, so enter your own list size there rather than relying on a figure quoted elsewhere, and note that some visitors are shown a local currency.
Klaviyo's AI marketing agent, Composer, can help draft the flow structure and copy. Its help article on Composer plans describes a free allowance of 500 credits a cycle and a $20-a-month plan with 2,000 credits, with top-ups in $10 blocks of 1,000 credits if you switch on flexible overages. The details change, so confirm them in your account before relying on it.
Step six: write the emails with AI, then check the wording
The refill email should be short, specific and easy to act on. Give the AI the facts it needs, and keep its claims modest.
Write a refill reminder email for a skincare brand. Product: vitamin C serum, 30 ml. Customer bought it about 64 days ago. Tone: warm, brief, no pressure, no emojis.
Rules: no medical claims; do not promise results; do not say "running out" unless it is a soft guess ("you may be getting low"). Include one line making reordering easy (a single button) and one line about delivery time (3 to 5 working days).
Give me three subject lines under 45 characters and a body under 90 words. Use [first name] as the merge tag.
An illustrative result:
Subject options:
1. Your serum may be getting low
2. Ready for the next bottle?
3. A quick refill reminder
Hi [first name],
Your vitamin C serum was delivered about two months ago, so the bottle may be getting low. If you would like to keep your morning routine going, you can reorder in one click below. Delivery takes 3 to 5 working days, so ordering now means no gap.
[Reorder my serum]
Thanks for choosing us,
[your name]
What would you fix? "Two months ago" is a fixed phrase that will be wrong for anyone whose order triggered at a different delay, so use a dynamic field or remove it. "Keep your morning routine going" is fine, because it describes a habit, not a result. Run the draft through the same checks you would use for any skincare copy; the claims-check routine for AI skincare copy covers the banned words and evidence file.
The second email
The follow-up should not repeat the first. Vary the angle: mention the order is saved in their account, remind them of the product's use, or offer a small, honest incentive if your margins allow. Keep it to a few lines. If you send a discount, decide in advance whether to give one only to the second email, since customers who learn that waiting gets them a code will wait.
Step seven: test the timing with a split group
You now have a planned trigger day. Do not roll it out blind. Test it on a group, and judge it with a number.
Klaviyo has no built-in A/B test for a time delay. Its help centre describes the workaround instead: put a split set to a random sample before the delay, give each path its own delay, and keep the messages identical so timing is the only difference. A multi-branch split lets you weight each path by percentage, which is what a three-group test needs. A simple design for a product with at least a few hundred orders a quarter:
- Group A (about 40%): trigger at your planned day, say day 42 for the cleanser.
- Group B (about 40%): trigger 10 days later, day 52.
- Group C (about 20%): holdout, no reminder at all.
The holdout is the part most brands skip, and it is the most important. Without it you cannot tell whether the reminders caused reorders or only arrived before orders that would have happened anyway. Compare the reorder rate within, say, 21 days of the trigger point, and also total reorder revenue per customer in the group, rather than only opens and clicks.
How long to wait depends on the product. For a 42-day trigger, check the result 30 to 45 days after the last customer enters the test. For a 90-day product, you will need several months, which is why starting with fast-moving items makes sense.
A quick sum to judge the result
Say 750 customers enter the test: 300 in each timed group and 150 in the holdout. Results after 30 days, illustrative:
| Group | Customers | Reordered in 30 days | Rate |
|---|---|---|---|
| A: day 42 | 300 | 66 | 22% |
| B: day 52 | 300 | 51 | 17% |
| C: no email | 150 | 21 | 14% |
The reminder lifts reorders by 8 percentage points over the holdout (22% against 14%), and the earlier send beats the later one by 5 points. With groups this small the gap between A and B could be chance, so treat it as a lean, not a verdict. A difference needs to be sizeable and repeat across a second round before you move the timing. If groups differ by only a point or two, keep the simpler setting and spend your effort elsewhere.
Five scenarios to test your thinking against
A brand with only one hero product
A single 100 ml body oil with a median gap of 70 days. One flow is enough: trigger at day 56, follow-up at day 63, exit if reordered. Add a split by quantity if people often buy two.
A starter kit
A kit with a 30 ml cleanser, 15 ml serum and 15 ml moisturiser, sold as a trial. The kit's components run out at different times, so a single reminder is wrong. Send a reminder for the first item to run out, and offer full-size versions of all three in the same message, since the trial sizes will all be nearly done.
A seasonal product
A heavy winter balm bought in October and unused in July. Gaps for this product measure the season, not the pack. Suppress the flow during the months when demand falls and restart it ahead of the season with a "back by popular demand" message instead.
A mistake: a flow that emails people who just reordered
A brand launches its flow without the "has placed another order since" check. A week later, customer service receives several replies saying "I literally ordered yesterday". The cause was the flow reading only the first order. Fix it by adding the exit split before each email, and look at the flow's skipped and sent counts in the first week.
A product with slow data
A new eye cream has 14 repeat gaps. Keep the supply-based estimate, add a short survey email at day 30 asking how much is left ("about half", "nearly gone", "plenty left"), and use the answers to correct the timing. Customers' answers are quick to gather and surprisingly useful.
Keep an eye on three numbers once it is live
After launch, watch the reorder rate against the holdout, the unsubscribe rate on the refill emails, and the share of reminders that go to people who had already reordered. Unsubscribes above those on your other emails suggest the timing is too early or too frequent. A high share of already-reordered recipients means your exit checks are leaking.
Refresh the gap analysis every quarter, because usage changes with seasons, reformulations and pack sizes. When you launch a new size, treat it as a new product with a new row in the table. If you want to try the whole thing quietly first, piloting in shadow mode shows how to run it without customers seeing anything. For a close cousin of this flow, abandoned cart emails for a small store uses the same trigger-and-exit logic.
One boundary on AI: use it for the arithmetic checks, the pattern-spotting and the drafting. Do not rely on it to recall your products' real usage rates or Klaviyo's current screens. Verify product directions against your own box, and confirm settings in your own account, since tool menus change.
Refill reminder questions from skincare brands
Should I send a refill email to everyone on the same day?
No. Time it from each order, not from a calendar date. A customer who bought a 30 ml serum last Tuesday needs a different date from one who bought a 100 ml cleanser last month. Same-day blasts hit some people too early and others too late, and the early ones learn to ignore you.
How many reminders are too many?
One reminder before the product runs out and one gentle follow-up a week or so later is a sensible ceiling for most products. After that, stop the flow for that order. If the customer still has not reordered, move them to a normal win-back path rather than repeating the refill message.
Does Klaviyo work out the refill date for me?
Klaviyo can predict an expected date of next order per customer, but its help article says the prediction does not consider which products were bought. For skincare, where a 15 ml eye cream and a 200 ml body lotion last very differently, you will usually want product-specific timing instead.
What if a customer buys several products at once?
Time each product separately, but combine messages when dates fall within a few days of each other. Someone who bought a cleanser, serum and moisturiser together might run out of two in the same week. One email listing both refills is better than two emails on consecutive days.
Can I use AI to write the refill emails as well?
Yes, and it is a good use. Give it the product, the usage rate and your tone, and ask for two or three subject lines and a short body. Keep claims plain and check every sentence against your approved wording, as you would for any skincare copy.
Further reads
- How Barbers Can Win Back Lapsed Clients With Automated Messages — Win-back messages for customers who have drifted away.
- How to Write Shopify Product Descriptions With AI That Convert — Product pages are where reminders send people back to.
- How Much Does It Cost to Add AI to a Shopify Store? — What adding AI to a store actually costs.
- AI for Printing Business Repeat Orders: Reminders and Re-Quote Emails — Repeat-order timing from a different industry.
- AI Service Reminders That Bring Garage Customers Back — Reminder timing from service history, in another trade.
- AI Service Plan Reminders for Heating and Cooling Customers — Another repeat-reminder flow built from past orders.
- Octane AI Pricing for Skincare Quizzes: Credits, Plans, Payback — What a skincare quiz costs on Octane AI once credits, overage and AI features are counted, and how many extra orders it needs to pay back.
- AI for Beauty Brands: Product Copy, Photos and Customer Questions — A worked product page for a small beauty brand: AI drafts the copy, photos and replies, and a claims check keeps every line provable.
- AI for Cosmetic Formulation: What It Can Draft and a Chemist Must Check — What AI can draft for a small cosmetics brand (briefs, ingredient lists, batch sheets) and what a qualified chemist or safety assessor must still check.
- DTF Printing Business: Price Transfers, Gang Sheets and Reorders With AI — Work out cost per foot of a DTF gang sheet, set length-based prices with margins, and automate the quote and reorder emails.
- INCI Ingredient List Check With AI: Names, Not Safety Sign-Off — A checklist for indie skincare brands: what AI can check on an INCI list, what it cannot, and what to give your safety assessor.
- Shopify RFM Analysis: Segment Customers With ChatGPT From an Export — Score customers on recency, frequency and spend from a Shopify export, then write one email per segment, keeping personal data minimal.
- Can AI Write a Cosmetic Safety Report? What an Assessor Signs — What AI can prepare for a cosmetic product safety report, what only a qualified assessor can sign, and how to brief one so the job goes faster.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Klaviyo Help Center articles on Expected Date of Next Order, on what to A/B test in flows and on how the Composer plan works; the Klaviyo pricing page; and the vendor documentation for ChatGPT and Claude file uploads.