JudeLuxe — ecommerce-only Google Ads, managed to profit (POAS), for UK brands spending £15k+/month. Fixed fees.
Sample document
What our Commercial Audit actually looks like
This is a real commercial audit, anonymised. Client identity, SKU names and exact figures have been altered to protect confidentiality; the structure, depth and honesty are exactly what you receive after week one. No slideware, this is the working document.
Account profile
UK homeware and small electricals brand. £11.4m annual revenue, 2,300 active SKUs, Shopify Plus. Google Ads spend £46,000 per month across Shopping, Performance Max, Search and a small Demand Gen test. Blended account ROAS reported at 5.9x. Contribution margin flat year on year despite a 22% spend increase.
Section 01
Account snapshot & tracking integrity findings
Before any structural work, we establish whether the numbers the account is optimising against are true. In this account they were not. Reported conversion value was overstated by roughly 18%, which means every bid strategy in the account had been trained on inflated feedback for at least nine months.
| Signal | Reported | Verified | Variance |
|---|---|---|---|
| Conversions (30d) | 3,412 | 2,905 | -14.9% |
| Conversion value (30d) | £1,486,000 | £1,219,000 | -18.0% |
| Blended ROAS | 5.9x | 4.8x | -1.1x |
| Gross margin on ad revenue | Not tracked | 36.2% | n/a |
| POAS (profit on ad spend) | Not tracked | 1.74x | n/a |
Finding 1.1 — Duplicate purchase events
The GA4 purchase event and the Google Ads global site tag were both firing on the order confirmation page, with a second fire on browser back-navigation. Roughly 11% of orders were counted twice. Deduplication via transaction_id was absent.
Finding 1.2 — Conversion value includes VAT, shipping and discounts
Purchase value was passed at gross order total. Stripping VAT, delivery income and applied discount codes reduces true trading value by 16.4%. Every ROAS target in the account was therefore set against a number that does not exist in the P&L.
Finding 1.3 — Refunds and returns never fed back
Return rate across the catalogue is 9.8%, rising to 21% in the lighting category. No refund adjustment was uploaded to Google Ads, so Smart Bidding continued to bid up the highest-returning products.
Finding 1.4 — Enhanced conversions inactive
Enhanced conversions for web was enabled but not receiving hashed customer data, so match rates sat at 0%. Estimated 6 to 9% of conversions unattributed on iOS.
Finding 1.5 — Three primary conversion actions counted together
Purchase, newsletter signup and 'add to basket' were all set to primary. Bidding was optimising towards a blended value in which a free email signup was worth £14 of modelled value.
Finding 1.6 — No margin data in the feed
No custom label carried cost of goods. Without it, no bid strategy in the account can distinguish a 62% margin candle from a 9% margin air fryer.
What this means commercially
The account was not underperforming against its targets. It was performing well against the wrong targets. Fixing measurement first is the difference between optimising and guessing, and it costs nothing in media.
Section 02
Break-even ROAS by margin band
A single account-wide ROAS target of 5.0x was applied to a catalogue whose gross margin ranges from 9% to 64%. Break-even ROAS is simply 1 divided by gross margin, adjusted for returns and payment fees. Once calculated, the account's flat target is revealed as simultaneously far too soft on high-margin lines and structurally loss-making on low-margin ones.
| Margin band | % of ad spend | Gross margin | Return rate | True break-even ROAS | Actual ROAS | Verdict |
|---|---|---|---|---|---|---|
| A — Premium accessories | 14% | 62% | 3.1% | 1.7x | 6.4x | Underfunded |
| B — Core homeware | 27% | 44% | 6.0% | 2.4x | 5.8x | Healthy |
| C — Lighting | 19% | 31% | 21.0% | 4.1x | 5.1x | Marginal |
| D — Small electricals | 33% | 16% | 11.4% | 7.1x | 5.5x | Loss-making |
| E — Clearance | 7% | 9% | 8.2% | 12.1x | 4.2x | Heavily loss-making |
Finding 2.1 — 40% of spend sits below break-even
Bands D and E together consume £18,400 per month and return revenue at a ROAS beneath the point at which the order makes money. Every incremental sale in band E costs the business roughly £6.20 in gross profit before overhead.
Finding 2.2 — The best products are being starved
Band A clears break-even by 3.8x and is impression-share limited at 41% lost to budget. This is the single largest uncaptured profit pool in the account.
Finding 2.3 — Returns are not priced into targets
Lighting looks acceptable at 5.1x until a 21% return rate is applied. Net of returns it delivers 4.03x against a 4.1x break-even, which is a rounding error away from zero.
Recommendation
Replace one account-wide ROAS target with five band-level targets set at break-even plus a contribution floor. Modelled effect at constant spend: contribution up £14,100 per month with no additional budget.
Section 03
SKU-level profit analysis
Every SKU is given a commercial job under BOI® (Bid On Intent): Scale, Profit, Protect, Recovery or Gateway. The job determines the target, not the other way round. Below is a representative extract from the full 2,300-line workbook you receive alongside this document. Figures are 90-day.
| SKU | Commercial job | Revenue | Gross margin | Ad spend | POAS | Verdict |
|---|---|---|---|---|---|---|
| HW-1042 Stoneware set | Scale | £184,300 | 48% | £26,100 | 3.39x | Fund harder |
| AC-7781 Ceramic diffuser | Profit | £96,400 | 62% | £9,800 | 6.10x | Fund harder |
| LT-3320 Pendant light | Protect | £141,700 | 31% | £24,400 | 1.80x | Hold, cap CPC |
| SE-5510 Air fryer 5L | Gateway | £312,000 | 16% | £61,900 | 0.81x | Restrict |
| SE-5512 Air fryer 8L | Gateway | £188,500 | 14% | £41,200 | 0.64x | Restrict |
| HW-2210 Linen throw | Scale | £74,600 | 51% | £11,300 | 3.37x | Fund harder |
| LT-3401 Floor lamp | Recovery | £58,900 | 29% | £19,700 | 0.87x | Fix feed, retest |
| CL-9004 Clearance bundle | Profit | £41,200 | 9% | £9,600 | 0.39x | Exclude |
| AC-7712 Scented candle | Gateway | £63,800 | 64% | £7,100 | 5.75x | Fund harder |
| HW-1188 Cookware set | Protect | £127,400 | 38% | £28,900 | 1.68x | Hold |
Finding 3.1 — Two SKUs consume 18% of total spend at a loss
The 5L and 8L air fryers absorb £103,100 of 90-day spend and return £75,000 of gross profit. They are treated as hero products because they top the revenue report. On profit they rank 1,847th and 2,011th of 2,300.
Finding 3.2 — The top ten profit SKUs receive 6% of spend
Ranked by absolute gross profit per pound of spend, the top ten lines are collectively budget-constrained. Nine of the ten sit in Shopping campaigns with no priority separation.
Finding 3.3 — 612 SKUs have spent with zero conversions in 90 days
£31,400 of cumulative spend, no orders. 340 of these are disapproved or have missing GTINs and should never have been served.
Finding 3.4 — Gateway logic is untested
Air fryers are defended as a customer acquisition route. Cohort analysis of 2024 first-order air fryer buyers shows a 12-month repeat rate of 9.1% against a site average of 27.4%. They are not a gateway, they are a discount magnet.
What we would change first
Split the catalogue into five Shopping structures by commercial job, exclude the 612 zero-converting SKUs, and move the two air fryer lines to a capped, brand-defended campaign rather than open Shopping.
Section 04
The three biggest profit leaks, costed
Every leak below is stated in monthly gross profit, not revenue, and every one is recoverable inside 90 days without additional budget.
| Leak | Monthly cost | Annualised | Time to fix | Confidence |
|---|---|---|---|---|
| Brand traffic absorbed by Performance Max | £9,400 | £112,800 | 2 weeks | High |
| Sub-break-even spend on bands D and E | £7,900 | £94,800 | 4 weeks | High |
| Untracked returns inflating bid signals | £4,600 | £55,200 | 6 weeks | Medium |
Leak 1 — Brand cannibalisation, £9,400 per month
Performance Max is claiming 71% of brand search conversions at a £0.94 average CPC on terms that historically converted at 14x through exact-match brand Search. The incremental value of paying for a customer who typed the brand name is close to zero. Excluding brand from PMax and holding it in a capped brand Search campaign recovers the difference immediately.
Leak 2 — Structural loss-making spend, £7,900 per month
Bands D and E deliver revenue at a ROAS below break-even. This is not an optimisation problem, it is a mandate problem: the account was told to buy revenue. Reallocating this spend to band A and B ceilings, which are impression-share limited, converts the same media budget into positive contribution.
Leak 3 — Return-blind bidding, £4,600 per month
Lighting returns at 21%. Smart Bidding sees the sale, never the refund, and compounds the error by bidding harder on the products most likely to come back. Uploading refund adjustments and re-baselining targets on net revenue corrects the feedback loop.
Total recoverable
£21,900 per month, £262,800 annualised, at current spend levels. This is contribution, not revenue, and it assumes no increase in media budget.
Section 05
Brand-traffic split in Performance Max
Performance Max reports a 9.2x ROAS and is described in the current agency's monthly report as the account's strongest channel. Separating brand from non-brand tells a different story.
| Segment | Spend (30d) | Revenue | ROAS | Est. incrementality | True ROAS |
|---|---|---|---|---|---|
| PMax — brand queries | £8,900 | £121,600 | 13.7x | ~15% | 2.1x |
| PMax — non-brand shopping | £14,200 | £78,400 | 5.5x | ~85% | 4.7x |
| PMax — display/video placements | £4,100 | £9,300 | 2.3x | ~60% | 1.4x |
| PMax blended (as reported) | £27,200 | £209,300 | 9.2x | n/a | 3.4x |
Finding 5.1 — 58% of PMax revenue is brand
Brand queries account for £121,600 of the £209,300 attributed to PMax. Strip them out and the campaign's reported 9.2x becomes 5.5x on the non-brand portion, before incrementality adjustment.
Finding 5.2 — Brand exclusions were never applied
No brand exclusion list exists at account or campaign level. This is a two-click change that has been available for the entire duration of the engagement.
Finding 5.3 — Display and video placements are draining the asset group
15% of PMax spend is going to low-intent placements returning 2.3x. There is no separate reporting on this in the monthly deck.
Finding 5.4 — Search Partners and Display are inflating the top line
Removing brand and low-intent placements would drop reported account ROAS from 5.9x to roughly 4.1x on paper, while increasing actual contribution. Any agency unwilling to make a number look worse in order to make the business more money is optimising for the report.
Section 06
Structural recommendations
Sequenced across 90 days, lowest risk first. Nothing in weeks 1 to 4 touches bid strategies during a trading peak; measurement and exclusions come before restructure.
| Phase | Action | Owner | Risk | Expected effect |
|---|---|---|---|---|
| Week 1 | Deduplicate purchase tag, strip VAT, shipping and discounts from value | Us + dev | Low | True baseline |
| Week 1 | Set purchase as sole primary conversion | Us | Low | Cleaner bid signal |
| Week 2 | Apply brand exclusions to Performance Max, launch capped brand Search | Us | Low | +£9,400/mo |
| Week 2 | Push COGS into the feed as custom_label_0 margin bands | Us + dev | Low | Enables POAS bidding |
| Week 3 | Exclude 612 zero-converting and disapproved SKUs | Us | Low | +£3,100/mo reclaimed |
| Week 4 | Enable enhanced conversions with hashed first-party data | Us + dev | Low | +6-9% attribution |
| Week 5-6 | Rebuild Shopping into five structures by commercial job | Us | Medium | Band-level control |
| Week 6 | Upload refund adjustments, re-baseline targets on net revenue | Us | Medium | +£4,600/mo |
| Week 7-9 | Move to POAS-based targets per band, retire flat 5.0x ROAS | Us | Medium | +£7,900/mo |
| Week 10-12 | Reallocate freed budget to impression-share-limited bands A and B | Us | Low | Contribution growth |
What we would not do
We would not restructure the account during peak trading weeks, would not test Demand Gen until measurement is trustworthy, and would not chase the reported ROAS number back up. It should fall before contribution rises.
What needs to come from your side
Cost of goods at SKU level, refreshed monthly. Return rates by category. Confirmation of the contribution margin floor the business needs after overhead. Without COGS, no agency can do this work honestly, including us.
Section 07
The straight recommendation
This account does not have a Google Ads problem in the way it is usually described. It has a measurement problem that created a mandate problem. The reported 5.9x is not real, the target that produced it was never derived from the P&L, and roughly 40% of the budget is buying revenue that costs the business money to fulfil.
None of that requires more spend to fix. At £46,000 per month the account has more than enough budget. Our modelled position at 90 days holds spend flat, reports a lower ROAS of around 4.1x, and delivers approximately £21,900 more monthly contribution. That is the trade this business should want.
To be straight about the alternative: an in-house marketer with a spreadsheet of COGS and two focused weeks could deliver leaks one and three themselves. They are not secret techniques. If you have that capacity internally, use it, and you will not need us for the first £14,000 per month of the recovery.
Where we would earn a fee is the part that keeps working after the fix: maintaining SKU-level commercial jobs across 2,300 lines as margins, stock and returns move week to week. That is ongoing operational work, not a one-off project, and it is the reason the gain compounds rather than decays.
Recommendation: fix measurement and brand exclusions immediately, whoever does it. Then decide on the structural work. If your current agency will action sections 01, 02 and 05 within 30 days, stay with them.
Every audit is this specific to the account. Book yours.
30-minute discovery call. No pitch, no obligation. Just an honest conversation about whether we can help.
Book a discovery callWorried about switching agencies mid-trading? Here's exactly how we take over an account →