Cart Abandonment Rate highlights how many carting sessions fail to convert. A rising rate suggests friction after the add-to-cart step, such as unexpected costs, poor payment options, or usability issues. A falling rate indicates improvements in PDP clarity, cart UX, or checkout flow are working. Use this metric to prioritize CRO work, validate experiments, and align teams on funnel health by channel, device, and customer type.
Standard session-based definition
This entry uses a session-based definition to stay consistent across web analytics and commerce platforms.
- A session is a contiguous visit as defined by your analytics tool. Google Analytics 4 (GA4) starts a session with a session_start and ends it after inactivity. Shopify Analytics and Adobe Analytics use similar concepts. Mobile apps follow SDK-specific rules. Exact boundaries differ, so document your choice.
- A cart add is an add_to_cart event or equivalent storefront action. A purchase is a purchase event or an order completion recorded in your platform. The session-based rate looks at whether a purchase occurred in the same session that contained a cart add.
Variants and when to use them
- Checkout Abandonment Rate: Sessions with checkout_start and no purchase ÷ Sessions with checkout_start. Use this to isolate problems inside checkout steps.
- User-based abandonment: Users who added to cart with no purchase ÷ Users who added to cart. Use for cohort or CRM-linked analysis.
- Cart-based abandonment: Carts created that never convert within X days ÷ Carts created. Use when carts persist across sessions and devices.
- Product view to cart drop-off: Sessions with product detail view and no add ÷ Sessions with product detail view. Use to troubleshoot PDP content.
Keep names explicit so teams do not confuse cart abandonment with checkout abandonment.
Dimensions and cuts to consider
- Device type and app vs web
- Traffic source, campaign, and landing template
- New vs returning customers
- Geography, currency, and language
- Product category, brand, and price band
- Discount state, shipping threshold exposure, and delivery promise visibility
- Payment method availability and wallet usage
Data sources and mapping
This metric shows up across tools with different event names and scopes.
- GA4: add_to_cart, begin_checkout, purchase. Use session-scoped identifiers to count unique sessions with events. For carts that purchase in later sessions, use a cart- or user-based variant.
- Shopify Analytics: Online store funnel reports show Added to cart, Reached checkout, and Sessions converted. Build the cart abandonment figure from sessions with added to cart as the denominator and sessions converted as the purchase numerator. Shopify also exposes Abandoned checkouts, which aligns to checkout abandonment, not cart abandonment.
- BigCommerce and Adobe Commerce (Magento): Storefront analytics, server logs, and data layers expose cart additions and orders. Tag managers can mirror events to an analytics destination.
- Custom tracking: Emit cart add and order completion both client side and server side. Use a consistent session or cart identifier to avoid double counting.
Align time zone, filters, and bot exclusions before comparing sources.
Ways to reduce cart abandonment
- Make costs clear. Show shipping, taxes, and delivery estimates early.
- Offer guest checkout. Remove account creation roadblocks.
- Expand payment coverage. Include major cards, wallets, and local methods.
- Speed up the flow. Reduce form fields, enable autofill, and keep pages fast.
- Keep carts persistent. Save state across sessions and devices.
- Reduce distractions. Limit popups and unrelated promos in cart and checkout.
- Fix validation pain. Surface concise error messages and keep entered data.
- Clarify returns and support. Display return policy, warranty, and help links.
- Use reminders thoughtfully. Send cart recovery emails or push notifications with sensible timing and frequency.
Quality assurance and common pitfalls
- Session mismatch. A buyer adds in one session and purchases in another. Decide whether to use a cart- or user-based variant for lifecycle analysis.
- Duplicate events. Fire add_to_cart once per action and de-duplicate client and server events.
- Quantity handling. Treat multi-quantity adds consistently: one event per action or per unit.
- Internal and bot traffic. Exclude staff IPs, crawlers, and monitors.
- Currency and tax settings. Inaccurate totals create perceived price jumps that inflate abandonment.
- A/B testing artefacts. Ensure experiments carry users through checkout without session splits.
- Consent and blockers. Expect lower capture on privacy-focused browsers. Use server events where possible.
- Time zone alignment. Keep event and session tables in the same zone before aggregation.