Checkout & conversion11 min readUpdated October 14, 2026

Checkout Abandonment Rate: How to Calculate and Read It

Checkout abandonment rate: the formula, how to measure it in GA4 and Shopify, which step loses buyers, and why declined payments inflate the number.

Article summary

TL;DR

Checkout abandonment rate is the share of shoppers who start checkout but don't complete the purchase: (checkouts started − purchases) ÷ checkouts started × 100. It starts later in the funnel than cart abandonment, so it's lower. Part of it isn't abandonment at all: declined payments and failed 3D Secure look like exits in analytics.

  • Checkout abandonment starts at the first checkout step. Cart abandonment starts at add to cart. Different denominators, different numbers.
  • GA4 counts users in a closed funnel from begin_checkout. Shopify counts sessions, and only those with input during checkout. The same store gets two rates.
  • Break the rate down by step: the drop between shipping and payment doesn't have the same cause as the drop after payment is submitted.
  • After the shopper clicks Pay, most of the loss is declines and failed authentication. Only your processor logs separate them from real exits.
  • Baymard's 70.22% is an average of 50 cart abandonment studies, not a checkout benchmark. Compare yourself with your own past rate, by segment.
Want to go further? AskChatGPTClaudePerplexityGrok
On this page

Checkout abandonment rate tells you how many shoppers who opened your checkout left without paying. It sounds like one clean number, but it depends on where you start counting, which tool counts it, and whether declined payments are hiding inside it. Here's the formula, how to measure it in GA4 and Shopify, how to read it step by step, and what the benchmarks actually measure.

What is checkout abandonment rate?

Checkout abandonment rate is the share of shoppers who start checkout and don't complete the purchase. It's often confused with cart abandonment, which starts one step earlier: at add to cart. The two rates use different denominators, so they never match.

Cart abandonment rateCheckout abandonment rate
Counted fromAdd to cartFirst checkout step (begin checkout)
Shoppers who never opened checkoutCountedLeft out
Typical levelHigher: more people, further from payingLower: only shoppers who started to pay
What it points atPrices, shipping costs, product pages, browsing intentThe checkout: forms, costs revealed late, payment methods, declines
Who covers itCart reminders and pricing transparencyCheckout and payment fixes

Fig. 1Where each rate starts counting

  1. Add to cartCart abandonment starts here
  2. Begin checkoutCheckout abandonment starts here
  3. ShippingAddress and delivery option
  4. PaymentCard, wallet or local method
  5. PurchaseBoth rates end here

same funnel, two denominators

Step names follow GA4's ecommerce events.

Checkout conversion rate is the mirror image: purchases divided by checkouts started. Shopify uses exactly that definition for its checkout conversion rate.6Shopify Dev Docs, ShopifyQL sessions schema Store conversion rate is different again: purchases divided by all sessions.

Checkout abandonment rate formula

The formula

Checkout abandonment rate = (checkouts started − purchases) ÷ checkouts started × 100

Equivalently: 100% − checkout conversion rate.

A worked example. In September, a store records 4,000 users who added to cart, 2,400 who started checkout and 900 who purchased.

MetricCalculationResult
Checkout abandonment rate(2,400 − 900) ÷ 2,400 × 10062.5%
Checkout conversion rate900 ÷ 2,400 × 10037.5%
Cart abandonment rate, same month(4,000 − 900) ÷ 4,000 × 10077.5%

Same store, same month, two abandonment rates 15 points apart. That's why a benchmark is useless until you know which one it measures.

Three rules keep the number honest:

  • Same unit on both sides. Users with users, sessions with sessions. Mixing them inflates or deflates the rate.
  • Deduplicated purchases. Google's event reference says the transaction_id parameter helps you avoid duplicate purchase events, for example when a customer reloads the confirmation page.4Google for Developers, GA4 recommended events reference
  • A window that fits your checkout. A shopper can leave and come back. Stripe Checkout sessions expire 24 hours after creation by default, and you can shorten that to 30 minutes minimum.9Stripe Docs, Recover abandoned carts Count a checkout as abandoned only once its window has closed.

How to measure checkout abandonment in GA4

GA4 builds the checkout funnel from four recommended ecommerce events. Google defines begin_checkout as the event that "signifies that a user has begun a checkout", add_shipping_info and add_payment_info as the user submitting shipping and payment information, and purchase as one or more items being purchased.4Google for Developers, GA4 recommended events reference

