Benchmarks / DTC / Issue 08

DTC shopping: the margin
squeeze in three charts.

Reported ROAS across DTC shopping campaigns rose 8% quarter on quarter. Contribution margin, on the same cohort, fell 3%. The difference lives in the returns line — and nobody in the sector is talking about it enough.

By Malachi Osgood14 min readBenchmarkIssue 08
Cover

The Bidfloor DTC cohort now runs to 51 accounts, spanning apparel, home, personal care, food and drink, and specialist accessories. Combined quarterly paid-search-and-shopping spend across the cohort is approximately £62m. We collect not only auction data but, from the accounts that will share it, downstream order data, return rates, and contribution margin at the campaign level. The last of these is the number that produced this piece.

Chart one: the ROAS line

Reported shopping ROAS across the cohort rose from a Q1 2026 median of 4.2 to a Q2 2026 median of 4.5 — an 8% quarter-on-quarter lift. The lift is broadly consistent with what we saw in Q4 2025 (7% QoQ) and Q1 2026 (5% QoQ). The trailing four-quarter increase is approximately 24%. If you ran the DTC shopping function purely on this line, you would conclude the auction is producing an improvement in efficiency.

The auction, on inspection, is not producing that improvement. Two mechanisms account for most of the reported increase. The first is the ongoing expansion of Google's modelled-conversion share, which in the shopping context effectively adds credit to the platform for conversions the platform could not directly observe. The second is a compositional shift within our cohort — a small number of accounts increased their share of higher-AOV product feeds during the quarter, which pushed the median up without any change in per-order economics.

Neither of these represents an improvement in the profitability of the paid function. Both of them show up as an improvement in the reported ROAS line.

Chart two: the returns line

Where the reported ROAS line has been rising, the returns line — the share of orders subsequently returned within 90 days — has also been rising. Across the 34 accounts in our cohort that share returns data, the median 90-day return rate rose from 21% in Q2 2025 to 27% in Q2 2026. In apparel specifically, the median rose from 32% to 39%. In home, from 12% to 15%. In food and drink, essentially flat (which is a feature of the category, not of the paid function).

Returns matter for a specific reason that is easy to lose sight of when you're looking at the ROAS line. The platform's reported conversion is booked when the order is placed. The margin is booked when the order is either kept or refunded. When return rates rise faster than reported ROAS, the paid function looks more productive on the dashboard while producing less contribution margin at the till. The gap is real, it is growing, and it is under-attributed to the paid function in most of the accounts we work with.

The mechanism, on our inspection of the campaign-level data, is that automated bidding — target ROAS and its Performance Max cousin — optimises against a conversion event that does not include the eventual return. In accounts where return rates are stable, this is fine. In accounts where return rates are rising, the automated bidder is progressively over-weighting the least profitable segments of the customer base, because those segments produce the highest gross ROAS before the return processes through.

Chart three: the margin line

The number that ties the first two together is contribution margin per pound of paid media. On our cohort, we compute this by taking net revenue (gross revenue minus returns minus refunds), subtracting gross COGS, subtracting shipping and fulfilment, and dividing by the paid media spend in the same period.

Across the cohort, this number fell from a Q2 2025 median of £2.90 to a Q2 2026 median of £2.72 — a 6% decline. The picture varies substantially by category. In apparel, contribution margin per pound of paid media fell 11%. In home, 4%. In food and drink, essentially flat. In personal care, marginally up.

The correlation between category-level return-rate increase and category-level contribution-margin decrease is, in our sample, approximately 0.71. This is not a randomly noisy relationship. Where returns are rising fastest, margin per paid pound is falling fastest, and the ROAS line is doing the least to signal it.

"The DTC dashboard has, in the last twelve months, quietly decoupled from the DTC balance sheet. The paid function is being credited for a level of productivity the underlying orders are not delivering. In three or four quarters this will show up as an unpleasant board conversation. Better to have the conversation now."

What's causing the returns rise

We have spent some time trying to disentangle the drivers, without full confidence in any single answer. Three factors, however, showed up repeatedly in our conversations with the paid leads in the cohort.

The first is the ongoing expansion of platform-driven creative automation. Performance Max, Advantage+ Shopping, and their peers produce large volumes of ad variants and land customers on landing pages the customer may not have specifically sought. The returns behaviour of those customers is, on the accounts that have measured it, materially worse than the returns behaviour of customers who arrived via more deliberate paths.

The second is the rise in buyer expectation around free returns. In categories where free returns are the norm, return rates are simply higher than they were three years ago because the friction of returning has fallen. This has structural implications for how the paid function should think about the customers it acquires.

The third — and this is the one that most surprised us — is a modest rise in outright fraud and abuse. Wardrobing (buying, wearing, returning), serial returning, and platform-side promotional abuse are all up in the accounts that measure them, and the paid function is disproportionately exposed to these behaviours because paid-acquired customers are, on average, less loyal than organically-acquired ones.

How to reflect this in the dashboard

The immediate practical move for a DTC paid function is to reflect the returns line in the primary dashboard read. This can be done in either of two ways.

The first is to build a return-adjusted ROAS in analytics, using a 90-day trailing view. This is technically straightforward, produces a number that lags the campaign by three months, and is more honest than the platform-reported line.

The second is to push the platform's own conversion definition to include a returns-aware event — most modern ad platforms now support this, in some form, via the enhanced-conversions or offline-conversion APIs. This is harder to set up, but once in place it feeds the automated bidder a target that is closer to the true margin the account is producing.

Neither is a full solution. Both are meaningful improvements over the default. The accounts in our cohort that have moved to a return-adjusted view over the last six months are, without exception, spending less than they were before the switch, on a smaller subset of campaigns, at a materially higher contribution margin. The paid function looks smaller on the dashboard. The business looks better on the P&L. That trade, in the current environment, is the right one.