Return on Ad Spend (ROAS) is the most-cited eCommerce paid media metric, and it is also the most misleading. A 6x ROAS campaign can be unprofitable. A 2x ROAS campaign can be highly profitable. The difference is contribution margin, and most stores do not measure it correctly. This article explains why ROAS lies, how contribution margin works, and how to set up reporting that tells you whether you are actually making money on ads.
What ROAS Actually Measures
ROAS is revenue from ads divided by ad spend. A 4x ROAS means 1 INR of ad spend produced 4 INR of revenue. The implicit assumption is that 4x revenue is profitable. That assumption is wrong for most eCommerce businesses.
Revenue is a top-line number. It is not profit. To know if ad spend is profitable, you need to subtract: cost of goods sold (COGS), shipping costs, payment processing fees, returns and refunds, packaging, fulfillment labor, and ad spend itself. What is left is contribution margin, which is the actual money the campaign produces.
For an eCommerce store with 35 percent gross margin (typical for fashion, beauty, home goods), a 4x ROAS campaign produces revenue but barely covers costs. For a store with 60 percent gross margin (jewelry, premium electronics), the same 4x ROAS is comfortably profitable.
The Math: Why a 6x ROAS Campaign Can Lose Money
Take a fashion store with these unit economics on a 1000 INR average order value (AOV):
- Revenue: 1000 INR
- COGS (product cost): 400 INR (40 percent)
- Shipping: 80 INR
- Payment processing (2 percent): 20 INR
- Returns and refunds (12 percent rate, 50 INR processing per return): 100 INR
- Packaging and fulfillment: 60 INR
- Total non-ad costs: 660 INR
- Pre-ad contribution: 340 INR
Now apply ad spend at different ROAS levels:
- 3x ROAS: Ad spend = 333 INR. Contribution after ads = 7 INR. Roughly break-even.
- 4x ROAS: Ad spend = 250 INR. Contribution after ads = 90 INR (9 percent contribution margin).
- 6x ROAS: Ad spend = 167 INR. Contribution after ads = 173 INR (17 percent contribution margin).
For this store, 3x ROAS is unprofitable. 4x is marginally profitable. 6x is healthy. The break-even ROAS depends entirely on the unit economics, not on industry benchmarks.
Calculating Your Break-Even ROAS
Every eCommerce store has a break-even ROAS, the level below which ads lose money. The formula:
Break-even ROAS = 1 / (Pre-ad contribution / Revenue)
For the example above with 340 INR pre-ad contribution on 1000 INR revenue: Break-even ROAS = 1 / (340/1000) = 1 / 0.34 = 2.94x
Below 2.94x ROAS, this store loses money on ads. Above it, ads are profitable. The exact target depends on growth ambition (higher ROAS means lower volume; lower ROAS means higher volume but lower margin per order).
Calculate your break-even ROAS once, document it, and use it as the floor for ad campaign decisions. Most stores discover their break-even is higher than they assumed.
Why Attribution Makes ROAS Even More Misleading
The math above assumes ad spend caused the revenue. In reality, attribution models systematically overcount paid media contribution.
The branded search overlap problem. Google Ads attributes conversions to branded search clicks (your brand name searches). Most of these conversions would have happened organically. The "ROAS" of branded search campaigns is inflated by 50 to 200 percent in typical cases.
The Meta attribution window. Meta defaults to a 7-day click, 1-day view attribution window. This counts as "Meta-driven" any conversion within 7 days of a click or 1 day of an impression, regardless of whether Meta caused the conversion. Combined with iOS 14.5 plus tracking limitations, Meta-reported ROAS is typically 1.3x to 2x inflated vs incremental impact.
The double-counting problem across channels. If Google Ads and Meta Ads both report attribution for the same converted customer, summing them overstates total ad-driven revenue. Most stores looking at their dashboards see paid media reporting 80 percent of total revenue, when the true ad-incremental contribution is closer to 40 to 50 percent.
The fix is incrementality testing (geo holdouts, conversion lift studies) and reporting at the blended level (MER, marketing efficiency ratio = total revenue / total ad spend) rather than per-channel ROAS.
How to Set Up Contribution Margin Reporting
Two reporting layers are needed: per-order contribution calculation, and campaign-level contribution attribution.
Per-order contribution. In your order data (Shopify, WooCommerce), append cost-of-goods, shipping cost, payment fee, and packaging cost to each order. Many stores already have COGS in product data; add the others as flat percentages or per-order constants. The result: every order has a contribution-margin number alongside the revenue number.
Campaign-level contribution. In ad platform reporting, multiply attributed revenue by your contribution margin percentage to get attributed contribution. Then subtract ad spend. The result is true campaign contribution, not vanity ROAS.
Tools that help. Triple Whale, Northbeam, Polar Analytics, and Lifetimely all offer contribution-margin and incrementality-aware reporting. Cost: 200 to 2000 USD per month depending on revenue tier. For stores spending more than 5 lakh INR per month on ads, the investment pays back through better budget allocation alone.
The DIY version. Pull ad platform data and order data into a Google Sheet weekly. Calculate contribution per campaign manually. Less elegant but works for stores under 5 lakh INR per month ad spend.
What Changes When You Use Contribution Margin
Switching from ROAS-driven to contribution-driven decisions changes which campaigns you scale and which you cut. Common shifts:
- Branded search campaigns get cut or capped. Their incremental contribution is much smaller than reported ROAS suggests. Once you measure correctly, the budget moves elsewhere.
- Top-of-funnel prospecting campaigns become viable. 2 to 3x ROAS prospecting campaigns that look unprofitable on standard reporting often have positive contribution at the LTV level (factoring in repeat purchases). Properly measured, prospecting earns its budget.
- Discount-heavy campaigns get scrutinized. Sales and promotions that drive ROAS through discounts often have negative contribution after accounting for the discount. Stores discover that "best ROAS week of the year" was actually a margin-destroying week.
- Retargeting allocation shifts. Retargeting often shows the highest ROAS because it captures conversions that would have happened anyway. Incrementality-aware reporting shifts budget away from retargeting toward prospecting.
Frequently Asked Questions
Is ROAS useless then? No, ROAS is useful as a quick comparative metric within consistent context (same campaign type, same product, same audience). The mistake is using ROAS as the absolute profitability metric or comparing ROAS across very different campaign types.
What is a "good" ROAS for eCommerce? There is no universal answer. It depends on your contribution margin. A 2x ROAS is good for a store with 70 percent margin and bad for a store with 30 percent margin. Calculate your break-even ROAS once, then aim 1.5x to 2x above it for healthy profitability.
How do I run an incrementality test? Two methods. Geo holdout: pause ads in 2 to 3 markets while running normally elsewhere; compare revenue trends. Time-based holdout: pause specific campaigns for 2-week periods; measure revenue impact. Both reveal true incremental contribution rather than attributed contribution.
Should I cut all my branded search campaigns? Reduce, do not necessarily eliminate. Branded search campaigns serve as defense against competitor bidding on your brand terms and capture some incremental conversions from non-loyal searchers. The right level is usually 50 to 70 percent lower spend than what most stores currently allocate.