← All writing

What Contribution Margin by SKU Tells You That Blended ROAS Never Will

Blended ROAS hides the products destroying your margins. Here's how contribution margin by SKU exposes the truth and changes how you run paid media in eCommerce.

Jordan Glickman·May 10, 2026·10
Finance

Blended ROAS is not a bad metric. It is a dangerous metric — specifically because it is accurate enough to feel trustworthy while concealing exactly the information that determines whether scaling your paid media actually builds a profitable business.

The danger is structural. Blended ROAS averages performance across your entire product catalog. A $100 order from a high-margin product and a $100 order from a break-even bundle look identical inside that number. One of those orders contributed meaningfully to the business. The other one generated revenue that cost as much or more to produce. The metric stays green either way.

Operators who scale confidently on blended ROAS and then watch margins collapse at the end of the month are almost always discovering the same thing: their ad platform was finding customers, but those customers were buying the wrong products. And nobody on the media team knew, because they were looking at the portfolio number instead of the SKU-level number.

The fix is contribution margin by SKU. It is more complex to build than a dashboard ROAS figure. It changes how media buying, creative strategy, and finance interact. And it is the measurement layer that separates operators who scale profitably from those who scale into a cash flow problem they did not see coming.

Image brief: Three-row SKU tier framework table — Tier, Margin Characteristics, Paid Media Priority, Scaling Rule. Core Margin Drivers row highlighted. alt: "SKU profitability tier framework for eCommerce paid media." caption: "Without SKU-level contribution margin, media buyers optimize toward whatever the algorithm rewards — volume and CTR, not your margin profile."

What Blended ROAS Actually Hides

The blended ROAS calculation: total attributed revenue divided by total ad spend. Clean, reportable, easy to build a dashboard around.

The problem is in what it averages together.

Consider a brand running paid media across a product catalog with significant margin variance. Their premium SKU has a 55% gross margin. Their entry product has a 22% gross margin. Their bundle, structured to drive acquisition, runs at 15% gross margin after bundled COGS.

If the algorithm allocates most spend toward the bundle — because the bundle's lower price point generates a better click-to-purchase rate — blended ROAS might look healthy while the business is actively losing ground on every order the algorithm is most efficiently generating. The metric is rewarding efficiency. The business is punishing margin.

This is not a hypothetical. It is a consistent pattern in accounts that have never separated revenue quality from revenue volume. And the pattern accelerates when spend scales — more budget means more of whatever the algorithm was already optimizing toward.

The Contribution Margin Formula That Changes the Analysis

Contribution margin by SKU strips the averages out and answers one question per product: after subtracting every variable cost directly attributable to this SKU, what does it actually contribute to covering fixed costs and generating profit?

The formula:

Contribution Margin per SKU = Revenue − (COGS + Paid Media Spend + Variable Fulfillment + Returns/Refunds)

When you apply this formula at the SKU level and layer in attributed ad spend per product, you stop measuring revenue generation and start measuring margin generation. That is a different optimization target, and it produces different media buying decisions.

See how contribution margin analysis applies at the account level to separate media buying performance from offer economics — the SKU-level version of this analysis is the product-line decomposition of the same framework.

The Attribution Problem That Makes This Hard

Building clean contribution margin by SKU requires clean revenue attribution by SKU. This is where most teams fall short — not because the intent is missing, but because the multi-platform attribution environment makes SKU-level revenue data structurally messy.

Each platform has its own attribution window. Meta's default is seven-day click, one-day view. Google's data-driven attribution model distributes credit across a thirty-day window. TikTok's default overlaps with Meta's, which creates double-counting when both platforms are active. GA4 operates on session-level last-click attribution unless configured otherwise.

The sum of platform-reported revenue attributed to individual SKUs will almost always exceed actual Shopify revenue because every platform is claiming partial credit for the same orders. Before contribution margin by SKU means anything, you need a deduplication methodology that reconciles cross-platform claims against actual order data.

At Impremis, we use a three-signal approach: platform-reported data as the initial hypothesis, GA4 session data as the attribution cross-check, and MER at the account level as the reality anchor. When these three signals are triangulated, you arrive at a defensible, deduplicated revenue figure per channel. That channel-level figure then maps back to SKU performance using actual order line-item data from the brand's backend. See why this platform-to-GA4 reconciliation gap is structural and not a pixel configuration error — the same underlying problem applies at the SKU level.

The SKU Tier Framework for Paid Media

Once you have clean contribution margin data by SKU, the paid media strategy has to reflect it. Not every product deserves the same campaign treatment, the same creative investment, or the same bid ceiling.

| SKU Tier | Margin Characteristics | Paid Media Priority | Scaling Rule | |---|---|---|---| | Core Margin Drivers | High CM, proven CVR, strong LTV signal | Majority of budget, dedicated creative testing | Scale until CAC exceeds CM contribution target | | Strategic Builders | Lower CM but high cross-sell or repeat potential | Supporting spend, capped budget with break-even floor | Scale only when LTV data validates the acquisition cost | | Volume SKUs | Low CM, high conversion volume | Acquisition-only at break-even; never displaces Tier 1 | Fixed budget cap; rotate out if CM turns negative |

The tiered structure forces the media buying team to work from margin intelligence, not just algorithm efficiency signals. A media buyer without this framework will naturally optimize toward the products the algorithm finds easiest to convert — which are often the lowest-margin products, because lower price points and simpler value propositions drive higher conversion rates.

