POAS vs ROAS: Attribution When Tariffs Eat Your Margin
Tariff-driven COGS inflation means two campaigns with identical ROAS can produce opposite profit outcomes. POAS puts contribution margin inside the measurement, and the budget ranking flips.
Three platforms, three answers, one budget to defend. Your GA4 export already holds the answer, and the first finding is free and never leaves your browser. Get your first finding free
By Joris van Huët, Founder & CEOUpdated 8 min read
Run the numbers for your store: the free break-even ROAS calculator, or the free contribution margin calculator.
ROAS ranks campaigns by revenue. POAS ranks them by the contribution margin that revenue leaves behind, and in 2026 that gap changes real budget decisions.
Why did 2026 make revenue a bad proxy for profit?
For most of the last decade, revenue was a decent stand-in for value. Margins across a typical catalog sat in a fairly narrow band, so maximizing attributed revenue roughly maximized profit.
Tariffs broke that assumption. Through 2025 and into 2026, import duties raised landed costs across common DTC categories, and the hit is uneven. Same store, same cart size, completely different economics.
Ad platforms have not adjusted. Left alone, budget flows to whatever sells, not whatever earns. You see it in the account as a slow margin bleed: blended ROAS looks stable while contribution per order quietly falls.
Smart bidding makes this worse, not better. Target ROAS strategies chase conversion value, so they will happily shift budget toward a tariff-hit product line that converts well, because the algorithm's objective is revenue within your efficiency target. Nothing in the feedback loop tells it the order barely contributed.
POAS, profit on ad spend, closes that gap. It divides the contribution margin from attributed orders by the ad spend that generated them. A POAS above 1.0 means each euro of spend returns more than a euro of contribution before overhead. Below 1.0, the campaign destroys value no matter how pretty the ROAS looks.
How do you compute contribution margin per order cohort?
Contribution margin per order is what remains after every cost that scales with each order:
- Net revenue after discounts
- Minus landed COGS, including the tariff and duty lines
- Minus pick, pack, and any shipping subsidy
- Minus a provision for returns and refunds
- Minus any affiliate marketing commission or coupon cost attached to the order
That last line matters more than most teams expect. If a meaningful share of your orders carries a coupon code or an affiliate commission, part of your margin is leaking into channels that may not have caused the sale at all. Our coupon and affiliate incrementality audit walks through how to test that before you restructure payouts.
The word cohort is doing real work here. Do not apply a blended store margin to every campaign. Group orders by the campaign or channel that drove them and compute margin from the SKU mix that campaign actually sells.
Here is an illustrative margin stack on a single €100 order, July 2026:
| Margin stack line item | Amount (EUR) |
|---|---|
| Order value | €100.00 |
| Discount (10% code) | -€10.00 |
| Landed COGS incl. tariff line | -€38.00 |
| Payment processing (2.5%) | -€2.25 |
| Pick, pack, shipping subsidy | -€7.50 |
| Returns provision (8%) | -€7.20 |
| Contribution margin | €35.05 (about 35%) |
A nominally healthy product ends up contributing 35 cents per revenue euro once the tariff-adjusted COGS line lands. That is the number your ad spend has to be measured against.
Same campaigns, opposite decision: a worked example
This is the part that surprises people. Below is an illustrative home goods brand, one month of data from April 2026, four campaigns, all figures in EUR.
| Campaign | Revenue | Spend | ROAS | Cohort margin | Contribution | POAS | Rank by ROAS | Rank by POAS |
|---|---|---|---|---|---|---|---|---|
| A. Prospecting, cookware | €40,000 | €10,000 | 4.0 | 55% | €22,000 | 2.20 | 4 | 2 |
| B. Prospecting, small appliances | €45,000 | €11,000 | 4.1 | 18% | €8,100 | 0.74 | 3 | 4 |
| C. Retargeting | €30,000 | €6,000 | 5.0 | 30% | €9,000 | 1.50 | 1 | 3 |
| D. Branded search | €25,000 | €5,200 | 4.8 | 48% | €12,000 | 2.31 | 2 | 1 |
Ranked by ROAS, the decision looks obvious: scale C and D, keep B, cut A. Ranked by POAS, the decision inverts. D and A are the profit engines, C is marginal, and B loses 26 cents of contribution on every euro spent despite a 4.1 ROAS. The campaign ROAS tells you to cut first is the second-best profit producer in the account.
B is the tariff story in miniature. It sells well because the products are popular, but every order carries a thin 18% cohort margin after the new duty lines. Revenue-based bidding keeps feeding it because revenue is all the platform sees.
Blended, the account still looks fine: €140,000 of revenue on €32,200 of spend, a 4.35 ROAS, and €51,100 of contribution, a blended POAS of 1.59. Blended numbers hide that B is underwater.
One more layer. POAS still trusts your attribution model. It assumes the credited orders actually happened because of the ads. Incrementality tells you whether that is true. Say a holdout test finds that only 40% of retargeting campaign C's attributed conversions were genuinely incremental. A 5.0 ROAS campaign that looked safe is now clearly value-destroying, and its incremental ROAS tells the same story on the revenue side. POAS answers what an order is worth; incrementality answers whether you caused it. You need both.
Operationally, the re-ranking means moving budget, not just admiring a new metric. In this example the obvious move is shifting B's €11,000 toward A and D while B's products get repriced, renegotiated, or dropped from paid promotion. Blended POAS, tracked month over month, then becomes the account's health metric: if it rises while spend holds, the mix is genuinely improving rather than just selling more.
Why can't platform pixels see margin?
A purchase pixel fires an event with an order value, and that value is revenue. The pixel never receives your landed cost, tariff lines, return rates, or per-SKU margin, because those live in your ERP, your Shopify cost-per-item fields, or finance's spreadsheet.
You can feed a profit figure back as a custom conversion value, and some teams do. That helps the bidding algorithm chase better orders, but it does nothing for measurement honesty. The platform still grades its own homework: it decides which conversions to claim, then values them with your margin data. The attribution model stays self-interested even when the value field is accurate.
There is also a structural reason margin-aware bidding is not enough. SKU mix varies by campaign, season, and discount depth, so the margin signal drifting into the platform is always a lagging average. This is why POAS belongs in your measurement layer, not just your bid strategy. Compute it outside the platforms, from order data and cost data you control.
How does this change the budget conversation with finance?
Your CFO does not think in ROAS. They think in contribution euros, payback windows, and what happens to cash if a tariff line moves again.
Pair margin data with causal inference and the conversation changes. A causal read estimates the counterfactual, what would have sold anyway, and hands you an incremental share per channel. Multiply attributed revenue by that share, apply cohort margin, and you arrive at incremental contribution per channel.
We put together a full framework for that meeting in The CFO Budget-Defense Kit, including how to present ranges honestly when the CFO asks why your number differs from the platform's.
If you want a top-down cross-check, marketing mix modeling can also run on margin rather than revenue.
Getting the causal layer does not require a pixel, a data team, or an annual contract. You can see the full pricing breakdown and run your first read this week.
Key takeaways
- ROAS measures revenue efficiency; POAS measures profit efficiency. With 2026 tariff-driven COGS inflation, the two rankings can point in opposite directions on the same account.
- Compute contribution margin per order cohort using the SKU mix each campaign actually sells. Blended store margin hides thin-margin disasters.
- Any POAS below 1.0 destroys value regardless of ROAS. In the worked example, a 4.1 ROAS campaign returned €0.74 of contribution per euro spent.
- Platform pixels cannot see margin, and platforms grade their own homework. Keep POAS in a measurement layer you control.
- Pair POAS with incrementality. Incremental contribution per channel is the number your CFO can actually budget against.
Further reading
Frequently asked questions
What does POAS stand for?
POAS stands for profit on ad spend. It divides the contribution margin generated by attributed orders by the ad spend that generated them, instead of dividing revenue by spend the way ROAS does. A POAS above 1.0 means each euro of advertising returns more than a euro of contribution before fixed overhead, so the campaign adds value rather than just volume.How is POAS different from ROAS?
ROAS divides attributed revenue by ad spend and treats every euro of revenue as equal. POAS divides contribution margin by ad spend, so it accounts for COGS, tariffs, shipping, fees, returns, and discounts. Two campaigns with identical ROAS can have very different POAS if their SKU mixes carry different margins, which is common after tariff-driven cost inflation.What costs go into contribution margin per order?
Start with net revenue after discounts. Subtract landed COGS including tariff and duty lines, payment processing fees, pick and pack costs, any shipping subsidy, a provision for returns and refunds, and any affiliate commission or coupon cost on the order. What remains is the contribution margin your ad spend has to be measured against.Can Google or Meta optimize toward profit instead of revenue?
Partially. Both platforms accept custom conversion values, so you can pass a profit estimate instead of revenue and let value-based bidding chase it. That improves bidding but not measurement, because the platform still decides which conversions to claim. For an honest POAS figure, compute it outside the platform from order and cost data you control.What is a good POAS?
Anything above 1.0 means the campaign returns more contribution than it costs, before fixed overhead. Many practitioners treat 1.3 to 1.5 as the working floor for paid acquisition, leaving room for overhead and measurement error, and 2.0 or higher as healthy. The right threshold depends on your overhead structure and how much you trust your attribution.Do I need POAS if my margins are similar across products?
If every SKU sits within a few margin points, ROAS and POAS will rank campaigns almost identically, and ROAS is a fine proxy. POAS earns its keep when margins vary, which tariff-driven cost inflation has made the norm in most catalogs. Check your per-cohort margins first; if the spread is wide, revenue-based optimization is actively misleading you.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Have an audience of ecommerce operators? Earn 20% recurring commission by recommending the €99 read.
Keep reading
Terms in this article
- Affiliate MarketingAffiliate Marketing is performance-based marketing where a business rewards affiliates for each customer brought through their marketing efforts.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Causal InferenceCausal inference is the set of methods for estimating how much an outcome changes because of a cause, rather than alongside it. It works by comparing what happened with an estimate of what would have happened without the cause.
- CounterfactualA counterfactual is what would have happened under conditions that did not occur, such as a customer's outcome had they not received the campaign they did receive. It is never observed, so every effect estimate has to stand in for it with a control group, comparable units or a forecast.
- Holdout TestA holdout test is an experiment that keeps a random part of an audience from seeing a campaign and compares its results with those of the part that could see it. The held-out part is the control group, so the gap in outcomes estimates what the campaign added.
- IncrementalityIncrementality is the part of an outcome, such as orders or revenue, that a marketing activity caused: the extra results compared with what would have happened without it. It is a causal effect, not the number of conversions credited to a channel.
- Marketing MixThe marketing mix is the set of actions a company uses to promote its brand or product. It traditionally includes product, price, place, and promotion.
- Marketing Mix ModelingMarketing Mix Modeling (MMM) is a statistical analysis that estimates the impact of marketing and advertising campaigns on sales. It quantifies each channel's contribution to sales.