/

/

Agency operations

Agency operations

/

/

POAS or ROAS: which one should you report to clients?

POAS or ROAS: which one should you report to clients?

Agency operations

Agency operations

POAS or ROAS: which one should you report to clients?

POAS or ROAS: which one should you report to clients?

Rhobin

Rhobin

July 30, 2026

July 30, 2026

10 min read

10 min read

Report both, and label which layer your POAS is, because product margin is the first thing you subtract from an order and not the last, and ad spend is only the part of marketing cost that arrived as a platform invoice. Until revenue, returns, product cost and your own fee sit in one dataset, a profit figure is an estimate and should be presented as one.

Report both, and label which layer your POAS is, because product margin is the first thing you subtract from an order and not the last, and ad spend is only the part of marketing cost that arrived as a platform invoice. Until revenue, returns, product cost and your own fee sit in one dataset, a profit figure is an estimate and should be presented as one.

The symptom

Somebody on the client side has read about POAS and the question lands in the monthly report meeting. The ROAS is 6, so what is the profit on that spend? You go looking and there is nowhere to get the number. The ad platform holds revenue, the client's finance team holds margin, and nothing in the reporting chain joins the two. The answer becomes "we will look into it", which turns out to mean a fortnight of exports and a spreadsheet nobody wants to own.

There is a second version, and it is the more uncomfortable one. You did the work. Cost of goods went into the feed, POAS sits next to ROAS in the report, the client can see profit per campaign. A year later the business is not noticeably healthier and nobody can say whether the switch helped. The metric changed. The decisions did not.

Both versions have one cause. ROAS and POAS are the same division with a different top half, and neither of them measures what the person asking actually means by profit.

Why it happens

Google Ads reports return as conversion value per cost, the "Conv. value / cost" column, and its definition is exactly that division, per Google Ads Help. The cost side it knows precisely, it billed you. The value side arrives from your own website. POAS swaps revenue for margin in the top half and leaves the bottom half untouched. That is a genuine improvement and a much smaller one than it sounds, because both halves are shallower than the question being asked.

The numerator stops at the first layer

Product margin, revenue minus cost of goods, is the first thing you subtract from an order, not the last. That order still has to be picked, packed and shipped, and the payment provider takes a cut. Some of those orders come back, and a return costs the inbound shipping, the handling, and usually part of the value of the goods, because returned stock rarely resells for what new stock does.

Stack those and one order produces three different profit figures. Margin after product cost. Margin after fulfilment and payment. Margin after returns. Almost every POAS report in the wild is the first one, because it is the only layer that fits inside a product feed. On a catalogue with free shipping, a modest order value and a double digit return rate, the distance between the first figure and the third is the distance between a campaign that funds the business and one the business is funding.

The denominator is only the part a platform invoiced you for

Ad spend is not marketing cost. It is the slice of marketing cost that happens to arrive as a platform invoice. Outside it sit the email platform, the CRM, the analytics and consent tooling, the freelancers, the share of the client's marketing salaries these campaigns consume, and the cost of the capital tied up in the stock those campaigns are selling. And your fee.

That last item is why this is an agency article rather than a finance one. Any return metric that leaves out the agency fee flatters the agency by construction. It is also how a rise in reported profit can be a loss in disguise: margin per order improves, and the tooling, the hours and the specialists bought to make it improve cost more than the improvement returned. Neither ROAS nor POAS contains a term where that would ever show up.

An order is not a customer

Both metrics are calculated per order, and marketing does not buy orders, it buys customers. The gap shows on both sides of the division. On the value side, a customer who orders again is worth a multiple of one who does not, and none of that reaches a report that closes the books at the first transaction. On the cost side, money goes out before somebody buys and after they have bought, so the cost of winning a customer is not the cost of winning an order.

Which makes the real question a horizon rather than a metric. Twelve months is a workable starting point, with an obvious drawback: you learn the answer twelve months late. That is an argument for running it beside a fast metric, not for skipping it.

The value you send is the value the platform optimizes

Automated bidding works from the conversion values you configure, and Google describes Target ROAS as setting bids to maximize conversion value, "such as sales revenue or profit margins", per Google Ads Help. The platform holds no opinion about what that field means. Most setups send order revenue, often including shipping and sometimes tax, because that is what a default ecommerce tag picks up. The reported return is as close to profit as the value you sent, and no closer.

Google Ads does carry native profit metrics, and the chain to unlock them is long. They run on conversions with cart data, which reports the products sold in each transaction and needs the Google tag or Google Tag Manager, a linked Merchant Center account, and item IDs that match the feed, per Google Ads Help. You then supply the cost of goods sold attribute, and Merchant Center is candid about what that produces: the attribute is optional, it is used to calculate an estimated gross profit, the figure shared with Google is for reporting purposes and does not need to be exact, and where cost varies an average is suggested, per Google Merchant Center Help. Read that as permission rather than a loophole. The native profit number is an estimate by design, resting on figures somebody at the client typed into a feed.

