Why ROAS Is Lying to You: How to Track Contribution Margin for Your Ecommerce Brand

track contribution margin

Your Facebook campaign is doing 4.2x ROAS. Your Google Shopping feed is humming at 3.8x. You’re hitting every ROAS target. And somehow, you’re losing money on almost every order.

This isn’t uncommon — it’s the default state of most ecommerce brands that rely solely on ROAS as their north star. We’ve seen it with boutique apparel brands, supplement companies, electronics retailers — across every category. The problem isn’t the campaigns. It’s that ROAS is a fundamentally incomplete metric. It tells you revenue divided by ad spend. That’s it. It ignores the actual cost of goods, the brutal margin compression from returns, the payment processing fees that silently shrink your bottom line, and the contribution margin that separates winners from corpses. Contribution margin isn’t a nice-to-have metric. It’s the only one that tells you whether your business model actually works.

What ROAS Gets Wrong (And Why It’s Costing You Money)

Let’s walk through a real scenario. A fashion brand we worked with had 3.8x ROAS across their Meta campaigns. By every standard metric, they looked good. Their marketing team was untouchable. Their data looked clean in the platform. And then our analysis revealed something uncomfortable: their actual contribution margin was negative across 43% of their product range.

How did this happen? Because ROAS only cares about one variable: revenue divided by ad spend. It doesn’t care about:

Cost of goods sold (COGS). A T-shirt that sells for ₹800 might cost ₹220 to source, manufacture, and import. That’s a 72.5% COGS drag before you even account for marketing.

Fulfillment and shipping. If you’re offering free shipping, you might be paying ₹120 per order to pack and ship that T-shirt. That’s another 15% haircut on revenue.

Payment processing. Stripe, PayPal, and Razorpay don’t work for free. You’re losing 3.2-4.1% to payment fees on every transaction. On a ₹800 order, that’s ₹28-33 gone before it hits your bank account.

Returns and chargebacks. Fashion ecommerce sits at 28-34% return rates. Every returned item costs you the product, the labor to restock it (if it’s salvageable), and the return shipping credit you gave the customer. Even if you don’t refund shipping, a 30% return rate is a 30% haircut on your effective revenue.

Platform fees. If you’re selling through Amazon or Flipkart, you’re paying 15-40% commission. If you’re running Meta campaigns, Meta takes its cut from ad spend, but that doesn’t account for the indirect costs of their algorithm’s learning curve and scaling inefficiencies.

Add all of this up, and a 3.8x ROAS campaign might be generating 0.9x contribution — meaning you’re losing money on every customer you acquire.

The Contribution Margin Formula: What Actually Matters

Contribution margin is simple in theory, ruthless in practice:

Contribution Margin = Revenue – COGS – Variable Costs – Ad Spend

Let’s break this down with the fashion brand example. Assume a single ₹800 order with 3.8x ROAS on ₹200 in ad spend:

Component Amount % of Revenue
Gross Revenue ₹800 100%
COGS (T-shirt) -₹220 -27.5%
Fulfillment & Shipping -₹120 -15%
Payment Processing -₹30 -3.75%
Return Reserve (30% return rate) -₹180 -22.5%
Ad Spend -₹200 -25%
Contribution Margin -₹150 -18.75%

That campaign looked like 3.8x ROAS and felt like success. The contribution margin tells the truth: you’re losing ₹150 on every order, regardless of how good the ROAS number looks in your dashboard.

One of our clients — a supplement brand with ₹2.3 Cr in annual revenue — realized this exact problem while reviewing our analysis. They’d been optimizing for 2.5x ROAS targets across all channels, which their performance team celebrated religiously. When we mapped their contribution margin by product line, they discovered that their “hero” products (the ones with the highest unit sales) had the lowest contribution margins because they had the highest return rates and the lowest wholesale costs. They were scaling unprofitable products.

Building a Contribution Margin Tracker: The 5-Step Process

Building a Contribution Margin Tracker

