Case study · Apparel e-commerce · 2022–2026
Revenue kept climbing. Margin didn't. Here's what we found.
Four years running the full digital stack for a medical apparel retailer — and the one change that lifted their keep rate 18% in two months without touching the budget.
The build: one channel at a time
Paid went from nothing to 42% of site revenue over four years.
When we took over paid search in 2022, this retailer had almost no paid acquisition. Four years later, paid drives 42% of their site revenue, organic another 30%, and the business has passed a million dollars a year online.
We didn't diversify early. Each channel was added only once the previous one stopped returning, which is why the compounding held for four consecutive years rather than flattening in year two.
| Year | What we added | Spend | Revenue | Growth |
|---|---|---|---|---|
| 2022 (7 mo) | Paid search, built from zero | ~$2K | ~$10K | — |
| 2023 | Scaled search; account rebuilt | ~$14K | ~$50K | 5× |
| 2024 | Paid social added | ~$31K | ~$146K | 2.9× |
| 2025 | Both scaled; SEO built out | ~$68K | ~$290K | 2× |
| 2026 | Keep-rate optimization, site rebuild | ~$10–12K/mo | ~$70–87K/mo | run rate ~$850K+/yr |
Paid social launched with two years of search data behind it — we already knew who converted, so the social account never started cold. SEO came last and now carries roughly a third of site revenue, which is what pulled blended acquisition cost down.
Year three: the numbers stopped agreeing with each other
Revenue up, ROAS healthy, margin flat. The gap was hiding after the order.
Revenue was up. ROAS looked healthy. Margin was flat, and had been for two quarters. The client's read was that traffic quality had slipped — that we were buying worse customers than before. It's the natural conclusion, and it was wrong. The traffic mix had barely moved. What had moved was what happened after the order.
| Year | Returns |
|---|---|
| 2022 | 5.9% |
| 2023 | 5.4% |
| 2024 | 18.0% |
| 2025, Q1 | ~21% |
Nearly a fourfold increase in two years, invisible in every advertising report because advertising reports count orders placed. Then we cut it by product category, and the cause stopped being a mystery.
| Category | Returns | Has a size? |
|---|---|---|
| Lab coats | 21.3% | Yes |
| Pants | 19.7% | Yes |
| Tops | 19.1% | Yes |
| Jackets | 7.4% | Loose fit |
| Caps | 6.4% | No |
| Bags | 6.1% | No |
Everything with a size on the label came back at three times the rate of everything without one. No ad platform picks the customer's size — so this was never going to be solved by changing targeting.
What we changed
Three moves — none of them about targeting.
Told the ad platform what actually counts
Conversions had been firing the moment an order was placed. We rewired it: the CRM now sends the conversion only once the order is kept — net of returns and refusals — as an offline conversion back into the ad platform and the social pixel. The bidding algorithm stopped optimizing toward people who click buy and started optimizing toward people who keep what they buy.
Moved the size decision ahead of the shipment
Rebuilt the size chart. Wrote a real fit guide for each cut and fabric instead of one generic table. And had the care team call buyers whose order sat on a size boundary — before it shipped, not after it came back.
Changed what the monthly report shows
Every report now leads with revenue net of returns and the ad cost of sale against it. The client stopped making budget decisions from a number that ignored a fifth of the orders.
Same budget, same catalog, same campaigns. The only thing that changed was which orders the algorithm was told to value.
Where the account stands now
Fifth year of the engagement. Every channel still running.
| Monthly ad spend | ≈ $10–12K |
| Monthly ad-attributed revenue | ≈ $70–87K |
| ROAS | 7.2 |
| Ad cost of sale | 14% |
| Paid share of site revenue | 42% |
| Organic search share | 30% |
| Scope today | Paid search · paid social · SEO · generative search · analytics and CRM integration · technical support · full site rebuild |
The engagement is in its fifth year. We still run every channel.
Why this generalizes
Nothing in the fix was specific to medical apparel.
It applies to any category where the customer picks a size and can be wrong about it: scrubs and uniforms, workwear, footwear, dancewear, activewear.
Across apparel e-commerce, roughly a fifth to two-fifths of what ships comes back, and about half of that is size and fit — the single largest cause of returns in the category. Meanwhile every major ad platform optimizes toward the order, not the kept order, unless you deliberately tell it otherwise. Almost nobody does, because it requires the retailer's returns data and most agencies never ask for it.
ROAS counts orders placed. If a fifth of them come back, ROAS doesn't move but the money does. Nothing in the dashboard is wrong — it's measuring the wrong moment.
Selling apparel where size matters?
We'll look at your return rate by category and acquisition channel and tell you what it's costing. Twenty minutes, no preparation needed.
Book a call