Skip to content

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  1. Customer & pets

    • Pet profiles
    • Household
    • Preferences

    The animal as the subject of the prediction, not the buyer.

  2. Consumption model

    • Pack size
    • Purchase interval
    • Run-out estimate

    A per-customer, per-product estimate of when supply ends.

  3. Loyalty

    • Frequency rewards
    • Category breadth
    • Tiers

    Rewards aimed at behaviour rather than at price.

  4. 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.

CapabilityRunsRefreshWhat 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.

  1. Stage 1

    Backtesting

    Consumption estimates backtested against two years of purchase history to see how well run-out dates could actually be predicted.

  2. Stage 2

    Confidence thresholds

    Suppression thresholds set from backtest accuracy rather than chosen arbitrarily.

  3. Stage 3

    Holdout launch

    Predictive reminders launched against a holdout still receiving the broadcast, so the lift was measured rather than assumed.

  4. Stage 4

    Loyalty redesign

    Rewards restructured once the replenishment rhythm was established, to reinforce it rather than discount it.

  5. Stage 5

    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