Tier 1 products get dedicated campaign structures, dedicated creative testing budgets, and bid strategies calibrated to their specific contribution margin targets. Tier 3 products serve an acquisition function at controlled spend levels — they generate customer relationships that Tier 1 products then monetize — but they are never allowed to absorb budget that belongs behind your margin drivers.

Aligning Creative Strategy to Margin Tiers

The SKU tier framework only generates margin improvement if it reaches the creative function.

Creative teams operating without financial data run briefing processes based on ad-level metrics: click-through rate, cost per add-to-cart, platform ROAS. None of those signals tell a creative strategist whether the product they are building hooks for is worth selling at the current spend level.

When contribution margin data flows from the analytics function into creative strategy, the briefing process changes. UGC hooks for Tier 1 SKUs get prioritized. Testing frameworks stop declaring wins on products that drive conversion volume but compress margin. Creative iteration cycles focus on the products where improvement in conversion rate and AOV generates the most impact on actual profitability.

The change in process is simple: a weekly margin review between the analytics function and the creative lead that translates SKU-tier data into direct creative briefing priorities. The output of that meeting determines what gets iterated the following week. What makes it effective is the connection between financial data and creative direction — a connection that most agencies and in-house teams do not build.

The TikTok Shop and Facebook Shops Complication

The SKU-level attribution challenge compounds significantly when social commerce channels enter the mix.

TikTok Shop and Facebook Shops each report their own attributed revenue using their own tracking methodology. A customer who discovers a product through a TikTok Shop creator video, navigates to the brand's website, and converts can appear as a TikTok Shop affiliate conversion, a Meta view-through conversion from a separate ad exposure, and an organic session in GA4 — all for the same order.

That single Shopify order is now in three different attribution systems simultaneously, each assigning product-level revenue to the SKU based on different logic. Before you can trust any contribution margin calculation, you need to reconcile every attributed conversion back to its Shopify order ID and remove duplicate claims.

The rule for any brand running multiple social commerce channels: the backend order data is the only source of truth for SKU-level revenue. Platform-reported conversion events are hypotheses about what drove that revenue. SKU contribution margin calculations that are built on platform data rather than order-level data are wrong, and the decisions those calculations produce will reflect the error. See how AOV optimization at the SKU level changes the contribution margin calculation before the attribution complexity even begins — bundle pricing and SKU-mix effects interact directly with the margin math described here.

The Six-Step Implementation Framework

Contribution margin by SKU does not require a data engineering team to build. It requires alignment between functions that typically do not communicate directly.

Step 1: Establish landed COGS per SKU. Work with the finance or operations team to confirm COGS per unit including freight, duties, and allocated overhead. This is the foundation. Inaccurate COGS produce inaccurate margin figures and flawed media buying decisions downstream.

Step 2: Pull order-level data with SKU line items. Export from Shopify or the ERP with product-level line items. Actual units sold per SKU from the backend, not platform-estimated conversion counts.

Step 3: Map paid media spend to SKU using campaign structure. If campaigns are structured around specific products or collections, spend attribution is direct. If campaigns are broad, use platform conversion data filtered by product to estimate the spend allocation per SKU on a percentage basis.

Step 4: Deduplicate platform revenue claims. Run MER as the reality check. If deduplicated revenue divided by total spend aligns with MER, the attribution is defensible. If it diverges, investigate before trusting any SKU-level figure.

Step 5: Score SKUs by contribution margin and update campaign structure. Run this monthly at minimum, weekly during scaling phases. Campaign structures, creative budgets, and bid strategies update based on the output.

Step 6: Make the margin dashboard live and accessible to the media buying and creative teams. This is the step most operations skip. The data exists in a spreadsheet that only the analyst touches. When margin data is invisible to media buyers and creatives, the entire analysis produces no behavior change — it just generates a report that nobody acts on.

FAQ

What if our COGS data is not clean enough to run this analysis? Start with estimates. An imprecise COGS figure is more useful than no SKU-level analysis — you can tier SKUs with directional confidence even when the exact margin percentages are approximate. Use the analysis to identify the clear winners and the clear problems. Refine the COGS figures over time as the finance team validates them. Do not wait for perfect data before building the framework.

How do we handle SKUs that are only sold as part of bundles? Build the bundle's contribution margin as its own line item, not as an average of the component SKUs' individual margins. The bundle's revenue is what the customer paid. The bundle's COGS is the combined product cost plus any packaging premium. The bundle's contribution margin is what that transaction actually generated. If the bundle's contribution margin is below threshold, the bundle pricing is wrong — not the component SKUs.

Should media buyers have access to margin data directly? Yes — with context. A media buyer who can see that a SKU has a $12 contribution margin at current spend will make different bid and budget decisions than one optimizing toward ROAS without that context. The risk is that raw margin figures without strategic framing create confusion rather than clarity. The weekly margin review between analytics and creative should include the media buying lead so that the SKU-tier priorities are understood as strategy, not just as constraints.

Closing

Blended ROAS will always tell a story. The question is whether it is the story that drives the right decisions.

The accounts that scale profitably past seven figures are not the ones with the most aggressive creative testing frameworks or the most sophisticated audience targeting. They are the ones where everyone responsible for a paid media decision — the media buyer, the creative strategist, the account lead — has access to the same margin intelligence and has organized their work around it.

Build the contribution margin layer by SKU. Make it visible to the functions that act on it. Update the campaign structure, the creative priorities, and the bid strategies to reflect what the margin data says about which products are worth scaling.

Then scale.

Keep reading

Pieces I've written on related topics that pair well with this one:

Subscribe to the newsletter

Get every post in your inbox.

New writing every two weeks. No fluff. Unsubscribe anytime.

Subscribe