
If you run a Shopify brand in consumer packaged goods (CPG), such as skincare, supplements, coffee, pet food, or personal care, the second order matters more than the first. Acquisition gets the customer through the door. Repeat purchases are where the business makes money.
Yet most CPG brands capture only part of the repeat revenue their customers are ready to give. Customers don’t stop loving the product. Brands lose them in the quiet stretch between orders: the weeks when the product is being used up, the brand says nothing useful, and the customer’s next purchase is up for grabs.
This guide breaks down where that revenue goes, how to estimate the gap for your store, and what a lifecycle approach that closes it looks like.
AI insight extraction
Reading article context…
Key takeaways
- The gap between orders is where repeat revenue is won or lost. It’s the period when the product runs out and the customer decides, often without thinking, where to buy next.
- Three leaks cause most of the loss: timing, forgetting, and friction. Messages reach customers at the wrong moment, the restock slips their mind, and buying again takes too many steps.
- Customers run on their own clocks. A store-wide “day 30” reminder is right for some customers and wrong for most of the others.
- There are four distinct revenue moments. Replenishment, lapse prevention, cross-sell, and subscription each need a different message at a different time.
- Small lifts in repeat rate are worth a lot. For a $5M brand, a few points of repeat rate can be worth hundreds of thousands of dollars a year.
The hidden cost of generic reorder timing
Most CPG brands talk to customers on the brand’s schedule, not the customer’s. The post-purchase series fires on day 1, 3, and 7. The replenishment email goes out on day 30. The win-back campaign starts at day 90. Every customer gets the same calendar.
Customers don’t use products on a calendar. One uses a moisturizer twice a day, another uses it every other night. One household goes through a coffee bag in ten days, another in a month. The product and the price are the same, but the next order is due weeks apart.
When the brand’s calendar and the customer’s rhythm don’t line up, three things happen. The reminder arrives early and gets ignored. Or it arrives late and the customer has already bought elsewhere. Or no relevant message arrives at all, and the customer simply forgets.
The math behind the gap
Consider a brand doing $5M in annual revenue with a 40% repeat purchase rate. Suppose better lifecycle timing lifts that repeat rate by 5 to 10 percentage points. Roughly speaking, every additional point of repeat rate is another slice of customers you’ve already paid to acquire, ordering again.
The exact value depends on your average order value, order frequency, and margin. For a brand of this size, though, a lift of that range is typically worth hundreds of thousands of dollars a year, and most of that is high-margin revenue because no acquisition spend is needed.
To size it for your own store, take your number of first-time customers in the last year, multiply by the repeat-rate lift you’re targeting, then by your average number of repeat orders per returning customer and your average order value. Use conservative assumptions. Even the conservative version is usually larger than brands expect.
Where the money goes
Timing mismatch
A single reorder email date fits only the customers whose rhythm happens to match it. Everyone faster has already reordered, maybe from you, maybe not. Everyone slower ignores the email and has forgotten about it by the time they actually run out. Brands then add more reminders to cover the spread, which mostly increases list fatigue and unsubscribes.
Forgotten rituals
CPG products have natural depletion cycles, but customers don’t track them. Nobody puts “reorder face serum” in their calendar. The product runs out, they notice in the bathroom at 7am, and then they buy whatever is easiest: the pharmacy on the way to work, the default on Amazon, or a competitor’s ad that showed up at the right time.
The brand that is present at the moment of running out usually gets the order. Most brands aren’t.
Friction at purchase
Even when a reminder lands at the right moment, the purchase path often loses the customer. The click goes to a homepage. The customer has to search for the product, remember the right size or flavor, add it to the cart, and maybe log in to an account they never set a password for. Each step is a chance to leave, and lapsing customers have the least patience of all.
The single-product trap
Many repeat customers only ever buy one SKU. That looks loyal, but it’s fragile. If the product is out of stock, reformulated, or just gets boring, the customer has no other reason to stay. Brands that never introduce a relevant second product leave both revenue and retention on the table.
Unconverted subscribers
Some customers reorder the same product on a regular schedule, every time, as one-time purchases. They’re ideal subscription candidates, and many would gladly accept subscribe-and-save if asked at the right moment. Most brands only pitch subscriptions on the product page during the first purchase, before the customer knows whether they like the product.
What lifecycle timing changes
Instead of one calendar for everyone, lifecycle timing reaches each customer when they’re individually ready, with a message that matches the moment.
| Moment | When it happens | The message |
|---|---|---|
| Replenishment | The customer is due to reorder a product, based on their own rhythm | “Your serum is probably running low. Here it is, ready to reorder.” |
| Lapse prevention | The customer has passed their usual reorder point without buying | A personal reminder about the product they used to buy, with an optional modest offer |
| Cross-sell | The customer has used their first product long enough to be ready for the next one | “If the cleanser is working for you, here’s the moisturizer built for the next step.” |
| Subscription | A repeat one-time buyer reorders on a consistent schedule | “You reorder this every month anyway. Subscribe and save.” |
Each moment has its own timing, its own message, and its own offer strategy. Treating them separately is what makes lifecycle marketing feel helpful rather than noisy.
How to close the gap
- Measure each customer’s rhythm per product, not a store-wide average.
- Trigger messages from that rhythm, so replenishment, lapse, cross-sell, and subscription messages land when each customer is ready.
- Use the channels you already have. Email and SMS flows in your existing marketing platform, plus on-site messages for customers who are browsing.
- Make every message one tap from checkout, with a pre-filled cart and no login required.
- Keep discounts for lapse. Replenishment customers are already planning to buy.
- Measure honestly. Count revenue from purchases made directly through the message, and track repeat rate by cohort over time.
Common mistakes
Optimizing acquisition while repeat rate is flat. Every new customer you don’t retain raises your effective acquisition cost.
Equating sending more with doing more. More emails on a fixed schedule rarely beat fewer emails timed to each customer.
Treating all repeat customers the same. Subscription candidates, single-SKU loyalists, and drifting customers need different messages.
Judging lifecycle by open rate. Opens tell you the subject line worked. Repeat rate, recovered customers, and second-product adoption tell you whether the business improved.
How Cadence closes the gap
Cadence is a Shopify app built around this exact problem.
- Learn. Cadence imports your Shopify orders, products, and customers, and builds a buying rhythm for each customer and product.
- Predict. Each day it recalculates four prediction types for each customer: due to replenish, about to lapse, primed for cross-sell, and primed for subscription. Subscription predictions require a connected subscription platform (Recharge, Skio, Loop, or Shopify Subscriptions), and existing subscribers are excluded automatically.
- Trigger. At your chosen delivery time each day, Cadence sends a
cadence_predictionevent to Klaviyo, Omnisend, Attentive, or Postscript. Your flows send the messages, using your own creative. - Deliver on-site and in newsletters. Nudges reach logged-in customers with an active prediction while they browse your store. LiveBlock adds a personalized block to your regular campaigns.
- Convert. Every link opens ConvertCart, a branded, login-free cart on your domain, pre-filled for that customer and that moment, which checks out through standard Shopify checkout.
- Measure. Revenue counts only when a customer clicks a ConvertCart link and completes checkout. The dashboard and prediction analytics break it down by prediction type.
You control the creative, ConvertCart branding and discount codes, and which products to exclude or pin. Cadence handles the timing, event delivery, profile sync, and attribution.
Frequently asked questions
What is a good repeat purchase rate for a CPG brand?
It varies a lot by category, price point, and product lifespan, so a figure from another brand is a weak benchmark. Track your own repeat rate by acquisition cohort and category, and focus on how it moves when you change timing and friction.
Is this just replenishment email?
Replenishment is one of four moments. Lapse prevention, cross-sell, and subscription conversion each recover a different kind of lost revenue, and each needs a different message and timing.
Do I need to change marketing platforms?
No. Cadence sends events and profile properties to the platform you already use, and you keep building flows there.
What to do next
Look at your last 12 months of first-time customers and ask three questions. What share placed a second order? How long did they take? And how spread out was that timing? If the spread is wide and your reminders all go out on one fixed day, you’ve found where your revenue goes between orders.
See what lifecycle timing could earn for your brand. Book a 20-minute demo or install Cadence on Shopify.