A brand we audited last year was running a 4.1x blended ROAS on Meta. They were scaling spend every week. What their ad account wasn’t showing: their TikTok Shop channel, which they’d been growing aggressively, was netting 8% contribution margin after fees and creator commissions. Their Shopify DTC channel was netting 26%. They were moving budget toward the channel that was quietly destroying margin because the ROAS number looked better there.
The Attribution Model You’re Using Was Built for 2018
Last-click attribution made sense when one platform owned the customer journey. A buyer saw a Meta ad, clicked, and bought on your Shopify store. Clean signal. Easy to optimize.
That’s not how customers behave anymore. They see your Meta ad, check your Amazon reviews before committing, find your product on TikTok Shop three days later while doing something else entirely, and buy wherever checkout is fastest. The purchase gets credited to the last click. The channels that did the actual persuasion work get nothing. You optimize based on that attribution and reallocate budget accordingly. The cycle repeats until a channel that was doing real work gets defunded because it never got credit for it.
We’ve seen this exact pattern in brand after brand. One client pulled 40% of their Meta budget after six weeks of declining reported ROAS. TikTok Shop conversions dropped 30% the following month. Meta had been doing the discovery work TikTok was closing. Neither metric told that story on its own.
Revenue and ROAS Are Vanity. Profit by Channel Is the Actual Number.
The problem with optimizing for ROAS is that it ignores what the channel actually costs to operate. A 4x ROAS on a channel driving products with 28% gross margin leaves very little after COGS and fulfillment. A 2.8x ROAS on your email channel driving repeat buyers at 62% margin is a significantly better business.
Profit by channel means: revenue minus COGS minus channel-specific costs — ad spend and platform fees, return rate by channel (Amazon buyers return at meaningfully higher rates than DTC buyers; we typically see a 6 to 12 percentage point gap), marketplace fees, and creator affiliate costs on TikTok Shop. The customer acquired through each channel costs a different amount to serve, returns at a different rate, and repeats at a different rate. Treating all revenue as equivalent because it hits the same top-line number is where the misallocation starts.
The 4 Channels Most DTC Brands Are Measuring Wrong
Meta and Paid Social
Platform-reported ROAS overstates performance for nearly every brand we audit. It takes credit for purchases that would have happened anyway through organic or email. The most reliable signal combines platform data with post-purchase surveys asking how customers first discovered you. One client found their true Meta ROAS was 2.3x, not the 4.6x the platform reported. That gap changed their entire budget allocation when they finally saw it.
Amazon
Amazon functions as both a sales channel and a trust signal. Many buyers who discover a brand through a paid ad will check its Amazon listing before purchasing anywhere, even if they ultimately convert on the Shopify store. A weak Amazon presence loses conversions ad spend initiated. A strong one closes them at 15 to 20 percentage points lower net margin than DTC. The same $65 product that nets $28 on Shopify nets closer to $16 on Amazon after referral fees and FBA. Both numbers need to be in your channel P&L before you decide how much inventory to route where.
TikTok Shop
TikTok Shop attribution is clean because purchases happen inside the platform. The margin math is where most brands get surprised. TikTok’s commission, creator affiliate fees, and a return rate that tends to run 8 to 15 points higher than owned-channel customers means the fastest-growing channel on your dashboard can be your least profitable one. We worked with a brand doing $180K per month on TikTok Shop. When we ran the channel P&L, their contribution margin was 9%. Their email channel was doing $70K per month at 58% contribution margin. They were putting more energy into TikTok Shop.
Email and SMS
In almost every channel P&L we build, email and SMS generate the highest contribution margin in the business. No platform fees, high purchase intent, strong repeat rates. Most brands still underinvest here because the growth is less dramatic than paid acquisition. When you see the margin comparison in a single spreadsheet, the investment case is usually obvious.
How to Build a Channel P&L Without a Data Team
You don’t need an analytics stack or a data analyst. You need 90 minutes a month and a consistent framework.
Start with contribution margin per channel: revenue minus COGS minus all channel-specific costs. Build it in a spreadsheet. Update it monthly. Add a post-purchase survey question (“How did you first hear about us?”) to capture first-touch attribution the pixel can’t see reliably anymore. Tools like KnoCommerce or Fairing run this on Shopify with minimal setup. The data won’t be perfect. It will be directionally accurate, and directionally accurate beats confidently wrong every time.
The insight almost always surprises teams when they see it for the first time. Not because the numbers are shocking, but because nobody had put them side by side before. The channel getting the most budget is rarely the channel generating the most profit. Once you can see that clearly, the budget conversation changes.
What Changes When You Start Tracking Profit by Channel
Meta gets less attribution credit than the platform claims. Amazon revenue looks strong until fees and return rates are applied. Email and SMS get recognized as the margin engines they actually are. TikTok Shop growth numbers get pressure-tested against real contribution. Budget reallocates toward what’s actually working. None of this is visible if you’re optimizing against blended ROAS and top-line revenue. It only surfaces when you build the channel P&L and look at it honestly.
Frequently Asked Questions
What does tracking profit by channel mean for DTC brands?
Tracking profit by channel means calculating the true contribution margin of each sales and marketing channel: revenue minus COGS minus all channel-specific costs, including platform fees, return rates, fulfillment cost differences, and creator affiliate fees. It gives a more accurate picture of profitability than ROAS or blended revenue totals.
Why is ROAS not enough to measure channel performance?
ROAS measures revenue generated per dollar of ad spend, but it ignores channel-specific costs like platform fees, return rates, and marketplace commissions. A 4x ROAS channel with 28% gross margin can be significantly less profitable than a 2.8x ROAS channel driving repeat buyers at 62% margin.
How much does TikTok Shop actually cost DTC brands?
TikTok Shop costs include a platform commission, creator affiliate fees (typically 10 to 20% of revenue), and a return rate that runs 8 to 15 percentage points higher than owned-channel customers. Combined, these costs can reduce contribution margin to single digits even when top-line revenue is growing.
Which ecommerce channel typically has the highest contribution margin?
Email and SMS consistently generate the highest contribution margin across DTC brands. No platform fees, high purchase intent, and strong repeat rates make owned channels the most margin-efficient in the business. Most brands underinvest here relative to their actual margin contribution.
Most brands we audit have at least one channel that looks profitable on the dashboard and isn’t. That gap is Ghost Revenue™ — money you already paid to acquire and never actually kept. If you want to see where your channel mix is leaking margin, run the Ghost Revenue diagnostic.
Find your Ghost Revenue™ with a free channel P&L audit from Good Monster →