Skip to content

How returns quietly eat your ROAS

Every return is a sale the ad platform still counts. The gap between the ROAS on your dashboard and the money in your account shows up weeks later, and it is never spread evenly across campaigns.

By cartscaling Reviewed 6 min read
How returns quietly eat your ROAS: a delivery center worker is using tape to pack shipment.

Your ad platform reports revenue at the moment of checkout. Your returns arrive two, four, sometimes eight weeks later, and they arrive by email or by courier, nowhere near the campaign that caused them. Nothing in the default setup ever connects the two.

So the number you optimise on is gross. The number you live on is net. For a store with low returns the gap is a rounding error. For anything sized, styled, coloured or bought on impulse, the gap is the difference between a campaign you should scale and one you should switch off.

The argument here is not that returns are bad. Generous returns are often why people buy at all. The argument is that returns are unevenly distributed across products, audiences and campaigns, and that pretending they are spread evenly means you systematically overspend on the traffic that sends the most parcels back.

Platforms report the sale, refunds land somewhere else

The mechanics are simple and they are the whole problem. A purchase event fires on the thank-you page with a value attached. That value goes to the ad platform and gets credited to whichever campaign, ad set and creative the platform believes earned it. The event is never revised.

When the customer sends the item back, the refund happens in your commerce platform and your payment processor. Unless you have deliberately built a path for that information to travel back, the ad account never learns about it. The campaign keeps its credit. Smart bidding keeps optimising towards it.

That matters more than it sounds, because automated bidding is trained on the values you send it. If you feed it gross revenue, it will find more of the customers who generate gross revenue, which includes the ones who order three sizes and keep one. The system is doing exactly what you asked. You asked the wrong question.

The same gap shows up in analytics. Your reporting tool usually shows purchases, not net purchases, so the whole reporting stack agrees with itself and quietly disagrees with your bank.

Gross ROAS tells you what people ordered. Net ROAS tells you what you kept.

Returns are not spread evenly, which is why averages hide the leak

A single store-wide return rate is close to useless for decisions. What matters is where the returns concentrate, and they concentrate in patterns you can predict.

By product, fit-dependent and colour-dependent items come back more than items with one size and one finish. By category, a line with inconsistent sizing across suppliers will bring back parcels that a standardised line does not. By channel, traffic from broad prospecting and from heavily discounted promotions tends to return more than traffic from branded search, where the buyer went looking for you by name.

By behaviour, bracketing is its own category. A customer who orders two or three variants intending to keep one is a perfectly good customer, but every order they place inflates the revenue credited to the ad that reached them.

By season, gift periods and end-of-season clearance both produce a return wave weeks after the spend that created them, which is exactly when you are reading last period's results and deciding what to do next.

Until you cut returns by product, campaign and audience, you are managing an average that describes no part of your business.

Work out your net number once, then keep using it

You do not need new software to start. You need one calculation and the discipline to use it instead of the one on the screen.

Here is a worked example with invented numbers. Say a campaign spent 5,000 dollars in a month and the ad platform reports 20,000 dollars of revenue, so the reported return on ad spend is four to one. Now say a quarter of the revenue from that campaign came back as returns. Real revenue is 15,000 dollars, so the true return on ad spend is three to one.

Then take it one step further, because revenue is not money either. Say gross margin on the kept orders is 45 percent, giving 6,750 dollars, and each return costs 8 dollars in return shipping and handling. At an average order of 80 dollars, 5,000 dollars of returns is roughly 62 parcels, which is about 500 dollars of handling. That leaves 6,250 dollars of contribution against 5,000 dollars of spend.

The campaign is still profitable in this example, but only just, and it looked twice as good on the dashboard. Run the same three lines on your own campaigns and the ranking usually changes.

Feed returns back into bidding, not just into reporting

Knowing the net number is worth little if the bidding system never sees it. There are a few honest ways to close the loop, in rising order of effort.

The simplest is to adjust your targets. If you know that a category returns at a rate you can measure, set the target return on ad spend for that category higher by the same proportion, so the automated system is aiming at a number that already accounts for the parcels that come back.

The better route is to send the correction. Both major ad platforms accept adjustments or offline conversion uploads that revise the value of a past conversion, which is how a refund can reach the campaign that earned the credit. It takes a scheduled export from your commerce platform and a mapping between order and click identifier, and it needs someone to keep it running.

The cleanest version is to stop sending revenue at all and send contribution instead. Pass the value of an order net of product cost, so the system optimises towards profit from the start, then apply refunds on top of that. This is more work to set up, and it changes what your reported numbers mean, so everyone who reads them needs to know the definition changed.

The cheapest fix is usually on the product page

Adjusting bids handles the accounting. It does not reduce the number of parcels coming back, and reducing that number is worth more, because a return costs you the outbound shipping, the return shipping, the handling, the restocking and often the resale value.

Most avoidable returns come from a gap between what the page promised and what arrived. So the fixes are page-level and unglamorous. Real measurements next to the size chart, taken from the garment rather than copied from a supplier. Photographs in ordinary light rather than studio light, so the colour is not a surprise. A stated model height and the size worn. Weight, dimensions and materials in text. Video that shows scale.

Reviews earn their keep here too, because a review that says it runs small does more to prevent a return than any policy page.

Then check the pattern in your own return reasons. If your platform collects a reason code, read it monthly and fix the top one. If it does not collect a reason, start collecting it. That single field is the difference between guessing at why parcels come back and knowing which page to rewrite.

What we do with this when we plan a store

When we write a growth plan for a store with meaningful returns, we do not treat ads and returns as separate topics, because they are one number pretending to be two.

We ask for return rate by product line and, where the data allows it, by channel. We rebuild the return on ad spend calculation on a net basis so the plan compares campaigns on what they actually contributed. We check whether the biggest returning products are also the products taking the most budget, because that combination is common and expensive. And we look at the product pages behind those lines before we look at the campaigns behind them.

Sometimes the conclusion is to spend less in one place and more in another. Sometimes it is that the product page needs measurements and better photography before any budget change makes sense. Occasionally the conclusion is that a product line is not worth advertising at all at its current return rate, and that is a legitimate answer.

What we will not do is show you a return on ad spend that ignores the parcels coming back through your door. A number that flatters the work is not a number worth reporting.

Related

Your plan is free.

A person reads it. You keep the plan. No logins, no call first.

Store, name, email and phone. A person replies from a real inbox. Privacy

Get your free growth plan