GA4 eventCheckout journey stepWhat it means
begin_checkoutBegin checkoutThe shopper opened checkout
add_shipping_infoAdd shippingShipping details submitted, with the delivery tier
add_payment_infoAdd paymentPayment details submitted
purchasePurchaseOrder completed, with transaction_id, value and currency

The Checkout journey report turns those events into a funnel. Google describes it as showing "the number and percentage of users who began checkout" and completed each next step, with an abandonment rate shown under each bar that has a next step.2Google Analytics Help, [GA4] Checkout journey report You'll find it under the Monetization topic of the Life cycle collection.

Three things the report does that change your number

It's a closed funnel: only users who entered at Begin checkout count. It counts users, not sessions. And it can't be customized: for other steps, build a funnel exploration.2Google Analytics Help, [GA4] Checkout journey report If one of the four events is missing, its step shows no data. On Shopify, GA4 collects begin_checkout, add_payment_info and purchase automatically, but add_shipping_info has to be set up.2Google Analytics Help, [GA4] Checkout journey report

For the event setup itself, see our guide to GA4 ecommerce events. Google's implementation guide documents the parameters each event takes.3Google for Developers, Measure ecommerce (GA4)

How to measure checkout abandonment in Shopify

Shopify gives you three different views, and they don't count the same thing.

  1. Conversion rate breakdown

    A funnel report: all sessions, sessions with cart additions, sessions that reached checkout, sessions that completed checkout. Switch to the closed funnel to see "Reached this step" and "Dropped off" for each step.

  2. ShopifyQL sessions data

    Checkout conversion rate = sessions that completed checkout ÷ sessions that reached checkout. Your checkout abandonment rate is 100% minus that.

  3. Abandoned checkouts page

    Orders > Abandoned checkouts. A list of checkouts where the customer entered an email and didn't pay within 10 minutes. Deleted after three months.

The definitions matter. Shopify counts a session as "reached checkout" only when there was user input during checkout, "for example, a key press or mouse click".5Shopify Help Center, Behaviour reports (Conversion rate breakdown) A visitor who opens checkout and leaves without touching anything isn't in the denominator. GA4's begin_checkout usually fires when checkout loads, so the same store tends to show a lower checkout abandonment rate in Shopify than in GA4.

The Abandoned checkouts list is a recovery tool, not a measurement. It only holds checkouts where an email was entered and that stayed incomplete for more than ten minutes, and it drops anything older than three months.7Shopify Help Center, Abandoned checkouts Count those rows and you undercount abandonment.

Practical rule

Pick one source for your trend line and write down its definition. Compare GA4 with Shopify only to spot tracking problems, never to pick the better-looking number.

Break the rate down by checkout step

A single rate tells you that buyers leave. The step-by-step drop tells you where. Here's the same September example, split by GA4 step.

StepUsersLost before the next stepDrop at this step
Begin checkout2,40070029.2%
Add shipping1,70045026.5%
Add payment1,25035028.0%
Purchase900
Whole checkout1,50062.5%

Each drop has its own usual suspects.

  1. Begin checkout → shippingForced account creation, a long form, a shopper comparing pricesGuest checkout, field count, session recordings
  2. Shipping → paymentShipping cost or delivery date revealed too lateShow costs earlier, test the delivery options
  3. Payment → purchaseDeclines, failed 3D Secure, a missing payment method, a purchase tag that didn't fireProcessor logs, not analytics

Google's own example reads the funnel the same way: a big drop between shipping and payment may point to shipping costs or a forced login.2Google Analytics Help, [GA4] Checkout journey report Then segment each step by device, country, traffic source and new versus returning customer. A step that only breaks on mobile in one country is a different fix from one that breaks everywhere.

Inside Tagada

Build the funnel once, route every customer to the right offer

Checkout, upsells and subscriptions on one flow, with conditions per country, order or customer.

Start free

The payment step: declines look like abandonment

The last step is the one analytics reads worst. Once the shopper submits payment, three very different things can stop the purchase event:

  • The payment was declined and the shopper gave up.
  • Authentication failed or was abandoned: the bank asked for 3D Secure and the shopper didn't complete it.
  • The payment went through but the purchase event didn't fire: a redirect, an ad blocker, a consent banner.

In your analytics, all three look like a shopper who walked away. They're not: the first two wanted to pay, and the third did pay. Among US online shoppers who abandoned for a reason other than "just browsing", Baymard's survey has 10% citing "the credit card was declined" and 17% "website had errors / crashed".1Baymard Institute, Cart abandonment rate statistics (last updated September 22, 2025)

