Cart abandonment rate formula for Shopify (2026)

The cart abandonment rate formula, where to pull each input in Shopify, a worked example, and why your reports disagree. Plus what to A/B test.

Portrait of Rishi Babu

Written by

Rishi Babu

Lead marketer at Cascayd

10 min read

The formula, and what counts as a cart

Cart abandonment rate = (1 - completed purchases ÷ carts created) × 100

If 1,000 sessions add something to the cart and 280 of those sessions buy, 720 abandoned. That is a 72% cart abandonment rate.

The part that trips people up is the word "cart". There are two useful versions, and they answer different questions:

RateDenominatorWhat it tells you
Cart abandonmentSessions with cart additionsHow many people who showed buying intent left without paying
Checkout abandonmentSessions that reached checkoutHow many people who started paying left without finishing
Cart-to-checkout dropSessions with cart additions that never reached checkoutWhether price, shipping surprises or the cart itself is the problem

Report all three. A 73% cart abandonment rate with a 40% checkout abandonment rate means most of the leak sits before checkout, which points at the product page, the shipping message and the cart. The reverse points at forms, delivery options and payment.

Two rules keep the number honest. Count the same unit on both sides (sessions with sessions, not sessions with orders), and use the same dates for every input.

Pull the inputs from Shopify in five steps

Shopify's own definitions decide what you can measure, so start from them.

  1. In your Shopify admin, go to Analytics > Reports, filter the category to Behavior, and open Conversion rate breakdown.
  2. Set the date range to a full 28 or 30 days, and filter to Human sessions so bots do not pad the top of the funnel.
  3. Switch Open Funnel off. The closed funnel only counts a session in a step if it passed through the earlier steps in order, which is what the formula assumes. The open funnel also counts a visitor who lands straight in checkout, such as a buyer coming in from Instagram Shopping, and that can make checkout look bigger than the cart.
  4. Write down three numbers: sessions with cart additions, sessions that reached checkout, sessions that completed checkout.
  5. Calculate cart abandonment as 1 - (completed ÷ cart additions), and checkout abandonment as 1 - (completed ÷ reached checkout).

Two Shopify details change the reading. A session counts as having reached checkout when there was user input during checkout, such as a key press or a click, so a shopper who loads the page and leaves is not in that number. And sessions that completed checkout will not always equal your order count, because one session can hold more than one purchase.

Shopify also changed how sessions are counted in a rollout from September 21 to 23, 2026, and its Help Center warns that sessions, conversion rate and other session-based metrics may look different afterwards even when traffic and orders did not change. Do not compare a September rate to an October rate without checking which side of that date each one sits on.

A worked example: one messy month

Example figures, not benchmarks. Say you sell candles and diffusers, run most of your spend through Meta, and a thread on r/shopify has you wondering why "the dashboard says 61%, Klaviyo says 68% and GA4 says something else". You pull the closed funnel for the last 30 days:

Funnel stepSessions
All sessions118,000
Sessions with cart additions6,900
Sessions that reached checkout3,150
Sessions that completed checkout1,880
  • Cart abandonment: (1 - 1,880 ÷ 6,900) × 100 = 72.8%
  • Checkout abandonment: (1 - 1,880 ÷ 3,150) × 100 = 40.3%
  • Carts that never reached checkout: (1 - 3,150 ÷ 6,900) × 100 = 54.3%

So of the 5,020 abandoned carts, 3,750 never got as far as typing in a checkout field. The abandoned checkout recovery flow you spent a weekend on only touches the other 1,270, and only the ones who entered an email.

That changes where the next test goes. The big leak is before checkout, so a new checkout email sequence is the wrong first move. A better first test is whatever makes buyers bail at the cart: a shipping cost that only appears at checkout, a delivery date nobody can see, or a free shipping line that sits just above the typical $38 diffuser order.

Why Shopify, GA4 and Klaviyo give you three different numbers

They all count different things, so none is wrong.

