Why Is My ROAS High But Profit Low? Google & Meta Ads

Profit Playbook · Google Ads & Meta Ads · UK 2026

Your dashboard says 4.0 ROAS. Your accountant says there is nothing left. Both are telling the truth. ROAS measures the revenue an ad platform claims, and profit measures the money your business keeps, and between those two numbers sit VAT, refunds, product costs, delivery, double counting and a bidding algorithm that was never told what your margins are. This guide shows exactly where the money goes on Google Ads and Meta Ads, with the maths, and how to fix it.

Short answer: ROAS is high but profit is low because ROAS counts revenue, not margin. In the UK the reported value usually includes 20% VAT, ignores refunds, delivery and product cost, is often claimed twice by Google and Meta, and averages out spend that has stopped paying. Fix it by working out your break-even ROAS, sending profit instead of revenue to the platforms, and judging the account on blended and marginal return.

Where £100 of “reported revenue” really goes at 4.0 ROAS

VAT (20% inside the price)£16.67
Refunds and returns£8.33
Cost of goods£30.00
Delivery and packaging£7.50
Payment fees£2.25
Ad spend£25.00
Left before overheads£10.25
4.00ROAS the platform shows
1.41POAS (profit per £1 of ads)
10pKept from each £1 “earned”

Illustrative example for a UK ecommerce store. Staff, rent, software and agency fees still come out of the green slice.

01ROAS is a revenue ratio, not a profit ratio

Return on ad spend divides the conversion value a platform reports by what you spent. Nothing in that sum knows what the product cost you. So a 4.0 ROAS is excellent for a business keeping 60p of every pound and a slow loss for one keeping 20p.

The number that matters is your break-even ROAS: the ROAS at which ads pay for themselves and nothing more. It comes straight from your contribution margin, meaning what is left of a sale after product cost, delivery, payment fees and refunds, but before ad spend.

ROAS = conversion value ÷ ad spend
Break-even ROAS = 1 ÷ contribution margin
POAS = gross profit ÷ ad spend  (break-even is always 1.0)
Contribution marginBreak-even ROAS (ex VAT)Break-even ROAS if values include VAT
20%5.006.00
30%3.334.00
40%2.503.00
50%2.002.40
60%1.672.00

Margin is measured on ex-VAT revenue. The right-hand column multiplies by 1.2, because a VAT-inclusive conversion value overstates revenue by a fifth.

Read the second row again. A UK retailer on a 30% margin whose tracking reports VAT-inclusive values needs a 4.0 ROAS just to break even. Many are celebrating that number as a win.

02The UK VAT trap almost nobody checks

Most UK stores display prices including VAT, and most tracking setups pass the order total to Google and Meta exactly as the customer paid it. That means one-sixth of every “pound of revenue” in your dashboard was never yours. It belongs to HMRC.

The effect is larger than it looks. A reported 4.0 ROAS is really 3.33 on the money you keep. Worse, automated bidding treats the VAT as value and bids up to capture it. The fix is a tracking change: send the order subtotal excluding VAT, and excluding delivery charges, as the conversion value on both platforms.

⚠ Check this first

Open one recent order. Compare the value in your shop admin (ex VAT, ex delivery) with the conversion value recorded in Google Ads and in Meta Events Manager for the same order. If the platform figure is about 20% higher, every ROAS you have ever reported is inflated by the same amount.

03The costs ROAS never sees

After VAT, four more deductions sit between reported revenue and real profit. None of them appear in an ads dashboard unless you put them there.

  • Refunds and returns. The platform records the sale on day one. The refund arrives two weeks later and is never subtracted unless you send it back. Fashion and footwear accounts can lose a large share of reported revenue this way.
  • Delivery and packaging. “Free delivery” is a cost you absorb on every order, and it hits low-value baskets hardest.
  • Payment and marketplace fees. Card processing, buy-now-pay-later and platform fees typically take a few percent off the top.
  • Discount codes. A 15% code that runs all month is a 15% cut in margin. If ads are driving first orders with a welcome code, your true margin on ad-driven sales is lower than your average margin.

04The product-mix problem: algorithms chase revenue

