Of the people who reach checkout, what share actually buys? Measured two ways over 52 weeks — Aug 11, 2025 to Aug 9, 2026. The Shopify-side sensor and GA4 disagree in 51 of 52 weeks, by an average of 26.3 percentage points. This page establishes which one to believe, what genuinely changed in the last year, and when.
GA4 puts checkout completion at 45.4% over the last four weeks. The Shopify-side sensor puts it at 72.3%. GA4 reads lower in 51 of 52 weeks — the single exception is a known GA4 glitch week. This is not a small calibration difference: it is the difference between "half the people who reach checkout bail" and "seven in ten buy". Decisions about checkout UX have been sized off the wrong number.
That caveat has ridden on every weekly report for three months. It does not survive the 12-month view. GA4's checkout-begin rate is flat straight through that date (4.24% before, 4.26% after). And the mild completion decline after it shows up in both sensors at nearly the same size — GA4 -1.6pt, Shopify -1.7pt. Two independent sensors agreeing is the signature of a real change, not a tracking bug. We have been writing off a genuine softening as instrumentation.
Shopify ÷ GA4 completion averaged 1.7× across the first half of the year and 1.5× across the second. The two series move together; they just sit 26.3pt apart. So: read GA4 for whether completion is improving, never for what completion is. The likely mechanism is GA4 over-counting begin_checkout — its add-to-cart→checkout step reads 74.4% against Shopify's 94.2%, so GA4 is crediting a checkout reach that the Shopify sensor never sees.
Shopify-side completion broke from 64.6% to 73.4% at the week of Nov 3, 2025 (t=8.35). GA4 independently breaks two weeks later, 38.0% → 47.6% at Nov 17, 2025 (t=9.67). A step that size, found by both sensors within a fortnight, is real. Worth finding out what shipped to checkout around then — whatever it was, it is the most valuable checkout change of the year and nobody has been crediting it. Note it coincides with the holiday run-up, so some of it is seasonal mix rather than a code change.
Using one consistent framing throughout: GA4 counted 36% more sessions than the Shopify-side pixel across the first 13 usable weeks and 36% more across the last 13, so the gap is flat — a fixed structural difference between the two sensors, not drift. Either way it is nowhere near the ~10% our reports assume. Any conversion rate carrying GA4 sessions in the denominator is biased low on top of the completion problem. Two weeks (Jun 8 and Jun 15) are excluded here — their Shopify-side session counts collapsed to a third of neighbouring weeks, which is a pixel gap rather than a traffic event; their rates track the neighbours fine, which is precisely why the rest of this page is built on ratios.
Both lines answer the identical question: of the visits that reached checkout, what share completed a purchase. Shopify-side is conversion_rate ÷ checkout_begin_rate from the pixel on the storefront and checkout. GA4 is ecommercePurchases ÷ checkouts. Because both are ratios of two rates, the comparison survives the fact that the sensors disagree about how many sessions there were.
The lower panel is the gap in percentage points. It is remarkably flat: the sensors are offset, not diverging. One GA4 glitch week (Sep 29, 2025, completion read 85.6%) is excluded from both panels and from every statistic on this page.
Each series was tested for its strongest single break, sweeping every candidate week and scoring by Welch's t with a minimum of six weeks on each side. Glitch weeks are excluded so a one-week spike cannot capture the split.
Read it this way. Both sensors independently find a large step up in completion within two weeks of each other in early-to-mid November 2025 — that is a real event, not instrumentation. The sensor gap's own break (Jan 26, 28.1pt → 25.4pt) is much weaker and simply reflects the offset tightening slightly. The action item is archaeology: find out what shipped to checkout in the first half of November 2025. Caveat honestly — that window is also the holiday run-up, when traffic mix shifts toward warm, high-intent buyers, so part of the step is seasonal. It did not fully give the gain back afterwards, which argues for a durable change on top of the seasonal one.
Since May the weekly report has carried a caveat that GA4's begin_checkout is degraded and the checkout stage should be read as directional only. That claim was made without a long baseline. Here is the baseline.
If GA4's checkout event had broken, its checkout-begin rate would have moved. It did not — it is flat to two decimal places. And the completion decline after that date is present in both sensors at almost identical magnitude, which is what a real (if mild) business softening looks like. Consequence: a genuine ~1.6pt deterioration in checkout completion since mid-May has been dismissed as a tracking artifact for three months. The GA4 checkout stage does have a serious problem, but it is a constant level error present all year, not a May event.
Small multiples, one panel per funnel metric, Shopify-side in green against GA4 in blue. The shape of the disagreement tells you the mechanism.
The mechanism. The two sensors are close on add-to-cart rate but far apart on add-to-cart→checkout: Shopify sees ~94% of carts reach checkout while GA4 sees ~74%. GA4 is therefore recording checkout reaches that the Shopify sensor does not — inflating its denominator and deflating completion. Shopify's own abandoned-checkout rate (last panel) is the direct measure of the leak and is the number to quote.
| Week | Shopify sess. | GA4 sess. | S/G | Shopify compl. | GA4 compl. | Gap | Shopify cart→co | GA4 cart→co | Aband. checkout |
|---|---|---|---|---|---|---|---|---|---|
| Aug 112025 | 210,179 | 284,614 | 0.74× | 65.4% | 37.5% | 27.8pt | 94.7% | 54.2% | 35.4% |
| Aug 182025 | 218,974 | 306,527 | 0.71× | 61.3% | 35.2% | 26.0pt | 95.9% | 55.9% | 39.3% |
| Aug 252025 | 212,412 | 292,195 | 0.73× | 60.3% | 34.8% | 25.5pt | 96.3% | 58.3% | 40.2% |
| Sep 12025 | 242,047 | 326,595 | 0.74× | 70.0% | 41.7% | 28.3pt | 97.0% | 54.1% | 30.9% |
| Sep 82025 | 206,161 | 274,762 | 0.75× | 67.4% | 36.8% | 30.6pt | 96.4% | 56.7% | 33.3% |
| Sep 152025 | 203,446 | 278,850 | 0.73× | 66.1% | 35.5% | 30.6pt | 96.6% | 66.5% | 34.4% |
| Sep 222025 | 220,883 | 289,082 | 0.76× | 67.0% | 37.0% | 30.0pt | 97.0% | 79.6% | 33.8% |
| Sep 292025 | 230,102 | 316,204 | 0.73× | 65.2% | 85.6%glitch — excluded | -20.4pt | 96.1% | 81.6% | 35.4% |
| Oct 62025 | 245,388 | 340,020 | 0.72× | 64.9% | 44.3% | 20.6pt | 96.2% | 82.6% | 35.9% |
| Oct 132025 | 246,296 | 331,115 | 0.74× | 62.6% | 35.8% | 26.8pt | 95.5% | 82.0% | 38.2% |
| Oct 202025 | 299,763 | 411,351 | 0.73× | 62.8% | 36.4% | 26.4pt | 94.3% | 79.2% | 37.8% |
| Oct 272025 | 256,274 | 342,408 | 0.75× | 62.8% | 37.6% | 25.2pt | 94.5% | 78.5% | 37.9% |
| Nov 32025 | 220,066 | 299,635 | 0.73× | 69.5% | 41.2% | 28.3pt | 95.7% | 76.2% | 31.2% |
| Nov 102025 | 213,619 | 297,524 | 0.72× | 68.5% | 39.8% | 28.7pt | 94.5% | 77.4% | 32.2% |
| Nov 172025 | 268,090 | 384,863 | 0.70× | 77.0% | 46.4% | 30.6pt | 94.2% | 59.0% | 24.1% |
| Nov 242025 | 268,373 | 372,027 | 0.72× | 83.5% | 50.4% | 33.1pt | 94.0% | 56.8% | 17.7% |
| Dec 12025 | 275,698 | 379,219 | 0.73× | 79.5% | 50.6% | 28.9pt | 95.1% | 58.8% | 21.8% |
| Dec 82025 | 167,233 | 231,906 | 0.72× | 76.1% | 48.2% | 28.0pt | 93.6% | 71.2% | 25.8% |
| Dec 152025 | 191,211 | 261,100 | 0.73× | 80.6% | 52.1% | 28.5pt | 94.6% | 65.3% | 21.6% |
| Dec 222025 | 164,889 | 221,999 | 0.74× | 79.3% | 49.0% | 30.3pt | 93.7% | 70.3% | 24.0% |
| Dec 292025 | 195,952 | 254,255 | 0.77× | 78.4% | 50.6% | 27.8pt | 93.6% | 71.4% | 24.3% |
| Jan 52026 | 195,710 | 266,621 | 0.73× | 77.6% | 47.5% | 30.1pt | 94.0% | 77.8% | 24.7% |
| Jan 122026 | 186,445 | 249,373 | 0.75× | 77.4% | 49.9% | 27.6pt | 93.8% | 74.3% | 23.0% |
| Jan 192026 | 193,464 | 241,816 | 0.80× | 78.4% | 51.4% | 26.9pt | 92.9% | 70.5% | 22.2% |
| Jan 262026 | 261,514 | 334,685 | 0.78× | 67.2% | 44.2% | 23.0pt | 93.4% | 73.1% | 33.5% |
| Feb 22026 | 177,261 | 245,361 | 0.72× | 77.8% | 51.4% | 26.4pt | 93.2% | 55.2% | 22.9% |
| Feb 92026 | 208,310 | 286,927 | 0.73× | 72.2% | 46.8% | 25.4pt | 93.4% | 68.0% | 28.6% |
| Feb 162026 | 246,325 | 344,718 | 0.71× | 73.7% | 46.4% | 27.3pt | 94.3% | 76.3% | 26.7% |
| Feb 232026 | 241,181 | 318,557 | 0.76× | 71.1% | 43.0% | 28.2pt | 93.2% | 77.9% | 29.3% |
| Mar 22026 | 218,041 | 290,157 | 0.75× | 70.5% | 43.6% | 26.9pt | 93.5% | 76.8% | 30.0% |
| Mar 92026 | 227,254 | 314,702 | 0.72× | 70.2% | 48.7% | 21.5pt | 94.6% | 66.3% | 30.3% |
| Mar 162026 | 193,480 | 271,958 | 0.71× | 69.8% | 46.5% | 23.3pt | 95.3% | 70.6% | 30.7% |
| Mar 232026 | 170,497 | 237,588 | 0.72× | 70.0% | 48.0% | 22.1pt | 94.1% | 66.8% | 30.5% |
| Mar 302026 | 171,359 | 243,907 | 0.70× | 75.0% | 51.1% | 24.0pt | 94.0% | 64.7% | 25.5% |
| Apr 62026 | 180,353 | 252,265 | 0.71× | 70.5% | 45.9% | 24.6pt | 95.1% | 66.8% | 30.3% |
| Apr 132026 | 173,297 | 234,956 | 0.74× | 70.4% | 46.1% | 24.3pt | 83.9% | 64.2% | 29.9% |
| Apr 202026 | 148,081 | 207,808 | 0.71× | 77.9% | 51.9% | 26.1pt | 94.4% | 70.5% | 22.9% |
| Apr 272026 | 152,863 | 226,060 | 0.68× | 75.6% | 49.7% | 25.9pt | 93.8% | 74.7% | 24.9% |
| May 42026 | 165,461 | 236,300 | 0.70× | 75.3% | 48.5% | 26.9pt | 92.9% | 73.9% | 25.0% |
| May 112026 | 155,053 | 221,016 | 0.70× | 72.0% | 46.4% | 25.6pt | 92.8% | 72.9% | 28.2% |
| May 182026 | 157,255 | 224,100 | 0.70× | 76.2% | 49.3% | 26.9pt | 92.8% | 66.9% | 24.7% |
| May 252026 | 137,605 | 202,591 | 0.68× | 71.7% | 61.3% | 10.4pt | 92.8% | 70.9% | 28.9% |
| Jun 12026 | 132,122 | 186,681 | 0.71× | 69.3% | 45.3% | 23.9pt | 94.2% | 71.8% | 31.2% |
| Jun 82026 | 70,259 | 181,209 | 0.39× | 67.8% | 43.4% | 24.4pt | 92.0% | 72.5% | 32.6% |
| Jun 152026 | 98,559 | 186,307 | 0.53× | 66.9% | 43.4% | 23.5pt | 94.2% | 74.7% | 33.4% |
| Jun 222026 | 118,877 | 172,914 | 0.69× | 71.0% | 45.7% | 25.3pt | 94.9% | 82.5% | 29.5% |
| Jun 292026 | 125,768 | 163,005 | 0.77× | 68.3% | 43.0% | 25.4pt | 95.4% | 75.5% | 32.2% |
| Jul 62026 | 133,271 | 169,595 | 0.79× | 69.1% | 42.4% | 26.7pt | 95.4% | 76.2% | 31.4% |
| Jul 132026 | 108,321 | 142,878 | 0.76× | 71.6% | 44.7% | 26.9pt | 94.8% | 76.6% | 29.1% |
| Jul 202026 | 111,339 | 140,375 | 0.79× | 72.7% | 45.2% | 27.6pt | 95.0% | 75.7% | 28.0% |
| Jul 272026 | 108,565 | 143,819 | 0.76× | 73.5% | 44.7% | 28.8pt | 95.0% | 76.1% | 26.9% |
| Aug 32026 | 109,708 | 135,843 | 0.81× | 71.5% | 47.1% | 24.4pt | 95.5% | 74.4% | 29.2% |
The metric is a ratio on purpose. The two sensors disagree about the denominator — Shopify-side rates are per visitor, GA4's are per session — and about how many sessions there were at all. Dividing conversion rate by checkout-begin rate cancels the denominator, so what remains is a genuine sensor disagreement about the funnel step rather than a units artifact.
What "Shopify-side" means here, precisely. It is the Intelligems pixel, which runs on the Shopify storefront and checkout and is independent of GA4. It is not Shopify's own ShopifyQL analytics — that endpoint returns a 500 on every query, including the vendor's own documentation example, so it could not be used as a third opinion. Two sensors, not three.
This does not prove Shopify is right and GA4 is wrong — only that they disagree, consistently, and that the mechanism points at GA4's checkout event. The supporting argument is that Shopify-side completion reconciles with the abandoned-checkout rate measured directly on the same pixel, and that 94% of carts reaching checkout is the more plausible figure for a store where checkout is one click from cart. A third sensor would settle it properly.
Excluded and flagged. Sep 29, 2025 is dropped from every statistic (GA4 completion read 85.6%, more than 3.5 median-absolute-deviations out). Weeks of 2026-06-08 (70,259) and 2026-06-15 (98,559) show sessions far below the ~130K neighbours. Treat those two weeks' ABSOLUTE counts as suspect (likely a pixel/tracking gap); the RATES still look continuous with neighbours, which is why this analysis leans on ratios.
Breakpoints are a single best split, not a changepoint model. With 52 points, sweeping for the strongest one break and reporting its t is as far as the sample honestly goes. Treat the dates as "the best-supported week", not a precise incident timestamp.
Refresh. GA4 pulls itself with the service account the Monday pipeline already uses. The Shopify-side series is an interactive Intelligems pull with no CI credential, so it is captured to reports/checkout-compare-shopify.json and must be refreshed by hand. Rebuild with node scripts/pull-checkout-compare.mjs && node scripts/build-checkout-compare-report.mjs.