Your Cart Recovery Flow Is Paying People Who Were Going to Buy Anyway

The standard playbook sends the same discount to everyone who leaves a cart. Most of them did not need it, and some of them were not hesitating about price at all.

Published 2026-08-18 ยท 7 min read

Your Cart Recovery Flow Is Paying People Who Were Going to Buy Anyway

The Metric That Protects a Bad Habit

Cart recovery is one of the few e-commerce tactics nobody argues with. You send an email, you offer a discount, a percentage of people come back. The dashboard shows recovered revenue. The flow pays for itself.

The problem is what that measurement cannot see. Recovered revenue counts every returning shopper as a save, including the ones who had already decided to return. Those people would have come back without the email, at full price. The discount did not recover them. It just cost you margin on a sale you already had.

Nobody notices because the counterfactual is invisible. There is no line in the report for "would have converted anyway."

Abandonment Is Not One Behaviour

The deeper issue is that the flow treats a single event as a single cause. Someone put items in a cart and left. That is the trigger. Everything after it is identical regardless of why.

But the reasons diverge sharply, and they call for opposite responses:

Price. The total was more than expected, often because shipping appeared late. A discount genuinely addresses this.

Trust. They did not recognise the store, were unsure about returns, or hesitated at the payment step. A discount here reads as pressure from a seller they already were not sure about. It makes things worse.

Timing. They were browsing on a phone, in transit, intending to finish later. Nothing is wrong. An urgent discount teaches them that waiting is rewarded, which raises the cost of every future sale.

Comparison. They are checking two other tabs. Speed matters more than price here, and the winner is often whoever answers a question first.

One flow, four causes, one response. Three of the four are being handled badly, and the fourth is being handled expensively.

What Separates Them, Before They Leave

The useful part is that these look different on the way to abandonment, not just after.

Someone with a price objection tends to return to the cart repeatedly, add and remove items, and expand shipping options. The hesitation is concentrated at the total.

Someone with a trust concern goes somewhere else entirely: returns policy, shipping page, about page, sometimes a search for the store name. Their hesitation is not at the price, it is next to it.

Someone with a timing pattern shows shallow, fast sessions with no comparison behaviour at all. They are not weighing anything. They ran out of time.

Someone comparing moves quickly between product detail pages, often on similar items, and their session depth is high but their dwell time per page is short.

None of this requires knowing who the person is. It is all in the sequence and timing of what they did in the last few minutes.

The Individual Baseline Again

There is a trap here worth naming, because it is the same one that breaks churn models.

Ninety seconds of hesitation at checkout is not a signal in absolute terms. For a shopper who researches everything, that is a fast decision. For someone whose own median is twelve seconds, it is a large deviation.

Population thresholds flag careful shoppers who are behaving completely normally, and miss decisive shoppers who have quietly become uncertain. The second miss is the expensive one, because decisive shoppers do not come back later to reconsider. They buy somewhere else within the hour.

This is why segments underperform here. A segment tells you what people like this tend to do. A behavioural baseline tells you when this person stopped behaving like themselves.

What Changes Operationally

Three things, and none of them are a bigger discount.

Stop treating the discount as the default. Make it the response to a price signal specifically. For the other three causes, the right message is different: a returns guarantee, a saved cart with no urgency, a fast answer to the question they were probably asking.

Move the decision earlier. By the time the recovery email sends, the comparison shopper has already bought elsewhere. The signals that separate these cases are visible while the person is still on the site, which is where the intervention belongs.

Measure incrementality, not recovery. Hold out a portion of abandoners from the discount and compare. If the holdout converts at a similar rate, the discount is not recovering anything, it is discounting.

That last one is uncomfortable to run because it can show that a flow everyone is proud of is mostly a margin leak. It is also the only way to know.

The Honest Limit

Reading intent from behaviour is inference, and inference is wrong sometimes. A shopper flagged as price-sensitive may just have been distracted.

That is fine as long as being wrong is cheap. Offering a returns guarantee to someone who did not need reassurance costs nothing. Sending a discount to someone who was about to pay full price costs exactly the discount, every time, at scale.

The asymmetry is the argument. Not that behavioural inference is always right, but that the responses it enables fail more gracefully than a blanket discount does.

In the pilot, behavioural context added to existing systems contributed to a 2.3x conversion lift across 3.4 million profiles. The models were not exotic. What changed was that the system stopped treating every hesitation as the same hesitation.