Returns are the same story one step later. A refunded order stays inside the reported value until an adjustment is sent. Google Ads supports restating a conversion, which changes its value, and retracting one, which removes it, but only where a transaction ID was sent in the first place, per Google Ads Help. Two deadlines then apply, and the second one is the one that bites: an adjustment can be uploaded within 54 days of the original conversion, but automated bidding only reads it if it arrives within 7 days, per Google Ads Help. So a refund booked three weeks later corrects the report and reaches the model that spent the money far too late to change anything.

Lead generation has no revenue in the account at all

If the conversion is a form, the account sees a form. The sale happens weeks later in the CRM at a value nobody told the ad platform. That is what offline conversion imports exist for, keyed back to the visit through the Google Click ID, and Google now points setups that have not adopted offline imports toward enhanced conversions for leads instead, per Google Ads Help and Google Ads Help. Until one of those is in place, every layer above is theoretical for a lead generation client.

And the input was thinner than any of it

All of this assumes the events arrived. On a standard browser-side setup 15-30% of conversions go uncaptured and ad blockers strip 30-40% of events, so a margin calculation frequently sits on a partial revenue feed and quietly inherits that gap. The same collection problem behind why conversions never reach GA4, one layer down.

What good looks like

Report both, and say out loud which one decides things. ROAS stays because it is the number the bid strategy is scored on, so it is your in-platform diagnostic. POAS goes beside it as the business number. The part almost everyone skips is the third thing on the page: which layer this POAS is. "Profit after product cost" and "profit after fulfilment and returns" are different claims, and labelling which one you are showing costs a sentence and prevents a year of decisions the figure cannot carry.

Then go down the layers in the order the data allows, not the order that sounds most impressive. Order-level revenue net of discounts and refunds into a dataset you control. Cost per product, or a margin per category if that is all the client has. A per-order fulfilment and payment cost, which is usually a flat assumption and is fine as one. A return rate and a realistic recovery rate on returned stock. Only then the cost side, which is a conversation with the client's finance team rather than a tracking task, and where your own fee belongs.

Putting your fee in the denominator is the move most agencies avoid and the one that changes the relationship. It converts the monthly report from a defence of your own performance into a shared view of whether the marketing investment works, which is a different conversation and a much harder one to lose.

The join is the actual work: one place where order-level revenue, refunds, product cost and customer history sit together, refreshed rather than exported once. That is what Archon Pixel is built for, first-party analytics collected server-side into a BigQuery warehouse the client owns, capturing roughly +25% more events than a standard GA4 setup. The ceiling on any collection setup is around 95% of events, a ceiling rather than a promise, because a consent refusal stays a refusal. What it buys you is a revenue baseline that moves for real reasons, which is the minimum condition for any margin number above it meaning anything.

Whether the deeper layers are worth building depends on four things, none of which appears in a ROAS column: the margin spread across the catalogue, how much discounting happens, the return rate, and whether anyone at the client can produce costs and keep them current. That last one is usually the real blocker, and it is client-side rather than tracking. Where margins are uniform and discounting is rare, POAS ranks campaigns in the order ROAS already did, and the honest advice is to leave it alone.

One thing none of these metrics answers, however deep you take them: whether the spend caused the sales. Profit on attributed revenue is still profit on attributed revenue. That is the separate question behind a strong ROAS sitting next to a flat business.

FAQ

How deep should we actually go?

One layer deeper than the decision you are about to make. If the question is which campaign to cut, margin after product cost usually settles it. If the question is whether the account is worth running at this spend, you need fulfilment and returns in there. If the question is what to pay for a new customer, you need the customer horizon and the full cost side. Building all of it before anyone asks is how these projects die.

The client will not give us cost of goods. Can we report POAS at all?

Yes, with a margin assumption per product category, labelled as an assumption. Google's own guidance on the COGS attribute says the figure is for reporting purposes and does not need to be exact, so an estimate is the normal starting point rather than a shortcut. What does not work is one blended margin across a catalogue where margins genuinely differ, presented as profit.

Should we switch the bidding to profit as well as the reporting?

It depends, and not in the same quarter as the reporting change. A bid strategy maximizes the conversion value it receives, so sending margin instead of revenue changes what the algorithm chases and resets the history it learned on. Worth doing when the margin spread is wide enough that the two metrics rank campaigns differently, when the cost data is maintained rather than exported once, and when volume is enough for a strategy to relearn.

Does POAS work for lead generation?

Only with the CRM in the loop, and then it is margin on closed deals rather than on orders. You need the value of a won deal, the date it was won, and a way to tie it back to the visit that started it. The sales cycle is the constraint nobody mentions: if deals close in five months, the profit on this quarter's spend is not knowable this quarter, and saying so is more useful than modelling it.

Is this not just a spreadsheet job?

For one client once, yes, and that is a sensible way to find out whether profit changes any decision. It stops being a spreadsheet in the second month, and at the tenth account, while product costs, shipping rates and return rates keep moving underneath it.

If your clients have started asking about profit and your reporting only holds revenue, request a free tracking audit and we will tell you what your current data can already support.

ArchonLabs

Marketing intelligence agencies run for their clients.

© 2026 Archon LabsPrivacyTermsBehind your agency, not in front of it.