Hunor.digital
← All writing
Attribution · GA4 · Analytics honesty

How to reconcile GA4, Shopify and Facebook numbers

Stop forcing three tools to agree; they never will. The working method: one financial truth, measured offsets, and alarms on change. A repeatable monthly routine.

Lázár HunorDigital Fixer
The short answer

Reconcile GA4, Shopify, and Facebook by declaring Shopify's order count the financial truth, then measuring each tool's stable offset from it instead of forcing agreement. The numbers differ by design: different attribution windows, consent losses, and counting rules. Document the gaps, watch for sudden changes, and read each tool for its own job.

Someone in your company has already spent a full day trying to make GA4, Shopify, and Meta agree on last month's sales. The day produced a spreadsheet, three theories, and no agreement, because the project was impossible as framed: these systems measure different things, by different rules, with different losses, and they will never converge. The why is its own article; this one is the how. Reconciliation done right is not making numbers match. It is knowing the gaps, so the numbers become usable anyway. Here is the routine, and it takes an hour a month once it is set up.

Step 0: declare the truth, once

Write one sentence, get it agreed, pin it somewhere visible: "Shopify's paid-order count and revenue are the financial truth; all other tools are instruments measured against it." (Substitute your backend if it, not Shopify, is where orders are real.) This sounds trivial. It is the whole foundation: every recurring argument about "whose number is right" is a company that skipped this sentence. Instruments disagree with the truth by measurable amounts; without a declared truth, they just disagree with each other, forever, in meetings.

Step 1: build the one-table baseline

For last full month, one row per source, same date range, matching time zones as closely as each tool allows (Shopify and GA4 can align; Meta reports in ad-account time, note the offset):

Then compute two ratios. GA4 divided by Shopify: your capture rate, typically somewhat under one, the share of real orders your analytics observes after blockers and consent take their cut. Meta divided by Shopify: the platform's claim ratio, which at real ad spend often lands somewhere embarrassing, for reasons that are policy, not bugs.

Step 2: interrogate anything weird, once

First-time baselines usually surface one genuine defect worth fixing before trusting the routine: GA4 capture suspiciously low (test the consent wiring and tag firing), duplicate purchase events inflating GA4 above Shopify (a classic; two tags firing), Meta counting test purchases, or time zone mismatches manufacturing phantom daily swings. Fix the defects; keep the structural gaps. Knowing which is which is the skill, and the rule of thumb is: defects move numbers erratically, structure moves them consistently.

Step 3: make it monthly, and watch deltas, not levels

Same table, every month, ratios charted over time. From here on, the levels stop mattering and the movements become the entire signal:

Step 4: route each tool to its job

With gaps known and watched, the standing argument dissolves into assignments: Shopify reports money (finance, forecasting, the board deck). GA4 reports behavior and channels (trends, funnels, comparisons, read through its stable capture rate). Meta reports Meta (in-platform optimization, judged on movement, never summed with anything). Print that paragraph if the arguments persist; recurring number fights are almost always a role confusion, not a data problem.

What this buys you

An hour a month, one spreadsheet, no new tools, and the three-way argument retires. In exchange you get the two things most companies never have: early alarms when measurement breaks (the delta system catches in weeks what usually festers for quarters) and numbers everyone reads the same way because the gaps are documented instead of suspected. If your baseline table turns up defects bigger than an afternoon (capture in freefall, duplicates nobody can find, consent chaos), that is a verification audit with a clear scope, and it is the last time the problem gets to be vague. The point of reconciliation was never agreement. It was trust with receipts.