Add up the revenue each of your ad platforms claims it drove last month. If you’re like most DTC brands, the total comes to something absurd — 130%, 150% of your actual sales. Meta swears it drove $400K. TikTok says $200K. Google, $180K. Klaviyo, $150K. You did $700K. So who actually earned the money? This is the attribution problem, and until you solve it, every CAC number you have is fiction.
This is a deep dive within the e-commerce analytics guide — the acquisition layer, where most reporting goes to die.
Why the numbers exceed 100%
Each platform answers a self-serving question: “Did someone who saw my ad end up buying?” If a customer saw a Meta ad, clicked a Google search result, opened an email, and then bought, all four platforms count the sale. None of them is technically lying — they’re each reporting touches, and you’re reading it as cause.
The result: overlapping credit, inflated platform ROAS, and a media buyer scaling a channel that’s actually riding on demand another channel created.
The classic attribution models (and why each lies a little)
These are rules for assigning credit across the touchpoints in a customer’s journey:
- Last-click — 100% credit to the final touch. Punishes everything that built demand (top-of-funnel, brand) and over-credits bottom-funnel and branded search. The default in most tools, and the most misleading.
- First-click — 100% to the first touch. The opposite bias.
- Linear — equal credit to every touch. Fair, but treats a throwaway impression like a decisive click.
- Time-decay — more credit to touches closer to purchase. Reasonable, still arbitrary.
- Data-driven / algorithmic — uses your actual conversion paths to assign fractional credit. Better, but only as good as the tracking feeding it — and tracking has gotten worse.
Here’s the uncomfortable truth: every one of these is a storytelling rule, not a measurement of causation. They redistribute credit; they don’t tell you what would have happened anyway.
The thing that actually matters: incrementality
The only question worth answering is: which sales would not have happened without this channel? That’s incremental contribution, and it’s a different question from “which channel touched the order.”
Branded search is the cleanest example. Someone Googles your brand name and clicks the ad. Last-click hands that channel a gorgeous ROAS. But most of those people were going to buy anyway — you paid for a customer you already had. The incremental value is a fraction of the reported value.
You measure incrementality with holdout tests: deliberately withhold a channel from a region or audience and measure the difference in total sales, not the platform’s self-reported number. Geo-holdouts and scaled spend tests are how you learn what a channel is really worth. It’s more work than reading a dashboard, and it’s the only thing that doesn’t lie.
MTA vs. MMM (and what to use when)
- Multi-Touch Attribution (MTA) stitches individual user journeys. Granular, but increasingly broken by privacy changes (iOS, cookie loss, walled gardens). Good for directional, in-platform optimization.
- Marketing Mix Modeling (MMM) is a top-down statistical model that relates total spend per channel to total sales over time. Privacy-proof because it never touches user-level data. Better for budget allocation; too coarse for day-to-day tweaks.
For most $2M–$50M DTC brands, the pragmatic answer is: one trusted source of truth for revenue (Shopify, reconciled to the bank), MMM or incrementality tests for budget allocation, and platform tools only for in-channel optimization — never for deciding total channel worth.
What to actually do
- Pick one revenue source of truth. Almost always your order system, reconciled to cash. Stop summing platform-reported revenue.
- Stop trusting last-click for budget decisions. Use it for nothing more than directional in-platform signals.
- Run holdout tests on your biggest channels. Especially branded search and retargeting — the two most over-credited line items in DTC.
- Judge channels on incremental contribution. The Channel Scorecard is built to compare channels on incremental contribution instead of platform ROAS.
- Feed it back into unit economics. Honest CAC by channel is what makes your LTV:CAC ratio trustworthy.
A real example
A skincare DTC brand came to me with six platforms telling six different stories about CAC and $1.4M they’d written off as “channel overlap.” Rebuilding attribution on first-party data and validating against holdouts recovered most of it — not by spending more, but by finally knowing which channels were incremental and which were taking credit for demand they didn’t create. The full story is in the DTC attribution rebuild case study.
The bottom line
Your channels don’t add up because each one is paid to take credit. Attribution models redistribute that credit with prettier math; only incrementality tells you what a channel is truly worth. Pick one source of revenue truth, test your biggest channels with holdouts, and allocate budget on what’s incremental — not what’s reported.
If your CAC reads differently on every platform and you’re scaling on numbers you don’t trust, rebuilding attribution is the core of the e-commerce analytics engagement. Book a call and we’ll find out which channels are actually earning their budget.