Blog · September 8, 2026 · 8 min read

How Much Discrepancy Between Your Ad Platform and Store Is Normal?

How Much Discrepancy Between Your Ad Platform and Store Is Normal?

Every media buyer eventually asks it, usually at month end with two reports open: how big does the gap between the ad platform's numbers and the store's numbers have to get before it means something is broken? It's the right question with a wrong assumption baked in. The size of the gap matters far less than most people think. The stability of the gap is nearly everything. Here are the honest thresholds, and the reframe that turns a confusing discrepancy into your earliest warning system.

The short answer, with numbers

  • 0-15% gap, steady over time: structural and healthy. This is attribution physics, not breakage, and chasing it to zero is a waste of a quarter. Most well-configured accounts live here permanently.
  • 15-25% gap, steady: worth one investigation to understand which structural factors are producing it (heavy view-through settings and aggressive attribution windows usually explain it), then acceptable to live with, documented.
  • Over 25-30%, or growing month over month: investigate now. At this size, structural explanations usually can't carry the whole gap and something mechanical, dedup, consent, a broken event, is contributing.
  • Any sudden change in a previously stable gap: the real alarm, regardless of absolute size. A gap that goes from 8% to 30% in a week means something broke that week. A gap that goes from 15% to 2% overnight is just as suspicious — it usually means double counting started, not that tracking got better.

Read that last bullet again, because it inverts how most people triage. A steady 20% gap is a healthier account than an 8% gap that was 15% last week. Size is a property of your configuration. Change is a symptom of an event.

Where the structural gap comes from

The permanent, harmless portion of the discrepancy has well-understood sources, and knowing them keeps you from panicking at the baseline:

  • Attribution windows. The platform claims conversions that happen days after the click, and view-through conversions from people who merely saw the ad. Your backend just records when the order happened. The same customer legitimately produces different entries in each system, and platforms with 7-day windows will routinely claim sales your finance team books on a different day, or credits to a different channel. Multiple platforms each claiming the same order is why summing Meta plus Google often exceeds real revenue — both are telling their version of the truth. More on that arithmetic in platform revenue vs actual revenue.
  • Blocked and lost events. Ad blockers, tracking prevention, and privacy modes stop a slice of browser events from ever being sent. Server-side tracking recovers much of this, but not all. This pushes the platform count below reality for on-site events, partially offsetting the attribution inflation.
  • Timezone and definition mismatches.Your store closes its day at midnight local time; the ad account may run on a different timezone; one system counts orders, another counts checkouts, another nets out refunds. A chunk of many "discrepancies" is just two reports slicing time and definitions differently.
  • Modeling.Post-iOS 14.5, platforms statistically model conversions they can't observe. Modeled numbers are estimates, and estimates wobble.

A field guide to the four species of gap

When you do investigate, it helps to know what you're hunting. Four species cover nearly every case:

  • The Attribution Gap (harmless). 10-20%, stable for months, fully explained by windows plus blocked events plus definitions. Habitat: every account on earth. Identification: it barely moves when nothing on your site changes. Action: document it and stop chasing it.
  • The Double Counter (dangerous). Platform or Events Manager reports meaningfully more conversions than the backend. Cause: pixel and Conversions API both sending events with mismatched event IDs, so deduplication fails. Tell: your cost per result looks great while the bank account disagrees. Fix lives in fixing duplicate pixel and CAPI events.
  • The Vanishing Purchase (dangerous).Backend shows sales the platform never saw. Cause: a theme update, checkout change, or consent banner killed the purchase event for some or all visitors. Tell: reported ROAS "drops" while revenue holds, and someone starts blaming creative. This species is responsible for more wrongly paused winning ads than any other. See why conversions dropped but spend didn't.
  • The Sudden Widening (most dangerous).Your familiar, documented Species 1 gap doubles inside a week. This is one of the first two species being born, observed early. It's the most dangerous precisely because it looks like the harmless one and gets ignored — and it's the most valuable, because catching it here means catching the breakage in days instead of at month close.

