An abandoned cart is a customer session in which one or more products were added to a shopping cart but the session ended without an order being placed. That is the plain, dictionary version, and on its own it is nearly useless to a brand doing $3M–$30M on Shopify, because the number everyone quotes and the number your Klaviyo flow actually acts on are not the same population of shoppers.
What is an abandoned cart, exactly?
Shopify does not store the cart itself as an object with a status field a flow can query — there is no “abandoned” flag sitting on a cart record. What Shopify creates, and what Klaviyo actually listens for, is a checkout: a record that exists from the moment a shopper starts the checkout process, typically by entering an email address or landing on the checkout page from an express-pay button such as Shop Pay. Shopify’s own admin reflects this too — the report you will find under Orders is labelled “Abandoned checkouts”, not “abandoned carts”, and that labelling is the more accurate one.
Why don’t “abandoned cart” and “abandoned checkout” mean the same thing?
They mark two different points in the funnel, and the gap between them is where most of the unrecovered revenue actually sits. A cart can be built and abandoned with no identity ever captured — a shopper adds three products, browses a size guide, closes the tab. That session never created a checkout, so nothing about it can trigger an email, because Klaviyo has no address to send to. An abandoned checkout always has an identity attached, since starting checkout is what creates the record in the first place. Every flow marketed as an “abandoned cart flow” is, mechanically, an abandoned checkout flow, and that distinction is the entire reason the flow’s send count looks small against your total add-to-cart traffic. It is not that the flow is under-performing; it is that most add-to-cart sessions were never eligible for it.
What changes on a Tuesday when a subscription SKU launches?
A subscription selector widget from Recharge or Stay AI redirects the shopper straight into a native checkout before the Shopify-Klaviyo integration has captured any identity from that browsing session, and a shopper who leaves mid-redirect creates no checkout record and no abandoned-checkout event to recover it. If the order completes instead, it syncs normally, since the redirect only matters when the session ends without one. A flow that has run with a steady send rate for a year abruptly has nothing to send against that SKU’s traffic the day it launches. Read casually, that looks like the flow breaking. It is actually a structural gap in what “abandoned cart” was ever able to cover, and it stays invisible until someone checks the checkout event log for that SKU rather than the flow’s overall send count.
Why do teams get the flow’s numbers wrong?
The ratio worth tracking is abandoned checkouts against add-to-cart sessions, not flow sends against total add-to-cart traffic. When that ratio is unusually low for your traffic mix, three places are worth checking before assuming the flow itself is broken: the checkout’s express-pay configuration, any custom cart drawer or slide-out that might capture an email without ever creating a real Shopify checkout record, and a Buy Button or sales-channel embed pointed at a storefront Klaviyo is not actually wired into. A genuinely broken integration produces zero sends across the board, not a smaller-than-expected number.
What’s the difference between abandoned cart and browse abandonment?
Browse abandonment is an even earlier signal: a shopper viewed a product page and left without adding anything to a cart at all. It requires onsite tracking to capture, not a checkout or a cart event, so it runs as a separate flow with a separate trigger in Klaviyo, built on viewed-product events rather than any order-adjacent record. Treating browse abandonment and abandoned cart as the same flow, or the same metric, understates how much of your funnel never reaches a cart in the first place, let alone a checkout, and it means the two flows end up competing for the same send frequency budget without anyone deciding that on purpose.
What’s a realistic abandoned cart recovery benchmark by vertical, not just 70%?
There is no single recovery benchmark worth quoting, because performance splits meaningfully by vertical once you look past the one blended abandonment rate everyone repeats. The 70.22% figure Baymard Institute publishes, compiled from 50 separate studies run between 2006 and 2025, is an average across every category of online retail with no breakdown by vertical or average order value built into it — it answers how bad abandonment is generally, not what a flow should be doing in fashion, or food, or hardware.
The number that actually segments is Klaviyo’s own abandoned cart flow benchmark, published 15 May 2024 from more than 143,000 abandoned cart flows analysed across its customer base on 2023 performance data (vendor-reported). Across every store measured, the average abandoned cart flow opens at 50.5%, clicks at 6.25%, converts at 3.33% of recipients, and returns $3.65 in revenue per recipient; the top decile of stores reaches 65.34% open, 13.33% click, 7.69% conversion and $28.89 per recipient — roughly eight times the average store’s revenue on the same event.
By vertical, the spread is smaller on the rate metrics than on revenue. Food and beverage brands see the highest open rate in Klaviyo’s data at 52.16%, a 6.63% click rate and a 3.66% conversion rate; sporting goods brands see 51.69% open, 6.95% click and 3.50% conversion; apparel and accessories, the category most people picture when they hear “abandoned cart,” sits at 51.43% open, 6.25% click and 3.42% conversion — close to the blended average, not above it.
| Vertical | Open rate | Click rate | Conversion rate |
|---|---|---|---|
| All stores (average) | 50.5% | 6.25% | 3.33% |
| All stores (top decile) | 65.34% | 13.33% | 7.69% |
| Food and beverage | 52.16% | 6.63% | 3.66% |
| Sporting goods | 51.69% | 6.95% | 3.50% |
| Apparel and accessories | 51.43% | 6.25% | 3.42% |
Revenue per recipient, not the click-through rate, is where the real vertical gap shows up, and it lines up with unit economics rather than open behaviour. Among top-decile stores in Klaviyo’s Abandoned Cart Benchmark Report, hardware and home improvement returns $75.66 per recipient, electronics $66.89, home and garden $64.52 and automotive $52.35 — categories that all carry a higher typical cart value than apparel, whose top-decile revenue-per-recipient figure was not broken out separately in Klaviyo’s report.
No primary source segments abandoned cart recovery by AOV tier directly — that specific breakdown is unpublished — metric to confirm — rather than a number this piece can hand you. What the revenue-per-recipient data gives instead is a proxy: categories that already carry a higher average cart value recover more per message sent, which is the mechanism you would expect if AOV drove the number, but the report does not isolate AOV from the other differences between a hardware buyer and an apparel buyer — brand loyalty, repeat-purchase frequency, discount sensitivity. Benchmark against your own vertical’s open, click and conversion rate — food and beverage, sporting goods or apparel and accessories — rather than the 70% headline figure, and treat AOV as a plausible driver of the gap rather than a confirmed one until you can compare cohorts within your own vertical at different price points.
Native Shopify checkout recovery vs. Klaviyo, Postscript or a dedicated app — what changes?
Shopify’s built-in recovery sends exactly one automated email per abandoned checkout, carries no SMS option, and publishes no baseline recovery rate of its own — everything past that first email is a decision to add a different tool, not a setting inside Shopify itself. Per Shopify’s Help Center documentation on recovering abandoned checkouts, the native tool lets a merchant configure the delay before that single email sends and edit the template’s logo and colour scheme, and nothing more; if a shopper enters a phone number instead of an email at checkout, the documentation states plainly that “the email can’t be sent,” with no SMS fallback to catch that session at all. The email is also silently withheld in several cases — depleted inventory, a fraud block, an unsupported shipping address, a payment-processing error — none of which is visible from the Orders admin without checking each abandoned checkout individually.
Klaviyo replaces that single email with a multi-step flow, typically several messages staged over a few days and filtered by the same profile and event data Klaviyo already holds on a shopper, and its own benchmark report puts the ceiling of that approach at $28.89 revenue per recipient for top-decile stores against $3.65 for the average store on the same flow type (vendor-reported, cited above). Postscript works the SMS side specifically rather than replacing Klaviyo: its own pricing page positions it as a channel to run alongside an existing Klaviyo programme, not instead of one, priced per message rather than per contact — $0.015 per SMS and $0.045 per MMS on its Starter tier, plus a $49 monthly minimum spend, on top of a pass-through carrier fee of about $0.00418 per SMS (Postscript, official pricing, vendor-reported). A dedicated abandoned cart app on the Shopify App Store is the third option, usually priced either as a flat subscription or a percentage of the revenue it claims to have recovered — the exact percentage varies app to app and is not something any single named source publishes as a standard, so it is worth reading the fee schedule on the specific app’s own listing before installing it, not the marketing page above the fold.
| Recovery path | Channel | Sequence | Native to Shopify | Cost basis |
|---|---|---|---|---|
| Shopify native | Email only | One message | Yes | No added cost; off by default for Shopify B2B |
| Klaviyo | Email, SMS, push | Multi-step flow | No, connected app | Priced by contact count |
| Postscript | SMS only | Multi-step, complements Klaviyo | No, connected app | Priced per message, $49/month minimum |
| Dedicated app | Varies by listing | Varies by listing | No, connected app | Subscription or a share of recovered revenue |
The number an operator actually wants — a conversion-lift figure isolating native Shopify recovery against Klaviyo, Postscript and a dedicated app, measured at Shopify Plus scale — is unpublished. — metric to confirm. No independent, controlled study compares the four options against a shared baseline; every lift figure in a vendor’s own materials is measured against that vendor’s own installed base, using that vendor’s own definition of a recovered sale, which is not something a competitor’s number can be checked against. The decision that holds up is not picking the tool with the best-sounding case study, it is running a holdout test on your own traffic between your current setup and the candidate tool — a randomised control segment excluded from the new tool for a fixed window, then compared on purchase rate against the group that got it, over the same weeks, for the same shoppers — the only version of this comparison your own store can actually trust.
What does it actually cost to recover one abandoned cart?
The cost of a recovered order is the discount given plus the messaging fee and any platform fee spent to reach it, set against the margin earned on the revenue that comes back, and no vendor publishes a standard figure for that net number because the four inputs are set entirely by each store’s own AOV, margin, discount policy and channel mix. What holds across every store is the formula: net recovery value equals gross margin on the recovered order, minus the discount cost, minus the messaging cost, minus any platform fee allocated to that order.
Two of those four inputs have a real, sourced cost attached to them; the other two are store-specific and nobody but the operator running the flow can set them honestly. On the messaging side, an SMS touch through Postscript’s Starter tier costs $0.015 per message plus roughly $0.00418 in pass-through carrier fees, about $0.019 all-in per SMS (Postscript, official pricing, vendor-reported), so a two-SMS sequence costs close to $0.04 in messaging fees before the $49 monthly minimum is amortised across every send that month. Email through Klaviyo is priced by the size of the contact list rather than by the message, so the marginal cost of sending one more recovery email to one more abandoner is effectively zero at the message level; the real email cost is the list-size tier the flow’s volume pushes an account into, not a per-send charge (Klaviyo, official pricing structure, vendor-reported). On the discount and platform-fee side, there is no standard figure to cite: the discount percentage offered on a recovery email is a policy decision each store sets, and a dedicated app’s revenue-share fee varies by listing, so both terms are — metric to confirm — until an operator plugs in their own numbers.
Working through the formula with assumed inputs, not benchmark ones, shows what the maths actually does. Take a $150 average order value cart, a 45% gross margin, a two-email one-SMS sequence, and a 10% discount code offered on the final touch: gross margin on the recovered order is $150 × 45%, or $67.50; the discount costs $15; the SMS leg costs about $0.04; email costs effectively nothing at the marginal-send level. Net recovery value on that order is $67.50 minus $15 minus $0.04, or roughly $52.46. Move any one input — a 20% discount instead of 10%, a 30% margin instead of 45%, a $60 AOV instead of $150 — and the answer changes completely, which is exactly why no vendor prints a single figure for “the cost of a recovered cart”: there is no version of it that holds across stores, only the method for working out your own.
How do you know a “recovered” cart wasn’t going to convert anyway?
A flow’s reported revenue does not answer that question on its own, because Klaviyo’s default attribution model is last-touch: any purchase inside the lookback window after a shopper opens or clicks a flow email gets credited in full to that flow, whether or not the shopper would have completed the order without ever seeing the message. Klaviyo’s Help Center documentation sets the default lookback window at five days for email clicks and opens, one day for SMS opens and twelve hours for SMS deliveries (official documentation) — a purchase two days after a click is credited to the flow; the same purchase twelve days later is not, which means the reported number is sensitive to a window setting, not a measurement of cause and effect.
The only way to isolate the incremental sale, the one that would not have happened without the flow, is a holdout group: a randomised subset of otherwise-eligible shoppers deliberately excluded from receiving the message, so their purchase rate over the same period becomes the counterfactual baseline the messaged group is compared against. Klaviyo builds this in as a global holdout feature, but the setting requires at least 400,000 total profiles to activate, recommends running for three months to gather enough data, and defaults to holding out about 5% of the marketable list at any one time (Klaviyo Help Center, official documentation). A brand at the $3M–$30M floor this site is written for is very unlikely to carry 400,000 profiles — that threshold sits closer to enterprise list size — so Klaviyo’s own incrementality tool is structurally out of reach for most of the readers of this article, the same shape of gap as the abandoned-checkout trigger itself.
What is available at any list size is a manually built control segment: exclude a randomised 5–10% of shoppers who would otherwise enter the abandoned cart flow, using a saved segment and a flow-entry exclusion rather than the global holdout setting, run it for a fixed window measured in weeks, and compare the excluded group’s organic purchase rate against the messaged group’s rate over the same days. The gap between those two purchase rates, not the flow’s reported revenue, is the actual incremental recovery, and it is very likely to be smaller than the attributed figure Klaviyo shows on the flow’s own analytics tab, because last-touch attribution by definition credits every purchase inside the window, including the ones that were always going to happen.
Isolating the incremental sale from purchases that would have happened anyway is not a data problem you fix once and close out. It is a lifecycle flows problem: the trigger, the filters and the event definitions underneath an “abandoned cart” flow need to be built for every checkout path your store actually has — storefront, subscription widget redirect, express pay — not just the default Shopify-to-Klaviyo trigger that ships out of the box. Getting that mapped correctly, SKU by SKU and checkout path by checkout path, is the kind of build we do as part of lifecycle flows.
Sources
- Klaviyo, benchmark data across more than 183,000 brands: 41% of email revenue attributed to automated flows (vendor-reported).
- Klaviyo, “Abandoned Cart Benchmark Report,” published 15 May 2024, from more than 143,000 abandoned cart flows analysed on 2023 performance data (vendor-reported).
- Baymard Institute, cart abandonment rate statistics compiled from 50 studies, 2006–2025, last updated 22 September 2025 (independent).
- Klaviyo Help Center, documentation on message attribution models and default lookback windows (official-docs).
- Klaviyo Help Center, documentation on global holdout groups (official-docs).
- Postscript, official pricing page: per-message SMS/MMS rates and carrier fee pass-through (vendor-reported).
- Shopify Help Center, documentation describing how abandoned checkouts are created and reported in the Orders admin, and the mechanics of native recovery email (official-docs).
No independent, third-party study is quoted in this piece beyond the figures above; the operator-level distinctions are written from first-hand builds on Shopify, Recharge and Klaviyo.