How to Calculate POAS for Your WooCommerce Store
Wootrack Growth Blog
How to Calculate POAS for Your WooCommerce Store
Why Your ROAS Number Is Lying to You
Here is the thing most WooCommerce store owners discover too late. A campaign showing 400% ROAS looks healthy on paper. Google Ads is happy. Your agency is happy. But when you actually run the numbers – subtracting the cost of goods, the shipping label, the Stripe fee, and VAT if you are selling in the EU – that same campaign is operating at a loss.
ROAS measures revenue divided by ad spend. Nothing more. It has no idea what your product costs to source, pack, and ship. It does not know you are paying 2.9% to PayPal or that 20% of your sale price goes straight to the tax authority. Google’s Smart Bidding algorithm is faithfully optimizing toward a number that does not reflect your actual financial reality.
POAS – Profit on Ad Spend – fixes this. Instead of dividing revenue by ad spend, you divide true profit by ad spend. The formula sounds simple. Getting the inputs right is where most stores fall short.
The POAS Formula, Step by Step
POAS = (Revenue – COGS – Shipping Cost – Payment Fees – VAT) / Ad Spend x 100
Let us run a real example. You sell a product for €100. Your COGS is €35. Shipping costs €8. Stripe takes €3.20 (2.9% + €0.30). VAT in Germany is €16.81 (20% of the ex-VAT price). Your true profit on that order is €36.99. If you spent €25 in Google Ads to get that sale, your POAS is 148% – just barely profitable.
Now compare that to the ROAS view: €100 revenue divided by €25 ad spend = 400% ROAS. It looks like a winner. It is barely breaking even. That gap between what ROAS tells you and what POAS tells you is exactly where stores bleed money at scale.
The break-even point for POAS is always 100%. Below that, you are paying more in ads and costs than you are earning in profit. At 150%, you are generating €1.50 in profit for every €1 of ad spend. That is a reasonable floor for a healthy ecommerce campaign. At 200%+, you are scaling territory.

The Cost Inputs That Actually Matter for POAS Calculation
Getting POAS right means getting your cost inputs right. Most stores undercount, which means their POAS looks better than it actually is.
COGS is the obvious one – what you paid for the product. But shipping is where things get messy. Are you using actual carrier invoices or a flat estimate? If you are using a flat €5 estimate but your average shipping cost is €9.50, your POAS is inflated by nearly 5 points on a €100 order.
Payment fees vary by gateway and by country. Stripe, PayPal, Klarna, and Mollie all charge differently. Klarna in particular can run 3-4% plus a fixed fee, which hits margins hard on lower-priced products. If you are not pulling the actual fee per transaction, you are guessing.
VAT is the one that surprises EU store owners most. If you are VAT-registered and selling B2C, the VAT portion of your revenue is not yours – it belongs to the tax authority. A €100 sale in Germany includes €16.81 in VAT. Your real revenue is €83.19. Running POAS calculations on the gross VAT-inclusive revenue overstates profit significantly.
POAS Benchmarks by Store Type
There is no single universal POAS target. It depends on your margin structure. But here are practical benchmarks we see across WooCommerce stores.
Stores with 40-60% gross margins (fashion, accessories, supplements) should be targeting 160-220% POAS. Stores with 20-35% margins (electronics, white-label goods, books) are often working with a 120-150% target and need to be more aggressive about cutting underperformers. Stores with high average order values and low return rates can sometimes sustain 130% POAS profitably because the absolute profit per order is high even at a lower ratio.
The key rule: if your POAS drops below 110% consistently, you are either breaking even or losing money when you account for overhead costs that are not in the formula. Below 100% is an active loss on ad spend. No exceptions.
ROAS vs POAS: same campaign, very different conclusions
| Metric | ROAS View | POAS View |
|---|---|---|
| Revenue | €100 | €100 |
| COGS | Not counted | -€35 |
| Shipping | Not counted | -€8 |
| Payment fees | Not counted | -€3.20 |
| VAT (Germany) | Not counted | -€16.81 |
| True profit | €100 (assumed) | €36.99 |
| Ad spend | €25 | €25 |
| Metric result | 400% ROAS | 148% POAS |
| Decision signal | Scale this campaign | Monitor carefully – near break-even |
How to Start Feeding Real Profit Into Google Ads
- 1
Calculate true profit per order in WooCommerce
You need per-order profit, not blended store averages. That means pulling COGS per SKU, actual shipping costs from your carrier integration, the exact payment fee from your gateway, and stripping VAT from revenue for EU sales. Manual spreadsheets work at low volume but break fast as SKU count grows.
- 2
Map profit values to Google Ads conversion events
Google’s Smart Bidding can optimize toward any conversion value you send it. Instead of sending revenue as the conversion value – which is the default WooCommerce Google Ads setup – you send profit. This tells Google’s algorithm to chase profitable orders, not just high-revenue ones.
- 3
Use offline conversions to pass profit values
The cleanest method is offline conversion imports. Your WooCommerce store calculates profit after the order is placed (once shipping and payment data is confirmed), then sends that value back to Google Ads via the offline conversions API. This is more accurate than real-time conversion tags because you have final cost data.
- 4
Set your target POAS in Smart Bidding
Once Google is receiving profit values, you switch your campaign bidding to Target ROAS – but now ‘ROAS’ in Google’s terms is actually POAS because the conversion value is profit, not revenue. Set your target based on your benchmark: 150% is a reasonable starting point for most stores. Give the algorithm 2-3 weeks of data before adjusting.
- 5
Label products by POAS performance and adjust bids accordingly
Not all products perform equally. Winners (POAS 160%+) deserve more budget. Borderline products (100-150% POAS) need margin improvement or tighter bids. Losers (below 100%) should be excluded from campaigns or paused until costs are addressed. WootrackApp handles this automatically with its A/C/X product labeling system, syncing labels directly to your Shopping and Performance Max campaigns.

