Case study · Retail & eCommerce
A reminder that arrives the week the food runs out
A pet supplies retailer was emailing every customer the same "time to reorder" message on the same day. We built replenishment timing per customer from what they actually buy, and repeat rate went up 46%.
Engagement · Build & rollout
Retention built on consumption data rather than on a calendar.
- Industry
- Pet supplies
- Solution
- Loyalty and predictive replenishment
- Platform
- Shopify
- Engagement model
- Dedicated product team
- Scope
- Loyalty, replenishment, personalisation, reporting
- Model
- Points plus predictive timing
- Constraint
- Consumption varies enormously per household
- Target
- Repeat purchase rate
Outcomes
What timing is worth in a repeat-purchase business
The same message sent at the right moment performs like a different message.
-
+46%
Repeat purchase rate
Replenishment reminders are timed from each customer's own consumption rate — pack size against purchase interval — so the prompt arrives when the customer is actually about to run out.
Measured across repeat purchase rate 12 months after launch
-
+31%
Customer lifetime value
Loyalty rewards structured around replenishment rather than discounting mean repeat customers buy more often without the margin being given away.
Measured across cohort lifetime value after 12 months
-
4.2×
Reminder click-through vs the old broadcast
A message that arrives when the customer needs it is opened and acted on; the same message on a fixed schedule is ignored.
Measured comparing predictive reminders against the previous broadcast schedule
Context
A repeat business behaving like a one-off one
Pet food is the most predictable repeat purchase there is, and the retailer was treating it as a campaign.
The business
An online pet supplies retailer selling food, treats and accessories, with food driving most repeat volume.
The starting point
A points-based loyalty scheme and a monthly "time to reorder" broadcast to the whole list.
The trigger
Repeat rate was well below what the category should deliver, and customers were drifting to subscription competitors.
What they wanted
Replenishment timing per customer, loyalty rewards that encourage frequency rather than discounting, and personalisation based on the animal rather than the buyer.
Constraints
Consumption varies enormously by animal and household · customers switch products, which resets the prediction · a wrong reminder is worse than none · rewards must not simply discount what the customer would buy anyway.
System
What it runs at today
The programme as it runs today.
-
+46%
Repeat rate
Against the prior year
-
Per-customer
Reminder timing
From consumption
-
4.2×
Click-through
Versus the broadcast
-
+31%
Lifetime value
Per cohort
The engineering problem
Four reasons the old programme underperformed
It was well-intentioned and generic, which is the usual combination.
-
One reminder schedule for every customer
A household with one small dog and one with three large ones consume at completely different rates. A single monthly broadcast is wrong for nearly everyone.
What we did
Consumption rate estimated per customer per product from pack size and purchase interval, with the reminder timed to their own run-out date.
-
Loyalty points that just discount
Points redeemed against the next order mostly discount purchases the customer was already going to make.
What we did
Rewards structured around frequency and basket breadth — trying a new category, maintaining a reorder rhythm — rather than a flat discount on repeat volume.
-
Personalisation based on the wrong subject
The customer is the buyer, but the consumption is the animal's. Recommending by buyer history misses the obvious.
What we did
Pet profiles — species, size, age, dietary needs — driving recommendations and consumption estimates.
-
Predictions that break when a customer switches
A customer who changes food has a different consumption rate, and a stale prediction sends a reminder at the wrong time, which trains them to ignore it.
What we did
Predictions that reset on product change and widen their confidence interval until re-established, suppressing the reminder rather than guessing.
Architecture
How it fits together
Simplified — the shape of the system rather than every service in it.
-
Customer & pets
- Pet profiles
- Household
- Preferences
The animal as the subject of the prediction, not the buyer.
-
Consumption model
- Pack size
- Purchase interval
- Run-out estimate
A per-customer, per-product estimate of when supply ends.
-
Loyalty
- Frequency rewards
- Category breadth
- Tiers
Rewards aimed at behaviour rather than at price.
-
Messaging
- Timed reminders
- Suppression rules
- Channel choice
Sent when useful, suppressed when uncertain.
Suppressing a reminder when the prediction is uncertain matters more than sending a good one. A badly timed reminder teaches the customer to ignore the next ten.
Solutions
What we built
Retention built on when, not on what.
-
Pet profiles
The animal as the subject of the prediction.
-
Consumption model
Run-out estimates per customer and product.
-
Timed reminders
Sent against run-out, not a calendar.
-
Suppression rules
Silence when the model is not confident.
-
Loyalty engine
Frequency and breadth rewards.
-
Cohort reporting
Repeat rate and lifetime value by cohort.
Key capabilities
What it does day to day
Six capabilities across the programme.
| Capability | Runs | Refresh | What it does |
|---|---|---|---|
| Pet profiles | Customer | On setup | Species, size, age and dietary needs per animal |
| Consumption model | Automatic | Per purchase | Run-out date estimated per customer per product |
| Timed reminders | Automatic | Per customer | Sent against the estimated run-out, not a calendar |
| Suppression | Automatic | Continuous | Reminders withheld when the prediction is not confident |
| Loyalty rewards | Automatic | Per behaviour | Frequency and breadth rewarded rather than flat discounting |
| Reporting | Automatic | Weekly | Repeat rate, cohort value and reminder performance |
Integrations
How the moving parts plug in
Learn the rhythm, then send at the right point in it.
Purchase history
- Pack sizesWhat was bought
- IntervalsHow often
- Pet profileWho consumes it
Consumption model
- Run-out estimate
- ConfidenceMeasured
- Reset on changeProduct switch
Message
- Timed reminderNear run-out
- SuppressedWhen uncertain
- Reward promptWhere it fits
Roughly one in six reminders is suppressed because confidence is too low. Those suppressions are a large part of why the remaining ones perform at 4.2× the old rate.
Security & data
What keeps the programme honest
Predictive messaging is easy to overdo, and customers punish it.
-
Confidence gating
Reminders only sent when the consumption estimate is confident enough to be useful.
-
Frequency limits
Hard caps on contact per customer regardless of how many products are due.
-
Preference control
Customers control which reminders they receive and can turn prediction off entirely.
-
Data minimisation
Pet profiles hold what the recommendation needs and nothing more.
The brief
The message was fine; the timing was the product
The retailer wanted better email creative. The creative was not the problem — a reorder reminder is not a message anybody needs persuading by, it is a message that needs to arrive on the right day.
We built the consumption model first and left the creative almost unchanged. The performance difference came entirely from timing and suppression.
- Consumption modelled per customer, per product
- Reminders timed to estimated run-out
- Suppression when confidence is low
- Loyalty rewarding frequency, not discounting volume
What the programme had to handle
- 01Consumption that varies enormously per household
- 02Product switches that invalidate a prediction
- 03A wrong reminder being worse than none
- 04Rewards that must not discount existing behaviour
Process
We tested the model before we messaged anyone
A prediction you have not backtested is a guess with a schedule attached.
-
Backtesting
Consumption estimates backtested against two years of purchase history to see how well run-out dates could actually be predicted.
-
Confidence thresholds
Suppression thresholds set from backtest accuracy rather than chosen arbitrarily.
-
Holdout launch
Predictive reminders launched against a holdout still receiving the broadcast, so the lift was measured rather than assumed.
-
Loyalty redesign
Rewards restructured once the replenishment rhythm was established, to reinforce it rather than discount it.
-
Pet profiles
Rolled out progressively, with profile completion incentivised through the loyalty scheme.
Technology
Shopify with a retention layer
Commerce on Shopify, prediction and loyalty purpose-built.
Commerce
- Shopify
- Customer accounts
- Order history
Prediction
- Consumption modelling
- Confidence scoring
- Backtesting
Loyalty
- Points & tiers
- Behaviour rewards
- Redemption
Messaging
- Timed sends
- Suppression rules
- Frequency capping
Business impact
What changed for the retailer
Three outcomes across the first year.
-
Repeat rate up 46%
The category behaving as it should.
-
Lifetime value up 31%
Without discounting the repeat volume away.
-
Messaging that gets opened
Reminder click-through at 4.2× the broadcast rate.
The result
The right message, on roughly the right day
Repeat purchase rate is up 46% and cohort lifetime value up 31%, with reminder click-through at 4.2× the old broadcast.
The email creative barely changed. What changed was that the message now arrives when the customer is about to run out rather than on the first Tuesday of the month.
- Repeat purchase rate up 46%
- Cohort lifetime value up 31%
- Reminder click-through 4.2× the broadcast
- One in six reminders deliberately suppressed
What we hold to in retention work
- 01Fix the timing before the creative
- 02Suppress when the model is not confident
- 03Reward behaviour, do not discount existing volume
- 04Backtest the prediction before anyone receives it
Free discovery call
Have an idea? Let's turn it into AI-powered software.
Book a free discovery call with our experts. Share your idea and we will help you shape the scope, timeline and budget, under NDA.
- Free consultation
- NDA before we talk
- Transparent estimate