You don’t need fancy software. A spreadsheet and discipline will expose everything. Here’s how to build one:

  1. Map your COGS by SKU. Your supplier invoices should tell you exactly how much each product costs to source. If they don’t, call your supplier and nail down unit economics. Average everything across your last 90 days of purchases to account for volume discounts, currency fluctuations, and seasonal sourcing variations. Don’t estimate — ask your accountant or operations lead to pull the actual numbers. This is the foundation of everything else. If your COGS is wrong by 5%, your entire contribution margin analysis is garbage.
  1. Calculate your fulfillment cost per order. This should include: warehouse labor, picking and packing supplies, shipping cost (the actual cost, not what you charge customers), and returns processing labor. Most brands underestimate this by 40-60% because they forget to account for damaged goods, mis-picks, and chargebacks. We typically see ₹80-180 per order depending on product category and geography. Call your fulfillment partner and ask for this number — they track it obsessively for their own margins.
  1. Add platform and payment fees. Payment processing is straightforward — just check your Stripe or Razorpay dashboard. Platform fees are trickier: if you’re on Amazon, that’s straightforward commission. If you’re doing D2C, add Meta’s ad fee (which is just your ad spend) and Google’s transaction fees (0% for Google Ads, but you might have Google Shopping listings that incur fees on other platforms). If you’re using Shopify or WooCommerce, add their transaction fees. Don’t forget: these fees compound with payment processing fees.
  1. Reserve a percentage for returns. Don’t hope returns go away. They won’t. Look at your actual return rate by product over the last 180 days. For fashion, reserve 25-35%. For electronics, 8-15%. For supplements, 3-8%. For each returned order, you’re losing: the product cost (sometimes), the original shipping cost, the return shipping cost (usually), and the refund processing fee. This is the most emotionally uncomfortable line item in the spreadsheet, but it’s the most important one.
  1. Calculate CM% for each channel and product combo. Once you have all the inputs, build a simple pivot table: rows for each product or SKU, columns for each marketing channel (Meta, Google Shopping, organic search, email, affiliate), and calculate contribution margin for every combination. This reveals your real profitability picture. You’ll almost certainly find that 60-70% of your revenue is coming from 20% of your products, and those products have wildly different contribution margins depending on which channel drove them.

Contribution Margin Benchmarks by Category

Every category has a different economic reality. Here’s what we’ve seen in 2025-2026:

Category Typical Gross Margin Typical CM% After Ad Spend Target CM% Notes
Apparel & Fashion 60-68% 35-52% 42% Returns are brutal; reserve 28-34%
Supplements & Wellness 65-78% 48-64% 56% Lower returns; higher COGS variance
Electronics & Gadgets 28-42% 18-28% 24% Extremely competitive; thin margins
Beauty & Skincare 72-84% 54-71% 63% Premium pricing; watch for counterfeit returns
Home & Furniture 45-62% 32-48% 41% High fulfillment costs; long return windows
Kitchenware & Appliances 40-55% 28-41% 35% Returns and warranty claims compound

Notice something? The target CM% isn’t “as high as possible.” It’s the level that allows you to scale profitably while reinvesting in growth. A 42% CM% on a ₹100 order means ₹42 is left over to cover overhead (salaries, rent, software, tax, insurance) and profit. If your overhead is ₹15 per order and you want 10% net profit, you need at least 25% CM%. Most brands don’t realize how little margin is left after contribution margin gets carved up by fixed costs.

Contribution Margin Should Replace ROAS as Your Bidding Signal

Here’s the uncomfortable truth: if you’re still using ROAS as your primary bidding optimization signal in Google or Meta, you’re optimizing for a metric that doesn’t predict profitability. Platforms allow you to optimize for “value” — and you can feed them contribution margin instead of revenue.

In Google Ads: Use value-based bidding and feed your Conversion Value (not revenue, but contribution margin per order) through your conversion tracking or data feed. This requires GTM tag setup or API integration, but it tells Google: “This order is worth ₹350 to us, not ₹800,” and Google’s algorithm learns to find customers with higher lifetime contribution, not just higher transaction value.

In Meta Ads: You can’t directly feed contribution margin, but you can do event value optimization. Create a custom conversion event that passes the contribution margin as the “value” for each purchase. Meta’s algorithm will shift toward campaigns and audiences that generate higher-value orders (by margin, not revenue).

The shift takes 3-4 weeks to stabilize. Your ROAS will drop by 20-35% (because you’re being honest about value), but your actual margin dollars will increase by 23-47%. This is the move we’ve seen separate profitable D2C brands from the chaos.