How to establish your baseline in 15 minutes

Everything above depends on knowing your normal, so build it once:

  • Pick the last three completed weeks (attribution needs a few days to settle, so exclude the current one).
  • For each week, write three numbers side by side: backend orders, platform-reported conversions, and platform-reported revenue vs backend revenue. Revenue and count can diverge differently — a hardcoded value parameter breaks revenue while counts stay fine.
  • Compute the ratio for each week. Three weeks landing within a few points of each other is your baseline. Write it somewhere permanent, with the date and your current attribution setting next to it, because a future attribution-setting change will legitimately move the ratio and you'll want to remember why.
  • Repeat monthly, or after any site change: theme, checkout, apps, consent banner, domain. Those events are when species 2 and 3 are born.

Worked example: reading a real month

Here's the method applied to numbers, because thresholds only become intuition through examples. A store's August: backend 1,180 orders, Meta claims 470 conversions, Google claims 390. Meta plus Google equals 860, or 73% of all orders — for a store where paid is about 60% of traffic, that's the two platforms mildly double-claiming shared customers, which is Species 1 behavior. Individually, Meta's claim is 40% of orders, Google's is 33%, and last month those figures were 42% and 31%. Nothing moved more than a couple of points: file it and move on, total time four minutes.

Now September: backend 1,150 (flat), Meta 690 (60% of orders, up from 40%), Google 380 (flat). Did Meta suddenly start driving half again as many sales on flat revenue? Almost never. A jump of that shape, one platform's claim inflating while the backend holds, is the Double Counter being born: a checkout app update had broken event IDs and Meta was receiving most purchases twice. Reported CPA fell 30% and looked like a great month; the reconciliation said otherwise within minutes. The team that scales budget on that fake CPA drop spends October discovering it in the worst possible way. The team with a baseline catches it before the first budget meeting. Same data, ten minutes of ratio-reading apart.

The client conversation this unlocks

For agencies, the discrepancy question is also a trust question, because clients discover gaps at the worst moments and assume the worst explanations. Having a documented baseline transforms that conversation. Instead of "the platforms just count differently" (true, but it sounds like an excuse), you get to say: "your account runs a stable 14% attribution gap, here it is across the last quarter, and the fact that it's stable is how we know tracking is healthy. If that number moves, I'll know within days and tell you before you notice." The first version manages a complaint. The second one sells competence. There's a fuller script for these conversations in how to explain tracking issues to clients.

When the platforms disagree with each other, add a third witness

Sometimes the confusing gap isn't platform-vs-backend but platform-vs-platform: Meta and GA4 telling wildly different stories about the same campaigns. Resist the urge to crown one of them correct. They use different attribution models by design — Meta credits itself generously across clicks and views, GA4 defaults to a stingier data-driven model, and both are downstream of whatever events actually survived the browser. The productive move is triangulation: the backend is the referee for totals, and the two platforms are witnesses arguing about credit. If totals reconcile but credit disagrees, you have an attribution philosophy difference, which is normal and permanent. If totals don't reconcile anywhere, you have a plumbing problem, and the credit argument is premature. The full Meta-vs-GA4 breakdown lives in why Facebook ads and GA4 don't match.

Watch the change, not the number

The uncomfortable truth about discrepancy checks is that they expire. The baseline you validate today describes today's configuration: this theme, these apps, this consent flow, this attribution setting. Sites change constantly, and every change is a chance for a harmless gap to turn into a dangerous one with no error message anywhere. So the durable version of this practice isn't a one-time audit, it's a habit: know your ratio, recheck it on a schedule, and treat movement as a same-week investigation. Do it manually on a monthly calendar reminder, or let monitoring watch the components (event volume, dedup rate, match quality, platform-vs-backend deltas) continuously and email you the day the gap starts widening. Either way, the goal is the same: your discrepancy should never be able to change class without you finding out that week.

Stop finding out about broken tracking from your client.

Taglert monitors your pixels and conversion tracking 24/7 and alerts you the moment something breaks. 7-day free trial, no credit card.

Start your free trial