Problem-Solution Hub
Your ROAS is hitting targets. Your profit isn't.
This is the most common problem we see in accounts spending £10k+ a month. The good news: it's fixable. The bad news: most agencies don't even know it's happening.
The ROAS Illusion
Why 4.5x ROAS can mean negative profit
ROAS
4.8x
POAS
-0.1x
Trend
↓
Symptoms
Recognise any of these?
If you're nodding to more than one, your POAS is probably broken. These aren't edge cases - they're the default state of most ecommerce Google Ads accounts spending over £10k a month.
ROAS looks healthy but bank balance is flat
The platform reports revenue against spend and calls that ROAS. It does not know your cost of goods, your returns rate or your payment processing fees, so a ratio that looks comfortably above target can still sit on top of a loss once those costs come off. The gap between the two numbers is exactly the cost data Google Ads never sees.
Scaling spend doesn't scale profit
Increasing budget does not increase profit at the same rate, because the algorithm chases whatever converts most easily as it spends more, and that is often your lowest-margin, highest-volume product. Margin compression accelerates as the account scales unless the bidding is told which products actually carry the profit.
High-revenue SKUs are low-profit SKUs
Your best sellers in Google Ads reporting are not necessarily your best performers in contribution margin. A hero product can generate the majority of attributed revenue while carrying thin margin after returns, while a lower-revenue product with much stronger margin gets almost no spend, simply because Google has no way to see the difference unless you tell it.
Returns and BNPL are eating into cash
The revenue Google Ads reports is captured at checkout. It does not subtract the return processed weeks later, the buy-now-pay-later settlement that arrives on a delay, or the restocking cost on returned goods, so reported ROAS can overstate what actually reaches the bank.
Worked Example
How 4.5x ROAS can still mean a loss
Simplified teaching maths showing the mechanism, not a client result. It is representative of the kind of gap we see between dashboard ROAS and P&L reality for a mid-market fashion ecommerce brand.
What the dashboard shows
What the P&L shows
The gap: in this illustration the brand reports 4.5x ROAS while the account is actually losing money once COGS, returns, shipping and payment processing are counted. The fix isn't to reduce spend - it's to redirect spend towards the SKUs that generate positive contribution margin.
Simplified teaching maths. Not client performance. Figures are hypothetical.
Methodology
The four-stage POAS correction process
We follow a structured diagnostic and implementation process from audit to full POAS optimisation. Exact timing depends on account size, catalogue complexity and how complete your cost data already is.
Commercial Audit
We extract COGS data from your ERP or ecommerce platform and match it against Google Ads performance at SKU level. This reveals which products are genuinely profitable and which are subsidised by the algorithm's revenue bias.
- Map landed COGS per SKU including duties, freight, and packaging
- Calculate true contribution margin after returns and payment processing
- Identify the break-even ROAS for each product category
- Flag 'hero SKUs' that drive revenue but destroy margin
Feed Restructure
We inject margin data into your product feed as custom labels, creating the foundation for profit-aware bidding. Products are segmented into four bands using our SKU Job Framework.
- Scale: >30% margin, high volume - maximise spend
- Protect: 15-30% margin - bid to break-even, let volume carry profit
- Recover: <15% margin but strategically important - cap CPC aggressively
- Pause: Negative contribution margin - exclude from paid activity
Campaign Architecture
We rebuild campaign structure so each margin band operates with its own tROAS target. This prevents the algorithm from cross-subsidising loss-making SKUs with profitable ones.
- Separate Shopping campaigns per margin band
- Set tROAS targets calibrated to each band's break-even point
- Implement negative keyword isolation between bands
- Configure conversion value rules to reflect true margin
Post-Sale Calibration
We feed actual post-sale data (returns, cancellations, BNPL adjustments) back into Google Ads conversion values. This creates a feedback loop where the algorithm learns from real profit, not projected revenue.
- Implement conversion value adjustments for returns
- Factor BNPL settlement delays into cash-adjusted ROAS
- Build rolling margin correction models
- Establish monthly P&L reconciliation against Google Ads reporting
Solutions
How do you fix low POAS?
Four interconnected fixes that transform your Google Ads from a revenue engine into a profit engine.
- Audit SKU-level margins - Inject COGS data into your feed so every bid knows true profit potential.
- Implement POAS bidding - Restructure campaigns to bid on contribution margin, not revenue.
- Account for post-sale erosion - Factor returns, shipping, and payment delays into calculations.
- Align spend with cash flow - Sync ad spend timing with actual cash receipt.
Sector Context
How low POAS manifests by sector
The root cause is always the same - bidding on revenue instead of profit - but the specifics vary significantly by industry.
Verified case study
Thermos
+94% contribution margin
Shifted from ROAS to POAS targeting after correcting double-counted conversions, restructuring campaigns around COGS tiers.
Read the full case study+94%
Contribution margin
+86%
Revenue
5 months
Engagement period
Period, comparison basis and source are stated on the case study and evidence register.
Verified case study
Husk & Seed
+45% average order value
Moved from loss-making samples to profitable bundles, with contribution margin doubling and acquisition cost held flat.
Read the full case study+45%
Average order value
2x
Contribution margin
Period, comparison basis and source are stated on the case study and evidence register.
What is POAS and why does it matter more than ROAS?
TLDR: POAS measures profit per £1 of ad spend. ROAS measures revenue. The difference determines whether your ads make or lose money.
POAS (Profit on Ad Spend) measures the actual profit generated per pound of ad spend, after deducting COGS, shipping, returns, and payment processing. Unlike ROAS which only tracks gross revenue, POAS reveals whether your advertising is genuinely profitable. A campaign can show 5x ROAS while generating negative profit if the products sold carry thin margins and high return rates.
- Break-even ROAS at 25% margin:
- 4.0x(JudeLuxe)
How do you fix low POAS in ecommerce Google Ads?
TLDR: Inject COGS into feeds, segment by margin bands, adjust for returns, and sync spend with cash flow.
Fixing low POAS requires four steps: inject COGS data into your product feed so bids reflect true margins, restructure campaigns into margin-banded segments with separate tROAS targets, account for post-sale margin erosion (returns, shipping, payment delays), and align ad spend timing with actual cash receipt. Timing to see profit change depends on account economics, product mix, data quality and starting point.
What data do I need to implement POAS bidding?
TLDR: COGS per SKU, shipping costs, return rates, and payment fees - fed into Google Ads via custom labels.
At minimum you need landed COGS per SKU, average shipping cost per order, return rates by product category, and payment processing fees. Ideally, add SKU-level return rates, BNPL settlement timelines, and seasonal margin variations. Most ecommerce platforms can export this data, and it gets structured for feed injection via custom labels.
Questions
Common questions about fixing low POAS
Next step
Ready to fix your POAS?
Book a commercial review. We'll diagnose your profit leaks in 30 minutes and tell you if we can help.