GA4 and Shopify analytics will never agree, and the sooner your team accepts this as physics rather than a bug, the sooner Monday mornings stop being a jurisdictional dispute. The two systems count different things, with different rules, from different vantage points. Expecting them to match is expecting a doorman and a cashier to report the same number, when one counts people walking in and the other counts receipts.
Yet the re-litigation ritual persists everywhere: GA4 says conversion fell, Shopify says it rose, an hour dies in a meeting, and the conclusion is always the same, “the data is broken.” It is not broken. It is two honest witnesses standing in different places.
Why the numbers can never match
Same store, same day, both counting honestly.
The gap is structural. It will be a different size next month, and that is fine.
The truce: one job per witness
The fix is not reconciliation, it is jurisdiction. Shopify is the source of truth for money and conversion: orders, revenue, AOV, the baseline metrics this whole series runs on. It sees every order by definition, because the checkout is the till. Blocked scripts and declined cookies cannot hide a purchase from the platform that processed it. Your Shopify analytics numbers are the scoreboard.
GA4 is the source of truth for behavior and acquisition: which channels send traffic that acts interested, what paths people take, where journeys stall. Its absolute numbers are undercounts, and that is fine, because you use it for comparisons within itself: channel A vs channel B, this landing page vs that one, measured by the same slightly-blind witness on both sides of every comparison.
Write the treaty down, one line in the same doc as your test log: “Revenue and CVR come from Shopify. Channel and behavior questions go to GA4. The gap between them is expected and not news.” Then enforce the corollary: nobody quotes a GA4 revenue number in a decision, and nobody asks Shopify where the visitor came from three touches ago. When the gap suddenly balloons, that is worth a look, a broken tag or a consent-banner change will do it. Otherwise, the gap is weather. You already know from tip 62 what we do about weather.