Skip to content
All stories
E-commerceAnalytics & Measurement2 min read

One business. Two revenue totals. A 21% gap.

The order system and GA4 were telling different stories. Before anyone changed a budget, the revenue definitions and tracking needed reconciliation.

GTM · GA4 E-commerce Events · Checkout · Order System

21% → 3% revenue reporting gap

Duplicate Purchase Events Below 1% · One Shared Revenue Definition · 4-Week Measurement Rebuild

The measurement repair

The order ledger provided the transaction reference. Comparing it with GA4 separated duplicate purchases and refund handling from legitimate differences in coverage, so the repair addressed the cause of the 21% gap.

Engagement at a glance

Starting point
An ecommerce order system and GA4 disagreed on revenue by approximately 21%.
My scope
Transaction reconciliation, purchase-event checks and a shared revenue definition.
Results period
4 weeks
Read the reported results and their context ↓

The revenue reports disagreed by 21%.

An online retailer was using GA4 revenue to judge campaigns despite a gap of approximately 21% against the order system. Duplicate purchase activity, inconsistent refund handling and different revenue definitions made the discrepancy too large to treat as ordinary tracking loss.

Fix how purchases were recorded

Transaction IDs connected purchase events to order records. The data-layer review checked values, currencies and the point at which a successful purchase should fire. GTM logic was inspected for repeated events, including behavior around reloads and the return from payment.

The full checkout journey was tested so a repair at one step would not leave another duplication path intact. Duplicate prevention needed to protect a valid purchase event while stopping repeated credit for the same order.

Agree what revenue means in each report

The team documented tax, refunds, reporting dates and other revenue components. Purchase validation checked the complete journey, including repeated events and missing orders.

Recurring checks compared analytics with the order records and explained the remaining difference. That made a discrepancy something the team could investigate rather than a reason to distrust every campaign report.

Start with what the business actually sold.

Order records provided the reference for revenue. Purchase events were checked for repeated delivery, missing transactions and differences in tax, refunds and reporting dates.

Start with what the business actually sold.
DifferenceInvestigationAppropriate treatment
Repeated transactionMatch purchase events by transaction identifierRepair duplicate firing while preserving the valid event
Different order valueCheck data-layer values, currency and revenue componentsCorrect the payload or align the definition
Refund or period mismatchCompare financial treatment and relevant datesDocument a consistent record checks rule
Legitimate coverage lossReview consent and browser-related limitsKeep the gap visible rather than forcing equality

Some reporting differences had a valid explanation. The objective was an understood gap, not a dashboard forced to agree.

Four weeks of checking the records

Within four weeks, the revenue reporting gap narrowed from 21% to 3%, duplicate purchase events fell below 1%, and the teams adopted one documented revenue definition.

After four weeks, the remaining 3% gap was small enough to investigate against documented definitions and known limitations. A duplicate rate below 1% addresses a specific tracking defect; neither number turns GA4 into the financial source of truth.

What the remaining gap means

A zero gap would have been a misleading success criterion. Client-side measurement cannot capture every transaction under every consent and browser condition, whereas duplicate firing and incorrect values are preventable implementation problems.

Transaction-level matching made it possible to inspect the remaining difference without assuming all missing revenue had the same cause.

Campaign decisions became easier to defend once the team could explain the gap transaction by transaction. Matching every dashboard number was less useful than agreeing which revenue definition each decision required.

E-commerce tracking repair

I can help you make revenue reporting agree with a clearly defined sales record.