The 70.22% broken into its parts: browsing, addressable UX, everything else. Most of the bar is not a problem to solve
Cart & checkout

Cart Abandonment: The 70% Number, and the Part You Can Actually Fix

Everyone quotes 70% cart abandonment as a catastrophe. Nearly half of it is people browsing with no intent to buy. The rest is fixable, and most of it is cost.

Gabriel RuimyCofounder, Qosmic ·

Cart abandonment averages 70.22%. That figure comes from Baymard's analysis of fifty separate studies, it's the most solid number in ecommerce, and it gets used to sell a lot of software.

It also gets quoted without the part that matters. 42% of US online shoppers abandon a cart simply because they were browsing. They were never going to buy today. They were comparing, saving for later, or killing ten minutes.

You can't recover those people, and a tool that promises to is selling you something. The useful question is what the rest is made of.

Two surfaces side by side: where each failure happens and what fixes it

Cart abandonment and checkout abandonment are different problems

People use these interchangeably and they describe different failures on different surfaces.

Cart abandonment is adding something and leaving before starting checkout. The buyer is still in your store, looking at a subtotal. What loses them here is usually the arithmetic: shipping appears, tax appears, and the number stops being the number they had in their head.

Checkout abandonment is starting checkout and not finishing. Now they have committed and something in the process stopped them. Forms, forced account creation, missing payment methods, an error they couldn't get past.

The distinction is not academic. Cart abandonment is a pricing and clarity problem, and you fix it on the cart page. Checkout abandonment is a friction problem, and on Shopify you fix it mostly in settings rather than in code.

If you only track one blended number you won't know which one you have.

Why people actually leave

Baymard's breakdown, for non-browsing abandonments only. This is the base that matters, and it's the one most articles quietly drop so the percentages look bigger.

Reason · Share

Extra costs too high (shipping, tax, fees) · 40%

Delivery was too slow · 20%

Didn't trust the site with card details · 19%

Site required account creation · 18%

Checkout process too long or complicated · 17%

Website errors or crashes · 17%

Returns policy unsatisfactory · 13%

Couldn't see or calculate total cost upfront · 12%

Credit card declined · 10%

Not enough payment methods · 9%

The reasons ranked, with the two cost-related bars highlighted as one problem

Two things stand out.

The top reason is cost, and the fourth-from-bottom reason is also cost. Extra costs too high at 40% and not being able to see the total upfront at 12% are the same failure at different stages. Together they're the biggest thing on the list by a distance, and neither is about your product.

Most of the rest is mechanical. Account creation, checkout length, errors, payment methods. None of that requires a strategy. It requires somebody going through their own checkout on a phone and writing down what happened.

Worth being honest about the ceiling, though. Baymard puts roughly 20% of total abandonment as UX-caused and addressable. You aren't taking 70% down to 30%. You are working on a fifth of it, which is still a large number and it's the only part that responds to effort.

[@portabletext/react] Unknown block type "ctaBox", specify a component for it in the `components.types` prop
"Calculated at checkout" against a real estimate, the single most expensive string of text

Prevention: the checkout fixes

This is where the money is, and it's unglamorous. Every item below has a bar you either clear or you don't.

Show shipping cost, or a threshold, before checkout. "Calculated at checkout" with no estimate is the single most expensive string of text on most stores. A real estimate is best. A threshold statement ("free over $75") clears the bar. Silence doesn't.

Put the full total on the cart page. Subtotal, shipping status, tax or duty treatment. The 12% who could not calculate their total are people you surprised at the last step.

Never require an account. Guest checkout, always. Offer account creation after the order is placed, when it costs the buyer nothing to say yes.

Cut the form. Every field is a chance to leave. Autofill-friendly names, address autocomplete, no phone number unless the carrier genuinely needs one.

Offer express wallets. Shop Pay, Apple Pay, PayPal, Google Pay. At least one reachable without scrolling on mobile. These skip the form entirely, which is the whole point.

