Why none of your marketing tools report the same revenue
Open Shopify: it says you made $50,000 last month. Open Google Analytics: $44,000. Open Meta Ads Manager: it's claiming $38,000 in revenue all on its own. Google Ads is claiming another $20,000. Add the ad platforms together and they've somehow driven more revenue than your store actually made.
If this has ever made you feel like your data is broken, here's the reassuring part: it's not. Every one of those numbers is "correct" by its own rules. They disagree because they were never measuring the same thing in the same way. Once you see why, the discrepancies stop being alarming and start being readable. Let's walk through it.
The core reason: everyone counts from their own corner
Every tool in your stack sees only the part of the world it touches, and counts revenue in a way that flatters its own role. That's not dishonesty — it's design. Each platform was built to prove its own value, so each one counts generously within its own boundary and ignores everything outside it.
So the real question is never "which number is right?" It's "what is each number actually counting, and what is it blind to?" Here are the four discrepancies that trip up almost every business.
Shopify vs. Google Analytics: two honest tools, two different totals
Your store platform and your analytics tool almost never match, and the gap is usually explainable. Shopify counts a sale the instant the order is placed. Google Analytics only counts it if its tracking successfully fired in the customer's browser — which fails a measurable share of the time thanks to ad blockers, cookie rejections, closed tabs, and people bouncing before the confirmation page loads.
So GA almost always reports fewer orders and less revenue than Shopify. Shopify is closer to your true sales because it counts the actual transaction, not a browser event that had to load correctly to be seen. When these two disagree, trust the platform that recorded the money changing hands.
Meta vs. Google: both claiming the same sale
Here's the one that makes the ad platforms add up to more than you actually sold. Meta and Google each count a conversion whenever they can plausibly connect it to one of their own ads — and a single customer often touched both.
Someone sees your Meta ad, then later clicks a Google ad, then buys. Meta counts the sale (it saw the earlier touch). Google counts the sale (it saw the last click). One purchase, claimed twice, in two dashboards that never talk to each other. Multiply that across a month and the platforms collectively take credit for far more revenue than exists. This isn't a bug you can fix in the settings — it's the direct result of two walled gardens each grading their own homework.
Why your ROAS never matches
This is the discrepancy that costs real money, because ROAS — return on ad spend — drives budget decisions. The ROAS in Meta's dashboard uses Meta's generous, self-counted conversions. Your actual ROAS, measured against real store revenue, is almost always lower, because the platform counted sales it didn't solely cause and sales that would have happened anyway.
A platform reporting 4x while your blended numbers say 2x isn't necessarily lying — it's answering a narrower, kinder question. Knowing the difference between platform-reported ROAS and your true blended ROAS is worth an article of its own; it's the single most common way businesses over-invest in a channel that looks better than it is.
Revenue attribution: the inconsistency underneath all of it
Step back and every one of these discrepancies is really the same problem wearing different clothes: revenue attribution. Assigning revenue to a cause is not a clean, factual operation. It's a series of judgment calls — which touch counts, whose tracking fired, which window applies, which platform gets to claim it — and every tool makes those calls differently.
That's why the numbers will never reconcile by tightening a setting. They're the output of different rules applied to different slices of a customer who moved across all of them. The inconsistency isn't in your setup. It's structural.
What to actually do about it
You can't make these tools agree. You can stop being misled by their disagreement:
- Anchor on the money. Your store's actual revenue — the transactions, the bank — is your ground truth. Everything else is an estimate of who caused it.
- Never add platform revenue together. Meta's claimed revenue plus Google's claimed revenue double-counts every customer who touched both. The sum is meaningless.
- Treat platform ROAS as a ceiling, not a fact. It's the kindest possible version of each channel's performance.
- Expect GA to under-count. It's not broken; it's missing the events that never fired.
Underneath all four discrepancies is one missing capability: a single view of the customer that every tool could agree on, because it counts the person, not the platform's slice of them. That's what we built Chapter to be — one resolved identity per customer, so a sale is counted once, attributed across the whole journey, and reconciled against the revenue you actually banked. The tools stop arguing when there's finally one source of truth underneath them.