- Home
- Blog
- Strategy & Scale
- The SKU Quietly Bleeding the Whole Ad Budget: A Product Teardown
The SKU Quietly Bleeding the Whole Ad Budget: A Product Teardown
Giada Esposito
E-commerce Performance Manager
For eight straight months this online homeware store hit its scaling meeting with the same conclusion: the account is healthy, keep spending. Blended ROAS sat comfortably above target and revenue grew. Yet the year-end margin review told a different story — contribution profit had barely moved while spend climbed steadily. This is the story of a per-SKU profit leak true ROAS investigation that finally explained the gap: a single product whose unit economics were quietly negative, hidden inside a blended average that made the whole account look fine.
Quick answer: A healthy blended account ROAS can hide one product that loses money on every sale, because the average folds the loser in with the winners. Breaking True ROAS — net profit after COGS, fees, shipping and returns — out per SKU, fed by Shopify and WooCommerce order data, isolated the one product draining the margin. The fix was a rule: allocate by per-product profit, never by blended revenue ROAS.
This is a composite drawn from common ecommerce patterns, but the failure mode and the fix are real. The names and figures are illustrative; the way a single SKU drains a budget while the account looks healthy is not.
The puzzle: account-level ROAS healthy, profit stubbornly flat
The store sold roughly forty products — kitchenware, small textiles, a few seasonal bundles — and ran ads across Meta, Google and TikTok. Every month the buyer pulled blended ROAS, saw a number above the contribution target, and reported up that things were working. The platforms agreed. Revenue rose quarter over quarter, and the dashboards were green.
So the year-end review landed like a contradiction. Spend was up sharply, reported revenue had risen to match, blended ROAS had held its line — and yet the money left after costs was almost exactly where it had been twelve months earlier. The buyer was reading the number the tools put in front of him and trusting it. The trouble is that a blended account ROAS is the most reassuring number in ecommerce and one of the least diagnostic. It tells you the account, on average, is fine. It cannot tell you that one product inside the average is on fire. This is the same gap dissected in why your ROAS doesn't match your profit: the ad manager and the ledger are measuring two different things.
Treating a blended average as a health certificate means you can run a profit leak for a year and never see it, because the number that would expose it is one you never compute.
Why blended ROAS hides a leak: one bad SKU averaged out by good ones
The mechanism is arithmetic, not malice. Blended ROAS sums revenue across the catalog and divides by total spend. A handful of genuinely profitable SKUs — a high-margin knife block, a full-price textile line — produced enough surplus to absorb a weak product and still leave the average above target. The loser was real, but it was outvoted.
That is what makes a per-SKU leak so durable. Nothing in the standard reporting flow isolates the offending product. Campaigns often mix SKUs; even a single-product campaign rolls up into the account average the moment anyone looks at the blended view. Meanwhile the bad product keeps converting — that is exactly why it hides — so it draws a steady share of spend, and every dollar buys revenue at a loss the average quietly eats. The framework for separating these two layers is laid out in the reported ROAS versus true ROAS framework: one number tells you traffic happened, the other whether it paid — and at the SKU level the two can point in opposite directions.
A blended ROAS that stays green while a product bleeds is doing exactly what an average does: smoothing the worst unit into invisibility. The leak survives because the reporting never asks which product, specifically, the number is made of.
Where the margin goes: high COGS, returns and fees on a single product line
Once the team suspected a single product, the candidate was easy to name in hindsight. One bestselling item — a large, discounted seasonal bundle — converted beautifully and topped the volume charts. It was also the worst-built unit in the catalog from a margin standpoint, and four costs stacked against it.
Cost of goods was high relative to its discounted price, so gross margin per sale was thin before anything else was deducted. Payment and platform fees took their slice off the top. Shipping was bulky and partly subsidized to clear a free-shipping threshold the bundle was designed to hit. And because it was discount-driven and bought on impulse, it returned at an above-average rate, reversing a meaningful share of its own revenue weeks later. None of those four costs — COGS, fees, shipping, returns — appears in a platform's revenue figure. The ad manager sees a sale and books the revenue; it never sees the refund, the freight, or the processor's cut. So a product that loses a little on every order can post a respectable revenue ROAS and ride comfortably inside the account average.
The most dangerous SKU in a catalog is a high-volume product with thin true margins, because volume is what lets it hide: a low-volume loser barely moves the blended number, but a high-volume loser draws real budget while staying invisible inside the average.
Connecting Shopify and WooCommerce order data for per-SKU profit
The account couldn't be fixed with ad data alone, because ad data stops at spend and reported revenue. To attribute profit down to an individual product, the team needed the order side: line items, cost of goods, fees, shipping and returns, per order. The store ran two storefronts — its main Shopify shop and a secondary WooCommerce site for a wholesale-adjacent line — so the order data lived in two places.
Both were connected into Wevion's profitability layer so order-level detail from Shopify and WooCommerce flowed into the same view as ad spend. With the cost side present, profit could be attributed per SKU rather than stopping at the campaign or account level. The same store sync keeps the cost side current as catalog prices and supplier costs change, so per-product True ROAS does not silently go stale. The platform reported a roughly 15-minute sync cadence rather than an instant one, which for a margin decision made over weeks is invisible — a profit call is not a millisecond call. The diagnostic motion mirrors the one in how a dropshipper finds which product is bleeding spend: get the order data in, attribute cost to the SKU, and let the worst product reveal itself.
The ad platform never holds the cost side: it knows spend and reported revenue, not what a product cost to buy, fulfill, or refund. Connecting the store is the half of the equation without which profit per product cannot be computed.
Switching to True ROAS on net profit, broken out per product
With both data sides present, the unit of decision changed. Instead of one blended ratio for the account, the layer computed True ROAS — net profit after COGS, fees, shipping and returns, divided by spend — and, critically, broke it out per SKU. For the first time the scaling meeting had a table with one profit line per product instead of a single comforting average.
The effect was immediate. Products that had been carrying the account and products that had been dragging on it stopped cancelling each other out. Most of the catalog cleared its contribution target on True ROAS, some by a wide margin. And one line sat well below break-even on its own — the discounted seasonal bundle, the same product topping the volume charts. Its blended contribution had been masked for a year; on its own True ROAS line it had nowhere to hide.
Once True ROAS sat per SKU, the meeting's question flipped from "is the account healthy?" to "which products make money after everything they cost to fulfill?" — and the answer was no longer one reassuring number but a ranking with a clear loser at the bottom.
The teardown: the SKU that looked like a winner at the account level
Pull the bundle apart on its own line and the story inverts. On the platform it was a star — high volume, steady conversions, a revenue ROAS that in isolation looked like the kind of product you build a season around. Inside the blended number it was indistinguishable from a winner, because it sold so much that its revenue propped up the average even as its profit dragged it down.
On its per-SKU True ROAS line, after the thin discounted margin, fees, subsidized shipping and elevated returns were subtracted, it landed below one. Every dollar spent to sell more of it was buying revenue at a small loss, multiplied across a year of steady volume. It had never once shown up as a problem, because no number the team looked at was capable of showing it as one — the same trap a DTC brand fell into in the case where True ROAS exposed a fake winner, one level deeper, at the product rather than the campaign.
The product that tops a volume chart and the one that tops a profit chart are often different products, and a blended account ROAS will never tell you they have diverged. A high-selling, low-margin SKU looks like a winner everywhere except its own profit line.
Reallocating spend away from the margin-draining product
The reallocation was undramatic precisely because the number was finally trustworthy. The team didn't kill the bundle — it still pulled new customers worth keeping — but they capped its spend hard and redirected that budget toward the SKUs whose per-product True ROAS was strongest. A couple of higher-margin lines that had been chronically under-funded, because they never topped the volume chart, finally got the budget their profit had been earning all along.
They also went back to the bundle's own economics rather than just throttling its ads: a smaller discount, an adjusted free-shipping threshold, and a returns-policy tweak narrowed the leak at the source. None of this required relitigating the math each meeting, because the profitability view carried it — one True ROAS line per product, founder and buyer reading the same screen.
Fixing a per-SKU leak is rarely about deleting the product. It is about refusing to scale a loss and refusing to starve a winner — two errors a blended average commits at once. The moment the decision number is per-product profit, the budget stops flowing toward whatever sells most and toward whatever earns most.
The lesson: blended ROAS is where profit leaks hide, look per SKU
The store's takeaway generalizes to any catalog buying ads against physical product. A blended account ROAS is a fine coarse health check and a terrible allocation metric, because its entire job is to average — and averaging is exactly what conceals a single bad unit inside a good account. The longer the account looks healthy, the more confidently budget pours into whatever happens to sell, regardless of whether it makes money.
Wevion's plans start at a permanent free tier (€0), then Starter at €99/mo, Pro at €499/mo, and Plus at €1,499/mo (€1,199 annual, billed yearly at -20%), with Enterprise as a custom plan, and every paid tier includes a 14-day trial that coexists with the free plan. The Shopify and WooCommerce connection and the per-SKU profit view sit inside that, so a store can wire its orders and see True ROAS per product before committing to a paid tier. The rest of the playbook lives in the campaign-scaling cluster. The rule that came out of the teardown is the one to keep: no product's spend grows unless its own True ROAS clears the contribution target after COGS, fees and returns — and when the account looks healthy but profit won't move, stop trusting the average and look per SKU.
Frequently Asked Questions
The Ad Signal
Weekly insights for media buyers who refuse to guess. One email. Only signal.
Related Articles
Why Your ROAS Doesn't Match Your Profit (And What to Do About It)
Your ad platform says 4× ROAS. Your accountant says 1.5×. Both are right, and the gap between them is quietly steering your budget toward the wrong winners. This is why platform-reported ROAS drifts from real profit, what that costs, and how to optimize to a number you can actually trust.
Reported ROAS vs True ROAS: A Framework You Can Trust
Platform-reported ROAS and true ROAS are two different numbers, and confusing them quietly steers your budget wrong. This is a practical, human-in-control framework for calculating a true ROAS you can trust, deciding which number to use for which decision, and building the habit into a weekly routine.
How a Dropshipper Finds Which Product Is Bleeding Spend Across Channels
Meet a solo dropshipper running 12 products across Meta and TikTok, profitable on paper but bleeding somewhere. This is the end-to-end story of how one cross-channel view exposed the SKU quietly eating his margin — and how he cut it before it drained the month.