Adjusting Target ROAS When Return Rates Creep Above Forecast

A practical playbook for re-baselining target ROAS when net returns start eroding the contribution margin you priced ads against — with category-specific triggers and a bidding-switch checklist.
Quick answer
If your rolling 30-day return rate is running more than ~2 percentage points above forecast, raise target ROAS by roughly the same percentage as the return-rate gap — then switch bidding from gross-ROAS to net-ROAS once the new rate has held for two full purchase-to-return cycles. Do not wait for margin reports; by then you've overspent.
Adjusting Target ROAS When Return Rates Creep Above Forecast
Re-baselining target ROAS upward when net returns erode the contribution margin you originally priced ads against.
Target ROAS is set against an assumed net revenue — gross sales minus returns, refunds, and reverse-logistics cost. When actual return rates drift above the rate baked into your target, every gross-ROAS number Meta and Google report is optimistic. Ad spend continues at levels that were profitable at a 12% return rate but are underwater at 18%.
Adjusting for the creep means three things: fixing the numerator (net revenue, not gross), moving the target upward proportional to the gap, and — once the pattern is stable — switching bidding platforms from gross-ROAS to net-ROAS signal.
This page assumes you already have a target ROAS in market and a return-rate forecast that was reasonable at the time it was set. The problem is drift — the forecast is stale, and paid spend hasn't caught up.
Why return-rate creep quietly breaks your ROAS math
Meta and Google report ROAS on gross conversion value — the order total at checkout. Returns happen 7 to 45 days later, off-platform, and never flow back into the bidding signal unless you explicitly send them.
So a Shopify apparel store bidding to a 3.0 gross-ROAS target with a 15% return-rate assumption is actually bidding to a 2.55 net-ROAS. If real returns run 22% instead, net-ROAS is 2.34 — a 12% gap on contribution margin. That's the mechanism the finance team spots six weeks late in the P&L. See the child page on the ROAS numerator for a deeper walk-through of gross vs net revenue accounting.
The lag trap
Returns for an order placed today show up in your warehouse 2-6 weeks later. If you only look at last-30-days return rate, you're measuring returns against sales from a mostly-different cohort. Use return rate by order cohort, not by return date.
How to detect creep before the P&L does
Track return rate on a rolling 30-day order cohort basis, segmented by category. A single blended number hides the problem — apparel returns move 3-4x more than beauty, and averaging them cancels the signal you need to act on.
The trigger heuristic most performance teams use: if a category's rolling return rate sits 2+ points above the forecast used to set target ROAS for 14 consecutive days, reset the target. One-day spikes are noise; two weeks is a pattern. The child page on variance thresholds covers when to use 2 points versus 3.
Typical return rates and target-ROAS sensitivity by category
| Category | Typical return rate | Rate creep that matters | ROAS reset size |
|---|---|---|---|
| Apparel (fashion) | 20-30% | +2-3 pts | +8-12% |
| Footwear | 18-25% | +2 pts | +7-10% |
| Beauty & skincare | 4-8% | +1 pt | +2-3% |
| Home & décor | 8-14% | +2 pts | +4-6% |
| Consumer electronics | 10-16% | +2 pts | +5-8% |
How to reset the target and switch bidding
Step one is arithmetic. New target ROAS = old target × (1 − old return rate) ÷ (1 − new return rate). A 3.0 target built on 15% returns, now facing 22% returns, becomes 3.0 × 0.85 ÷ 0.78 = 3.27. Push that into Meta and Google the day the 14-day trigger fires.
Step two is signal. Send refund events back to the ad platforms as negative conversion value — Meta's Refund event and Google's cart-data / conversion adjustments both accept this. Once the platform sees net revenue directly, you can switch tROAS bidding from gross to net. The switching-to-net-ROAS-bidding child page walks through the exact tag setup for Shopify and WooCommerce.
Don't switch mid-learning
If a campaign is still in learning phase (typically <50 conversions in 7 days), changing the tROAS target OR the conversion signal restarts learning. Reset the target first, wait for the campaign to re-stabilise (7-14 days), then swap gross for net. Doing both simultaneously blinds you to which change caused the CPA move.
Experiments worth running before you re-baseline everything
Before rolling the new target across every campaign, split-test it on your top-spend ad set for 10-14 days. Hold a control campaign at the old target and compare net-revenue-after-returns per euro spent — not gross-ROAS, which will make the new target look worse by definition.
Then attack the return rate itself in parallel: size-guide overlays on PDP, better fit imagery, and a 'similar sizes' recommendation on out-of-stock variants typically pull apparel return rates down 1.5-3 points within a quarter. Every point you claw back is a point you don't have to price into target ROAS.
Frequently asked questions
The common rule is 2 percentage points above forecast, sustained for 14 days on a rolling order-cohort basis. Higher-margin categories can tolerate 3 points; thin-margin apparel should react at 1.5. Any single-day spike below that window is noise from small-sample variance.
Net ROAS if you can send refund events back to Meta and Google reliably — it's the metric that matches your P&L. Gross ROAS is acceptable as a bidding target only when return rates are stable and you've built the offset into your target number. Once returns become volatile, gross-ROAS bidding overspends.
Rarely. Beauty and skincare typically run 4-8% returns, so a 1-point creep only shifts contribution margin by ~1%. You'd move target ROAS by 2-3% at most, which is inside the noise band of most bidding algorithms. Apparel is the category where this matters.
New target = old target × (1 − old return rate) ÷ (1 − new return rate). Example: 3.0 target at 15% returns, now facing 22%, becomes 3.0 × 0.85 ÷ 0.78 = 3.27. This holds contribution margin per ad euro constant.
Check the trigger metric weekly, reset when it fires. Most healthy programs reset target ROAS 2-4 times a year — seasonally (Q4 apparel returns spike), after a new category launch, and after any major creative or landing-page change that shifts buyer intent.
Yes, and that's the point — the volume you'd cut was unprofitable at the new return rate. What you want to avoid is cutting the target so aggressively you also lose profitable volume. That's why the 2-point trigger and the arithmetic formula matter; they raise the target by exactly what returns took away, no more.
Q4 return rates for apparel typically run 4-8 points higher than the annual average because of gifting, size uncertainty on gifts, and post-holiday remorse. Bake this into the target ROAS you set for October-January; don't wait for the January return wave to react. There's a dedicated child page on Q4 return-rate seasonality.
Yes, if you're on Shopify, WooCommerce, or Magento with a modern pixel/GTM setup this is a 30-minute job. Meta accepts a Refund event with negative value; Google supports conversion adjustments via the Enhanced Conversions API. Both platforms improve bidding accuracy once they see net revenue directly.
Yes — arguably more, because those campaigns bid harder on the signal you send. If PMax only sees gross value, it will chase gross conversions across audiences where return rates are highest. Feeding it refund adjustments materially changes the audience mix it builds.
Target ROAS is set to hold contribution margin per ad euro constant. When return rates rise, contribution margin per gross euro of ad-driven revenue falls, so target ROAS must rise to compensate. Run the numbers through a contribution margin calculator before you set the new target; the two decisions are the same decision.
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.