Analytics October 12, 2026 15 min read

Why Your Analytics Tools Never Agree

Four systems report four revenue numbers and all of them are correct. The useful question is not which is right but whether the gap between them is behaving normally, because a change in that gap is the best tracking alarm you have.

48h Before A Period Is Comparable
3 Different Attribution Windows
1 System Of Record
0 Times You Should Sum Platform Reports
Quick Answer

Your commerce platform, your analytics property, and each advertising platform report different revenue because they measure different things at different times using different rules. Your order system counts orders at payment capture with no attribution model applied. Analytics counts sessions in which a purchase event fired in a browser, then distributes credit across touchpoints. Each ad platform claims conversions inside its own attribution window, and because those windows differ and overlap, platform-reported conversions sum to more than your actual order count, which makes adding up dashboards a reliable way to double-count. Published guidance on acceptable variance ranges from around five percent to twenty percent depending on the source, which means no published figure is your answer. Establish your own baseline gap over a stable period and monitor it, because the discrepancy itself is expected while a change in the discrepancy is a genuine signal that something in your tracking has broken. Reconcile periods ending at least 48 hours ago, since analytics processing latency makes recent days incomplete.

Your commerce platform says revenue is up twenty-three percent. Analytics says eleven. Your ad platforms between them claim more orders than you actually shipped. Everyone is telling the truth.

This is the most common analytics conversation in ecommerce and it usually gets treated as a data quality problem to be solved. It is not solvable, because the systems are answering different questions and were designed to.

What can be solved is the confusion. Once you understand which system is authoritative for which question, and what a normal gap looks like for your business specifically, the disagreement stops being alarming and starts being useful, because deviations from your normal gap are one of the better diagnostics available.

01/12 Section

They Are Not Measuring The Same Thing

Start with what each system was built to do, because the differences follow from purpose rather than from bugs.

SystemCountsApplies Attribution?
Commerce platformOrders, at payment capture, from its own databaseNo. It reports total revenue with no fractional credit, no model, no lookback window.
Analytics propertySessions in which a purchase event fired in a browserYes. Credit is distributed across touchpoints in aggregated reports.
Ad platformConversions it can connect to its own adsYes, within its own window, independently of other platforms.
Accounting systemRecognized revenue under accounting rulesNo, and it treats refunds, tax and timing differently again.

The single most consequential row is the first. Your commerce platform does not attribute orders to marketing campaigns at all. When you pull revenue from it you get the total, undivided. Comparing that to a campaign-attributed figure from analytics is comparing a total to a share of a total, which cannot match by construction.

Definition

Attribution model. The set of rules determining how credit for a conversion is divided among the touchpoints preceding it. A data-driven model distributes credit fractionally across several touchpoints, so a single order can appear as partial revenue against multiple channels. A last-click model assigns everything to the final touchpoint. Crucially, attribution affects aggregated reporting only: the underlying event data still records the full order value, so a mismatch caused by attribution is a reporting artefact rather than missing data.

That final point matters when you are hunting a discrepancy. If your raw purchase events carry the correct totals but your channel reports do not sum to them, the cause is attribution rather than tracking, and no amount of pixel work will change it.

02/12 Section

The Six Structural Causes

Reporting consistently identifies six mechanisms that account for nearly all of the gap between a commerce platform and an analytics property.

  1. Attribution windows and models. Often the largest single contributor. Analytics has used data-driven attribution by default since November 2023, distributing credit fractionally, while your commerce platform applies none.
  2. Counting method. Orders against sessions. One order can involve several sessions and one session can contain no order.
  3. Timezone mismatches. Two systems set to different timezones will disagree at every period boundary, and the disagreement is largest on short periods.
  4. Currency handling. Conversion timing and rates differ between systems for multi-currency stores.
  5. Refund treatment. Commerce platforms typically adjust revenue when a refund processes; analytics generally requires custom implementation to reflect refunds at all.
  6. Order status filtering. Canceled, test, draft and manually created orders are treated differently by each system.

Tax and shipping inclusion adds a seventh worth checking, since whether those amounts sit inside your reported revenue differs between systems and configurations.

Check These Two First

Timezone and refund handling are the cheapest to verify and account for a surprising share of unexplained gaps. If your analytics property and your commerce platform are set to different timezones, every daily comparison you have ever made was slightly wrong, and fixing it costs a minute.

Notice that only one of the six relates to tracking reliability. The rest are definitional. This is why the instinctive response of auditing your pixel usually finds nothing.

03/12 Section

Your Baseline Is The Benchmark

The most useful idea in this article, and the reason to stop searching for an acceptable variance figure.

