Three tools, three totals, same thirty days. The gaps are not bugs. Each system is answering a different question, and only one of them is answering the question your P&L asks.
Open three tabs for the same thirty days. Shopify shows $1,850,000 in net sales. GA4 shows $1,743,400 in purchase revenue. Klaviyo shows $412,000 attributed to email, which would be 22 percent of the business.
Every one of those numbers is correct. They disagree because each system defines a conversion differently, applies a different attribution window, and cuts the month at a different hour. Once you can name which mechanism is producing which part of the gap, the numbers stop being confusing and start being useful.
Shopify writes an order server-side the moment payment authorizes. No browser is involved, so nothing can block it, and the record survives a closed tab, a dead battery, or a customer who switched devices mid-checkout.
The one trap in Shopify is that it reports several different totals and people quote them interchangeably. Gross sales is before discounts and returns. Net sales subtracts both. Total sales adds shipping and taxes back on. Those can differ by six figures on a brand this size, so a Shopify-to-Shopify discrepancy is usually two people quoting two different rows.
GA4 records a purchase when a tag fires in the customer's browser on your confirmation page. That means it structurally misses:
For Crestline the GA4 shortfall is $106,600, or 5.8 percent. That is normal. Expect GA4 to land 3 to 8 percent under your commerce platform, permanently. If your gap sits in that band, there is no bug and no work to do. A gap above 10 percent, or one that jumps between two consecutive months, is worth investigating as a genuine tagging fault.
Klaviyo's default attribution window credits email with a conversion if the customer clicked within five days or merely opened within five days.
The open half is where it falls apart. Since Apple introduced Mail Privacy Protection, Apple Mail pre-fetches images on the recipient's behalf, which registers as an open whether or not a human ever looked at the message. On a typical DTC list, well over half of opens now come from Apple Mail. Klaviyo dutifully counts those as engagement, then credits email for any order that follows within five days.
The result is that a customer who was already going to buy, who received a campaign they never read, generates an order that email takes full credit for. Multiply that across a large list and email appears to drive a fifth of your revenue.
The one-setting test. In Klaviyo, switch attribution to click-only and re-run the same date range. On most DTC accounts the attributed number falls somewhere between 30 and 60 percent. The difference is the portion that was resting entirely on opens that Apple manufactured.
Crestline runs on America/Chicago in Shopify. The GA4 property was left on the setup default. Klaviyo has its own account setting.
Each system therefore starts and ends the month at a different hour. At roughly $60,000 a day, a two-hour boundary offset moves about $5,000 between months, every month, in the same direction. It never averages out, and it quietly corrupts every month-over-month comparison anyone makes.
This takes about ten minutes to fix and nobody ever does it.
Here is Crestline's month with every piece of the difference named.
| Line | Amount | Mechanism |
|---|---|---|
| Shopify gross sales | $1,982,000 | Every order placed |
| Less discounts | ($84,000) | Codes and automatic discounts |
| Less returns | ($48,000) | 22.4% return rate, refunds settled in-month |
| Shopify net sales | $1,850,000 | The figure your P&L should use |
| Consent declines and ad blockers | ($71,200) | Tag never fired |
| Cross-device and early exits | ($29,700) | Purchase attributed elsewhere or lost |
| Timezone boundary offset | ($5,700) | GA4 property not aligned to the store |
| GA4 purchase revenue | $1,743,400 | 5.8% under, entirely expected |
And the email number, once you separate the two halves of the window:
| Klaviyo attribution basis | Attributed | Share of net sales |
|---|---|---|
| Default: 5-day click or 5-day open | $412,000 | 22.3% |
| Click-only, same 5 days | $198,000 | 10.7% |
| Resting on opens alone | $214,000 | 11.6% |
Crestline Co. is a simulated DTC brand used for demonstration. These figures are illustrative and are not a client result.
That $214,000 is the number that matters. It is not fake revenue, those orders happened. But it is revenue that email is claiming on the strength of an open that Apple performed automatically, and if you are deciding how much to invest in email against paid social, you are working from a figure that is roughly double what email can defend.
The expensive part is not the discrepancy. It is the decision made on top of it: budget shifted toward email because it looked like a fifth of the business, or a campaign scaled on attributed ROAS while its contribution margin ran negative. Postlytix reads your commerce, email, ads, support and finance data together and flags where a measurement artifact is quietly steering real money.
This is one of eight places the numbers come apart. Why your e-commerce revenue numbers never match explains why fragmentation happens across the whole stack, and links to the rest.