This is the cause most accounts never find. Target ROAS bidding on Google and value optimisation on Meta both push budget towards whatever generates the most reported revenue per pound. They have no idea which products make you money. The usual result is that spend drifts to best-sellers, big-ticket items and resold brands, which are often your thinnest margins.

ProductMarginROASProfit per £1 of adsWhat the algorithm does
Own-brand item60%3.0£1.80 (makes 80p)Cuts budget: “low ROAS”
Resold big brand15%6.0£0.90 (loses 10p)Scales budget: “high ROAS”

Illustrative, ex VAT. Profit per £1 of ads = ROAS × margin. Anything below £1.00 loses money on every sale.

The account-level ROAS rises as the profitable product is starved and the loss-making one is scaled. The dashboard improves while the bank balance falls. The only cure is to tell the platform about margin, either by grouping products into margin bands or by bidding on profit directly. Both are covered in the fix below, and product-level work like this is the core of our ecommerce PPC management.

05Google and Meta are both claiming the same sale

A customer sees your Meta ad on Monday, searches your brand on Wednesday, clicks a Google ad and buys. Meta claims the sale. Google claims the sale. Your shop took one payment. Each platform’s ROAS is honest by its own rules, and the two added together describe revenue that does not exist.

Figure 2 · One month, one store

Google Ads claims £7,000

Meta Ads claims £6,000

Platforms added together £13,000

What the store actually took £10,000

Illustrative. With £2,900 total ad spend, the platforms imply a 4.48 ROAS. The store’s real blended return (MER) is 3.45, and some of that £10,000 would have arrived with no ads at all.

The measure that cannot be double counted is the marketing efficiency ratio:

MER = total store revenue ÷ total ad spend (all platforms)
New-customer ROAS = revenue from first-time buyers ÷ total ad spend

MER uses your shop’s own figures, so no platform can inflate it. New-customer ROAS goes one step further and removes sales to people who already buy from you, which is where most false credit hides.

06Average ROAS hides the pounds that stopped working

ROAS is an average across all your spend. Profit is decided at the margin: by what the last pound returned. Because the best customers are reached first, each extra pound brings back less than the one before. An account can show a healthy average while the top slice of budget is losing money.

Figure 3 · Diminishing returns: revenue vs spend

£0 £5k £10k £15k £1k £2k £3k £4k £5k Monthly ad spend Break-even line (3.0 ROAS) Widest gap = most profit at £2k spend Revenue flattens. ROAS still looks fine.

Illustrative. Profit is the vertical gap between the blue revenue curve and the red break-even line. It is widest at £2k and almost gone by £5k.

SpendRevenueAverage ROASROAS of the last £1kProfit
£1,000£8,0008.008.0£1,667
£2,000£12,0006.004.0£2,000
£3,000£14,0004.672.0£1,667
£4,000£15,0003.751.0£1,000
£5,000£15,5003.100.5£167

Assumes a 40% contribution margin and VAT-inclusive values, so break-even ROAS is 3.0. Profit = revenue ÷ 3 − spend.

At £4,000 the account shows a 3.75 ROAS, comfortably above the 3.0 break-even, and the owner feels safe. Yet profit is half what it was at £2,000, because the last £2,000 of spend returned well under break-even. Scaling an account because its average ROAS is above target is the most common way profitable accounts become unprofitable.

Marginal ROAS = extra revenue ÷ extra spend
Keep scaling while marginal ROAS > break-even ROAS. Stop when it drops below.

07Where Google Ads inflates ROAS

  • Performance Max harvesting brand searches. People who type your brand name were already coming to you. When PMax serves on those searches, it records very high ROAS for sales it did not create. Check the search terms insights in the campaign and apply brand exclusions so PMax has to find new demand. Our guide to fixing Performance Max covers the full setup.
  • Two tags counting one sale. If a Google Ads purchase tag and an imported GA4 purchase are both set as primary conversions, every order is counted twice and ROAS doubles on paper.
  • Micro-conversions carrying value. Add-to-basket or sign-up actions with a value attached, set as primary, add fake revenue to the conversion value column.
  • No refund data. Google supports conversion adjustments that retract or restate a sale after a return. Few accounts use them, so returned orders stay in the revenue total forever.
  • Target ROAS set too high. A very high target does not make the account more profitable. It makes bidding retreat to the safest traffic, which is brand and remarketing, so reported ROAS climbs while new-customer volume falls.
  • No cost data in the feed. Google can report gross profit per product if you send cart data with your purchase conversions and add the cost_of_goods_sold attribute in Merchant Center. Without it, every product looks equally worth selling.

