River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Win Back Email Campaign Template

Four documents and four sheets that fire the winback on each customer's own reorder cadence, rather than on a fixed day 90.

Free download  ·  No account needed

Trigger Schedule  ·  one ratio, five calendar days

The same trigger, 208 days apart

Kestrel & Co  ·  18,400 customers with two or more orders, dog food and treats

BandMedian gapCustomersFires dayvs 90Recovery thenRecovery day 90
A19d3,68027-6343.1%3.6%
B34d6,07248-4241.8%16.7%
C58d4,60081-940.9%28.3%
D94d2,576132+4239.6%71.4%
E168d1,472235+14538.2%84.2%
Weighted18,40078.8-11.241.24%30.04%

One trigger at ratio 1.4. Recovery at it holds within 4.9 points across every band.

Why day 90 survives every review

The weighted mean personal trigger day is 78.8, close enough to 90 that the fixed rule looks defensible in any summary anybody writes. The range underneath it is day 27 to day 235. Almost nobody sits at the mean, and the rule fails in opposite directions at the two ends at once.

The unit, and why it is not a day

Lapse ratio is days since the last order over that customer's own median inter-purchase interval. Bands D and E reach ratio 0.96 and 0.54 on day 90, so they are not late at all. Their unprompted 90-day reorder rates are 71.4% and 84.2%.

What the fast band costs

Band A crosses ratio 1.4 on day 27 and is mailed on day 90, by which point it sits at ratio 4.74 and recovers at 3.6%. That is a fifth of the base contacted 63 days after the cheap message would still have worked.

Every recovery figure is a base rate for the population reaching that ratio, not the effect of a message. Only the holdout in Offer Test Log turns one into an effect.

Kestrel & Co sells dog food and treats, and its winback fires on day 90. Nobody there picked 90 either. It is the number in every published winback template, and it has never once been checked against the reorder gap these customers actually keep. Check it against 18,400 customers with two or more orders and the rule is 63 days too late for a fifth of the base. Another fifth are not late on day 90 by any reading of their own history.

The unit that works is a lapse ratio: days since the last order, divided by that customer's own median inter-purchase interval. Hold the calendar day fixed at 90 and recovery across the base spans 80.6 points, from 3.6% to 84.2%. Hold the ratio fixed instead and it spans 4.9 points across the same five bands. The calendar day is 16.4 times worse as a predictor of whether a winback has anything left to work with.

So one ratio of 1.4 resolves to five different calendar days, from day 27 to day 235, and its weighted mean is 78.8, which is exactly why a day-90 rule passes every review it is shown to. It reprices the offers too: a 20% code costs $5.28 per customer contacted at ratio 1.4 against $0.43 at ratio 4.75. Pair it with the lifecycle email programme pack, or take the files blank from the template library.

The cohort read, what the fixed rule costs a quarter, and the ladder priced against it

Lapse Cohorts, the quarter the day-90 rule actually mailed, and the Offer Ladder keyed to the ratio.

Lapse Cohorts

The same 18,400 customers indexed both ways. Recovery is the share placing an order in the next 90 days. Single-order customers are excluded: no second order means no computable interval.

Lapse ratioBand A 19dBand B 34dBand C 58dBand D 94dBand E 168dBlendedSpread
1.0 to 1.543.1%41.8%40.9%39.6%38.2%41.24%4.9pt
1.5 to 2.030.1%29.1%28.3%27.4%26.6%28.66%3.5pt
2.0 to 3.017.4%16.7%16.2%15.7%15.1%16.45%2.3pt
3.0 to 4.08.6%8.2%8.0%7.8%7.5%8.12%1.1pt
4.0 to 6.03.6%3.4%3.4%3.2%3.1%3.39%0.5pt
over 6.01.2%1.1%1.1%1.0%1.0%1.10%0.2pt

And now the calendar. Every one of these customers is 90 days past their last order, which is the only thing they have in common.

BandMedian gapCustomersShareRatio on day 90RecoveryWhat day 90 means for them
A19d3,68020.0%4.743.6%Effectively gone. 63 days past the point a reminder still worked.
B34d6,07233.0%2.6516.7%Late, and past the rung where a reminder would have done it.
C58d4,60025.0%1.5528.3%About right. The band the 90-day rule was accidentally built for.
D94d2,57614.0%0.9671.4%Not late. Still inside their own reorder window.
E168d1,4728.0%0.5484.2%Nowhere near late. Barely half way through a normal gap.

At a fixed calendar day recovery spans 80.6 points. At a fixed ratio it spans 4.9. That factor of 16.4 is the whole argument for the ratio, and it is computable from an order history with two columns in it.

Only one of five bands is served by day 90, and it holds a quarter of the base. Band C reaches ratio 1.55 on day 90, which is one rung late rather than four. Every other band is either long gone or not yet late.

Recovery here is a base rate for the population reaching a ratio, measured with nothing in market. Nothing in this table says a winback caused an order.

One quarter, mailed on day 90

4,603 customers crossed day 90 in the quarter and were mailed a 20% code, which is what the rule in production does. Average order value $64.00, so the code hands over $12.80 on each order it lands on.

BandMedian gapMailedRatio thenRecoveryOrdersDiscount paidLate by their own cadence?
A19d1,0434.743.6%38$486.40Gone 63 days ago
B34d1,5922.6516.7%266$3,404.80Yes
C58d1,1041.5528.3%312$3,993.60Yes
D94d5660.9671.4%404$5,171.20No
E168d2980.5484.2%251$3,212.80No
Total4,60327.61%1,271$16,268.80

