How do returns affect ROAS?
Returns usually never reach Meta or Google Ads, so the ROAS they show still counts sales you later refunded. The ROAS you keep is lower, and because returns cost postage and handling, the ROAS you need to break even is higher.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free break-even ROAS calculator.
Returns usually leave the ROAS in your ad dashboards untouched. Meta and Google Ads count a purchase's value when the order is placed. Google Ads lowers it only if you upload an adjustment, and a Meta pixel value cannot go below zero. So if orders come back, the ROAS you keep is lower and your break-even line is higher.
The usual answer fits on one line: work out ROAS on net revenue, not gross. Fair enough, as far as it goes. It skips three things the formula never sees. The platforms never hear about the return. The return costs money on top of the lost sale. And it can land weeks after the ad was judged, scaled or paused.
What one store's data shows
One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts. It lists no refunds either.
| What the export shows | Value | Source cell |
|---|---|---|
| Break-even ROAS at a 40% margin (1 divided by 0.40) | 2.5x | Break-even sheet, 40% margin row |
| Journeys with 1 touch (0.5 days to buy) | 79.5% of revenue | Journeys sheet, 1 touch row |
| Touched view, all channels added together | 110.4% of revenue | Channels sheet, touched column total |
The first row is the one returns move. On the Break-even sheet, a 40% margin needs a ROAS of 2.5x, because 1 divided by 0.40 is 2.5. That line quietly assumes every euro a platform counted stays in your account.
Now run returns through it. Say a fifth of the value your ads claim comes back as refunds, and the items go back on the shelf. In this worked example, each claimed euro leaves 80 cents of sales and 32 cents of gross profit. Break-even on the dashboard ROAS becomes 1 divided by 0.32, about 3.1x, in this worked example. Suppose each return also costs a tenth of its value in postage and handling: the line moves to about 3.3x. In this worked example, the dashboard reads the same, yet the ads need about 3.3x where the Break-even sheet says 2.5x.
The second row is about timing. In this one store, journeys with 1 touch hold 79.5% of revenue, and those buyers took 0.5 days to buy (Journeys sheet). As far as GA4 could see, those sales were decided within about half a day. Ad platforms book a sale just as fast. A return cannot start until the parcel arrives, and Shopify's return windows run from delivery. So a platform's verdict on an ad is in long before its returns are.
The third row shows how one refund can flatter several channels at once. The touched view gives every channel full credit for each journey it touched, so it sums to 110.4% (Channels sheet). If a refund reaches no platform, every channel that touched the order keeps the whole sale.
What the export cannot show is the return itself: it lists no refunds, no spend and no costs. Whether a GA4 export reflects returns at all depends on refund events. GA4's Purchase revenue subtracts them, while Gross purchase revenue does not. And the Google & YouTube app's event list for Shopify stores has no refund event.
Why is net revenue only half the answer?
The platforms keep the first number. Google Ads changes a conversion only when you upload a restatement or a retraction, keyed to the order ID. A restatement lowers the value after a partial return; a retraction removes the conversion. Meta's list of standard events has no refund event, and a pixel event's value must be zero or more.
A return costs money of its own. Shopify's Return fees are what you charge the customer, such as a restocking fee. Whatever you do not pass on comes out of your margin: postage, handling and stock you cannot resell. That is why the line rises by more than the refund alone.
Returns are not spread evenly. Google's own example is a shopper who orders shoes in different sizes and returns the ones that don't fit. Products like that pull refunds into the campaigns that sell them. For illustration, two campaigns both show 4x. In this worked example, 30% of one campaign's sales come back and 5% of the other's, so they keep 2.8x and 3.8x. The dashboard calls them equals.
The timing works against your bidding. Shopify shows a reversal as a negative value on the day it is processed, not on the order's date. Google Ads accepts adjustments within 54 days, but its automated bidding only reads those made within 7 days of the conversion. A refund that lands in week three fixes your report and teaches the bidding nothing.
What does ROAS after returns still not tell you?
It tells you what you kept, not what the ad caused. A buyer who was coming anyway can buy, keep the item and still be booked to the ad. To learn whether an ad added sales, compare people or regions that saw it with ones that did not. That is a holdout test, and it should count sales after your return window too.
What to do this week
- Put a number on your returns. In Shopify, go to Analytics, then Reports, and open Total sales by product in the Sales category. In the Filters menu, add Is reversed, set it to Yes, and pick last quarter's dates. Pass: you can say what share of gross sales came back. Fail: you cannot, so every ROAS target you hold rests on sales you did not keep.
- Move your break-even line. Multiply your margin by the share of sales you keep, then subtract return costs as a share of sales. Divide 1 by the result. Pass: your ROAS targets sit above the new line. Fail: some campaigns sit between the old line and the new one, so they lose money once refunds land.
- Check whether Google Ads hears about returns. In Google Ads, open Campaigns, click the segment icon, choose Conversions and then Conversion adjustment. Pass: rows show adjustments next to the original value. Fail: nothing was adjusted, so every refunded order still counts at full value.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: How to adjust your conversions (Google Ads Help); About conversion adjustments (Google Ads Help); Understand the impact of conversion adjustments (Google Ads Help); Specifications for Meta Pixel standard events (Meta Business Help Center); Set the value and currency of your Meta Pixel standard events (Meta Business Help Center); Analytics dimensions and metrics (Google Analytics Help); Shopify event parameters (Google for Developers); Sales reports (Shopify Help Center); Setting up return and cancellation rules (Shopify Help Center).
Related answers
Frequently asked questions
Should my ROAS target cover returns?
Yes, if you judge ads on the platforms' own numbers. Meta and Google Ads count sales before returns, so set the line on what you keep. Divide 1 by your margin times the share of sales you keep. If you judge ads on Shopify's net sales instead, the plain break-even line already fits.Can I send refunds back to Meta?
Not through the pixel's standard events. Meta's list of standard events has no refund or return event, and an event's value must be zero or more. So Meta keeps the purchase value it first counted. Correct Meta's ROAS in your own sheet by multiplying it by the share of sales you keep.When can I judge a campaign's ROAS if customers return items?
Once the return window for its orders has closed. In Shopify, a return window starts at delivery and can be 14, 30 or 90 days, or a custom length. Refunds then show on the day they are processed, so read the campaign's month again after that window.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- ConversionConversion is a specific, desired action a user takes in response to a marketing message, such as a purchase or a sign-up.
- DashboardsDashboards are graphical user interfaces that provide at-a-glance views of key performance indicators (KPIs). They monitor campaign performance and visualize attribution insights.
- Google AdsGoogle Ads is an online advertising platform where advertisers bid to display ads, service offerings, and product listings.
- Google AnalyticsGoogle Analytics is a web analytics service that tracks and reports website traffic.
- Holdout TestA holdout test is an experiment where a portion of the audience does not see a campaign. This measures the campaign's true incremental impact.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Return on Ad Spend (ROAS)Return On Ad Spend (ROAS) measures the total revenue generated for each dollar spent on advertising. It indicates campaign profitability and effectiveness.