Your processor's records tell them apart. At Stripe, a payment that needs 3D Secure sits in requires_action; when an attempt fails, for example on a decline, the PaymentIntent returns to requires_payment_method so the payment can be retried.8Stripe Docs, How Payment Intents and Setup Intents work A payment that stays there after a decline looks, by status alone, like one that never got a card. Read the attempts, not only the final status.

  1. Pass a shared ID. Send your checkout or cart ID to the processor as metadata, and to analytics as a parameter, so both records can be joined.
  2. Pull the attempts. For each checkout that reached the payment step, list every payment attempt, its result and its decline code.
  3. Sort into four groups. No attempt at all, declined, authentication not completed, succeeded.
  4. Fix the "succeeded" group first. Those are tracking gaps, not lost buyers: compare them against your orders to confirm.
  5. Report two rates. Behavioral abandonment (no attempt) and payment failure (declined or not authenticated). They have different owners.

Do this once a month on the sessions that submitted payment and didn't purchase.

The payment failure group belongs in your payment acceptance rate, which covers how to classify soft and hard declines and how to retry without making things worse. Lowering it is a payments project, not a checkout design project.

Checkout abandonment rate benchmarks

The figure everyone quotes comes from Baymard Institute. Its page, last updated on September 22, 2025, reports "the average cart abandonment rate of 70.22%", calculated from 50 studies containing statistics on ecommerce shopping cart abandonment.1Baymard Institute, Cart abandonment rate statistics (last updated September 22, 2025)

70.22%

Baymard's documented average, from 50 studies

2006 to 2025

Years covered by the studies averaged

55.00% to 84.27%

Lowest (Forrester Research, 2010) and highest (SaleCycle, 2020) study in the list

Before using it, read the method:

  • It's cart abandonment. The page is titled "Cart & Checkout", but the average is built from cart abandonment studies, and the page doesn't say whether each study counted from add to cart or from checkout. A checkout abandonment rate starts later in the funnel, so it should come in lower.
  • It's an average of other people's numbers. The 50 studies come from vendors and research firms, with their own methods, over nearly 20 years. Baymard itself notes large fluctuations between studies.
  • It mixes every vertical, device and market. Your store has one mix.

Baymard also publishes why shoppers leave. In its survey of US online shoppers, 42% abandoned a cart because they were "just browsing / not ready to buy". Excluding them, the top reasons were:1Baymard Institute, Cart abandonment rate statistics (last updated September 22, 2025)

Fig. 2Why US shoppers abandoned during checkout

  1. Extra costs too high (shipping, tax, fees)40%
  2. Delivery was too slow20%
  3. Didn't trust the site with card information19%
  4. Site wanted an account18%
  5. Too long or complicated checkout17%
  6. Website had errors or crashed17%
  7. Couldn't see the total cost up front12%
  8. Credit card was declined10%
  9. Not enough payment methods9%

excluding 'just browsing'

Source: Baymard Institute, cart abandonment rate statistics, last updated September 22, 2025, read on October 14, 2026. Shoppers could give several reasons.

Figures from vendor blogs that quote checkout abandonment by industry or device rarely name their sample. If you use one, say who published it, when, and what it counted.

What is a good checkout abandonment rate?

No card network, analytics vendor or regulator publishes an official target. A good rate is one that falls against your own history, for the same segment and the same definition. Context moves the number more than checkout quality does:

ContextExpect the rate to beWhy
Returning customers with a saved cardLowerFewer fields, fewer surprises, a card that already worked
Express wallet buttons (Apple Pay, Google Pay)LowerAddress and payment come from the wallet
Mobile trafficHigherTyping on a small screen, app switching for authentication
Cold paid social trafficHigherMore shoppers checking the total before deciding
High-ticket ordersHigherMore comparison, more issuer scrutiny
Cross-border buyersHigherCurrency, duties, missing local methods, more declines
Shopify reports compared with GA4Lower in ShopifyShopify's denominator only counts sessions with input during checkout

Read the trend, then the step

A total that rises by five points tells you something changed. The step table tells you what. A jump at the payment step the week you switched processors is not a design problem.

How to lower your checkout abandonment rate

