
Ads Profitable But Not Growing? Why a Good ROAS Isn't Profit
Ads look profitable but the business isn't growing? Break-even ROAS is 1 divided by margin. At a 60% margin it is 1.67x, so a 1.5x ROAS loses money per sale.
By Abhilash LR
If your ads look profitable but the business isn't growing, the usual cause is that ROAS is being read as profit. ROAS measures revenue per ad dollar. Profit depends on your margin, and the platforms rarely know it. An account can hit every ROAS target and still lose money on each sale.
Key Takeaways
- Break-even ROAS = 1 ÷ contribution margin. At a 60% margin it is about 1.67x, so a 1.5x ROAS loses roughly 10 cents on every ad dollar.
- Platform ROAS is not real ROAS. Across the 30+ accounts COACT audited this year, platform-reported orders ran 30-40% above actual orders on average.
- Profitable is not the same as growing. An account can clear break-even on average and still stall, because the next dollar of spend earns less than the last.
Why Does an Account Look Fine but Not Make Money?
Because the dashboard reports revenue, not profit. A platform sees the order value you send it. It does not see your cost of goods, shipping, payment fees or returns, so a healthy-looking ROAS can sit above or below the line where the sale actually pays for itself. Two problems usually hide behind it.
The first is margin blindness: nobody set a target ROAS from real unit economics. The second is inflated input: the revenue divided by spend is overstated. Google's Help documentation notes that conversion values can represent sales revenue or profit margins, and which one you feed the system is your choice, not the platform's. Most stores feed revenue.
Ranking campaigns by ROAS then rewards the wrong ones. A 5x campaign on a thin-margin product can earn less per sale than a 2.5x campaign on a high-margin one, as the figure below shows.
How Do You Calculate Break-Even ROAS?
Break-even ROAS is 1 divided by your contribution margin, expressed as a fraction of the selling price. If a sale keeps 40% of its price after variable costs, you need $2.50 of revenue per ad dollar just to stop losing money. Anything above that is profit; anything below it is a loss.
The table below is arithmetic, not benchmark data. It shows the break-even for common margin levels and what it means for a 3x and a 1.5x ROAS.
| Contribution margin before ads | Break-even ROAS | Result at 3x ROAS | Result at 1.5x ROAS |
|---|---|---|---|
| 20% | 5.00x | Loses $0.40 per ad dollar | Loses $0.70 |
| 30% | 3.33x | Loses $0.10 | Loses $0.55 |
| 40% | 2.50x | Earns $0.20 | Loses $0.40 |
| 50% | 2.00x | Earns $0.50 | Loses $0.25 |
| 60% | 1.67x | Earns $0.80 | Loses $0.10 |
| 70% | 1.43x | Earns $1.10 | Earns $0.05 |
Each result is revenue per ad dollar × margin − $1 of spend. Note that a 3x ROAS fails at 20% and 30% margins, while a 1.5x ROAS only clears break-even once margin passes about 67%. Swap in your own margins and it becomes your target sheet.
What Costs Belong in Contribution Margin?
Contribution margin is the share of each sale left after every variable cost of producing and delivering it. For ecommerce that means cost of goods, shipping and packaging, payment processing fees and expected returns. Shopify defines it as the money left after variable expenses, and notes you can track it per product from a gross profit report.
Use the margin before ad spend. Fixed costs such as salaries and rent stay out.
Returns are the line most often left out. When an order comes back, the revenue is gone but the ad spend is not, so high-return categories need a higher target ROAS.
Worked example: price $50, cost of goods $22, shipping $5, payment fees $1.50, returns allowance $2.50. Variable costs are $31, leaving $19: a 38% margin and a break-even ROAS of 2.63x. Work this out per product or category, because one blended number hides the variation that matters.
Why Does Platform ROAS Overstate Real ROAS?
Platform ROAS counts every conversion the platform believes it caused, and platforms count generously. Across the 30+ accounts COACT audited this year, platform-reported orders were 30-40% above actual orders on average. Divide that inflated revenue by spend and the ROAS you see is higher than the ROAS you earned.
Three patterns drove most of the gap in those same accounts:
- Double counting. At least 70% counted the same purchase twice in at least one platform, usually from overlapping browser and server events.
- Tracking that looked connected but wasn't. 40% had tracking that appeared healthy and was not sending.
- Branded demand credited to ads. Among the Google accounts, 60% had Performance Max taking a visible share of branded queries, which makes ROAS look strong on customers who would have found you anyway.
If your break-even is 2.5x and your platform shows 3x, orders overstated by 30% put real ROAS near 2.3x, below break-even. That is how a dashboard can look fine while cash drops. Our guides on attribution and measurement and setting up conversion tracking cover the fixes. Reconcile platform orders against your store's own order count first.
Why Are Profitable Ads Still Not Growing?
Because average ROAS and the return on the next dollar are different numbers. An account can clear break-even overall while its marginal spend sits below it, so scaling budget adds cost faster than profit. Stalled growth is also often a hygiene problem that has simply been there a long time.
Across the same 30+ accounts, more than 30% of the faults COACT found had been in the account for three months or more. Nobody was watching, so the damage compounded quietly. Regular reviews catch them sooner; see how often to audit your ads and the red flags worth checking first.
Bid targets matter too. Meta describes its ROAS goal as an average to aim around, not a guarantee, and warns that delivery may stop and budget go unspent if the goal is set too high. Set the target from your break-even plus the margin you want, not from a round number. Then check creative fatigue; our piece on creative testing explains how. When choosing where the next budget goes, compare Google and Meta for ecommerce on real margin, not platform ROAS.
How Do You Check This Yourself This Week?
Calculate break-even ROAS per product, compare it to reconciled ROAS, and set targets from the gap. It takes an afternoon with a spreadsheet and a store export. Work through these steps in order.
- Pull contribution margin per product or category. Include cost of goods, shipping, payment fees and a returns allowance.
- Compute break-even ROAS as 1 ÷ margin for each.
- Reconcile orders. Compare platform-reported orders with your store's orders for the same dates. Treat the gap as a haircut on reported ROAS.
- Rank campaigns by reconciled ROAS minus break-even, not raw ROAS. Cut or fix anything negative.
- Reset ROAS targets in both platforms from break-even plus your desired margin.
A free audit tool can surface obvious faults, though it will not know your margin. If the work needs more hands, plan hiring growth help before you are in trouble.
How we gathered these figures. Audit statistics are COACT's own tallies from the same 30+ accounts audited this year. They are internal counts, not an independent study, and the sample is small, so treat them as indicative.
Get Your Account Audited
If the dashboard looks healthy but the bank balance doesn't, an independent audit can show where reported numbers and reality diverge. Loupe is COACT's one-time Meta + Google Ads audit: 133 checks, delivered in 3, 5 or 7 business days depending on tier, at $199, $299 or $399, with no retainer and a refund within 14 days if it doesn't give you three actionable fixes. Its scope includes tracking and data integrity, GA4 and Shopify reconciliation, and a cross-channel view of double counting and blended versus platform ROAS.
Loupe does not use your margin or cost-of-goods data, so bring your own break-even ROAS to the findings and judge them against it. It is built for D2C and ecommerce brands spending roughly ₹2.5 lakh or US$3,000 a month with at least 60 days of data. Book your audit, or see the sample report first.
Still Launching? Get an Expert Team to Execute
Margin math is far easier to build in at launch than to repair later. An audit is for accounts that already have data to review. If you are still launching, or you would rather have an expert team plan and run your marketing than work through a fix list yourself, book a free strategy call with COACT and get a straight read on where to start.
Frequently Asked Questions
Should I stop looking at ROAS entirely?
No. ROAS is still a fast signal for relative campaign efficiency and trend direction. Stop treating it as a measure of profit. Compare it with your break-even ROAS and with reconciled order counts before you scale anything.
What ROAS do I need to break even?
Divide 1 by your contribution margin. A 50% margin needs 2x, a 40% margin needs 2.5x and a 30% margin needs about 3.33x. Use margin after cost of goods, shipping, payment fees and returns, but before ad spend.
How often should I calculate contribution margin by campaign or product?
Monthly is a sensible baseline, and weekly while scaling. Discounts, shipping costs, return rates and product mix all move margin.
What if I don't have clean cost-of-goods data by product?
Start with an approximate margin per category. A rough figure applied broadly beats no figure. Once you scale meaningfully, per-product costs become worth the setup effort.
Can a low-margin, high-ROAS product still be worth scaling?
Sometimes. If it brings in customers who reorder or who then buy higher-margin items, a thin first-order margin can pay back over time. Decide that from repeat-purchase data, and set a target that reflects it deliberately.
Does Loupe calculate my break-even ROAS or margin?
No. Loupe reviews tracking, Meta, Google and cross-channel overlap, including blended versus platform ROAS. It does not take cost-of-goods or margin inputs, so apply your own break-even ROAS to its findings. Loupe is COACT's productized Meta + Google Ads audit.
Abhilash LR is the founder of Coact and leads its growth marketing work with performance and D2C brands across India, Singapore, and Indonesia. Coact is a performance and growth marketing agency operating in Singapore, India, and Indonesia.
Want results like these for your brand?
COACT runs performance-based growth across SEA & India. Start with a free 15-day pilot.
Book a strategy callKeep reading
Scaling Budget Breaks ROAS: Why and How to Fix It
Meta says a budget change is significant \"depending on the magnitude.\" See what resets the learning phase and how to scale budget without losing ROAS.
Meta Ad Fatigue: Why Ads Burn Out and How to Fix It
Meta flags ad fatigue when cost per result hits twice your past ads. Learn the two Ads Manager statuses, how to read frequency, and a five-step fix.