Scale. Optimize. Succeed.

Home  ›  Resources  ›  Insights  ›  Operations  ›  ROAS and margin

Why Your Agency ROAS Report Is Hiding a Margin Problem

ROAS divides revenue by ad spend. It knows nothing about returns, carriage, payment fees, platform commission or cost of goods — which is to say it knows nothing about whether you made any money. Here is how to rebuild the report without losing the channel view that makes it useful.

Dazzle Commerce brand mark

The Dazzle Commerce Team
eCommerce Management & Marketing

Updated
5 September 2026

Reading time
7 min read

Hands working through margin calculations with charts and a calculator

A ratio between two numbers that both belong to marketing cannot tell you whether the business made money.

A 4.2 ROAS looks like a good month. It is also entirely compatible with a business that lost money, and the gap between those two readings is where a surprising number of eCommerce brands live for a year or two before anyone notices.

This is not a criticism of agencies specifically. ROAS is the number the ad platforms report, so it is the number that gets reported onward. But it is a marketing efficiency ratio being used as a business result, and those are different jobs.

KEY TAKEAWAY

ROAS answers: did the advertising work? Contribution margin answers: did the business make money? A report that only carries the first cannot support a spending decision.

What ROAS leaves out

Every one of these is a real cash cost of the order the advertising generated. None of them appears in the ratio.

Cost

In the ROAS figure?

Why it matters

Cost of goods

No

The largest single omission, and it varies by SKU mix

Returns

Rarely

Ad-driven traffic often returns at a higher rate than organic

Outbound carriage

No

Free delivery thresholds change this per basket

Return carriage and handling

No

Frequently larger than the outbound cost

Payment and platform fees

No

A few per cent, applied to every order

Discounts and codes

Sometimes

Depends entirely on whether revenue is gross or net

The first question to ask about any ROAS figure is whether its revenue is gross or net of returns and discounts. Reports frequently do not say.

Contribution margin, defined once

Contribution margin is what is left from an order after every cost caused by that order. Not after overheads — after the costs the order itself created. The stack is short and every line is knowable.

1

Start with net revenue: gross revenue minus discounts and minus returns.

2

Deduct cost of goods for what was actually kept, not what was shipped.

3

Deduct outbound carriage, return carriage and the handling cost of processing a return.

4

Deduct payment processing and, on marketplaces, referral and fulfilment fees.

5

What remains is contribution. Advertising is spent from this, not from revenue.

Net

not gross revenue

After discounts and after returns, or the ratio is fiction

Per order

not per channel average

Basket mix moves margin more than channel does

Contribution

is what pays for ads

Revenue never was

Definitions we standardise on before reporting on any account. Deliberately conservative rather than flattering.

The report to build instead

You do not need to abandon the channel view — it is genuinely useful. You need to add four columns to it, and then read the last one.

Column

Where it comes from

What it tells you

Ad spend

Ad platforms

What you paid

Net revenue

Store, after returns and discounts

What you actually kept

Contribution

Net revenue minus order costs

What was available to pay for advertising

Contribution after ads

Contribution minus ad spend

Whether this channel funded itself

The fourth column is the one that changes decisions. It regularly reorders a channel league table that ROAS had looked settled on.

Blended and channel views do different jobs

Teams argue about this as though one has to win. They answer different questions and you need both, provided each is used for its own question.

  • Blended contribution after ads tells you whether the business is working. It cannot be gamed by attribution settings, which is exactly why it is the number to govern by.
  • Channel-level contribution tells you where to move budget next. It is attribution-dependent, so treat it as directional rather than exact.
  • Incrementality tests settle arguments the other two cannot. Expensive, slow, and the only honest answer to “would this have happened anyway?”.
Team reviewing financial charts and channel reporting on tablets in an office

The useful reporting argument is not blended versus channel. It is which question each view is allowed to answer.

Break-even ROAS is a moving number

If you must keep a ROAS target, at least derive it rather than inherit it. Break-even ROAS is one divided by your contribution margin percentage — and that percentage moves constantly.

1

It moves with product mix. A promotion that shifts volume toward low-margin lines lowers the whole target without anyone changing a setting.

2

It moves with return rate. Apparel in January is a different business from apparel in June, and one target across both is wrong twice.

3

It moves with carriage and fee changes. A courier increase or a marketplace fee change quietly moves your break-even and nothing in the ad account notices.

EXPERT VIEW

“The most uncomfortable meeting we have with a new client is the first one where their best-performing channel turns out to be their least profitable. It is also the most useful.”

Dazzle Commerce · eCommerce Management team

Rebuilding reporting around contribution usually needs finance and marketing data in the same place. It is one of the first things we set up on a management engagement.

Questions to ask about any report

Five questions, none of them hostile, that establish quickly whether a report can support a decision:

1

Is the revenue in this report gross or net of returns and discounts?

2

Which costs are deducted before the number I am looking at?

3

What attribution window and model produced the channel split, and what happens to it at a different setting?

4

What is our current break-even ROAS, and when did it last change?

5

If we switched this channel off for two weeks, what does this report predict would happen — and have we ever checked?

WHAT A GOOD ANSWER SOUNDS LIKE

A good agency will answer all five without defensiveness, and several answers will be “we do not have that yet”. That is a fine answer. “ROAS is the standard metric” is not.

Where this work sits in the practice

Three services that depend on reporting good enough to decide from.

One team owning storefront, channels and the reporting that connects them to margin.

Paid media planned and reported against contribution rather than a blended ROAS target.

The wider channel mix this reporting has to compare fairly across.

Dazzle Commerce brand mark

WRITTEN BY

The Dazzle Commerce Team

eCommerce Management & Marketing

Dazzle Commerce reports to contribution margin on the accounts we manage, which occasionally makes our numbers look worse than the ones we replaced. It also makes them decisions rather than presentations.

Want your reporting rebuilt around margin?

We will map your current report against contribution margin and show you which channels change position once the real costs are in.