POAS Calculation Readiness Checklist
- COGS entered per SKU in WooCommerce (not blended averages)
- Actual shipping costs pulled from carrier integration or invoices – not flat estimates
- Payment gateway fees configured per processor (Stripe, PayPal, Klarna, Mollie)
- VAT handling confirmed – profit calculated on ex-VAT revenue for EU B2C sales
- Google Ads conversion action set to receive profit values instead of order revenue
- Offline conversion import or API connection established between WooCommerce and Google Ads
- Target POAS set in Smart Bidding campaigns (start at 150% and adjust based on 30-day data)
- Product-level POAS tracking active so you can identify and label winners vs losers
Frequently asked questions
What is a good POAS benchmark for a WooCommerce store?
100% POAS means you are breaking even – every euro in ad spend returns exactly one euro in profit. A healthy target for most WooCommerce stores is 150% or above, meaning €1.50 profit per €1 spent. Stores with thin margins (20-30% gross) often target 120-140%. Stores with strong margins (50%+) can push for 200%+. Below 110% consistently means you are likely losing money once overhead is factored in.
Can I calculate POAS manually in a spreadsheet?
Yes, and it is a good exercise to do once so you understand the formula. But manual POAS calculation breaks down quickly. Product costs change, shipping rates vary by order, payment fees differ by gateway and transaction size, and VAT rules shift by country. At more than 50 orders per week, you need automated per-order profit calculation – which is exactly what WootrackApp handles.
How is POAS different from profit margin?
Profit margin measures profit as a percentage of revenue – it does not account for ad spend at all. POAS specifically measures the return on your advertising investment in profit terms. You can have a healthy 40% profit margin but terrible POAS if your ad costs are too high. POAS tells you whether your ads are profitable, not just whether your products are.
Does Google Ads support POAS bidding natively?
Not by name. But Google’s Target ROAS bidding optimizes toward whatever conversion value you send it. If you send profit as the conversion value instead of revenue, the algorithm effectively optimizes for POAS. The mechanism is offline conversion imports with profit values – which is what WootrackApp automates for WooCommerce stores.
What happens to my campaigns when I switch from ROAS to POAS optimization?
Expect a learning period of 2-4 weeks. Google’s algorithm will recalibrate as it receives profit-based conversion values instead of revenue values. Some campaigns that looked strong on ROAS will get less budget because their true profit is lower. Others will scale up. Volume may dip temporarily. But after the learning period, you are spending money on orders that actually make you money – which is the whole point.
Do I need to include VAT in my POAS calculation?
If you are a VAT-registered business selling B2C in the EU, yes. The VAT portion of your revenue is not profit – it passes through to the tax authority. Running POAS on gross VAT-inclusive revenue inflates your apparent profit. For a €100 sale in Germany, your real revenue is €83.19 after 20% VAT. Always calculate POAS on ex-VAT revenue if you are VAT-registered.