Most e-commerce reporting stacks are very good at answering "how much did we sell?" and noticeably worse at answering "how much did we make?" Revenue, orders, sessions, and ROAS are all easy to pull from a dashboard. Margin (actual, per-campaign, per-SKU margin) usually isn't sitting anywhere as a single number. It has to be built.

That gap is where a lot of ad budget gets misallocated. Two campaigns can report near-identical ROAS while representing very different underlying profitability, simply because they're selling different products at different margins.

Why store-wide average COGS isn't good enough

The simplest way to approximate margin is to apply one blended cost-of-goods percentage across the whole store (say, "COGS is roughly 35% of revenue") and use that everywhere. It's better than nothing, but it hides exactly the variation that matters for ad decisions:

  • A hero SKU with strong margins can make a mediocre-ROAS campaign genuinely profitable.
  • A low-margin, high-volume SKU can make a strong-ROAS campaign barely break even.
  • A campaign selling a mix of both will show one blended ROAS number that describes neither product accurately.

SKU-level COGS, blended against the actual order mix each campaign is driving, is the only way to see which of these situations you're actually in.

// A pattern that shows up constantly

Two campaigns reporting the same 2.0× ROAS on Meta can have true, COGS-adjusted profitability that differs by a full turn or more, one built almost entirely on a high-margin bestseller, the other spread across lower-margin SKUs with thinner unit economics.

What "COGS-adjusted" profitability actually requires

Building this number properly means bringing together data that normally lives in separate systems:

01Per-SKU cost of goods, supplied once and refreshed as it changes
02Order-level attribution from the ad platform, mapped back to the SKUs actually sold
03Return rate and processing fees, reconciled against the same order set

None of these three, alone, tells the full story. COGS without attribution just tells you your average margin. Attribution without COGS just tells you volume. It's the combination, cost applied to the specific products a specific campaign actually sold, that produces a number worth making a budget decision on.

Why "weekly" is the right cadence

Margin doesn't need to be recalculated in real time; cost structures and return patterns don't move that fast, and reacting to daily noise tends to produce worse decisions, not better ones. But letting it go stale for a full quarter is just as risky, since ad mix, promotions, and product cost changes accumulate quietly in between. A weekly refresh is frequent enough to catch a real shift (a supplier cost increase, a new SKU entering the mix, a return-rate spike on one product) before it's had a chance to compound across several weeks of budget decisions, without generating so much noise that every report looks urgent.

Turning the number into a decision, not just a dashboard

A COGS-adjusted profitability figure is only useful if it changes what happens next. On its own, a dashboard number is something to glance at; a decision, like "scale this campaign," "pause this one," or "this margin drop is a fee issue, not a performance issue," is something to act on. That's the difference between reporting and assisted execution: the number gets translated into a specific, dollar-quantified recommendation, with a confidence score, that someone approves or dismisses.

Find out what your campaigns actually earn after COGS.

7Captur blends SKU-level cost of goods into a weekly true-ROAS calculation for every active campaign. See it on your own store.

Get your report →