POAS vs ROAS: 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.
Read the full article below for detailed insights and actionable strategies.
Channel comparison
Reported vs. true incremental ROAS
Data relevant to: POAS vs ROAS: Attribution When Tariffs Eat Your Margin
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. Tariff-driven COGS inflation has squeezed some SKUs far harder than others, so a campaign can post a healthy 4x ROAS and still lose money on every order it generates. This post walks through a worked EUR example where the same four campaigns produce opposite decisions under ROAS and POAS, shows how to compute contribution margin per order cohort, explains why platform pixels cannot see margin, and gives you the framing to bring finance into the conversation.
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. A cookware line sourced domestically might hold a 55% contribution margin while a small-appliance line in the same store dropped below 20% after new tariff lines and freight costs. Same store, same cart size, completely different economics.
Ad platforms have not adjusted. Meta and Google still optimize toward revenue or conversion value, and ROAS treats €100 of revenue on a 55% margin product exactly the same as €100 on a 15% margin product. 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 payment processing, roughly 2 to 3% for most EU stores
- 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. A prospecting campaign landing on sale items might deliver a 28% margin while your branded campaign delivers 48%. A blended 40% hides both.
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 causal read finds that only 40% of retargeting campaign C's attributed conversions were genuinely incremental, a common pattern for bottom-funnel campaigns. C's incremental POAS becomes 1.5 times 0.4, or 0.6. 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. "Meta says 4.2x" is not a number they can use, and after a year of margin compression they know it.
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. Now the sentence in the budget meeting is "branded search produced about €9,000 of incremental contribution on €5,200 of spend last month," which is a sentence finance can act on.
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. For brands under €10M in revenue, the practical trade-offs are covered in Marketing Mix Modeling for Brands Under €10M.
Getting the causal layer does not require a pixel, a data team, or an annual contract. With Causality Engine you upload a GA4 export and a causal read comes back in 5 to 10 minutes: €99 per read, or €299 a month on the Pro plan, with no annual lock-in. 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
Get attribution insights in your inbox
One email per week. No spam. Unsubscribe anytime.
Key Terms in This Article
Affiliate Marketing
Affiliate Marketing is performance-based marketing where a business rewards affiliates for each customer brought through their marketing efforts. Causality Engine tracks and measures the effectiveness of affiliate marketing programs.
Attribution
Attribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
Attribution Model
An Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
Causal Inference
Causal Inference determines the independent, actual effect of a phenomenon within a system, identifying true cause-and-effect relationships.
Counterfactual
Counterfactual is a hypothetical outcome that would have occurred if a subject had received a different treatment.
Incrementality
Incrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
Marketing Mix
The 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 Modeling
Marketing 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.
Related Articles
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
See what you get
Confidence-scored results in minutes. Full refund if you don't see it.
Full refund if you don't see value.
Stay ahead of the attribution curve
Weekly insights on marketing attribution, incrementality testing, and data-driven growth. Written for the person who owns the budget and the person who has to defend it.
No spam. Unsubscribe anytime. We respect your data.
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.