Published guidance disagrees substantially. Sources variously describe normal as five to ten percent, five to fifteen percent, orders within five to twelve percent with revenue within ten to twenty percent, anything above fifteen percent as misconfigured, and fifteen to thirty percent for higher-priced categories with longer consideration.

Those figures are not contradictory so much as unhelpful. Each describes a different combination of configuration, attribution setting, category and price point. None of them is about your store.

The discrepancy is not the problem. A change in the discrepancy is the diagnostic, and monitoring that percentage is the most effective way to catch a silent tracking failure before it corrupts weeks of decisions.
Why your own baseline beats any published range

The practice is straightforward. Run both systems over the same stable period, record the difference in orders and in revenue, and document it. That is your normal. If it holds at eleven percent for six months and then moves to twenty-four, something changed: a tag broke, a payment method was added, a template was updated, or a configuration shifted.

This is worth taking seriously because it is a general-purpose detector. Several tracking failures in ecommerce announce themselves nowhere, including server-side tracking breakages and email authentication failures, since the sending system reports success while the receiving system never gets the data. A monitored discrepancy catches that class of failure regardless of which system broke, which no individual dashboard will do.

04/12 Section

Why Analytics Is Almost Always Lower

The direction of the gap is predictable, which is itself useful information.

Analytics only knows about orders that triggered a purchase event through a browser or a server-side hit. Your commerce platform records the sale regardless of what the customer's device did. So anything preventing the event from firing produces an order your commerce platform sees and analytics does not.

The causes are the familiar list: ad blockers, declined consent, privacy controls, tabs closed before the event completed, and script errors. Each removes an order from one system and not the other.

Which yields a diagnostic rule of thumb. Analytics reporting lower than your commerce platform is expected and normal. Analytics reporting higher is not, and usually means a duplicate purchase event is firing, frequently because a tag was added twice or a template was duplicated.

That asymmetry is worth remembering because the two situations call for opposite responses. An unexpectedly large shortfall means investigating what stopped events firing. Any surplus at all means investigating what is firing twice.

05/12 Section

Never Sum Platform Reports

The error in this area that costs actual money, as opposed to merely causing confusion.

Each advertising platform attributes conversions within its own window, and those windows differ. Reporting describes Meta defaulting to a seven-day click and one-day view window, Google Ads using a thirty-day click window, and TikTok using twenty-eight day click with one-day view.

Each platform evaluates independently and none of them knows what the others claimed. A customer who clicked a Meta ad on Monday, a Google ad on Wednesday, and bought on Thursday appears as a conversion in both accounts. Both are correct within their own rules and the order happened once.

What This Means Arithmetically

Platform-reported conversions sum to more than your actual order count, systematically, and by an amount that grows with how many channels you run and how much they overlap. A brand adding up dashboard figures to assess total performance is double- and triple-counting, and will conclude its advertising is working better than it is.

The correct use of platform reporting is comparative and within-channel. Whether this week's Meta campaigns outperformed last week's, judged consistently in the same system, is a question platform data answers well. What share of total revenue advertising produced is a question it cannot answer at all.

For that question you need either an aggregate view from your own system or a method built for it, and the temptation to reach for the readily available number is exactly why this error is so common.

Quick take · 2:47
Use Claude chrome to audit your google analytics account and create you a report of opportunities!
Use Claude chrome to audit your google analytics account and create you a report of opportunities!
Subscribe to Evolve Media on YouTube for new videos every week.
06/12 Section

The 48-Hour Rule

A concrete practice that removes a large share of apparent discrepancies at no cost.

Analytics processing is not instantaneous. Reporting puts full event processing at twenty-four to forty-eight hours, during which your commerce platform may already show sales that analytics has not finished counting.

So comparing yesterday in one system against yesterday in the other compares a final number against an incomplete one. The gap you observe includes processing lag that will disappear on its own, and reacting to it wastes time.

# Wrong Compare "yesterday" in both systems → final number vs incomplete number# Right Compare periods ending at least 48 hours ago → both numbers settled# If you need near-real-time visibility, # build a separate view from your order data # rather than forcing analytics to be # something it was not designed to be.

That last point is worth taking as general advice. Analytics is a behavioral analysis tool with processing latency by design. A team wanting live revenue visibility should read it from the order system, which knows immediately, rather than complaining that the analytics figure lags.

The same discipline applies to attribution windows. A thirty-day click window means today's reported conversions will keep rising for a month, so any comparison of recent periods against older ones compares a partially-filled window against a complete one.

07/12 Section

Consent And Geography

