ROAS (return on ad spend) is revenue divided by ad spend. Spend $1,000, get $3,100 in sales — that's a 3.1× ROAS, and Meta will happily congratulate you.
POAS (profit on ad spend) asks the only question that matters: how much profit did that ad dollar buy? It's your gross profit before ad spend, divided by ad spend. Above 1.0, ads are adding money. Below 1.0, every dollar of ads destroys money — no matter how good the ROAS looks.
The same campaign, two verdicts
Take a store selling a $50 product, with a very ordinary cost structure:
| Per order | Amount |
|---|---|
| Selling price (AOV) | $50.00 |
| Product cost (COGS) | −$24.00 |
| Shipping & fulfillment | −$6.00 |
| Payment & platform fees | −$3.00 |
| Refund allowance (5%) | −$2.50 |
| Contribution before ads | $14.50 (29%) |
Now the ads. At a 3.1× ROAS, acquiring a $50 order costs $16.13 in ad spend.
- ROAS says: $50 ÷ $16.13 = 3.1× — scale it!
- POAS says: $14.50 ÷ $16.13 = 0.90× — you lose $1.63 on every single order.
Same campaign, same numbers. The only difference is that POAS knows your costs and ROAS doesn't. This is how stores scale themselves into a hole: the dashboard shows a "profitable" ROAS, the checking account disagrees, and nobody connects the two until the quarter is over.
Break-even ROAS: the number to write on a sticky note
You don't need POAS in real time to protect yourself. You need one derived number: break-even ROAS = 1 ÷ contribution margin.
The store above keeps 29% of each order before ads, so its break-even ROAS is 1 ÷ 0.29 = 3.45×. Anything below 3.45× loses money — which is exactly why the "great" 3.1× campaign was a slow leak. Most merchants guess their break-even is around 2×; for thin-margin products it's routinely 3–4×.
Compute yours in ten seconds with the free break-even ROAS calculator — it also gives your break-even CPA (the most you can pay for an order) and the ROAS needed to hit a target margin, not just zero.
When ROAS is still useful
ROAS isn't a bad metric; it's an incomplete one. It's fine for comparing creatives within one product (same margins, so relative ROAS ranks them honestly) and it's what ad platforms accept as an optimization target. The failure mode is using it across products with different margins, or as an absolute "are we making money?" signal. It can't answer that; it doesn't know what anything costs.
How to actually run on POAS
- Get real per-unit costs for each product — COGS, shipping, fees, refund rate. (The profit calculator structures this.)
- Derive contribution margin and break-even ROAS per product — not one blended number for the store.
- Compare each campaign's ROAS against that product's break-even, not against folklore like "3× is good".
- Kill or fix anything with POAS under 1.0: raise price, cut costs, or stop feeding it ad spend.
Or skip the spreadsheet: Marginflow pulls your Shopify orders and ad spend, computes profit, margin, ROAS and POAS on every order automatically, and its AI analyst flags the exact campaigns and products where strong ROAS is hiding negative profit.