← All articles
profitabilitymoasreporting

Why Your ROAS Looks Good But Your Profit Is Declining

By Swathi · Founder, Addlaa · Sep 25, 2026 · 3 min read

ADDLAAPROFITABILITYWhy Your ROAS LooksGood But Your ProfitIs Declining

Every agency dashboard has the same headline metric front and center: Return on Ad Spend. And on paper, most of the accounts we look at are doing fine on it — ROAS holding steady, sometimes even climbing quarter over quarter.

So why do so many account leads still end up in an uncomfortable QBR explaining why the client's actual profit didn't move the way the ROAS chart suggested it would?

ROAS was never a profit metric

ROAS answers one question: for every dollar spent on ads, how many dollars came back in revenue? That's useful, but it's silent on everything that happens after revenue is recognized — cost of goods, fulfillment, payment processing, discounting, returns, and the agency's own management fee. A campaign can post a beautiful 4.5x ROAS and still be losing the client money once those costs are netted out.

This is the gap we built Profit MoAS — Margin on Ad Spend — to close. Instead of stopping at revenue, Profit MoAS asks: for every dollar spent on ads, how many dollars of actual margin came back? It's the same shape of metric agencies already know how to read, applied to the number that actually determines whether a client renews.

Where the gap usually comes from

In the accounts we've analyzed, the ROAS-to-profit gap almost never comes from one dramatic mistake. It's a handful of ordinary, unglamorous leaks stacking up: a promotional discount code that's still live on a channel with strong ROAS but thin margin, a SKU mix shifting toward lower-margin products even as top-line revenue grows, or shipping costs on a channel that quietly outpaced its own AOV gains.

None of that shows up in a standard ads-platform ROAS view. All of it shows up the moment you look at Profit MoAS, because Profit MoAS is calculated from the client's actual cost structure — not just from the ad platform's own attributed revenue number.

Why agencies keep reporting ROAS anyway

Not because it's the right number — because it's the number that's easy to get. Cost data lives in a completely different system than ad spend data: an ERP, a Shopify back office, a spreadsheet the finance team updates monthly if you're lucky. Stitching that together by hand, account by account, is exactly the kind of work that never survives contact with a Monday morning full of client calls. So agencies report what the ads platform gives them for free, and profit visibility quietly becomes a "we'll get to it" project that never gets to it.

What Profit MoAS reporting actually requires

To report on Profit MoAS instead of ROAS, an agency needs three things connected to the same view: ad spend by channel and campaign, revenue by the same breakdown, and a real cost structure behind that revenue — COGS, fees, discounts, and shipping, at minimum. Addlaa connects those three automatically once a client's ad accounts and cost data are linked, so the Profit MoAS number updates the same way a ROAS number would, without an analyst rebuilding a spreadsheet every reporting cycle.

The result isn't a better-looking dashboard. It's a different conversation with the client — one where "the numbers are up" and "we're making money" are finally the same statement.

Read next: The Hidden 18% Wastage Destroying Your Agency's Margins — where that gap actually goes once you go looking for it.

See your own Profit MoAS →

See Addlaa on your own client data

Run the live demo in minutes - no signup required.

Try the live demo