POAS vs ROAS: Which Ad Metric Shows Profit?
Priya Raghunathan
مدير أداء التجارة الإلكترونية
POAS vs ROAS is the choice between measuring what your ads sold and measuring what your ads earned. ROAS, return on ad spend, divides revenue by spend. POAS, profit on ad spend, divides profit by spend. The two can point in opposite directions, and only one of them tells you whether a campaign made the business richer.
Quick answer: ROAS equals revenue divided by ad spend; POAS equals profit divided by ad spend, where profit is net sales minus product cost, shipping, payment fees and returns. Break-even POAS is 1.0, while break-even ROAS is 1 divided by your margin. Use POAS to decide budget and ROAS to tune campaigns inside a platform.
This is the general guide to both metrics. If you sell on Shopify and want the setup steps, our guide to Shopify profit tracking from ROAS to POAS covers where each cost lives in the store. For the margin layers used below, see contribution margin for ecommerce.
What is the difference between POAS and ROAS?
Both metrics put ad spend in the denominator, so the whole difference sits in what you put on top: revenue for ROAS, profit for POAS.
- ROAS = revenue from ads ÷ ad spend
- POAS = profit from ads ÷ ad spend
ROAS is the number every ad platform reports by default. It is easy to calculate because the platform already knows the order value it tracked. POAS needs data the platform does not have: what the products cost you, what you paid to ship them and what came back as refunds.
| ROAS | POAS | |
|---|---|---|
| What goes on top | Revenue | Profit (contribution margin before ads) |
| Where the inputs live | Ad platform | Store, costs file and ad platforms |
| Counts product cost, shipping, fees, returns | No | Yes |
| Break-even value | 1 ÷ margin %, e.g. 2.5 at 40% | 1.0 |
| Same target works for every product | No, margins differ | Yes, 1.0 is always break-even |
| Best used for | Ranking ads inside one platform | Budget and scaling decisions |
| Reported by Meta or Google by default | Yes | Only if you send profit as the value |
A higher ROAS does not always mean a higher POAS. A campaign selling a low-margin accessory can beat a bundle campaign on ROAS and still lose money once the costs are in.
طبّق هذا الدليل عمليًا
أطلق حملاتك واختبرها ووسّعها على ست منصات إعلانية من مكان واحد، مع Wavo، المساعد الذكي، إلى جانبك. مجانًا لمدة 14 يومًا.
Which costs count in POAS?
Profit on ad spend is only as good as the costs you subtract, so write the definition down before you compare any campaigns. The convention used across our guides is contribution margin before ads, the layer we call CM2:
- Net sales: revenue after discounts and refunds, excluding VAT.
- Minus COGS: landed product cost, including inbound freight and duties. This gives CM1.
- Minus shipping you paid to send orders to customers.
- Minus payment fees charged by your payment provider.
- Minus pick, pack, packaging and returns handling. This gives CM2.
POAS is then CM2 divided by ad spend. Some teams use a lighter version, gross profit POAS, which stops at CM1 and divides gross profit by spend. It is quicker to set up but flatters every campaign, because shipping and fees can take a large share of each order. Contribution POAS, on CM2, is the stricter number and the one to use for budget.
A third convention subtracts ad spend before dividing, so break-even becomes 0 instead of 1.0. Neither is wrong. Mixing them in one report is.
How to calculate POAS: a worked example
POAS is easiest to learn on one campaign with round numbers, so the example below follows one month of one campaign. The figures are invented for illustration only, not data from any store, and exclude VAT.
| Line | Amount |
|---|---|
| Ad spend | €10,000 |
| Net sales from the campaign (store orders, after refunds) | €40,000 |
| ROAS (€40,000 ÷ €10,000) | 4.0 |
| Product cost (COGS) | −€18,000 |
| CM1, gross profit | €22,000 |
| Shipping to customers | −€4,000 |
| Payment fees | −€1,000 |
| Packaging and returns handling | −€2,000 |
| CM2, contribution margin before ads | €15,000 |
| Gross profit POAS (€22,000 ÷ €10,000) | 2.2 |
| Contribution POAS (€15,000 ÷ €10,000) | 1.5 |
A ROAS of 4.0 sounds strong. Contribution POAS of 1.5 says each euro of spend returned €1.50 of contribution, so the campaign added €5,000 towards fixed costs and profit. Gross profit POAS of 2.2 would have overstated that by a wide margin.
Now change one thing. Suppose the same campaign had sold mostly a discounted bundle, with COGS at €24,000 instead of €18,000. ROAS stays at 4.0. CM2 drops to €9,000, and contribution POAS falls to 0.9. The campaign now loses €1,000 a month while its ROAS looks identical.
Why is break-even POAS 1.0 when break-even ROAS is higher?
Break-even POAS sits at exactly 1.0 because the variable costs are already taken out of the numerator, so one euro of profit per euro of spend leaves nothing over and nothing short.
ROAS still contains those costs. To break even on ROAS, revenue must be high enough that the margin on it covers the spend. The formula, the same one our breakeven ROAS calculator uses, is:
- Break-even ROAS = 1 ÷ CM2 %
In the first example above, CM2 is €15,000 on €40,000 of net sales, or 37.5 percent. Break-even ROAS is 1 ÷ 0.375, about 2.67. In the bundle version, CM2 is 22.5 percent and break-even ROAS jumps to about 4.44. That is why a single ROAS target across a catalogue misleads: every product mix has its own line. POAS keeps one line, 1.0, for all of them.
Break-even is not the goal, though. Your target POAS needs to cover fixed costs too. If overheads are €3,000 a month and you plan to spend €10,000 on ads, you need €13,000 of contribution, a target POAS of 1.3.
When does ROAS still matter?
ROAS remains useful wherever the platform's own optimisation and reporting work on revenue, which is the default setting in most ad accounts today.
- Inside one platform. Within a single ad account, every campaign is attributed by the same rules. Ranking ad sets and creatives by ROAS is fair there, provided they sell a similar product mix.
- As the signal the algorithm sees. Meta and Google bid on the conversion value you send them. If that value is revenue, the platform optimises for revenue, and in-platform ROAS is what it is trying to raise.
- For quick checks. Every ad platform reports ROAS without any cost data. POAS needs your store and cost inputs to be current.
You can change the signal itself. Meta's pixel reference describes the Purchase event's value parameter as "the value of a user performing this event to the business", so the number you pass does not have to be revenue. Google's help centre on conversion values says target ROAS can maximise value "such as sales revenue or profit margins", and conversion value rules let you add to or multiply values by location, device or audience.
Passing profit as the conversion value is a real option, but treat it with care. You share margin information with the platform, every order needs an accurate cost at the moment it fires, and the platform's reported ROAS then becomes a profit ratio, which confuses anyone reading the account later. Many brands keep revenue as the platform value and calculate POAS outside the platform.
What are the common POAS mistakes?
Most POAS errors come from inconsistent inputs rather than wrong arithmetic, and the five below cover the bulk of them:
- Using platform revenue. Platform-reported revenue double counts orders across channels and ignores refunds. Start from store net sales, as our MER vs ROAS guide explains.
- One margin for every product. A store-wide margin hides products that lose money on every order. A per-SKU profit teardown shows where it leaks.
- Forgetting returns. Refunds land weeks after the purchase. Measure POAS on a window long enough for most returns to arrive.
- Mixing conventions. Gross profit POAS one month, contribution POAS the next, makes the trend meaningless.
- Cutting prospecting on last-click POAS. Upper-funnel campaigns feed branded search and repeat orders. Judge the total on blended POAS first.
Where Wevion fits
Calculating POAS across platforms means joining store costs and ad spend from every account on the same dates, and that join is the part most spreadsheets let go stale.
Wevion connects Meta, Google, TikTok, Taboola, Snapchat and Outbrain ad accounts through each platform's official API, brings Shopify or WooCommerce orders next to that spend in one dashboard, and syncs data about every 15 minutes, so revenue, costs and spend for POAS sit in one place.
Wevion's Profitability Analytics, in beta, syncs cost per item from your store plus the shipping and fees you set once, then shows profit, margin and POAS, with margin per SKU. The cross-channel analytics view converts every account into one currency at each day's exchange rate. For WooCommerce stores, see our guide to WooCommerce ad profitability.
You can try it on your own ad accounts with a 14-day trial on the Pro plan. No card to start. We ask for one on day 7, or earlier if you use up the trial credits, and billing starts on day 14 only if you add it.
Key takeaways
- ROAS divides revenue by ad spend; POAS divides profit by ad spend.
- Define profit as net sales minus COGS, shipping, payment fees, packaging and returns: contribution POAS.
- Break-even POAS is 1.0 for every product; break-even ROAS is 1 ÷ CM2 % and changes with the product mix.
- Set a target POAS above 1.0 that also covers fixed costs.
- Keep using ROAS to rank ads inside one platform, where the platform optimises on the value you send.
- Start from store net sales and keep one POAS convention in every report.
استكشف المزيد في
منصات إدارة الإعلانات
اقرأ صفحة pillar مع جميع الأدلة حول هذا الموضوع، من الأساسيات إلى المستوى المتقدم.