Agency operations

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

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

Rhobin

July 30, 2026

7 min read

Report both, and make POAS the metric that decides things only once the margin data behind it is solid, because a platform ROAS is calculated from whatever conversion value you send it and knows nothing about cost of goods. Until product cost, discounts and refunds reach a dataset you control, a POAS figure is an estimate, and it should be labelled 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. So the answer becomes "we will look into it", and that turns out to mean a fortnight of exports and a spreadsheet nobody wants to own.

The other version starts with you. Two accounts report a similar return, one client is happy and the other keeps asking why growth is not reaching the bank. Same gap: the report answers a media question and the reader is asking a business question.

Why it happens

Nothing is broken here. The two metrics divide by the same denominator, your ad spend, and disagree entirely about the numerator. Google Ads reports the 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, which is where this topic lives.

The value column is something you chose

Automated bidding works from the conversion values you set up, 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 has no opinion about what the value field means, it optimizes what you send. 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.

Margin lives in a system the platform is not connected to

Google Ads does have native profit metrics, and the chain to unlock them is long. They run on conversions with cart data, an extension to conversion tracking that reports the products sold in each transaction, which needs the Google tag or Google Tag Manager, a linked Merchant Center account, and item IDs in the tag that match the id attribute in the feed, per Google Ads Help. On top of that you supply the cost of goods sold attribute, and Google Ads computes the margin per product as revenue minus COGS. Leave it out and metrics like COGS and gross profit have no values to report, per Google Ads Help.

Then read what Merchant Center says about that attribute, which is the most useful sentence in this topic. COGS is optional per product, it is used to calculate an estimated gross profit, the information 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, built on figures somebody at the client typed into a feed.

Refunds sit inside the number until someone takes them out

A returned order stays in the reported value unless an adjustment is sent. Google Ads supports restating a conversion, which changes its value, and retracting one, which removes it and zeroes the value. Online conversions can only be adjusted if a transaction ID was used in the first place, and adjustments sit inside a 55-day window, per Google Ads Help. Plenty of setups never send one, and on a catalogue with a high return rate that alone can decide whether a campaign made money.

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 about. That is the case offline conversion imports exist for, since an ad often starts a path that ends in a sale in the offline world, keyed back to the visit through the Google Click ID, and Google now points setups that have not adopted offline imports at enhanced conversions for leads instead, per Google Ads Help. The mechanics differ per platform.

And the input was thinner than the report looks

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 often sits on a partial revenue feed and inherits that gap. Same collection problem as why conversions never reach GA4, one layer down.

What good looks like

Report both, and say 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 next to it as the business number, with the margin assumption written in the same view. Stated, the assumption makes the figure useful at almost any precision. Hidden, it invites decisions the figure cannot carry.

Order of work matters more than tooling. Get order-level revenue, net of discounts and refunds, into a dataset you control. Add a cost per product, or a margin per category if that is all the client has. Publish the metric and live with it for a few months before you change what you send to the bidding, because the value you send is what the strategy maximizes.

Whether it is worth doing 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 a cost per product and keep it current. That last one is usually the real blocker, and it is client-side, not 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. Where the best-selling product is also the thinnest, it changes decisions immediately.

The join is the actual work: one place where order-level revenue, refunds and product cost sit together. 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, since a consent refusal stays a refusal. The gain is a revenue baseline that moves for real reasons, the minimum condition for a margin number meaning anything.

One thing POAS does not answer, though it gets claimed for it: 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

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, not 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 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.

© 2026 Archon LabsPrivacyTermsBuilt on unsampled data.