POAS Explained: Profit on Ad Spend Definition, Formula, and Calculation

Two campaigns both return a ROAS of 4.0. One sells a high margin accessory, the other sells a discounted bundle with expensive shipping and a 30 percent return rate. On the revenue metric they are identical. On profit, the first makes money and the second loses it. POAS, profit on ad spend, exists to close that gap. It replaces revenue in the numerator with gross profit, which reorders campaign rankings, changes budget decisions, and frequently reveals that the best performing campaign in the account was the one quietly subsidising itself with discounts.
What you will learn
Two campaigns both return a ROAS of 4.0. One sells a high margin accessory, the other sells a discounted bundle with expensive shipping and a 30 percent return rate. On the revenue metric they are identical. On profit, the first makes money and the second loses it. POAS, profit on ad spend, exists to close that gap. It replaces revenue in the numerator with gross profit, which reorders campaign rankings, changes budget decisions, and frequently reveals that the best performing campaign in the account was the one quietly subsidising itself with discounts.
Definition and Formula
POAS measures how much gross profit each euro of advertising generates.
POAS = gross profit from attributed orders / ad spend
Where ROAS asks how much revenue came back, POAS asks how much money came back. The formula is simple. Getting the numerator right is where the work sits.
Building the Profit Numerator
Gross profit here means order revenue minus every variable cost attached to fulfilling that order.
Gross profit = net revenue - COGS - shipping - payment fees - packaging - fulfilment - expected returns cost
Net revenue means revenue after discounts, not list price. Expected returns cost means the category return rate applied as a per order expected cost, since a returned order still incurred outbound shipping and handling.
Work a concrete comparison. Two campaigns, each with 5,000 euros of spend and 20,000 euros of attributed revenue, so both report a ROAS of 4.0.
| Campaign A (accessories) | Campaign B (discounted bundles) | |
|---|---|---|
| Attributed revenue | 20,000 | 20,000 |
| Discount applied | 0 | 3,000 |
| Net revenue | 20,000 | 17,000 |
| Cost of goods | 7,000 | 8,500 |
| Shipping and packaging | 1,200 | 2,600 |
| Payment fees | 400 | 340 |
| Returns cost | 300 | 2,100 |
| Gross profit | 11,100 | 3,460 |
| Ad spend | 5,000 | 5,000 |
| ROAS | 4.0 | 4.0 |
| POAS | 2.22 | 0.69 |
Campaign B is destroying 1,540 euros of value per period while appearing, in every standard report, to perform exactly as well as campaign A. A team scaling on ROAS would scale both equally.
Reading the Scale
POAS has a natural break even point that ROAS lacks. A POAS of 1.0 means the campaign generated exactly as much gross profit as it cost to run, so it contributed nothing toward fixed costs. Anything below 1.0 loses money. Anything above 1.0 contributes.
That interpretability is the metric's main practical advantage. A ROAS target of 3.2 requires knowing your margin structure to evaluate. A POAS target of 1.8 means the same thing to everyone in the room: for every euro of media, we keep 1.80 euros of gross profit before fixed costs.
What It Takes to Calculate POAS
The formula is easy and the data pipeline is not. Calculating POAS requires three things that most reporting stacks hold in separate places.
Product level cost data. You need cost of goods at SKU level, kept current. Brands with stable supplier pricing can maintain this in a spreadsheet. Brands with frequent supplier changes, currency exposure, or landed cost variation need it flowing from their ERP or inventory system.
Order level cost allocation. Shipping, payment fees, and packaging attach to the order, not the product. A basket of four items carries one shipping cost, so allocating per product misstates margin whenever basket composition changes.
Attribution linking orders to channels. POAS is only meaningful per channel or campaign, which means you need to know which orders belong to which marketing touchpoints. This is where the metric inherits every weakness of your attribution setup. If your measurement over credits retargeting, the POAS on retargeting will be overstated in exactly the same way its ROAS was.
The practical minimum viable version is to start with category level margin rather than SKU level. If your accessories run at 62 percent contribution margin and your apparel at 34 percent, applying those two rates to attributed revenue by category gets you most of the value with a fraction of the setup effort. Refine to SKU level once the approach has proved itself.
Where POAS Changes Decisions
POAS matters most in businesses where margin varies significantly across the catalogue, which is most of them.
Ecommerce managers use it to reallocate budget across product categories. A campaign structure built around revenue targets will naturally push spend toward the highest revenue products, which are frequently the lowest margin ones. Switching the target to POAS reverses that pull.
Performance marketers use it to evaluate discount driven campaigns honestly. Promotions almost always improve ROAS, because a discount lifts conversion rate and revenue while the discount itself sits outside the ROAS calculation. POAS puts the discount back where it belongs, in the numerator, and the promotional campaign that looked like the account's best performer often turns out to be its worst.
Finance teams use it because it is the first marketing metric that speaks their language. Gross profit per euro of spend maps directly to the profit and loss statement without a translation step.
The situations where the metric earns its setup cost:
- Wide margin variance across the catalogue. If your best and worst margins differ by more than roughly 20 percentage points, revenue based optimisation is actively misallocating budget.
- Heavy discounting or promotional calendars. POAS is the only common metric that prices discounts correctly.
- High return rate categories. Apparel and footwear cannot be managed on revenue metrics at all.
- Free shipping thresholds and bulky products. Shipping cost variance alone can flip a campaign from profitable to loss making.
- Marketplace or multi channel selling. Platform commission is a variable cost that differs per channel.
Getting POAS Right
The decision points that determine whether your POAS is trustworthy:
- Keep cost data current. A margin assumption from last year silently invalidates every number built on it.
- Allocate order level costs at order level. Product level allocation breaks whenever basket size changes.
- Treat discounts as revenue reduction. Booking them elsewhere defeats the purpose of the metric.
- Include expected returns. Apply a category level rate rather than waiting to match individual refunds.
- Check the attribution underneath. POAS calculated on platform reported conversions inherits platform self attribution bias.
- Decide gross or contribution. Some teams stop at gross profit after cost of goods, others subtract all variable costs. Both are valid, but the definition must be fixed and labelled.
The attribution point is the one most often overlooked. POAS is a better numerator applied to the same attribution question, so it improves the profit side of the calculation without fixing the assignment side. A campaign whose orders were incorrectly credited to it will show an incorrectly attractive POAS. The two improvements are complementary: attribution decides which orders belong to a channel, POAS decides what those orders were worth.
Feeding POAS back into the ad platforms is the natural next step and the harder one. Most platforms can accept a custom conversion value, which means you can send gross profit rather than revenue as the value of a purchase event. When that works, the platform's own optimisation starts hunting for profitable customers instead of high revenue ones, and the effect compounds over time as the algorithm learns. It requires reliable server side event delivery and current margin data, which is why it remains less common than it should be.
Summary
POAS divides gross profit from attributed orders by ad spend, replacing the revenue numerator in ROAS with the money the business actually kept. It has a natural break even at 1.0, it prices discounts and returns correctly, and it reorders campaign rankings in any catalogue where margin varies.
Start with category level margins rather than waiting for perfect SKU data, allocate shipping and payment fees at order level, treat discounts as reduced revenue, and include an expected returns cost. Then verify that the attribution assigning orders to channels applies consistent rules, because a profit metric built on self reported platform conversions is a better calculation applied to the wrong orders.
FAQ
What is a good POAS?
A POAS above 1.0 means the campaign covered its own media cost in gross profit. What you actually need depends on your fixed cost base, but many brands target somewhere between 1.5 and 2.5 for acquisition campaigns. Work backwards from the contribution needed to cover overheads rather than adopting a benchmark.
How is POAS different from ROAS?
ROAS uses revenue in the numerator, POAS uses gross profit. Two campaigns with identical ROAS can have radically different POAS if one sells high margin products and the other sells discounted, bulky, or frequently returned items.
Do I need SKU level cost of goods to calculate POAS?
Not to start. Category level or product line margins applied to attributed revenue captures most of the value. Move to SKU level once the metric is driving decisions and the coarse version starts hiding meaningful variance.
Should POAS use gross profit or contribution profit?
Either, as long as it is consistent and labelled. Gross profit after cost of goods is simpler to build. Contribution profit after shipping, fees, packaging, and returns is more accurate and is what most ecommerce brands eventually move to.
Can I optimise ad platforms directly against POAS?
Yes, by sending gross profit as the conversion value instead of revenue, usually through a server side event setup. It requires current margin data and reliable event delivery, but it lets the platform's own bidding target profitable customers rather than high revenue ones.
Decisions start with trust
14-days for free
