Gross ROAS vs Net ROAS vs POAS: How to Measure Real Ad Profitability
The ROAS in Ads Manager is usually a gross figure. Learn how net ROAS and POAS change the picture, how to set break-even targets and which metric to use for which decision.

Gross ROAS divides the revenue your ad platform reports by your ad spend. Net ROAS uses the revenue you actually keep, after VAT, returns, cancellations and discounts. POAS (profit on ad spend) goes one step further and uses the profit left after product and variable costs. The same campaign can show a 6x gross ROAS, a 4.5x net ROAS and a 1.8x POAS, and only the last number tells you directly whether the ads made money.
This guide explains the three metrics with one worked example, shows how to turn your margin into targets for each and how to make Meta's ROAS column reflect profit more closely. If you are new to the basic formula, start with what ROAS is and how to calculate it.
Why "ROAS" is not one number
ROAS is always revenue divided by ad spend, but "revenue" can mean very different things. The purchase value your Pixel sends to Meta is whatever your store passes in the event: often the order total including tax and shipping, before any refund. Ads Manager does not know that an order was later returned or cancelled. So the ROAS you see on the platform is, in practice, a gross figure.
The three formulas
| Metric | Formula | What it answers |
|---|---|---|
| Gross ROAS | Reported purchase value ÷ Ad spend | How much revenue the platform credits to the ads |
| Net ROAS | (Revenue − VAT − returns − cancellations − discounts) ÷ Ad spend | How much revenue you actually keep per unit of spend |
| POAS | (Net revenue − product and variable costs) ÷ Ad spend | How much gross profit each unit of spend brings back |
One campaign, three results: a worked example
The numbers below are illustrative, not a benchmark. A store spends 1,000 on Meta ads in a month.
- Reported purchase value: 6,000 — this includes 20% VAT. Gross ROAS = 6,000 ÷ 1,000 = 6.0x.
- Remove VAT — 6,000 ÷ 1.2 = 5,000 revenue before tax.
- Subtract returns and cancellations: 500 — net revenue = 4,500. Net ROAS = 4,500 ÷ 1,000 = 4.5x.
- Subtract variable costs: 2,700 — product cost, shipping, packaging and payment fees (60% of net revenue). Profit before ads = 1,800. POAS = 1,800 ÷ 1,000 = 1.8x.
- Profit after ads — 1,800 − 1,000 = 800 contribution to fixed costs and profit.
The 6x on the dashboard looked excellent. The business view is more modest: each unit of ad spend returned 1.8 units of gross profit. Still profitable, but with far less room for higher bids than the gross number suggested.
Break-even targets for each metric
Every metric has its own break-even point. In the example the contribution margin on net revenue is 40% (1,800 ÷ 4,500).
| Metric | Break-even | In the example |
|---|---|---|
| POAS | 1.0x | 1.0x (always) |
| Net ROAS | 1 ÷ contribution margin | 1 ÷ 0.40 = 2.5x |
| Gross ROAS | Net break-even × (gross revenue ÷ net revenue) | 2.5 × (6,000 ÷ 4,500) ≈ 3.3x |
So in this business, a campaign showing 3.3x in Ads Manager only breaks even. A team that judges campaigns against "3x is good" would be losing money without noticing. Your target should sit above break-even by the profit you want to earn.
What to use POAS for, and its limits
POAS is the closest of the three to "did the ads make money". It is especially useful when your products have very different margins: a campaign selling low-margin bestsellers can show a higher ROAS but a lower POAS than one selling high-margin items.
- Good for: comparing campaigns and products by profit, setting bid and budget priorities, discussions with finance.
- Limits: it needs reliable cost data per product; it still relies on platform attribution; and it ignores repeat purchases, so it can undervalue campaigns that bring in loyal customers.
- Not included: fixed costs such as salaries, rent, software and agency fees. Those belong in your overall profitability, not in campaign-level POAS.
How to make Meta's ROAS closer to profit
- Check what value you send — in Events Manager, look at the value of Purchase events. Know whether it includes VAT and shipping, and send the currency correctly.
- Use Conversions API — server-side events reduce data loss, so fewer real orders go missing. See our Meta Pixel and Conversions API guide.
- Reconcile weekly — compare platform-attributed purchases with orders in your store, then adjust for returns and cancellations.
- Consider sending margin as value — some advertisers send gross profit instead of revenue as the purchase value. The ROAS column then effectively shows POAS and value-based bidding optimizes for profit. Document this change, because the column no longer shows revenue.
- Set targets per product group — high- and low-margin products need different ROAS targets; separate campaigns or product sets make that manageable.
Which metric for which decision?
| Decision | Best metric |
|---|---|
| Daily optimization inside Ads Manager | Gross ROAS against a gross target derived from your margin |
| Weekly campaign and budget review | Net ROAS, after returns and cancellations |
| Product and pricing decisions, bid limits | POAS |
| Is total ad spend paying off? | Blended metrics such as MER and total profit |
Read the metrics together. A rising gross ROAS with a falling net ROAS usually means returns or cancellations are growing, often a sign that the ad promise and the product do not match. For converting these targets into a spending plan, see how to set an advertising budget.
Profit-focused reporting at mistBOOST
For sales campaigns at mistBOOST, spend, results and cost per result appear in your client dashboard. When you request a quote, share your margin, average order value and typical return rate: our specialists use them to set realistic ROAS targets and to plan budgets around profit rather than revenue alone. Our case studies show ad spend, average cost per result and ROAS together.
Want a campaign built around a profitable target? Get a free quote or send your questions via the contact page.