These checks are part of every account review in our Google Ads management, and we track platform changes that affect them in the Google Ads updates tracker.

08Where Meta Ads inflates ROAS

  • Sales with no click. Meta’s default attribution setting is 7-day click, 1-day engage-through and 1-day view. The last two credit a purchase to an ad the buyer never clicked. Use “Compare attribution settings” to see how much of your ROAS is click-based. If most of it is view-through, much of it would probably have happened anyway.
  • Pixel and Conversions API counting twice. Both send the same purchase. Meta only merges them if each carries a matching event_id. If deduplication fails, purchases and ROAS are overstated, sometimes close to double.
  • Existing customers. Broad campaigns find your past buyers and website visitors first because they convert most easily. Break results down by audience segment to see how much spend went to people who already knew you.
  • Catalogue retargeting. Showing a product to someone who left it in the basket an hour ago produces spectacular ROAS and little extra revenue.
  • Discount-led creative. Ads built around a code attract buyers who only convert at reduced margin. ROAS holds up; profit per order does not.
  • VAT and delivery in the purchase value. The same tracking flaw as on Google, and value optimisation will chase it.

Meta’s incremental attribution setting, which estimates only the sales its ads caused, is the closest in-platform view to the truth. For the wider method, see our Meta Ads optimisation playbook and Meta Ads management.

Not sure which of these is draining your account?

Our £5 PPC audit checks tracking, VAT, duplicates, brand cannibalisation and product margins, and tells you your real break-even ROAS.

09If you sell leads, not baskets

Service businesses hit the same wall in a different way. A heating installer, dental clinic or solicitor assigns a value to each enquiry, the platform reports a strong ROAS against it, and the diary stays half empty. The gap is lead quality.

  • Every form fill has the same value. A tyre-kicker and a £9,000 install both count as one lead, so the algorithm finds more of whichever is cheaper.
  • Assumed close rates. If the lead value assumes one in four converts and the real figure is one in ten, true return is less than half what the dashboard shows.
  • No feedback from sales. Unless qualified leads and closed jobs are sent back as offline conversions, the platforms optimise for form submissions, not customers.

The fix is to import outcomes from your CRM with their real values and bid on those. That is the foundation of our work for home services and other lead-driven firms.

10London, Manchester and the rest of the UK: why location changes profit

ROAS is usually reported for the whole account. Profit often differs sharply by region, and UK businesses rarely look.

  • Click costs differ by area. Competition for the same search is typically fiercer in London than in Manchester, Birmingham or Leeds, so the same sale can cost more to win in the capital.
  • Service cost differs by area. For a trades or home services business, a London job carries travel time, parking and congestion costs that a job in Greater Manchester may not. Equal ROAS, unequal profit.
  • Delivery cost differs by area. Surcharges for the Highlands, islands and Northern Ireland can wipe out the margin on an order that looks identical in the dashboard.
  • Order value differs by area. Some regions buy premium lines; others buy on price. Blended ROAS hides both.

Pull the location report in Google Ads and the region breakdown in Meta, then apply your real costs per area. A London ecommerce brand and a Manchester installer will reach different conclusions, but both will find postcodes worth bidding harder on and postcodes worth excluding.

▸ A test only location makes possible

To learn what your ads truly add, switch them off in one region for two to four weeks while keeping them on in a similar one, for example Greater Manchester against West Yorkshire. Compare total sales in each from your own shop data. The difference is your incremental revenue, with no platform attribution involved. Pick regions of similar size and avoid sale periods.

