Glossary

Running a Checkout Funnel Analysis on the Steps That Actually Leak

Taras Shynkarenko
Taras Shynkarenko
•Updated: •8 min read
Running a Checkout Funnel Analysis on the Steps That Actually LeakRunning a Checkout Funnel Analysis on the Steps That Actually Leak

TL;DR, Quick Answer

8 min read

A checkout funnel covers the narrow stretch from begin_checkout to purchase, and Google standardises the event names for every step in between: add_shipping_info, add_payment_info and purchase. Keeping the analysis inside that stretch is what makes it useful, because those steps are the ones your team controls. Baymard's review of 50 studies puts average cart abandonment at 70.22%, and the leading stated reason, at 40%, is extra costs appearing late. The setup work is almost entirely instrumentation: fire one event per real step, keep the purchase event off a page the payment provider might never return to, and split the funnel by device and by guest versus account before reading a single number.

What is a checkout funnel analysis?

Unlike a site-wide conversion funnel, a checkout funnel analysis measures only the stretch between the moment a shopper commits to buying and the moment the order is confirmed. Everything earlier, the browsing, the search, the comparison, the cart building, sits outside it. That narrowing is the entire point. A shopper who reaches the checkout has already decided to spend money, so every exit after that point is a loss your own interface caused rather than a loss of interest.

The general mechanics of building and reading a funnel, step sequencing, open versus closed funnels, conversion windows and whether to count users or sessions, apply here unchanged and are covered in detail in how funnel analysis works. This page stays on what is specific to checkout: which steps exist, which ones leak, and how to instrument them so the numbers mean something.

What are the steps of a checkout funnel?

Google standardises the event names for the whole purchase journey in its GA4 ecommerce documentation, which makes checkout one of the few funnels where you do not have to invent your own vocabulary. The events, in documented order:

StageGA4 eventInside the checkout funnel
Shopper sees a list of resultsview_item_listNo
Shopper picks an item from the listselect_itemNo
Shopper views the product detail pageview_itemNo
Shopper adds the item to the cartadd_to_cartNo
Shopper opens the cartview_cartBoundary
Shopper starts checkoutbegin_checkoutYes, step 1
Shopper submits shipping detailsadd_shipping_infoYes, step 2
Shopper submits payment detailsadd_payment_infoYes, step 3
Order is confirmedpurchaseYes, step 4
Order is refundedrefundPost-funnel

Four steps is the honest shape of most checkout funnels, and the temptation to add more should be resisted unless the extra steps are real screens a shopper can abandon on. Splitting add_shipping_info into address entry and delivery method selection is worth doing if they are separate pages. It is not worth doing if they are two fieldsets on one page, because the resulting "drop" between them is an artifact of when your tags fire rather than a shopper leaving.

The view_cart row is marked as a boundary on purpose. Whether the cart belongs inside the funnel is the single decision that changes your headline number most, and it is the reason cart abandonment rate and checkout abandonment rate are different metrics with different denominators, a distinction worked through in how cart abandonment rate is calculated.

A shopper enters card details on a laptop, the moment checkout funnels most often lose people.

Where does drop-off concentrate in a checkout funnel?

Between begin_checkout and add_shipping_info, in almost every store that has looked. That first screen is where the total price becomes real, where account creation is usually demanded, and where a shopper first sees how long the form is going to be.

Baymard Institute's review of 50 separate studies puts the average documented cart abandonment rate at 70.22%, a figure last updated on 22 September 2025. The more useful part of that research is the breakdown of stated reasons, measured among shoppers who had genuinely intended to buy:

Stated reason for abandoning checkoutShare
Extra costs too high (shipping, tax, fees)40%
Delivery was too slow20%
Did not trust the site with card information19%
Required account creation18%
Checkout process too long or complicated17%
Website errors or crashes17%
Unsatisfactory returns policy13%
Could not see or calculate the total cost upfront12%
Card declined10%
Not enough payment methods9%

Baymard separately records that 42% of US online shoppers abandoned simply because they were browsing and not ready to buy, and excludes that group from the percentages above. That exclusion is why the list is worth acting on: what remains is people who wanted to complete the order and stopped anyway.

Map those reasons back onto the four steps and the shape of the problem becomes concrete. Extra costs, hidden totals, forced account creation and form length all land on step 1. Delivery speed and payment method coverage land on steps 2 and 3. Declines land on step 4, where they are a payment configuration problem rather than a design problem. Before comparing your own numbers against any of this, read the caveats in what published funnel benchmarks actually measure, because step definitions vary enough between studies to move a percentage by double digits.

A developer writes code at a laptop, the kind of work that fires tracking events at the right moment in checkout.

Where each stated reason lands
Step 1: begin_checkoutExtra costs, hidden totals, forced account creation, long forms
Steps 2-3: shipping and paymentSlow delivery, missing payment methods
Step 4: purchaseCard declines, a payment configuration problem
Baymard's stated reasons for abandoning checkout map onto specific steps rather than the funnel as a whole.

How do you set up a checkout funnel analysis?

