Meta & Facebook Ads
4 min read
Ads Manager counts the purchase. It never sees the return. So a product running at a 2.8 ROAS with a 30% return rate is really returning about 1.96 on kept revenue, and that number can sit below your breakeven while the dashboard reports a winner.
The free Claude skill refund-aware-verdict re-scores every advertised product on the revenue you actually kept, then stages a suppression list you approve item by item.
This post covers the kept revenue math, the double counting trap it avoids, and why some high return products should be fixed rather than suppressed.
Key takeaways
Each product's trailing 60 day return rate gets folded into its ROAS to show what survived the refund window.
Refund illusions get demoted: strong on paper, underwater once the returns land.
Returns are applied once, on the revenue side only, so they never get counted twice against your breakeven.
High returns with a fixable cause get a fix then retest verdict rather than a permanent suppression.
The kept revenue math
return rate = returned revenue ÷ gross revenue, per product, 60 days
kept revenue ROAS = revenue ROAS x (1 − return rate)
The 60 day window is deliberate. Returns lag sales, so a 14 day window flatters everything: the sales are all in the numerator while half the returns haven't arrived yet. 60 days lets the refund cycle catch up with the revenue it belongs to.
There's also a subtle accounting trap the skill avoids. Kept revenue ROAS gets compared against your pre return breakeven, not the return adjusted one. If you adjust both sides for returns, you've penalised the product twice for the same refunds and you'll suppress things that were fine.
Demote, watch, or fix
DEMOTE WATCH FIX THEN RETEST
Demote is the refund illusion: kept revenue ROAS below breakeven while revenue ROAS looks fine above it. These are what fund the suppression list.
Watch is a return rate at 1.5x your store average or higher that still clears breakeven. Elevated, not yet losing.
Fix then retest is the verdict that saves products. If the return reason is sizing, damage, or not as described, the problem is the product page or the packaging, not the ad. Suppressing the ad hides a fixable issue instead of solving it, so the skill routes the fix and suggests a retest in 60 days.
There's also a volume guard: under 20 orders in 60 days and it reports rather than verdicts, because a 30% return rate on 6 orders is 2 returns and a coin flip.
Suppressing a SKU frees budget. Something has to use it.
When demoted products come out of rotation, the winners need creative to absorb the spend. Vibelets generates on-brand product ads from your store in minutes, no designer or brief required.
Return reasons are the fix path
A demote verdict is more useful with a cause attached, so wherever return reason data exists, the skill adds a line of evidence to each demoted product. Sizing complaints point at the size guide. Damage points at packaging or the carrier. Not as described points at the photos or the copy, and sometimes at an ad that oversold.
That last one is worth sitting with. If your ad promises more than the product delivers, the return rate is the invoice for the exaggeration, and no amount of bid tuning will bring it down.
The suppression list is staged, never automatic
For catalog ads, demoted SKUs get excluded through a product set exclusion. For standard ads, the skill lists the specific ads and ad sets featuring those SKUs so you can pause them.
Both wait for your approval per item. That's deliberate: suppression decisions carry merchandising consequences well beyond the ad account, and a product you're about to fix should not be pulled from advertising on the same day.
How to set it up in Claude
Download the skill file from the skill's Google Drive folder, free, no email gate, then add it to Claude by uploading it as a skill under Settings or attaching it to a project or chat. Anthropic's Help Center guide to skills covers the upload path.
You'll need the margin truth output for breakeven per product, a sales by product report that carries gross revenue and returns, and an Ads Manager export for revenue ROAS. Run it monthly, and always before doubling down on an apparent winner in apparel, footwear, or anything sized.
Conclusion
Revenue you refund was never revenue. Re-score on what you kept, fix the return reasons worth fixing, and suppress only what stays underwater after that.
Re-score your ads on kept revenue
Free Claude skill, yours in 1 click.
Frequently asked questions
How do returns change my real ROAS?
Multiply revenue ROAS by 1 minus your return rate. A 2.8 ROAS on a product with a 30% return rate becomes roughly 1.96 on kept revenue, which is below most breakevens.
Why use a 60 day return window instead of 30 or 14?
Returns lag sales. A short window counts all the revenue but only some of the refunds, which flatters every product. 60 days lets the refund cycle catch up to the sales it belongs to.
Won't adjusting for returns twice distort the numbers?
Yes, which is why kept revenue ROAS is compared against the pre return breakeven rather than the return adjusted one. Returns are applied on one side only, exactly once.
Should I always stop advertising a high return product?
No. If the return reason is fixable, such as sizing or misleading photos, the verdict is fix then retest. Suppressing the ad hides the problem instead of solving it. Suppression is for products that stay underwater after the fix.
How many orders does a product need before this is reliable?
At least 20 in the 60 day window. Below that the skill reports the numbers but withholds a verdict, because a high return rate on a handful of orders is noise.
Sources
Make ads that sell
your Products.
Generate on-brand product ads in minutes, no designer or brief required.
Trusted by 400+ growing brands