11The 9-step fix: from ROAS to profit

  1. Calculate your break-even ROAS. Work out contribution margin after product cost, delivery, fees and refunds, on ex-VAT revenue. Divide 1 by it. This is the line every campaign is judged against.
  2. Strip VAT and delivery from conversion values. Send the ex-VAT product subtotal to Google and Meta.
  3. Remove duplicates. One primary purchase action in Google Ads. Matching event IDs on Pixel and Conversions API in Meta.
  4. Send refunds back. Use conversion adjustments in Google Ads, and report on net revenue from your shop for Meta.
  5. Add product cost to your feed. Populate cost_of_goods_sold in Merchant Center and enable cart data so Google reports gross profit by product.
  6. Split products by margin. Tag items as high, medium or low margin with custom labels, run them in separate campaigns or asset groups, and give each its own ROAS target from the table above.
  7. Bid on profit where you can. Pass gross profit as the conversion value instead of revenue. The target then becomes POAS, and break-even is simply 1.0.
  8. Separate brand from non-brand. Exclude brand terms from Performance Max, run a small capped brand campaign, and judge prospecting on new-customer return.
  9. Manage on MER and marginal ROAS. Review blended return weekly from shop data. When you raise budget, measure what the extra spend returned, not the new average.

⌁ The rule to keep

ROAS tells you how well the platform thinks it is doing. Profit tells you how well you are doing. Give the algorithm your margins and it will optimise for your business instead of its own scoreboard. This is the measurement layer behind how our system works.

Frequently asked questions

Why is my ROAS high but my profit low?

Because ROAS measures reported revenue, not profit. In the UK the reported value usually includes 20% VAT and ignores refunds, delivery, payment fees and product cost. Google and Meta often both claim the same sale, and bidding algorithms push spend towards high-revenue, low-margin products. The result is a strong ROAS on a thin or negative profit.

What is a good ROAS for a UK business?

There is no single good ROAS. It depends on your margin. Break-even ROAS is 1 divided by your contribution margin, so a 40% margin breaks even at 2.5 and a 20% margin at 5.0. If your tracking reports VAT-inclusive values, multiply by 1.2. A good ROAS is one comfortably above your own break-even figure.

Should conversion value include VAT?

No. VAT is collected for HMRC and is not your revenue. Sending VAT-inclusive values inflates ROAS by a fifth and makes automated bidding overvalue every sale. Send the ex-VAT product subtotal, excluding delivery charges, to both Google Ads and Meta Ads.

What is POAS and how is it different from ROAS?

POAS is profit on ad spend: gross profit divided by ad spend. ROAS uses revenue, so its break-even point differs for every product and margin. POAS uses profit, so break-even is always 1.0. Bidding on profit stops the platforms favouring high-revenue products that make little money.

Why do Google Ads and Meta Ads report more sales than my store?

Each platform credits itself for any sale it touched. A customer who sees a Meta ad and later clicks a Google ad is counted by both. Duplicate tags and view-through attribution add more. Use MER, which is total store revenue divided by total ad spend, as the figure that cannot be double counted.

What is marginal ROAS?

Marginal ROAS is the return on your most recent increase in spend: extra revenue divided by extra spend. Average ROAS can stay above target while marginal ROAS falls below break-even, which means the top slice of your budget is losing money. Keep scaling only while marginal ROAS is above your break-even ROAS.

Turn a good-looking ROAS into real profit

We rebuild tracking, feed and structure around your margins for UK businesses in London, Manchester and nationwide. See the results in our case studies.

Hassan Tahir, founder and lead PPC strategist at Global PPC

Hassan Tahir

Founder & Lead PPC Strategist · Global Performance Propel Company · Google Partner & Meta Business Partner

All figures and examples in this guide are illustrative and use a 20% UK VAT rate. Platform behaviour (attribution settings, cart data, conversion adjustments) reflects Google Ads and Meta Ads as of October 2026 and changes over time. This is marketing guidance, not accounting or tax advice. More guides on the Global PPC blog.

Tags
What do you think?

What do you think?

1 Comment
August 22, 2025

Creative testing on Meta has definitely shifted in 2025, and I think your point about scalability is spot on. What workedBlog comment creation last year—like endlessly tweaking headlines—feels less effective now compared to testing formats and hooks that resonate across multiple audiences. It’ll be interesting to see how AI-driven iteration changes the pace and structure of testing going forward.

Comments are closed.

What to read next