POAS (profit on ad spend)
The CM1 an ad brings back for every rupee it spends. Unlike ROAS, it knows which products were sold and what each one costs, so it tells you whether an ad makes money, not just revenue.
CM1 is net revenue minus fulfilment costs (COGS, shipping, payment gateway fees and handling), worked out for the exact SKUs in each order. POAS above 1 means the ad leaves positive CM2.
What is POAS?
ROAS treats every rupee of revenue as equal. But โน1,000 of a hero serum and โน1,000 of a heavily discounted combo kit leave very different amounts behind once you pay for the product, shipping and returns. An ad that sells mostly the combo can top the ROAS table and still lose money.
POAS replaces revenue with CM1, the margin left after fulfilment. It follows each attributed order down to the SKUs in it, takes out product, shipping, payment and handling costs, and divides what's left by the ad spend. The break-even is always 1, whatever your margins, which makes it easy to compare ads that sell different things.
How it's calculated
POAS needs attribution and a product-level P&L to meet at the order. Each attributed order brings its SKUs, and each SKU brings its costs.
| Input | Where it comes from | What it gives us |
|---|---|---|
| attributed_orders | True attribution, per ad | Which orders, and which SKUs, the ad gets credit for |
| net_revenue | Order line items after discounts and GST | Revenue per SKU |
| sku_costs | COGS per SKU, plus shipping, payment gateway fees and handling | CM1 per order line |
| rto_status | Shipping partner data | Removes undelivered revenue, adds return shipping cost |
| spend | Ad platform | The denominator |
Getting the costs right
POAS is only as good as the cost data behind it. Three things matter most.
- 1Enter real COGSDefault cost assumptions get you started, but your own landed cost per SKU is what makes POAS trustworthy.
- 2Wait for deliveryAn order that goes RTO turns from profit into a loss. Recent days will move until shipments settle.
- 3Update on price changesNew supplier rates, courier contracts or gateway fees all shift CM1. Keep the cost table current.
Worked examples
Example 1: One ad, three SKUs
An illustrative skincare ad spends โน2,00,000 in a week. True attribution credits it with โน6,50,000 of delivered revenue across three products.
| SKU | Attributed revenue | CM1 % | CM1 |
|---|---|---|---|
| Face serum | โน3,00,000 | 58% | โน1,74,000 |
| Sunscreen | โน1,50,000 | 45% | โน67,500 |
| Combo kit (discounted) | โน2,00,000 | 20% | โน40,000 |
| Total | โน6,50,000 | 43% | โน2,81,500 |
| Ad spend โน2,00,000 | ROAS 3.25 | POAS 1.41 |
- OverallPOAS of 1.41 means the ad returned โน1.41 of CM1 per rupee, leaving โน81,500 of CM2 after spend.
- Combo kitIt drives 31% of the ad's revenue but only 14% of its CM1. Shifting the creative toward the serum would lift POAS without changing spend.
Example 2: The higher ROAS ad is the worse ad
Two illustrative ads each spend โน1,00,000. Ranked by ROAS, A wins. Ranked by POAS, B does.
Using POAS to decide
POAS of 1 means CM2 is exactly zero. These bands are a starting point. Raise the bar if ads also need to cover operational costs for CM3, or lower it for prospecting you've priced in with LTV.
Common mistakes
- One margin for every adROAS ร brand margin hides exactly the mix differences POAS is meant to show.
- Gross margin instead of CM1Leaving out shipping, payment and handling costs, including the return leg on RTO, flatters every ad, most of all COD-heavy ones.
- Platform-attributed ordersAccurate costs on over-counted orders still give the wrong answer. Start from true attribution.
- Subtracting operational costsSalaries, warehouses and software belong in CM3, not in an ad's POAS. Keep them out, or every ad looks worse than it is.
Frequently asked questions
What is a good POAS?
Anything above 1 means the ad leaves positive CM2. How far above you need depends on how much of your operational costs and profit target marketing is expected to carry.
How is POAS different from ROAS?
ROAS uses revenue, POAS uses CM1. POAS equals ROAS multiplied by the CM1 margin of the orders the ad drove, so it changes whenever the product mix changes.
Can I optimise ad platforms on POAS?
Ad platforms optimise on the conversion value you send them. Sending profit instead of revenue as that value is one way to do it, but it depends on reliable SKU costs and how your Conversions API is set up.
What if I haven't entered my costs?
Default cost assumptions give you a directional POAS from day one. Treat it as a rough guide until your own COGS and shipping rates are in.
Related metrics
See profit, not just revenue, for every ad
BooleanMaths joins true attribution with SKU-level CM1, so every ad's orders carry their real costs. It starts with default costs and gets sharper as you add your own.
POAS (profit on ad spend)
The CM1 an ad brings back for every rupee it spends. Unlike ROAS, it knows which products were sold and what each one costs, so it tells you whether an ad makes money, not just revenue.
CM1 is net revenue minus fulfilment costs (COGS, shipping, payment gateway fees and handling), worked out for the exact SKUs in each order. POAS above 1 means the ad leaves positive CM2.
What is POAS?
ROAS treats every rupee of revenue as equal. But โน1,000 of a hero serum and โน1,000 of a heavily discounted combo kit leave very different amounts behind once you pay for the product, shipping and returns. An ad that sells mostly the combo can top the ROAS table and still lose money.
POAS replaces revenue with CM1, the margin left after fulfilment. It follows each attributed order down to the SKUs in it, takes out product, shipping, payment and handling costs, and divides what's left by the ad spend. The break-even is always 1, whatever your margins, which makes it easy to compare ads that sell different things.
How it's calculated
POAS needs attribution and a product-level P&L to meet at the order. Each attributed order brings its SKUs, and each SKU brings its costs.
| Input | Where it comes from | What it gives us |
|---|---|---|
| attributed_orders | True attribution, per ad | Which orders, and which SKUs, the ad gets credit for |
| net_revenue | Order line items after discounts and GST | Revenue per SKU |
| sku_costs | COGS per SKU, plus shipping, payment gateway fees and handling | CM1 per order line |
| rto_status | Shipping partner data | Removes undelivered revenue, adds return shipping cost |
| spend | Ad platform | The denominator |
Getting the costs right
POAS is only as good as the cost data behind it. Three things matter most.
- 1Enter real COGSDefault cost assumptions get you started, but your own landed cost per SKU is what makes POAS trustworthy.
- 2Wait for deliveryAn order that goes RTO turns from profit into a loss. Recent days will move until shipments settle.
- 3Update on price changesNew supplier rates, courier contracts or gateway fees all shift CM1. Keep the cost table current.
Worked examples
Example 1: One ad, three SKUs
An illustrative skincare ad spends โน2,00,000 in a week. True attribution credits it with โน6,50,000 of delivered revenue across three products.
| SKU | Attributed revenue | CM1 % | CM1 |
|---|---|---|---|
| Face serum | โน3,00,000 | 58% | โน1,74,000 |
| Sunscreen | โน1,50,000 | 45% | โน67,500 |
| Combo kit (discounted) | โน2,00,000 | 20% | โน40,000 |
| Total | โน6,50,000 | 43% | โน2,81,500 |
| Ad spend โน2,00,000 | ROAS 3.25 | POAS 1.41 |
- OverallPOAS of 1.41 means the ad returned โน1.41 of CM1 per rupee, leaving โน81,500 of CM2 after spend.
- Combo kitIt drives 31% of the ad's revenue but only 14% of its CM1. Shifting the creative toward the serum would lift POAS without changing spend.
Example 2: The higher ROAS ad is the worse ad
Two illustrative ads each spend โน1,00,000. Ranked by ROAS, A wins. Ranked by POAS, B does.
Using POAS to decide
POAS of 1 means CM2 is exactly zero. These bands are a starting point. Raise the bar if ads also need to cover operational costs for CM3, or lower it for prospecting you've priced in with LTV.
Common mistakes
- One margin for every adROAS ร brand margin hides exactly the mix differences POAS is meant to show.
- Gross margin instead of CM1Leaving out shipping, payment and handling costs, including the return leg on RTO, flatters every ad, most of all COD-heavy ones.
- Platform-attributed ordersAccurate costs on over-counted orders still give the wrong answer. Start from true attribution.
- Subtracting operational costsSalaries, warehouses and software belong in CM3, not in an ad's POAS. Keep them out, or every ad looks worse than it is.
Frequently asked questions
What is a good POAS?
Anything above 1 means the ad leaves positive CM2. How far above you need depends on how much of your operational costs and profit target marketing is expected to carry.
How is POAS different from ROAS?
ROAS uses revenue, POAS uses CM1. POAS equals ROAS multiplied by the CM1 margin of the orders the ad drove, so it changes whenever the product mix changes.
Can I optimise ad platforms on POAS?
Ad platforms optimise on the conversion value you send them. Sending profit instead of revenue as that value is one way to do it, but it depends on reliable SKU costs and how your Conversions API is set up.
What if I haven't entered my costs?
Default cost assumptions give you a directional POAS from day one. Treat it as a rough guide until your own COGS and shipping rates are in.
Related metrics
See profit, not just revenue, for every ad
BooleanMaths joins true attribution with SKU-level CM1, so every ad's orders carry their real costs. It starts with default costs and gets sharper as you add your own.