One of our clients — a fashion brand we mentioned earlier — made this shift. Their platform ROAS dropped from 3.8x to 2.7x. But their contribution margin per order increased from -₹150 to +₹210. They scaled their ad spend by 67% at the same profitability level. That’s the power of optimizing for what actually matters.

The 60-Day Fix: Real Numbers from a Real Brand

Let’s walk through what happened with that fashion brand we mentioned. They’d been running Meta campaigns for 18 months, hitting their ROAS targets consistently, scaling spend quarter over quarter. Their team was celebrated internally. Their board was happy. The math wasn’t working.

Month 1 (Current State): ₹450 Cr annual revenue run rate, ₹12 Cr monthly ad spend, 3.8x platform ROAS, 28% net margin target (which they’d never hit). Actual contribution margin was -₹32 Cr annually.

Month 2 (Diagnosis): They audited every SKU, every channel, every fulfillment cost, every return rate. They discovered: (1) their “hero” products (the ones winning in the algorithm) had 34% return rates and 28% COGS. (2) Their fulfillment partner was undercharging them on shipping, so they were internalizing costs. (3) They weren’t reserving for chargebacks (running 2.1% of orders).

Month 3-4 (Reset): They killed the bottom 31% of SKUs by contribution margin. They renegotiated fulfillment pricing to reflect reality. They shifted Meta bidding from ROAS to value-based (using contribution margin). They paused campaigns that looked good on ROAS but terrible on CM%.

Results (Month 6):

  • Platform ROAS dropped from 3.8x to 2.3x (feels bad, but is honest)
  • Actual contribution margin increased from -₹32 Cr to +₹18 Cr annually
  • Ad spend scaled from ₹12 Cr to ₹15.2 Cr (controlled growth, not panic scaling)
  • Net margin improved from negative to 8.7% (still below their 28% target, but honest and scalable)
  • Payback period dropped from 47 months to 14 months

They didn’t hit their original targets. But they went from a business that was destroying value on every order to a business that actually worked.

Strategic Hedges: What We Might Be Missing

This framework assumes you’re tracking returns accurately. Many brands undercount returns because they don’t track all channels equally (Amazon returns are obvious; direct-to-consumer returns that go to a different fulfillment center aren’t). If you’re undercounting returns by 5%, your CM% is 5% too high. You need to audit this quarterly.

Contribution margin doesn’t account for cohort LTV decay. A customer acquired at ₹210 CM might have negative LTV by month 6 if they never repeat. This framework assumes contribution margin in the acquisition month; it doesn’t predict whether that customer will be worth more later. You need to layer in LTV analysis on top of CM to predict long-term profitability.

The Path Forward

You don’t need to rebuild your entire analytics stack. You need to:

  1. Audit your COGS, fulfillment, and returns with your finance and ops teams. Get real numbers, not estimates.
  2. Build a simple contribution margin tracker in a spreadsheet. This should take 4-6 hours of setup and 2 hours per week to maintain.
  3. Calculate CM% by channel and product. This reveals which combinations are actually profitable and which are destroying value.
  4. Set CM% targets based on your category benchmarks and your overhead structure.
  5. Shift your bidding signals from ROAS to contribution margin over a 4-week period. Expect platform ROAS to drop and profitability to increase.

If you’re a D2C brand doing more than ₹1 Cr annual revenue and you’re not tracking contribution margin, you’re flying blind. Your ROAS numbers are beautiful lies. Your contribution margin is the truth.

We’ve helped 30+ brands through this shift. The ones who make it honestly and quickly go from growth theater to actual scalable businesses. The ones who resist end up in panic cycles, cutting spend or raising capital to mask the fundamental unprofitability in their model.

Want to know your real contribution margin? At Clicksbazaar, we audit the entire unit economics of ecommerce brands and show you exactly which channels, products, and customer cohorts are profitable. We help you restructure your marketing around contribution margin instead of ROAS, and we measure the impact. Get in touch at clicksbazaar.com — let’s find out if your ROAS is actually lying to you.

Share on :

Ready to scale your business digitally?

Get a customized growth strategy from our experts.

Read Next