SourceWhat it countsUnit
Shopify Analytics funnelSessions with cart additions vs sessions that completed checkoutSessions
Orders > Abandoned checkoutsCheckouts where the shopper gave an email or phone and stayed idle more than ten minutesCheckouts
GA4 funneladd_to_cart vs purchase eventsUsers or sessions, depending on the report
Email or SMS platformCarts or checkouts that triggered a flowProfiles

The Orders > Abandoned checkouts list is the one most founders reach for first, and it is the narrowest. Shopify only logs a checkout there once the shopper has given contact details and left it incomplete for more than ten minutes. Suspected card testing and bot activity is filtered out, abandoned checkouts older than three months are deleted from the admin, and recovery tools cover only the Online Store and Buy Button channels. Items in the cart at the time are not saved with the checkout. Treat that list as a recovery queue and a place to read payment failure reasons, not as the denominator for your abandonment rate.

Pick the Shopify funnel as your source of truth, write down the definition on a sticky note, and stop comparing it to the other three.

What a normal rate looks like

Baymard's roundup of 50 studies from 2006 to 2025 puts the average documented cart abandonment rate at 70.22%, with individual studies running from roughly 55% to 84%. Its own survey found 42% of US online shoppers had abandoned a cart because they were just browsing or not ready to buy. Of the remaining reasons, extra costs (shipping, tax, fees) came out at 40%, slow delivery 20%, no trust in the site with card details 19% and a forced account 18%.

That is why a "good" rate is mostly your own trend line. Fix the definition, pull the same funnel monthly, and split it by device and by traffic source. A store that sits at 74% on mobile Meta traffic and 62% on email traffic does not have one problem. It has two audiences, and each needs its own hypothesis.

Test what moves the number, one change at a time

Every store's visitors differ, so a tip that cut abandonment somewhere else is a hypothesis here. Pick the leak the funnel shows you, write one hypothesis for it, and test that change alone.

Where the leak isHypothesis to testJudge it onGuardrail
Cart to checkout, shipping surpriseShowing a delivery estimate and shipping cost on the product page and cart cuts surprise at checkoutRevenue per visitorAdd to cart rate
Cart to checkout, nothing near the free shipping lineA "$12 away from free shipping" bar lifts carts that would have leftRevenue per visitorMargin per order
Checkout, account wallMaking guest or accelerated checkout the default shortens the pathCheckout completionRefund rate
Checkout, trustReturns and payment-security lines near the pay button calm hesitant buyersCheckout completionPage speed
Cart, dead endA cart that shows returns terms and one relevant add-on beats a cart with eight widgetsRevenue per visitorReached checkout rate

Judge each test on revenue per visitor, not on abandonment rate alone. You can cut abandonment by pushing low-intent browsers into the cart with a bigger discount and still earn less per visitor. The Shopify checkout optimization guide lists what you can and cannot change in checkout on each plan, and the add to cart rate guide covers the step before the cart.

Run the tests with a clean setup:

A big backlog of ideas is a fair way to work. It keeps the next test ready and makes testing faster. What it does not do is build on what you just learned: if the shipping estimate wins on mobile Meta traffic and does nothing on email traffic, that result should shape the next test, not whatever sat next in the queue. Both approaches work. Pick on purpose.

DIY tools such as Intelligems, Shoplift and Visually make Shopify testing accessible. The hours around them are still yours: reading the funnel, writing hypotheses, designing variants, building, and reading the result. Retainer agencies take that on and bill the same each month whether revenue moves or not. The DIY vs agency comparison lays out both.

Cascayd is outcome-based and hands-off. Our team does the research, strategy and creative design. AI speeds up the build and the grunt work. Each test lands in Slack with the reasoning, you approve it or ask for changes, and Cascayd is paid only from a share of the measured uplift. See how the Shopify CRO service works.

Your next step

Open Conversion rate breakdown today, switch off Open Funnel, and write down the three session counts for the last 30 days. Work out cart abandonment and checkout abandonment, then circle the bigger leak. If you would rather have that read, tested and judged for you, book a call and tell us about your store.