A cause that varies enormously by where your customers are, which means published benchmarks may not describe your situation at all.

Where consent frameworks are enforced strictly, a meaningful share of visitors decline tracking, and those sessions do not appear in analytics regardless of how well your implementation works. One practitioner analysis from January 2026 reported discrepancies of thirty to seventy percent between ad clicks and attributed analytics sessions for certain European geographies following consent mode enforcement.

Treat that figure carefully. It is a single practitioner observation, it is geography-specific, and the range is extremely wide. What it establishes directionally is that a brand selling into strict-consent markets should expect a materially larger gap than one selling only where consent rates are higher.

The practical implication is about your baseline rather than about fixing anything. If forty percent of your traffic is European and sixty percent domestic, your normal discrepancy will differ from a purely domestic brand's, and comparing yourself to a published benchmark drawn from a different traffic mix tells you nothing.

It also means your baseline can shift for reasons unrelated to tracking. A successful expansion into a strict-consent market widens your gap legitimately, and reading that as a tracking failure would be a mistake.

08/12 Section

Sampling Makes Estimates Look Exact

A subtle one that catches finance teams specifically, because the output does not look like an estimate.

Exploration-style reports in analytics tools can be built on a sample of your event data rather than all of it at sufficient volume. One analysis reports this introducing variance of fifteen to twenty-five percent in funnel and custom reports depending on the sample drawn.

The failure is one of interpretation. A finance team comparing an exact transaction count from an order system against a sampled exploration is comparing a precise number to an estimate, and concluding that one of them is wrong.

Neither is wrong. Sampling is a design characteristic that trades precision for speed at scale, and the resulting variance is expected behavior rather than a defect.

Verify The Current Thresholds

Sampling thresholds are subject to product change, so confirm the current behavior against the vendor's own documentation before building any reporting that depends on it. Google publishes documentation on data sampling and on attribution models, and both are worth reading directly rather than through summaries that may be describing an older version.

The practical rule is to use standard reports rather than explorations for any figure that will be compared against a system of record, and to reserve explorations for exploratory analysis where directional accuracy is sufficient.

Free Resource

The Ecom Profit Box

Our collection of ecommerce growth resources, including the reporting frameworks behind this work.

Get It Free
30 Minutes

Gap Suddenly Widened?

A stable discrepancy that moves is a real signal. We can help you work out which system stopped seeing what.

Book A Call
09/12 Section

Sessions Are Not Comparable Either

Revenue discrepancies get attention. Session discrepancies quietly corrupt every conversion rate you calculate.

The two systems define a session differently. Analytics resets a session when the traffic source or medium changes mid-visit, so one continuous browsing experience can become several sessions. Commerce platforms generally do not apply that logic.

Commerce platforms also typically include traffic that analytics filters, reportedly covering bot traffic, page reloads, preview link clicks, staff visits and in some cases API calls that generate page views. Analytics filters known bots by default.

The result is that commerce platforms usually report higher session counts, which mechanically produces a lower conversion rate for the same underlying performance. One audit reported a store showing a 2.1 percent conversion rate in its commerce platform against 3.4 percent in analytics with bot filtering enabled, for the same store and period.

Which means a conversion rate is only meaningful alongside the source it came from, and comparing your conversion rate against an industry benchmark computed from a different system is comparing two numbers that share a name and nothing else. Pick one source, state it, and track the trend within it.

10/12 Section

Diagnosing A Widening Gap

When your baseline moves, work through this order. It runs from cheapest to most involved.

  1. Confirm you are comparing settled periods. Anything inside 48 hours is incomplete. Half of reported anomalies resolve here.
  2. Check timezone settings in both systems. Free to verify, and a change in either produces a permanent apparent gap.
  3. Check whether the direction is possible. Analytics below your commerce platform is normal. Analytics above it means duplicate events.
  4. Look for a deployment. Theme changes, app installs and checkout modifications break purchase events more reliably than anything else. Correlate the date the gap moved against your release history.
  5. Check attribution settings. A model change alters channel reports without altering total revenue, so a gap that appears only in channel-level reporting points here.
  6. Check traffic mix. A shift toward strict-consent geographies or toward mobile app browsers widens the gap for legitimate reasons.
  7. Then audit the tracking implementation. Last, not first, because the previous six explain most cases and cost far less to check.

Step four is the highest-yield in practice. Tracking rarely degrades gradually; it usually breaks on a specific day when something was deployed. Aligning the date your gap moved against your change log identifies the cause faster than any amount of tag inspection.

Keep a simple record of the gap by month alongside your deployment dates. That pairing turns a vague sense that numbers look off into a dated, investigable event.

