GA4 Ecommerce Funnel Numbers Do Not Match: View Item, Add to Cart, Checkout and Purchase Problems
When GA4 ecommerce funnel numbers do not match, the counts for view_item, add_to_cart, begin_checkout and purchase do not form the sequence you expect. Funnel stages do not always form a perfectly linear sequence, so not every difference is a tracking error. Focus on unexpected inconsistencies rather than expecting every stage to decrease neatly into the next.
Table of Contents
- 01.Funnels are not always linear
- 02.What to check first
- 03.Different user paths
- 04.Direct checkout and dynamic carts
- 05.Missing events
- 06.Duplicate events
- 07.How to test it
Funnels are not always linear
A real ecommerce journey does not always go view_item, then add_to_cart, then begin_checkout, then purchase in order. Customers skip steps, go back, use direct checkout or abandon and return. A funnel report that shows more add_to_cart than view_item is not necessarily wrong, it may reflect customers adding from a category page without viewing the product page. Do not automatically label every difference as a tracking error.
| Difference | Often expected | Often a problem |
|---|---|---|
| More add_to_cart than view_item | Yes, add from category pages | No, if view_item never fires |
| More begin_checkout than add_to_cart | Yes, direct checkout | No, if add_to_cart never fires |
| Stages out of order | Yes, non-linear journeys | No, if events fire on wrong actions |
| Large unexplained drops | Sometimes | Yes, missing events |
| Purchase higher than checkout | No | Yes, duplicate purchases |
What to check first
- Pull the counts for each funnel stage for the same period.
- Identify which differences are expected from non-linear journeys.
- Identify which differences are unexpected and worth investigating.
- Check whether each event fires on the correct action.
- Look for missing or duplicate events at the unexpected stages.
Different user paths
Customers reach purchase through different paths. Some view a product, some add from a category page, some use direct checkout from a cart, some return days later. These paths produce funnel counts that do not decrease neatly. A customer who adds to cart from a category page never fires view_item, so add_to_cart can exceed view_item. Understand the paths your store supports before you treat a count difference as an error.
Direct checkout and dynamic carts
Direct checkout lets customers start checkout without adding to cart first, which means begin_checkout can exceed add_to_cart. Dynamic carts that update without a page reload can miss the add_to_cart event if the trigger assumes a page load. These are real journey and implementation differences, not tracking errors. Confirm whether your store supports direct checkout and whether your add_to_cart trigger handles dynamic carts. The add to cart flow is covered in the guide on GA4 add to cart not working.
Missing events
An unexpected drop at a stage can mean the event for that stage is not firing. If begin_checkout is far lower than add_to_cart and your store does not have heavy abandonment, the begin_checkout event may not be firing for all checkout paths. Check whether the event fires on every path a customer can take. A missing event produces an artificial drop. The begin checkout flow is covered in the guide on GA4 begin checkout not firing.
Duplicate events
A stage that is higher than expected can mean duplicate events. If purchase is higher than begin_checkout, that is unexpected and usually means duplicate purchase events. Check the transaction_id values to confirm. Duplicate events inflate a stage and distort the funnel. The duplicate purchase flow is covered in the guide on GA4 purchase event firing twice.
How to test it
- 1.Pull the counts for view_item, add_to_cart, begin_checkout and purchase.
- 2.Separate expected differences from unexpected ones based on your store paths.
- 3.For unexpected drops, check whether the event fires on all paths.
- 4.For unexpected highs, check for duplicate events using transaction_id.
- 5.Confirm each event fires on the correct action for your store.
Frequently Asked Questions
Why are my GA4 ecommerce funnel numbers not in order?
Real journeys are not always linear. Customers can add to cart from a category page without a view_item, or use direct checkout without add_to_cart. These produce counts that do not decrease neatly and are not tracking errors.
When should I investigate a funnel difference?
Investigate unexpected differences, like a large unexplained drop that suggests a missing event, or a stage higher than the one before it that suggests duplicate events. Expected differences from non-linear journeys are not errors.
Need help applying this to your business?

PPC, Conversion Tracking, CRM and Automation Specialist. Helping businesses generate qualified leads with Google Ads, accurate tracking and automated follow-up.
Related Guides
GA4 Add to Cart Event Not Working: A Practical Ecommerce Tracking Guide
Add to cart often happens without a page reload. Confirm whether your store uses AJAX add to cart and use a data layer event trigger so the add_to_cart event fires on the actual action.
GA4 Begin Checkout Event Not Firing: How to Diagnose the Checkout Funnel
Checkout can begin with a button click, a page load or an express button. Determine the real point at which checkout begins before you configure the begin_checkout event trigger.
GA4 Ecommerce Purchase Event Not Firing: What to Check
A missing GA4 purchase event usually breaks somewhere between order completion and the GA4 request. Trace the flow from order data to the purchase event to find where the data stops.