Add-To-Cart vs Begin-Checkout: Which Event Anchors Your Abandonment Denominator

Metricuno
October 18, 2026
6 min read
Add-To-Cart vs Begin-Checkout: Which Event Anchors Your Abandonment Denominator — Which event should anchor your cart abandonment rate — add_to_cart or begin_checkout? The choice swings the number by 15-25 points. Here's how to pick.
Quick answer

The event you pick as your abandonment denominator — add_to_cart or begin_checkout — quietly swings the reported rate by 15-25 points. Here's which one actually answers your question.

Quick answer

Anchor on begin_checkout when you want a clean checkout-friction number comparable to Shopify's native rate and to industry benchmarks. Anchor on add_to_cart only when you want to measure cart-page drop-off (price shock, shipping reveal, upsell overload) as a separate diagnosis. Never mix the two in the same dashboard — the gap between them is typically 15-25 percentage points.

Definition
Cart Abandonment Measurement

Add-To-Cart vs Begin-Checkout as abandonment denominator

The choice of which GA4 event — add_to_cart or begin_checkout — defines the 'cart' in your cart abandonment rate, which shifts the reported number by 15-25 points.

Cart abandonment rate is a ratio: carts that didn't convert divided by carts that existed. The question is what counts as a cart. GA4 fires add_to_cart the moment a product is added, including PDP quick-adds, mini-cart adjustments, and bot traffic. It fires begin_checkout only when the user actively enters the checkout flow — a much higher-intent signal. On a typical Shopify apparel store, roughly 55-70% of add_to_cart sessions never reach begin_checkout, so anchoring on the earlier event inflates the denominator and makes abandonment look catastrophic. The two numbers are both valid, but they answer different questions.

Also known as
cart event anchor
abandonment denominator choice
add_to_cart vs begin_checkout

If your reported cart abandonment rate jumped from 68% to 86% after a tracking migration and nothing changed on-site, you almost certainly swapped the denominator. This is the single most common cause of alarming week-over-week swings that no one can explain in the Monday stand-up.

Why the two events diverge so wildly

add_to_cart is a low-friction, high-volume event. On a Shopify store with PDP quick-add buttons, a single curious visitor can fire the event 4-6 times in one session while comparing colorways — none of which represents genuine purchase intent.

begin_checkout, by contrast, requires the user to tap through to /checkout. That click is a commitment: they've seen the subtotal, the shipping estimate, and the trust badges, and they still want to proceed. The population reaching begin_checkout is 2-4x more qualified than the population firing add_to_cart.

The quick-add trap

If your PDP uses quick-add buttons (hover-to-add, swatch-click-adds, 'add to bag' from collection pages), your add_to_cart denominator is inflated by 30-40% versus a store that forces a PDP visit first. Benchmarking that number against anyone else's is meaningless until you normalize.

What each number actually tells you

An add_to_cart-anchored abandonment rate measures cart-page friction: shipping cost reveal, discount-code anxiety, upsell overload, mini-cart UX. If this number is high but your begin_checkout-anchored number is reasonable, the problem lives on the cart page itself — not in checkout.

A begin_checkout-anchored rate measures checkout-flow friction: address autocomplete, payment method coverage, guest-checkout availability, form validation errors. This is the number that maps cleanly to Shopify's native 'Checkout started' metric and to the 70% figure Baymard quotes as the industry average.

Benchmark

What a typical Shopify apparel store sees across both denominators

Funnel stageSessions (indexed to 100 add_to_cart)Abandonment rate vs add_to_cartAbandonment rate vs begin_checkout
add_to_cart100——
begin_checkout35-45——
add_payment_info22-28——
purchase12-1882-88%60-68%

How to pick the right anchor for your store

Default to begin_checkout for the headline number you report to leadership and compare to industry benchmarks. It's the one Shopify reports natively, it's comparable to Baymard's 70% benchmark, and it isolates checkout-flow problems from cart-page problems.