655 of the 1,271 orders came from customers who were not late. That is 51.53% of the orders and, because the code is flat, exactly 51.53% of the money: $8,384.00 of $16,268.80 went to bands whose unprompted 90-day reorder rates are 71.4% and 84.2%.

The quarter reads as a success and that is the problem. 27.61% blended recovery on 4,603 contacts is a number any retention review would sign off. It is high because two of the five bands were not lapsed, and their reorder was going to happen with or without a discount attached to it.

Band A is the mirror image: 1,043 customers mailed at ratio 4.74, returning 38 orders. They crossed ratio 1.4 on day 27, when four in ten of them would still have come back for a reminder with no offer in it.

Offer Ladder

What each rung may offer, keyed to the lapse ratio rather than to the number of messages already sent. Cost column is what a 20% code would cost per customer contacted at that rung's base recovery rate.

RungLapse ratioRecoveryOfferA 20% code would cost
11.0 to 1.541.24%Reminder. The item they reorder, one click. No discount.$5.28
21.5 to 2.028.66%A reason to return: what changed, what is new in their size. No discount.$3.67
32.0 to 3.016.45%Free shipping.$2.11
43.0 to 4.08.12%Free shipping plus a sample of the adjacent product.$1.04
54.0 to 6.03.39%20% off, once, with an expiry that is real.$0.43
6over 6.01.10%Nothing. One final preference message, then suppress.$0.14

The same code costs $5.28 per contact at ratio 1.4 and $0.43 at ratio 4.75. It is 12.17 times more expensive at the point where the base rate is highest, which is precisely the point every winback guide recommends leading with an offer.

A discount is never the first concession, and free shipping is. Shipping comes out of fulfilment rather than product margin, and it does not teach a repeat customer that waiting produces a code. It enters at rung three, where recovery has already halved from the first rung.

Offer Test Log's T2 row is the case: a 20% code at rung one raised conversion 2.1 points and lowered revenue per customer contacted by $1.94. Measured on conversion alone it won, and it would have shipped.

What's in the pack

01

Lapse Cohorts

Recovery indexed on the lapse ratio and then on the calendar day, side by side, which is the comparison that settles which one to trigger on.

02

Trigger Schedule

One ratio expressed as a calendar day per band, with the delta against your current fixed rule and the recovery rate at both points.

03

Offer Ladder

Six rungs keyed to the ratio, each carrying the cost per customer contacted that justifies whatever concession it is allowed to make.

04

Offer Test Log

Five tests with the expected events per arm worked out before launch, so a rung carrying ninety events a month never gets a small-effect test queued against it.

05

Lapse Threshold Method

How the personal interval is computed, why the median rather than the mean, and the five ways the table comes out wrong.

06

Offer Policy

The arithmetic that prices a concession against a base rate, and the rule that keeps a code out of any band still recovering on its own.

07

Winback Sequence

Six drafts, one per rung, each with a must-not line, which is the field that stops rung one turning into a discount.

08

Sunset and Suppression

Where the programme ends, argued from complaint headroom rather than from a tidy number, with the cost of each suppression stated.

How to use it

  1. 1

    Open in River, or take it blank

    Hand River the order history and let it compute the intervals, or download the four documents and four sheets and do the banding yourself.

  2. 2

    Send an order history

    A customer id and an order date. Two columns is genuinely enough to compute every median interval and every recovery curve in the pack.

  3. 3

    Read the cohorts before the trigger

    You get recovery indexed both ways, and a straight answer on what your current threshold is catching and what it is paying for.

  4. 4

    Price the ladder against the base rate

    Each rung gets the concession its recovery rate can justify, free shipping before any code, and a sunset point with a number behind it.

Frequently asked questions

Is this template free?

Yes. Download the Word documents and CSV sheets with no account, no card and no email gate. Edit with AI is the optional half: River computes each customer's interval, bands the base and prices the ladder. Every pack sits in the template library.

When should a winback email be sent?

At a fixed multiple of that customer's own reorder gap, not a fixed day. The worked example fires at ratio 1.4, which lands on day 27 for a customer who reorders every three weeks and day 235 for one who reorders twice a year. Both are the same trigger.

What is wrong with a 90-day trigger?

It is wrong in two directions at once, which is why it survives. Here it fires 63 days after the fastest fifth of the base has effectively gone, and 42 to 145 days before the slowest fifth is late at all. The weighted mean personal day is 78.8, so the rule looks fine in any summary.

How much discount should a winback offer?

Less than you think at the start, and only where the base rate is low. A 20% code costs $5.28 per customer contacted at ratio 1.4 and $0.43 at ratio 4.75. Free shipping is the first concession because it spends fulfilment rather than product margin.

What about customers with only one order?

They have no computable interval and are not in this model at all. Mailing them a winback is the single most common way the trigger gets misconfigured. They belong to a welcome sequence, which the welcome email sequence template times against your own conversion curve.

When should I stop mailing a lapsed customer?

When the sends cost more complaint headroom than the orders are worth. Recovery past ratio 6.0 is 1.10% here, and Google asks senders to keep the Postmaster Tools spam rate below 0.10% and never reach 0.30%. That ceiling is shared with every transactional message you send.

Does a long winback sequence raise compliance questions?

One that catches people out. The CAN-SPAM statute requires an opt-out mechanism to keep working for at least 30 days after the message carrying it, and requests honoured within ten business days. A ladder spanning 200 days needs links that still work.

Find out when your customers are actually late

Take the Word documents and CSV sheets blank, or open this exact pack in River and send it one order history.

Edit with AI