11/12 Section

Which Number Goes To The Board

The question underneath every version of this conversation, and it has a clear answer.

Revenue comes from your order system. It is the system of record, it counts money that actually moved, it does not depend on a browser executing anything, and it reconciles to your accounting. No analytics figure should ever be presented as your revenue.

Channel performance comes from platform reporting, used within channel. Whether campaigns improved week over week, judged consistently in one system. Never summed across platforms, and never presented as a share of total revenue.

Behavior comes from analytics. How people move through the site, where funnels leak, which pages precede purchase. This is what it is genuinely best at and it is chronically underused because attention goes to the revenue disagreement instead.

Allocation questions need a method built for them. None of the three above tells you what share of revenue advertising caused, and asking any of them will produce a confident wrong answer.

The Reporting Rule Worth Adopting

Every number in a management report should name its source, and no report should mix sources for the same metric across periods. Switching the source of a revenue figure between quarters creates an apparent trend that is entirely an artefact of measurement, and it is genuinely difficult to unwind once someone has acted on it.

What none of these systems does is connect marketing performance to profitability, since analytics stops at the purchase event and knows nothing about cost of goods, fulfillment or returns. Our guides to contribution margin and reading a profit and loss statement cover the layer above.

12/12 Section

A Reconciliation Routine

Monthly, roughly twenty minutes, and it earns its time by catching failures early.

  1. Pick a settled period. A full month ending at least 48 hours before you look.
  2. Record orders and revenue from both systems and calculate the percentage gap for each.
  3. Log both figures against the month in one place you keep permanently.
  4. Compare against your rolling normal rather than against any published benchmark.
  5. Note any deployments, app changes or market expansions in the same record.
  6. Investigate only on movement, using the order in section ten.
  7. Re-baseline deliberately after real changes, with the date and reason recorded so the history stays interpretable.

What To Take Away

These systems will never agree, they were never going to, and the effort spent trying to reconcile them exactly is better spent understanding which one answers which question. Your order system is the truth about revenue. Platforms are useful within themselves and misleading when added together. Analytics is a behavioral tool being asked to do a finance job.

The one genuinely valuable practice is tracking your own gap over time. It costs twenty minutes a month, it requires no tooling, and it is the most reliable way to detect the class of tracking failure that reports success while delivering nothing. Most brands discover those failures weeks late, through declining performance they attribute to the market.

Key Takeaways

What To Remember

  • Your commerce platform applies no attribution at all. It reports total revenue undivided, so comparing it against campaign-attributed analytics revenue compares a total to a share of a total.
  • Published acceptable-variance figures range from five to twenty percent depending on source, category and configuration, which means none of them is your answer. Establish and monitor your own baseline.
  • A change in the discrepancy is the diagnostic, and monitoring it is the most reliable general detector for tracking failures that report success while delivering nothing.
  • Never sum platform-reported conversions. Each platform attributes inside its own window independently, so the totals overlap and adding them double-counts systematically.
  • Reconcile periods ending at least 48 hours ago, since analytics processing latency makes recent days incomplete and produces gaps that resolve themselves.
  • Analytics lower than your commerce platform is normal; analytics higher is not and usually means a duplicate purchase event is firing.
  • Session definitions differ too, which quietly corrupts conversion rates, so state the source of any conversion rate and never compare across systems.
Sources

Where This Came From

  1. Google Analytics documentation on attribution models and data sampling. Shopify's help center refuses automated requests and is cited by description rather than linked.
  2. Analytics agency reporting identifying six structural causes of commerce platform and analytics discrepancies: attribution windows and models, counting method, timezone mismatches, currency handling, refund treatment and order status filtering, together with the observation that commerce platforms apply no campaign attribution and that data-driven attribution became the analytics default in November 2023.
  3. Industry reporting on default attribution windows differing by platform, described as seven-day click with one-day view, thirty-day click, and twenty-eight-day click with one-day view across the three major advertising platforms, each evaluated independently.
  4. Industry reporting on analytics processing latency of twenty-four to forty-eight hours and the resulting recommendation to reconcile periods ending at least forty-eight hours ago, and on session definition differences including source-change resets and the inclusion of bots, reloads, preview links and staff visits in commerce platform figures.
  5. Published acceptable-variance guidance, which disagrees: five to ten percent, five to fifteen percent, orders within five to twelve percent with revenue within ten to twenty percent, above fifteen percent indicating misconfiguration, and fifteen to thirty percent for higher-priced longer-consideration categories. Section 03 presents the spread rather than selecting a figure.
  6. A single practitioner analysis from January 2026 reporting thirty to seventy percent discrepancy between ad clicks and attributed analytics sessions for certain European geographies following consent mode enforcement, and a July 2026 analysis reporting fifteen to twenty-five percent variance in sampled exploration reports. Both are single-source observations with wide ranges, presented as directional in sections 07 and 08, and sampling thresholds are noted as subject to product change.

