Home/Work/D2C fashion brand, US and UK
Case studyD2C fashion brand: 2.1x to 4.6x ROAS in 120 days.
Client: D2C fashion brand, US and UK. 40-product catalog, AOV around $150.
Channels: Meta, TikTok · Window: 120 days
Where the account started.
The brand had been on Meta for three years and added TikTok in the last quarter. Spend sat at $38k per month. Blended ROAS had slid from 3.1 to 2.1 over two quarters, and the previous agency reported a platform ROAS of 3.4 that finance could not reconcile with Shopify.
What the audit found.
- Pixel and CAPI both fired with no shared event_id. Meta reported roughly 22% more purchases than Shopify.
- Seven prospecting ad sets overlapped on the same lookalikes, pushing CPMs up 26% in 90 days.
- Two hero creatives held 81% of spend. Frequency was 4.2 on prospecting.
- TikTok ran repurposed Instagram ads. Hook rate averaged 14%.
- Nobody owned a nCAC target. Budget was raised when ROAS looked fine and cut when it did not.
The work, in order.
Audit
Reconciled Meta, TikTok and Shopify orders. Found a 22% over-report. Set a nCAC ceiling of $45 from the margin structure.
Rebuild
Fixed event_id deduplication. Collapsed seven prospecting ad sets into two. Created an Advantage+ Shopping campaign for the top 12 products.
Creative sprint
Mined 400 reviews for three angles: fit, fabric and value per wear. Shipped 12 variants per month. Introduced a 7-day keep-or-kill rule.
TikTok
Signed five creators with usage rights and Spark codes. Rebuilt hooks until hook rate cleared 28%.
Scale
Moved budget weekly against nCAC bands. Raised spend from $38k to $61k per month with nCAC falling.
Before and after.
Backend-reconciled figures over the window above.
| Metric | Before | After | Change |
|---|---|---|---|
| Blended ROAS (backend) | 2.1x | 4.6x | +119% |
| Monthly ad spend | $38,000 | $61,000 | +61% |
| nCAC | $71 | $38 | -46% |
| Meta Event Match Quality | 5.9 | 8.7 | +2.8 pts |
| Prospecting CPM | $31.40 | $24.10 | -23% |
| TikTok hook rate | 14% | 31% | +17 pts |
| Creative winners per month | 1 | 4 | +3 |
Illustrative sample. Results depend on offer, margins, creative and budget.
“The first week they told us our Meta numbers were about 22% too high. That was uncomfortable and exactly what we needed. Now the ROAS number in the report matches the one our finance lead sees.”
Steal this for your account.
- Reconcile platform orders to your backend before changing any ad. If the gap is above 10%, fix tracking first.
- Set a nCAC ceiling from margin, not from last month's performance.
- Consolidate overlapping prospecting ad sets. Fewer, larger ad sets learn faster.
- Judge TikTok creative on hook rate in the first 72 hours, then spend behind the winners.
Read the next case.
B2B SaaS: cost per SQL down 38% in 90 days
Cut broad-match waste, moved optimisation from form fills to SQLs, and split brand from non-brand.
Read the case studyLocal home services: 5.2x booked-job ROAS
Call tracking tied to booked jobs, geo-tiered budgets and a two-hour speed-to-lead rule.
Read the case studyFind the leak before you spend another dollar.
Free audit of your Meta, Google or TikTok account. Written findings in two business days. No pitch deck.