Customer Retention

How to run a 30-day retention lift test using till data and one email sequence

How to run a 30-day retention lift test using till data and one email sequence

I run a lot of experiments for small retailers and hospitality brands, and one of the simplest high-value tests I keep coming back to is a 30-day retention lift test using till (POS) data and a single targeted email sequence. It’s low-cost, fast to implement, and — when designed correctly — gives you a clean read on whether a small marketing intervention actually moves repeat purchase behavior.

Why this test matters

Many SMEs assume loyalty programs or email campaigns work because open rates look fine or because a few customers respond. But the real question is: did you change behaviour? A 30-day retention lift test ties an email intervention directly to tills-based transaction outcomes (visits, revenue, items bought) so you can measure actual business impact: retention, frequency and short-term LTV.

What you need before you start

  • Access to till/POS data with customer identifiers (email, phone, loyalty ID, or a reliable transaction token).
  • An email tool that can send a short sequence and segment audiences (Mailchimp, Klaviyo, Campaign Monitor, etc.).
  • A way to join the tills data and email send data (spreadsheet join, SQL in a BI tool, or a simple CSV merge in Python/R).
  • A clear hypothesis and measurement plan (I’ll give a template below).

Typical hypothesis

Here’s a simple example I often use: Sending a 3-email “we miss you” sequence to customers whose last purchase was 45–90 days ago will increase 30-day return rate by at least 5 percentage points compared to no email.

Designing the test

Keep the test design pragmatic so your SME can run it without special engineering work.

  • Population: Customers with at least one purchase in the last 12 months and with an email captured in tills. Exclude VIPs or subscribers currently in another campaign.
  • Recency window: Pick an actionable recency: 45–90 days since last purchase is a good default for monthly buying categories. Adjust based on your purchase cadence.
  • Randomisation: Randomly split the eligible list into control and treatment (50/50 is fine). Randomise at the customer level using a hash of the email or a random function.
  • Treatment: A single email sequence (I recommend 2–3 emails over 7–10 days) with one clear CTA to purchase in-store or online. Include a simple incentive if your margins allow (e.g., free coffee, 10% off next purchase) — but use the same creative in all sends.
  • Duration: Measure behaviour for 30 days after the first send. You’ll need an extra week after the test period to reconcile tills data.

Crafting the 3-email sequence (practical copy outline)

  • Email 1 (Day 0): Friendly reminder + clear value: “We miss you — here’s 10% off your next visit.” Short, localised, and with precise CTA (e.g., book/join/redeem in-store code).
  • Email 2 (Day 3–4): Social proof + urgency: “Your discount is waiting — customers loved our new summer menu” + a visual and CTA.
  • Email 3 (Day 7): Final nudge + simple FOMO: “Last chance — offer ends tonight.”

Keep subject lines short and use personalisation (first name, last purchase like “Since your last visit on 12 May…” if your data supports it).

Measurement plan (metrics to track)

Primary metric 30-day return rate (percentage of customers who made at least one purchase within 30 days)
Secondary metrics 30-day revenue per user (RPU), average order value (AOV) for returning customers, number of transactions per returning customer, redemption rate of any promo code
Duration 30 days after the first email send (plus 7 days for data reconciliation)
Significance Look for at least a 3–5pp lift in return rate for practical significance; use chi-squared or proportion tests for statistical significance

How to join till data and email sends

There are two common setups depending on your tech:

  • Simple CSV merge: Export till transactions for the period (customer email, transaction date, spend). Export your email send list with treatment flag and send date. Merge on email to see who returned within 30 days.
  • SQL/BI: Join your customers table with transactions and email_sends on customer_id and then compute cohorts and outcomes. This is cleaner if you run multiple tests.

Key point: use transaction date to determine whether a purchase falls in the 30-day window after the first email send for each customer.

Analysing results — what I look at first

  • Raw lift: Treatment return rate minus control return rate.
  • Revenue impact: Treatment RPU minus control RPU to understand top-line effect.
  • Redemption behaviour: If you used a promo code, what share of returning customers used it? Does the promo cannibalise higher-margin purchases?
  • Segment performance: Break results by frequency (occasional vs. frequent), recency bands, or location — sometimes the average lift hides big wins for specific groups.

Common pitfalls and how to avoid them

  • Leaky control: Make sure the control group does not receive other targeted comms during the test period. If that’s impossible, track and exclude overlapping campaigns.
  • Small sample: If your email list is under a few thousand, the test may be underpowered — you’ll see noisy results. Consider longer windows or higher allocation to treatment.
  • Coupon misuse: If coupons are easy to share, you’ll over-estimate effect. Use unique single-use codes where possible.
  • Attribution window mismatch: Align your measurement window with purchase cadence — 30 days is standard, but for infrequent categories (e.g., furniture) use longer windows.

Example result interpretation

I ran this test with a small café chain: 6,000 eligible customers split 50/50. Control 30-day return rate = 8.2%. Treatment = 12.9% (lift = 4.7pp). Revenue per user increased by £1.15 over 30 days. Promo redemption was 42% of returning customers, and redeeming customers had slightly higher AOV — so the incentive drove visits without obvious cannibalisation. That result made the chain comfortable investing in a modest recurring reactivation program focused on lapsed customers.

What to do after the test

  • If you see a positive lift and profitable RPU: scale up the sequence to the broader lapsed population and automate the cadence for rolling reactivation.
  • If the lift is negligible: iterate — change offer, timing, or creative and re-run with a targeted segment (e.g., higher-frequency past purchasers).
  • If you see short-term lift but negative margin impact: test non-monetary incentives (priority booking, exclusive item) or reduce discount size and re-measure.

Running a 30-day retention lift test with tills and one email sequence is one of the fastest ways to turn loyalty theory into measurable business outcomes. It forces you to join marketing activity to actual transactions, and it gives clear direction on whether to scale, iterate or stop. If you want, I can share a simple CSV template and an email copy pack I use with SME clients — tell me which email tool you use and I’ll adapt the template for that platform.

You should also check the following news:

Which microreward timing lifts second purchase fastest: day‑0 free gift, day‑7 reminder credit or triggered sms
Customer Retention

Which microreward timing lifts second purchase fastest: day‑0 free gift, day‑7 reminder credit or triggered sms

I recently ran a small-but-rigorous test to answer a question I get asked all the time: which...

Jun 21 Read more...