Fix what the step breakdown points at, in this order:

  1. Payment step losses: separate declines from exits first. Declines are handled in payment acceptance rate; missing methods in alternative payment methods and local payment methods; returning buyers in saved payment methods.
  2. Costs revealed late: show shipping, tax and fees before checkout. Baymard's top reason, by far.
  3. Account walls and long forms: see checkout as guest and one-page checkout.
  4. Shoppers who simply left: recovery emails and reminders, covered in how to reduce cart abandonment. Shopify can only email shoppers who entered an email address,7Shopify Help Center, Abandoned checkouts and Stripe treats recovery emails as promotional: the customer must have agreed to receive them.9Stripe Docs, Recover abandoned carts

The full, ranked list of checkout fixes is in our ecommerce checkout optimization guide, and the steps behind them in checkout flow.

Where Tagada fits

How Tagada helps

One checkout, several processors behind it

Tagada's checkout comes with one-click upsells, order bumps, A/B tests, Apple Pay and Google Pay, and server-side tracking for Meta, Google and TikTok, so purchase events don't depend on the browser alone. Behind the payment step, it routes across Stripe, Adyen and its own processor, TagadaPay, with one set of rules and a cascade on decline. TagadaPay includes native 3DS2, device intelligence and a rules engine. Pricing is on the pricing page.

Whatever your stack, the method holds: one written definition, a step-by-step funnel, and processor logs joined to the payment step before you call anything abandonment.

Nick Bonnassies

CMO at Tagada

CMO at Tagada. Before Tagada, Nick built direct-to-consumer brands that generated over $115M in sales, raised over $25M in crowdfunding and sold two of them. He also works as a fractional CMO on marketing operations and AI systems.

Frequently asked questions

What is the difference between cart abandonment and checkout abandonment?

Cart abandonment counts everyone who added a product to the cart and didn't buy, including shoppers who never opened checkout. Checkout abandonment only counts shoppers who started checkout and didn't buy. The denominator is smaller and closer to the purchase, so the rate is lower, and it points at the checkout itself rather than at pricing or product pages.

How do you calculate checkout abandonment rate?

Divide the checkouts that didn't end in a purchase by the checkouts started, then multiply by 100: (checkouts started − purchases) ÷ checkouts started × 100. With 2,400 checkouts started and 900 purchases, the rate is 62.5%. Use the same period, the same unit (users or sessions) and deduplicated purchases on both sides.

What is a good checkout abandonment rate?

There's no official benchmark. The most quoted figure, Baymard Institute's 70.22%, averages 50 studies of cart abandonment, which starts earlier in the funnel. A good rate is one that falls against your own history for the same segment: same device, same market, same traffic source. Read each step separately before judging the total.

Where do I find checkout abandonment in Google Analytics 4?

Open the Checkout journey report, under Monetization in the Life cycle collection. It's a closed funnel built from begin_checkout, add_shipping_info, add_payment_info and purchase, and shows an abandonment rate under each step. On Shopify, GA4 collects begin_checkout, add_payment_info and purchase automatically; add_shipping_info needs to be set up.

Do declined payments count as checkout abandonment?

In your analytics, yes. A shopper whose card is declined and who leaves never fires a purchase event, so they look exactly like someone who changed their mind. In Baymard's survey of US shoppers who abandoned for a reason other than just browsing, 10% cited a declined card. Join your processor's payment attempts to checkout sessions to separate declines from real exits.

Why does Shopify show a different checkout abandonment rate than GA4?

They don't count the same thing. Shopify counts sessions, and a session only reaches checkout if there was user input during checkout, such as a key press or click. GA4 counts users from the begin_checkout event in a closed funnel. Ad blockers and consent banners also remove some GA4 events. Pick one source for trends.

Sources

Checked October 14, 2026
  1. Baymard Institute, Cart abandonment rate statistics (last updated September 22, 2025)
  2. Google Analytics Help, [GA4] Checkout journey report
  3. Google for Developers, Measure ecommerce (GA4)
  4. Google for Developers, GA4 recommended events reference
  5. Shopify Help Center, Behaviour reports (Conversion rate breakdown)
  6. Shopify Dev Docs, ShopifyQL sessions schema
  7. Shopify Help Center, Abandoned checkouts
  8. Stripe Docs, How Payment Intents and Setup Intents work
  9. Stripe Docs, Recover abandoned carts

Tagada

Losing buyers at the payment step? Give them a second processor

Funnels, one-click upsells, subscription billing and payment routing, on one customer record.

  1. 01Create your free account
  2. 02Connect your store or build a checkout
  3. 03Launch funnels, upsells and subscriptions