Questions

Twelve things brands ask about conflicting numbers
Why do my commerce platform and analytics show different revenue?

Because they measure different things at different times. Your commerce platform counts orders at payment capture from its own database with no attribution applied. Analytics counts sessions in which a purchase event fired in a browser, then distributes credit across touchpoints in aggregated reports.

What is an acceptable discrepancy?

Published guidance ranges from around five percent to twenty percent depending on the source, category, price point and configuration, so no published figure is your answer. Establish your own baseline over a stable period, document it, and treat movement away from it as the signal rather than the level itself.

Which number should I report as revenue?

Your order system. It is the system of record, counts money that actually moved, does not depend on a browser executing anything, and reconciles to your accounting. No analytics figure should be presented as your revenue, and no report should switch sources for the same metric between periods.

Can I add up conversions from my ad platforms?

No, and this is the error that costs money. Each platform attributes within its own window independently and none knows what the others claimed, so a single order can appear in several accounts. Platform-reported conversions sum to more than your actual orders, systematically.

Why is analytics revenue lower than my store's?

Because analytics only knows about orders where a purchase event fired, while your commerce platform records the sale regardless. Ad blockers, declined consent, privacy controls, tabs closed early and script errors all remove orders from one system and not the other. Lower is normal; higher suggests duplicate events.

Why should I wait 48 hours before comparing?

Analytics processing is reported to take twenty-four to forty-eight hours to complete. Comparing yesterday in both systems compares a final number against an incomplete one, so the gap includes processing lag that resolves itself. Reconcile periods ending at least forty-eight hours ago.

What causes most of the gap?

Six structural mechanisms: attribution windows and models, counting orders against sessions, timezone mismatches, currency handling, refund treatment, and order status filtering. Only one relates to tracking reliability, which is why auditing your pixel usually finds nothing.

Do session counts differ too?

Yes, and this quietly corrupts conversion rates. Analytics resets a session when traffic source changes mid-visit; commerce platforms generally do not, and typically include bots, reloads, preview links and staff visits that analytics filters. One audit reported 2.1 percent against 3.4 percent for the same store and period.

How does consent affect the discrepancy?

Substantially, and it varies by geography. One practitioner analysis reported thirty to seventy percent discrepancy between ad clicks and attributed sessions for certain European geographies after consent enforcement. That is a single wide-ranging observation, and the implication is that your traffic mix determines your baseline.

Why does my finance team's number differ from my analytics report?

Possibly sampling. Exploration-style reports can be built on a sample of event data at volume, with one analysis reporting fifteen to twenty-five percent variance depending on the sample. Comparing an exact transaction count against a sampled exploration compares a precise number to an estimate.

My gap suddenly widened. What should I check first?

In order: whether you compared settled periods, timezone settings in both systems, whether the direction is even possible, and then your deployment history. Tracking rarely degrades gradually; it usually breaks on a specific day when something was released, so correlate the date the gap moved against your change log.

What is analytics genuinely best at?

Behavior. How people move through the site, where funnels leak, which pages precede purchase, and how segments differ. It is chronically underused for this because attention goes to the revenue disagreement instead, which is the one question it was never the right tool to answer.

Ian Smith, founder of Evolve Media Agency
Ian Smith
Founder, Evolve Media Agency

Ian founded Evolve Media Agency in 2017 and has worked in ecommerce since 2015. He has built and sold three companies and generated more than $25M in client revenue through email marketing, and he writes about marketplace strategy, listing optimization, and AI search for ecommerce brands.

Read Ian's Story

The Gap Is Expected. The Change Is The Signal.

Twenty minutes a month recording your own discrepancy catches the tracking failures that report success while delivering nothing. Most brands find those weeks late.

48
Hours, Then Compare
Free 30-minute call

Want Ian to Look at Your Brand?

Tell us what you sell and where you are stuck. Ian replies within one business day, and you get an email right away with a link to book a free 30-minute call.

  • Brand management, PPC, listings, launches and content
  • Amazon, Shopify and TikTok Shop brands
  • A real reply from Ian, not a sales bot

Rather talk now? Call or text 719-257-3557 or pick a time on Calendly.

Your information stays with us. We never share it.