Cart abandonment is the largest single source of lost ecommerce revenue. ~70% of carts that are started will never complete. A merchant doing $1M GMV with a 1.8% conversion rate is leaving roughly $200K-$350K a year on the table just in that one metric.
This guide is the playbook we've built across thousands of stores. It's deliberately platform-agnostic — the principles work whether you implement them in Zubby, in Klaviyo + a custom widget, or fully in-house.
The recovery math
Start with the size of the prize. The formula is straightforward:
monthly_carts × abandonment_rate × AOV × recovery_lift = monthly_recovered_$
At 70% abandonment and an industry-average 3% baseline recovery rate, a $1M/year store recovers about $24K/year. A tuned 8% recovery rate on the same store turns that into $64K/year — almost 3× the lift, all from the same starting traffic.
Stage 1: Detect
Not every "abandonment" is the same. A shopper who put an item in the cart and is reading a review for 15 minutes is not abandoning — they're researching. A shopper whose cursor just hit the close-window button is. The first job is to grade these signals.
- Exit intent — cursor approaches the top of the viewport at speed.
- Idle timer — 30+ seconds of no activity on the checkout page.
- Tab visibility change — shopper switched away.
- Scroll-bounce — rapid scroll up after a long down-scroll.
- Payment-step bounce — bounced specifically after seeing total with tax/shipping.
Grade them strict for in-session intervention (avoid annoying engaged shoppers) and loose for off-session — better to send one extra email to a hesitant shopper than miss a real abandonment.
Stage 2: Diagnose
Why is this specific shopper leaving? A diagnosis is what separates a real recovery flow from spam. Most abandonments cluster into four reasons:
- Sticker shock — total at checkout (with shipping + tax) was higher than expected.
- Sizing / fit uncertainty — apparel, footwear, anything where the shopper isn't sure the item will work.
- Payment friction — preferred payment method unavailable, declined card, multi-step auth.
- Pure distraction — phone rang, kid screamed, train arrived.
Each reason wants a different intervention. A modern AI agent can classify the likely reason from session signals (where they bounced, what they hovered, what they searched) and pick the matching playbook.
Stage 3: Intervene in-session
Catch the shopper before they leave. The in-session intervention should be tonally light and substantive — never "wait! don't go!" and never "use code SAVE10 right now". Examples that work:
- "Want me to confirm free shipping options before checkout?"
- "Sizing is famously inconsistent on this brand — happy to check sizing notes for you."
- "I can hold this cart at the current price for 15 minutes if you want time to think."
Discounts are a last resort, not a first move. They train shoppers to abandon. Reserve them for high-CLV shoppers or first-time buyers — never for repeat customers who already convert at full price.
Stage 4: Follow up off-session
If the shopper still leaves, run a three-touch sequence:
- T+30 minutes: A soft "did you have questions?" email. No discount, no urgency. Plain HTML, plain copy.
- T+24 hours: A nudge that mentions the cart specifically — items, color, size — and a single CTA to complete checkout.
- T+72 hours: The discount move, if any. Or a switch to SMS / Instagram DM if you have consent on those channels.
Tune the spacing based on your AOV. Higher AOV (luxury, B2B) takes longer to recover — the third touch might be a week out, not 72 hours.
Stage 5: Attribute
Without attribution, you can't tune the playbook. Every recovered cart needs to link back to which intervention closed it — the in-session offer, the first email, or the discount. Track it.
At the dashboard level you want three numbers: % of abandoned carts that recovered, average days-to-recovery, and revenue per intervention. Move all three over time.
Anti-patterns
- Discount-first. Trains your customer base to abandon on purpose.
- "You left items in your cart!" subject line. Generic, low open rate, never converts on real value.
- No diagnosis. Sending the same email to a sizing-confused shopper and a sticker-shocked shopper wastes both.
- No human escalation path. High-AOV abandoners deserve a human, not a third automated nudge.
Pair this playbook with the cart recovery estimator to see what a tuned funnel could mean for your specific store.