Make the checkout button real. At least 44 pixels, visible without scrolling in both the drawer and /cart, and still reachable when the cart holds eight items.

Put the returns policy where the nerves are. 13% left over returns. A link next to the checkout button costs nothing.

Show trust signals at the payment step, not scattered across the site. 19% did not trust the site with their card. That anxiety peaks in exactly one place.

Test your own checkout on a phone, on cellular, with a real card. Website errors caused 17% of abandonments. Most merchants have never completed their own checkout on a phone since launch.

Checkout optimization on Shopify has an awkward property worth knowing: much of the checkout itself is locked down, which is a good thing for security and a limitation if you were planning to redesign it. Most of what you control is the cart page, the settings, and what happens before the buyer crosses over. That's also where most of the damage is, so it works out.

This is the surface Qosmic works on. It runs the cart and checkout checks against your live store continuously, ranks what it finds by what each failure is costing you, then builds the fix inside your own theme and stages it as a draft for you to approve. You can get the same result with an hour, a phone and the list above, and plenty of good operators do. The thing that matters is that somebody looks on a schedule, because a theme update can quietly undo any of it.

Recovery: the half everyone sells you

Recovery is emailing the people who left. It works, it's worth doing, and it's oversold relative to prevention because it's much easier to package as a product.

Email is the workhorse. Klaviyo is the default on Shopify and deservedly so; Omnisend is the lighter, cheaper option and is often the right call below a few thousand subscribers. Shopify's own abandoned checkout email is free, built in, and better than nothing, which is what a lot of stores are running instead.

SMS converts well and annoys quickly. Use it as a second touch, not a first, and only where you have proper consent.

A few things that hold up across every implementation we have seen:

  • Send the first one within an hour. Intent decays fast.
  • Three touches is plenty. Hour one, day one, day three.
  • Don't lead with a discount. You'll train people to abandon carts on purpose, and you'll pay a margin tax on buyers who were coming back anyway.
  • Include the actual cart contents and a one-tap link back. Most of the lift is convenience, not persuasion.

None of this is our category. We don't do email, and the tools above are the right place to run it.

But note what recovery can't do. It only reaches people who gave you an email address, which excludes most first-time visitors, and it addresses none of the ten reasons in the table above. If shipping cost is what lost them, an email reminding them about the shipping cost isn't obviously a plan.

Prevention keeps the sale. Recovery asks for it back. Do both, and put the effort in that order.

Prevention keeps the sale, recovery asks for it back: who each one can reach

The formula, and how not to fool yourself

Cart abandonment rate = 1 − (completed purchases ÷ carts created), × 100.

Three things distort it.

Bots and scrapers create carts. If your rate jumped without any change to the store, check traffic sources before you check the checkout.

Every "add to cart" counts. People who add three variants to compare sizes generate three carts and one order. That's a shopping behavior, not a leak.

The blended number hides the split. Track cart and checkout separately. A store at 70% blended could be losing everyone at the cart or almost nobody, and the fixes are different.

Compare against your own last quarter more than against the 70.22%, which is an average of marketplaces, enterprise retailers and stores that are nothing like yours. Your trend is the signal. Their average is context.

[@portabletext/react] Unknown block type "ctaBox", specify a component for it in the `components.types` prop

The short version

70.22% is real, and 42% of abandoners were only browsing. Roughly a fifth of total abandonment is UX-caused and worth your time.

Cart abandonment and checkout abandonment are different problems on different surfaces. Track them separately or you will fix the wrong one.

Cost is the top reason by a distance. Show shipping before checkout and show the full total on the cart page, and you have addressed more of the list than everything else combined.

Never require an account. Cut the form. Offer wallets. Complete your own checkout on a phone at least once.

Recovery email is worth running and it isn't a substitute for any of the above. It reaches the people who gave you an address, and it doesn't fix the reason they left.

Grow your store with one click.