The situation
A growth-stage eCommerce brand had spent two years building acquisition. CAC was workable, the brand was earned, and YoY growth ran 30%. Underneath that headline, the 90-day repeat-purchase rate had flattened twelve months earlier and refused to move.
The retention team had three lifecycle flows in Klaviyo — welcome, post-purchase, abandoned cart — and a monthly win-back batch that went to anyone who hadn’t bought in 60+ days. The monthly send was a single offer (10% off) to a single audience. Open rates were declining; revenue per send was declining faster.
The CMO’s question: “Are we under-spending on retention, or are we spending it badly?”
Diagnosis (weeks 1–3)
We pulled the customer database into a basic cohort model — segmenting by first-product purchased, average order value band, and time-since-last-purchase. Two patterns showed up.
Two cohorts carried 70% of the lapsed-revenue opportunity. Customers whose first order was the brand’s “hero” SKU at high AOV had the highest lifetime value if they came back, and the highest non-return rate. They were being treated identically to one-time bargain customers in win-back, with the same generic 10% offer.
Triggered messaging beat batch by an order of magnitude — but the brand had no triggers. Comparing the few triggered messages (post-purchase, abandoned cart) to the monthly batch showed conversion rates 5–8× higher per send. The monthly batch was not just under-performing — it was teaching customers to ignore the brand’s emails.
Rebuild (weeks 4–10)
The rebuild stayed inside Klaviyo and the existing data model. No new tools.
Cohort-specific win-back flows. Instead of one monthly batch, we built four triggered flows, each keyed to a specific cohort and time-since-last-purchase. The flow for high-AOV first-order-hero customers offered a personalised “we noticed you bought X — here’s the thing customers like you usually buy next” message, with no discount in the first send.
Replenishment triggers. For consumables, a replenishment-window flow fired at 70% of the average reorder cycle for that customer’s category. Conversion on these was the highest of any flow.
Re-engagement sunset. Customers who didn’t respond to two consecutive cycles got a single “should we keep emailing?” message and were either retained on a low-frequency list or removed. List health improved; deliverability followed.
The monthly batch was retired in week eight.
Outcome (months 2–3)
Three months in, the 90-day repeat-purchase rate was up 21%, with the improvement concentrated in the two target cohorts. Win-back conversion rate ran 3.2× the prior monthly batch. Lifecycle revenue as a percentage of total revenue moved up 18% on the preceding quarter.
The team’s send volume dropped 22% — fewer, sharper messages to better-defined audiences. The CMO’s question was answered: the brand had been spending on retention, but spending it badly. The structural fix was bigger than any new spend.
What it took
A senior operator who could read a Klaviyo account and an order-history table, a retention team open to retiring an established programme, and a CMO who would defend the rebuild for ten weeks before judging it. The work was not novel — cohort-aware lifecycle is well-understood in the field. The intervention was making the team actually do it.