Every ad platform reports ROAS by default. Almost no ad platform reports POAS. For Magento merchants, that default is a problem.
The two formulas
ROAS (Return on Ad Spend) = revenue ÷ ad spend
POAS (Profit on Ad Spend) = gross profit ÷ ad spend, where gross profit = revenue − COGS − shipping cost − payment fees (before ad spend itself)
Both are ratios. Both look similar on a dashboard. They answer completely different questions.
Why ROAS misleads Magento merchants specifically
ROAS treats every euro of revenue as equally valuable. Magento catalogs rarely work that way:
- A €50 order with €15 COGS and free shipping you absorb at €6 nets very differently than a €50 order with €35 COGS
- High-margin accessories and low-margin bulky items can post identical ROAS while returning completely different cash
- Free-shipping promos (see Free Shipping in Magento Is Not Free for You) let ROAS stay flat while real margin erodes
A campaign selling low-margin, high-shipping-cost products can report a "great" 4× ROAS and still be a net drag on the business. We walked through a concrete version of this math in ROAS Looks Fine. Cash Does Not.
A side-by-side example
Two campaigns, same €1,000 spend, same €4,000 attributed revenue — so identical 4.0× ROAS:
| Metric | Campaign A (accessories) | Campaign B (bulky, discounted) |
|---|---|---|
| Revenue | €4,000 | €4,000 |
| COGS | €1,200 | €2,600 |
| Shipping cost | €200 | €560 |
| Payment fees | €100 | €100 |
| Gross profit | €2,500 | €740 |
| POAS | 2.5× | 0.74× |
| ROAS | 4.0× | 4.0× |
Same ROAS. One campaign is comfortably profitable after ad spend; the other is losing money on every euro spent. If you scale on ROAS alone, you scale both equally — and quietly starve the budget of the campaign that was actually working.
When ROAS still has a use
ROAS is not useless. It is a fast, platform-native signal for:
- Debugging creative or targeting performance day-to-day
- Comparing campaigns with genuinely similar product mix and margin
- Early-stage testing before you have reliable margin data flowing back
The mistake is using it as the number that decides where budget goes when your catalog has mixed margins — which almost every Magento store does.
Making POAS usable in practice
POAS is only trustworthy if the gross profit behind it is trustworthy. That means:
- Real Magento COGS, including bundle/configurable rollup — see /docs/cogs
- Shipping cost that reflects what you paid the carrier, not what the customer was charged
- Payment fees applied per method, not ignored
- Ad spend matched to the same store-timezone dates as the orders it drove
Once those four are in place, POAS ≥ 1.0× becomes a real break-even line, and campaigns above it are actually adding cash — not just adding revenue.
Where Verid fits
Verid computes POAS per campaign automatically once Magento and your ad accounts are connected — no spreadsheet exports, no manual margin math per SKU. It also supports uploading profit-based values back to Google Ads so bidding itself starts optimizing toward POAS instead of raw revenue — details in /docs/ads.
The practical rule
Keep ROAS as your creative-testing signal. Make POAS the number that decides whether spend goes up or down.
If you have not calculated POAS by campaign before, start a trial and connect Meta or Google — Verid will show you which "winning" campaigns were only winning on ROAS.