Including Returns and Refunds in Marketing ROI

Metricuno
July 2, 2026
6 min read
Including Returns and Refunds in Marketing ROI — Ignoring 15-30% return rates overstates marketing ROI by up to 1.4x. Here's how to factor returns into ROI and back-fill historical net revenue.
Quick answer

Apparel and footwear stores routinely overstate marketing ROI by a full multiple because return rates are ignored in the numerator. Here's the audit and the fix.

Quick answer

If your return rate is above 10%, load net-of-returns revenue into your ROI calculator — not gross checkout revenue. For an apparel store returning 28% of units, that single change cuts reported marketing ROI by roughly 1.4x and often reorders which paid channels are actually profitable.

Definition
Marketing measurement

Including Returns and Refunds in Marketing ROI

Adjusting marketing ROI so the revenue numerator reflects money you actually kept after returns, refunds, and return shipping costs.

Most stores calculate marketing ROI against gross checkout revenue — the number Shopify shows at the moment of purchase. In categories where 15-30% of units come back, that number is fiction by week four. Including returns means swapping in net-of-returns revenue: gross revenue minus refunded order value, minus return shipping and restocking costs, over the same window your ROI is measured.

The adjustment matters most for apparel, footwear, and fit-sensitive verticals, where the gap between reported and realised ROI can exceed 40%. It also matters for first-time-buyer cohorts, which return more than repeat buyers and therefore inflate new-customer acquisition ROI when returns are ignored.

Also known as
Net-of-returns ROI
Return-adjusted marketing ROI

The reason this matters isn't accounting hygiene. It's that gross-revenue ROI silently rewards the channels that drive the most returnable orders — often broad-audience paid social — and punishes channels that drive fewer, higher-intent orders like branded search or email.

Why gross-revenue ROI overstates the truth

Return rates aren't uniform. An apparel store averaging a 28% unit return rate might see 35-40% on dresses and 12% on accessories. A footwear brand can hit 30% on new-customer orders and 18% on repeat. The ROI you report is a blended lie made of very different underlying numbers.

Compounding that, return shipping is usually free to the customer and costs the brand €6-€12 per return. Restocking and re-inspection adds another €2-€5. So a €90 dress returned isn't a €90 write-back — it's roughly €98-€107 of contribution lost against the ad spend that drove it. The comparison of Gross Revenue ROAS vs Net-Of-Returns ROAS makes this stark at the channel level.

The 1.4x overstatement

A Meta campaign showing a 3.2x gross ROAS on apparel typically lands at 2.1-2.4x once you subtract returns and return-shipping costs. If your payback threshold is 2.5x, that campaign just flipped from winning to losing — but your dashboard still shows green.

How to detect the gap in your own data

Run a two-column audit for the last 90 days. Column A: revenue attributed to each paid channel, straight from your ads platform or GA4. Column B: the same orders, minus any refund posted within 45 days of order date. The ratio B/A is your net-revenue recovery rate. Anything below 85% for apparel or 90% for beauty means your ROI reporting is materially wrong.

To back-fill this without months of manual work, pull refund events from your Shopify order data and rejoin them to the original order's UTM or click ID. Our guide to back-filling historical returns from Shopify order data walks through the exact query and the join keys that survive Shopify's refund partial-fulfilment quirks.

Benchmark

Typical return rates and ROI overstatement by DTC vertical

VerticalUnit return rateRefund shipping cost per returnROI overstatement if ignored
Apparel (women's)25-35%€7-€101.35-1.45x
Footwear20-30%€8-€121.30-1.42x
Beauty / skincare3-6%€4-€61.05-1.08x
Home & decor8-12%€10-€181.12-1.20x
Electronics accessories10-15%€6-€91.15-1.22x

How to load net-of-returns revenue into ROI

The mechanical fix is three steps. First, pick a return window that covers 90%+ of your actual return distribution — for most apparel brands that's 45-60 days from order date, which is why the return-window lag for net revenue reporting is a decision worth making explicitly rather than by default.

Second, separate exchanges from refunds. An exchange keeps the revenue; a refund doesn't. Treating them the same either understates ROI (if you write back exchanges) or overstates it (if you ignore refund-with-store-credit as a refund). Third, load the resulting net revenue into your ROI calculator's numerator, alongside a contribution-margin adjustment for return shipping.

What changes on your dashboard

Once net-of-returns ROAS is live, expect your channel ranking to shift. Branded search and email usually climb because their return rates run 30-50% lower than cold paid social. Broad-audience Meta prospecting often drops one or two positions. That reordering — sometimes dramatic — is the whole reason to do this work.

Experiment ideas once you can see net ROI

With return-adjusted numbers in hand, three tests usually pay for themselves fast. Reallocate 15-20% of spend from your highest-return-rate channel to your lowest, hold volume flat, and measure net contribution over 60 days. Suppress bottom-quartile-fit SKUs from prospecting audiences. And bid up on repeat-buyer lookalikes, whose realised return rate is typically half that of pure cold traffic.

For deeper cuts, look at first-time-buyer cohorts specifically — their return behaviour distorts new-customer ROI more than any other segment. And if you offer free returns, the cost of that policy belongs inside contribution margin, not in a separate ops budget where marketing never sees it.

Frequently asked

Frequently asked questions

For most Shopify stores you can do it in a spreadsheet. Export orders and refunds for the last 90 days, join on order ID, subtract refunded amount from order revenue, and group by UTM source. It's a two-hour job the first time and 15 minutes monthly after that.

Above 10% blended, it's worth doing. Below 8%, the ROI adjustment is inside the noise of your attribution error. Apparel, footwear, and fit-sensitive categories are almost always above the threshold; beauty and consumables usually aren't.

No — an exchange keeps the revenue, just against a different SKU. Only refunds and store-credit-with-no-second-purchase should reduce your ROI numerator. Treating exchanges as returns will understate marketing ROI and can wrongly kill profitable campaigns.

Pick the window that captures 90% of your actual returns. For apparel and footwear that's usually 45-60 days from order date. Shorter windows understate return rates; longer windows delay your reporting so much that the numbers are useless for weekly optimisation.

Frequently. In apparel we see channel rankings reorder about 40% of the time once returns are factored in. Branded search and email typically move up; broad prospecting on Meta and TikTok typically move down.

Add it to contribution margin, not to a separate ops line. Every returned order costs €6-€12 in shipping plus €2-€5 in handling; that's a marketing-attributable cost because marketing drove the order. Loading it into contribution margin puts it in front of the person deciding channel spend.

Yes, typically 1.5-2x more in apparel and footwear. First-time buyers are still learning fit, brand sizing, and colour accuracy. That's why new-customer ROI calculated on gross revenue is the most overstated number on most DTC dashboards.

At least 6 months, ideally 12. You need enough history to see seasonal patterns — holiday gifting returns spike in January, swimwear in September — and to build a reliable per-channel return rate you can apply going forward.

Most don't natively. The workaround is to feed adjusted revenue back in as a custom conversion or offline event using order ID as the key. GA4 accepts refund events via Measurement Protocol; most paid platforms accept adjusted values via their offline conversion APIs.

Less so. Subscription categories have return rates typically under 3%, so the ROI adjustment is small. The equivalent adjustment for subscriptions is churn-adjusted LTV, which serves the same purpose: reporting a realised number instead of a promised one.

Track CAC, channels, and funnel conversion in one place

Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.