Keep add_to_cart as a secondary, diagnostic number inside your CRO dashboard. The gap between the two rates — the 'cart-page drop-off' — is where quick-add inflation, shipping-cost surprise, and discount-code hunting show up. Watching both tells you which page to fix.

Subscription brands are the exception: because trial-add rates run so much higher than one-time purchase intent, add_to_cart denominators are especially noisy and begin_checkout is almost always the right anchor. A beauty subscription brand we've seen report a 91% add_to_cart abandonment rate drops to 64% when re-anchored.

The GTM dataLayer fix

If you want the two numbers to be truly comparable — same session scope, same bot filter, same deduplication window — you need a small GTM dataLayer change that stamps a consistent cart_id on both events. Without it, GA4's default session attribution will double-count users across event types.

Experiment ideas once your denominator is clean

With begin_checkout as the anchor, test shipping-cost disclosure on the cart page (not in checkout) and measure the lift in the begin_checkout → add_payment_info step. The hypothesis: showing shipping earlier filters out price-sensitive bounces before they inflate your checkout-abandonment number.

With add_to_cart as the diagnostic, test removing quick-add from collection pages for a week. If the add_to_cart → begin_checkout rate jumps 8-12 points, you've confirmed quick-add is noise rather than intent — and you can now report a more honest 'cart intent' number.

Frequently asked

FAQ

Shopify's 'Online store conversion over time' report anchors on checkouts started (equivalent to begin_checkout), not on add-to-cart events. That's why Shopify's reported number is almost always lower than what you'll see in GA4 if GA4 is anchored on add_to_cart.

GA4's default 'Checkout journey' funnel exploration uses begin_checkout as the checkout entry point, but its 'Ecommerce purchases' report and most third-party dashboards (including Klaviyo and many Shopify apps) default to add_to_cart as the top of the cart funnel. The inconsistency is the source of most reporting discrepancies.

Each tool picks a different combination of denominator event, session scope, and bot filter. Shopify counts checkouts started, GA4 often counts add_to_cart sessions, and Klaviyo counts email-identified profiles with a cart. The three populations barely overlap, so the three rates can differ by 20+ points on the same store in the same week.

Anchored on begin_checkout, 60-70% is roughly average for Shopify apparel and beauty stores, with best-in-class closer to 50%. Anchored on add_to_cart, 80-88% is average and anything below 75% is excellent. Comparing the two numbers directly is a category error.

Yes. Quick-add removes the friction of a PDP visit, so curious browsers add 3-6 items they'd never have considered buying. On stores we've audited, enabling quick-add inflates add_to_cart volume by 30-40% without a corresponding lift in begin_checkout — so the abandonment rate looks worse even though revenue is flat or up.

Yes. Subscription offers have higher trial-add intent than one-time purchases, so add_to_cart denominators are especially noisy and inflated. Begin_checkout is the right anchor for subscription brands — it filters out the 'curious about the trial price' crowd and isolates genuine signup friction.

Dramatically. If you multiply abandoned carts × AOV × a recovery-rate assumption, swapping from begin_checkout to add_to_cart as the denominator can swing the recoverable-revenue number by €200K+ on a €5M store. The ratio is the same but the absolute cart count is 2-3x higher.

No. Mobile stores tend to fire more add_to_cart events per session (bigger thumbs, more accidental taps, more quick-add use) while desktop is more deliberate. Comparing mobile add_to_cart-anchored abandonment to desktop begin_checkout-anchored abandonment is meaningless — the denominators aren't comparable even within the same store.

Push a shared cart_id value into the dataLayer on both add_to_cart and begin_checkout, and dedupe sessions on that key. This lets you build a GA4 funnel exploration where the two events share a session scope, making the add_to_cart → begin_checkout step a clean cart-page drop-off metric rather than a noisy ratio.

Lead with the begin_checkout-anchored rate because it's defensible against industry benchmarks and matches what the client sees in Shopify. Then show the add_to_cart-anchored rate as a diagnostic to explain where the cart-page friction is hiding. Leading with the add_to_cart number alone makes the baseline look worse than it is and sets you up to be challenged in the kickoff deck.

Get an AI expert review of your site

Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.