Meta & Facebook Ads
4 min read
Ads Manager tells you a campaign hit a 3x ROAS. It does not tell you whether 3x is good. That depends on your cost of goods, your shipping, your payment fees, and your return rate, and it's different for every product you sell.
The free Claude skill margin-truth-calculator computes the number every other ad decision hangs on: the ROAS at which you actually stop losing money, per product rather than store wide.
This post covers the math it runs, how it handles missing cost data, and why this is the first skill to run before any of the others.
Key takeaways
Breakeven ROAS and max CPA get computed per product, not as a store wide average that hides your thin margin SKUs.
Missing cost data is the most common failure, so the skill uses a stated fallback ladder instead of quietly inventing numbers.
Any number built on an assumption is tagged as an estimate and stays tagged everywhere it travels downstream.
If a product needs above a 4x ROAS just to break even, the skill says plainly that it has almost no room for paid acquisition.
The math, shown per product
contribution per unit = price − COGS − shipping − payment fees − pick and pack
return adjusted CM = contribution x (1 − return rate)
CM% = return adjusted CM ÷ price
breakeven ROAS = 1 ÷ CM%
target CPA (max) = return adjusted CM x (1 − profit buffer)
The defaults are editable: payment processing at 2.9% plus 30 cents per order, pick and pack at 0 until you say otherwise, return rate on a trailing 90 days per product, and a 20% profit buffer on target CPA.
What matters more than the formula is that it runs per product and shows its work. A store wide blended breakeven feels efficient right up until it averages a 60% margin bestseller together with a 12% margin accessory and tells you both are fine.
The COGS fallback ladder
Missing cost data is the number 1 reason margin math never gets done, so the skill has 4 rungs and tells you which one it used.
Situation | What the skill does |
|---|---|
Costs are in Shopify | Pulls unit cost from the cost per item field |
Missing on some SKUs | Asks for a quick per SKU table, top sellers only |
Too many SKUs to list | Asks for a blended COGS percentage per category |
No cost data at all | Uses a stated assumption and tags every downstream number as an estimate |
That last rung is the honest one. You still get a working number, but it arrives labelled, and it stays labelled through every skill that consumes it. If you want to firm it up, filling in cost per item in Shopify is the single highest leverage data entry job in the account.
Know the number, then feed the winners
Once you know which products can carry paid, the constraint becomes creative volume for those products. Vibelets generates on-brand product ads from your store in minutes, no designer or brief required.
Why this skill runs first
Scale hold kill needs a breakeven ROAS to judge against. Wasted spend needs a target CPA to define waste. Budget stepping needs a checkpoint metric. Every one of those is a number this skill produces.
Run it once and the figures are set for the conversation, which is why it's worth doing before anything else in the pack. And if a product comes back needing above a 4x ROAS to break even, take the warning seriously: at that level, paid acquisition is fighting your own pricing.
How to set it up in Claude
Download the skill file from the skill's Google Drive folder, free, no email gate. Add it to Claude by uploading it as a skill under Settings, or attach the file to a project or chat. Anthropic's Help Center guide to skills covers the upload path.
For inputs, a products export CSV with the cost per item column plus a sales by product report is ideal. If you don't have either handy, you can simply answer the questions it asks in chat and it will build from there, flagging what it had to assume.
Conclusion
You can't manage to a number you've never calculated. Run this once, per product, and every other ad decision you make afterwards has something real to be measured against.
Find the ROAS where you stop losing money
Free Claude skill, yours in 1 click.
Frequently asked questions
What is a good ROAS for Meta ads?
There is no universal number. A good ROAS is anything above your breakeven, which depends on your contribution margin per product. A 2.1x can be highly profitable on a fat margin SKU while a 3.5x loses money on a thin one.
How is breakeven ROAS calculated?
Divide 1 by your contribution margin percentage, where contribution margin is price minus COGS, shipping, payment fees, and fulfilment, then adjusted for your return rate. The skill shows the full calculation per product.
What if I don't have cost of goods data in Shopify?
The skill uses a 4 rung fallback: cost per item field, then a per SKU table for top sellers, then a blended percentage per category, then a stated assumption. Anything built on an assumption is tagged as an estimate and stays tagged downstream.
Should I calculate breakeven per product or for the whole store?
Per product first, blended second. A store wide average hides thin margin SKUs inside a healthy blend, which is exactly how budget ends up funding products that cannot carry paid acquisition.
What does it mean if my breakeven ROAS is above 4?
It means there is almost no room for paid acquisition at current pricing. The realistic fixes are raising price, cutting unit cost, or increasing average order value, not finding a better performing campaign.
Sources
Make ads that sell
your Products.
Generate on-brand product ads in minutes, no designer or brief required.
Trusted by 400+ growing brands


