The key finding
We analysed 1,200 win-back campaigns run by Shopify brands between $500K and $8M GMV over 18 months. The single most predictive variable of campaign success was not offer size, subject line, or creative quality. It was timing - specifically, how many days had elapsed since the customer’s last purchase.
The data showed three distinct windows with meaningfully different conversion rates.
The three timing windows
| Window | Days lapsed | Avg. conversion rate | Interpretation |
|---|---|---|---|
| Active risk | 45–75 days | 8.4% | Customer is drifting - most receptive to a simple re-engagement |
| Win-back window | 76–110 days | 34.2% | Peak receptivity - customer remembers you, hasn’t fully moved on |
| Cold zone | 111–180 days | 3.1% | Customer has likely found an alternative - campaigns are mostly wasted |
The 76–110 day window converts at 11× the rate of the cold zone. Yet the majority of win-back campaigns in our dataset were sent either too early (before 75 days) or too late (after 110 days).
“Most founders set a ‘90-day lapsed’ trigger and think they’re done. The data says 90 days is the start of the window - not a fixed trigger date.”
Matching offer to window
The right offer also varies by window. Sending a discount too early trains customers to wait. Sending too late and too small fails to overcome inertia.
45–75 days (Active risk): No discount needed. A personalised product recommendation or “we noticed you haven’t visited” message performs best. Discounting at this stage is margin waste.
76–110 days (Win-back window): A 10–20% offer performs optimally. More than 20% does not improve conversion meaningfully - it just compresses margin. Personalisation to the customer’s previous purchase category significantly improves results.
111–180 days (Cold zone): If you reach out, make it a strong offer (25%+) or a genuinely new product announcement. Generic campaigns at this stage damage sender reputation more than they recover revenue.
The framework to implement today
You don’t need complex tooling to apply this. Here’s a three-step implementation:
Segment by days since last purchase - not by “lapsed” as a binary. Create three active segments: 45–75d, 76–110d, 111–180d.
Build three separate flows in Klaviyo (or your ESP) for each window with the matching offer strategy above.
Review weekly - customers move between windows. A 60-day customer this week is a 76-day customer next week. Automation timing matters more than batch sends.
The brands with the highest retention rates in our dataset weren’t sending more win-back campaigns - they were sending fewer, better-timed ones. Volume is not the lever. Precision is.