Instrumentation first, report second. A funnel built on events that fire at the wrong moment produces confident, wrong answers, and no amount of analysis repairs it afterwards.

  1. Fire one event per screen a shopper can leave on. If your checkout is three pages, you want three events plus purchase. If it is a single page with accordion sections, fire add_shipping_info and add_payment_info on section completion rather than on page load, or the funnel will show 100% step completion and zero insight.
  2. Move purchase off the thank-you page if a redirect can skip it. Hosted payment pages, wallet flows and bank authentication all return the shopper somewhere you do not fully control. A purchase event that only fires on an order confirmation URL will undercount every order where the shopper closed the tab after paying. Send it server side from the order webhook and you get the true denominator.
  3. Set the funnel to closed rather than open. Checkout is genuinely sequential, so a shopper who appears at add_payment_info without having passed add_shipping_info is a tagging bug worth surfacing rather than a legitimate path worth counting.
  4. Choose a conversion window shorter than the default. Checkout is a minutes-long activity, not a days-long one. A 30-day window will credit a purchase that happened a week after an abandoned begin_checkout, which hides the abandonment you were trying to measure.
  5. Segment before you interpret. At minimum, split by device and by guest versus logged-in. Mobile checkout and desktop checkout rarely share a bottleneck, and forced account creation shows up as a step 1 collapse only in the guest segment.
  6. Record the step definitions alongside the report. A funnel whose step 2 changed definition in March will show a March cliff that no code change caused, and six months later nobody will remember why.

Step 2 is the one that quietly wrecks the most analyses. A store with a redirect-based payment provider can under-report completed orders by a wide margin and then spend a quarter optimising a step that was never broken.

What does a checkout funnel analysis not tell you?

It does not tell you why. A funnel gives you an exact location and no cause, which is the limit of every step-count report and the reason a drop-off number is a question rather than an answer. The 40% figure for unexpected costs is a survey result from Baymard's panel, not a diagnosis of your store, and treating it as one leads teams to remove a shipping fee that was never the problem.

Two things convert a located drop into a cause. The first is a segment split fine enough to isolate it: if the step 1 collapse only appears on mobile Safari, the cause is probably a rendering or autofill problem rather than a pricing one. The second is watching what people actually did on that screen, which is where session replay earns its place over aggregate reporting.

Flowsery
Flowsery

Start Your 14-Day Free Trial

Real-time dashboard

Goal tracking

Cookie-free tracking

It also does not tell you how much the leak is worth. A 12% drop at add_payment_info on a store with a high basket is worth more than a 30% drop at begin_checkout on a store with a low one, and the two are only comparable once you multiply through by what a typical order is worth. Ranking fixes by percentage rather than by recovered revenue is the most common way a correct analysis produces the wrong roadmap.

Frequently asked questions

Is checkout abandonment the same as cart abandonment?

No, and the difference is the denominator. Cart abandonment measures shoppers who added an item and did not buy, so its base is everyone who reached add_to_cart. Checkout abandonment measures shoppers who started checkout and did not buy, so its base is everyone who reached begin_checkout. The second base is much smaller and much more committed, which is why checkout abandonment rates are always lower than cart abandonment rates for the same store.

Which GA4 events should a checkout funnel use?

Google documents begin_checkout, add_shipping_info, add_payment_info and purchase as the checkout portion of the ecommerce journey, with view_cart immediately before it and refund after. Using those names rather than custom ones means any reporting tool that understands GA4 ecommerce can read your funnel without a mapping layer.

How many steps should a checkout funnel have?

As many as there are screens a shopper can abandon on, which is usually three or four. Adding steps that correspond to fieldsets rather than screens creates drops that reflect tag timing rather than behaviour. If you cannot describe what a shopper would have done to exit between two steps, those two steps should be one.

Why does my funnel show more purchases than checkouts started?

Usually because purchase fires from a source that begin_checkout cannot see, such as a server-side order webhook, a repeat order placed through a saved-cart link, or a subscription renewal. Check whether the purchase events carry a matching session or user identifier, and exclude renewal and admin-created orders from the funnel if they never pass through the checkout interface at all.

Should the checkout funnel count users or sessions?

Sessions, for the version you look at weekly. Checkout is a single-sitting activity, so a session-scoped funnel answers the question you are actually asking: of the people who started checking out just now, how many finished. A user-scoped funnel will credit a purchase made two days later against the original abandonment and make the leak look smaller than it is.

What is the first thing to check when a checkout step drops suddenly?

A deploy, before anything else. Sudden single-step cliffs are far more often a broken tag, a changed selector or a JavaScript error on one screen than a change in shopper behaviour. Compare the raw event count for that step against the step before it, check whether the drop is confined to one browser or device class, and only start reasoning about pricing, forms or trust once you have ruled out the possibility that the event simply stopped firing.

Should the cart page count as part of the checkout funnel?

Not officially. view_cart sits at a boundary just before begin_checkout, the first of the four steps inside the funnel. Whether you pull it inside the funnel or leave it out is the single decision that moves your headline abandonment number the most, because it changes the denominator. That's the same reason cart abandonment rate and checkout abandonment rate come out as different figures for the same store.

What is Baymard's average cart abandonment figure?

Baymard Institute's review of 50 separate studies puts the average documented cart abandonment rate at 70.22%, last updated on 22 September 2025. The stated-reasons list excludes the 42% of US shoppers who abandoned simply because they were just browsing. What's left in the stated-reasons breakdown is people who wanted to complete the order and stopped anyway.

How short should the conversion window be for a checkout funnel?

Shorter than a default 30-day window, because checkout is a minutes-long activity rather than a days-long one. A 30-day window will credit a purchase that happened a week after an abandoned begin_checkout, which hides the abandonment you're trying to measure. Set the window to match how long your checkout actually takes to complete.

What is the most common reason shoppers abandon checkout?

Extra costs appearing late, such as shipping, tax or fees, cited by 40% of shoppers in Baymard's research, the highest share of any stated reason. That lands on step 1, begin_checkout, where the total price becomes real for the first time. Delivery speed (20%) and distrust of the site with card information (19%) come next.

Was This Article Helpful?

Let us know what you think!

See us more often in Google

One click marks Flowsery as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.

Before you go...

Flowsery

Flowsery

Revenue-first analytics for your website

Track every visitor, source, and conversion in real time. Simple, powerful, and cookie-free.

Real-time dashboard

Goal tracking

Cookie-free tracking

Related Glossary Terms

Related Articles