Meta & Facebook Ads
5 min read
A 25% discount does not cut your margin by 25%. On a typical product it can cut it by 60%, because the discount comes entirely out of contribution while your costs stay exactly where they were.
The free Claude skill promo-mode-switcher recomputes your thresholds at the discounted price, plans the learning phase around the sale window, and stages the post sale reset before the promo starts.
This post covers the promo maths, the under 5 days rule, and the discount leak check that works outside promos too.
Key takeaways
Breakeven ROAS gets recomputed at the discounted price per product, and anything unpushable with paid gets named.
Promos under 5 days should not get new ad sets, because they would spend the entire sale in learning.
The post sale reset is staged before the sale starts: budgets stepped back down, promo creative paused, and a 72 hour judgment freeze.
The leak check works year round. If discount codes touch more than 25% of revenue, your real breakeven is the realized one.
The promo maths
promo price = price x (1 − discount)
promo CM = promo price − COGS − shipping − fees
promo CM% = promo CM ÷ promo price
promo breakeven ROAS = 1 ÷ promo CM%
Because ads manager revenue during a sale is discounted revenue, this breakeven compares like for like. If promo contribution margin goes negative on a product you are actively pushing, the skill says it outright: this sale buys revenue with negative margin, which is a decision to make deliberately or not at all.
And when promo breakeven ROAS lands above 8, or above twice your normal breakeven, the product gets flagged as effectively unpushable with paid during the sale. Organic and email only. A 25% discount on a thin margin product does this routinely, which is why the number needs showing rather than hiding inside a plan.
The learning phase does not pause for your sale
This is where most promo plans quietly break. New ad sets launched for a short sale spend the whole window in the learning phase, at learning phase costs, and stabilize right around the time the sale ends.
So the rule for promos under 5 days is not to launch new ad sets at all. Run the sale on existing stable sets, swap creative once at promo start, accept that single reset as a priced in cost, and keep budget steps at 20% or under.
For promos of 7 days or more, a dedicated promo campaign becomes viable, launched 3 or more days early so the learning burns before the peak rather than during it.
1 creative swap, staged before the sale
Since you only get 1 cheap creative change, the whole promo batch should be ready before the window opens. Vibelets generates on-brand product ads from your store in minutes.
Stage the reset before you need it
Every during promo action carries its reversal, planned in advance: budgets return to pre promo levels in steps of 20% or less rather than a cliff, promo creative gets paused at the end date, and thresholds revert to normal period numbers.
Then the 72 hour judgment freeze. Post sale demand dips because you pulled it forward into the sale. That dip is arithmetic, not creative fatigue, and reacting to it with pauses and cuts is how a successful promo turns into a damaged account the following week.
The leak check
Useful even when you are not running a promo. It looks at orders using discount codes over the trailing 30 days: what share of revenue rides on codes, your blended realized discount, and contribution margin at realized prices versus list prices.
If codes touch more than 25% of revenue, your operating breakeven is not the list price number you have been using. It is the realized one, and every threshold in the account should be built on it.
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.
Run the margin truth calculator first for normal period margins, then give this skill your discount depth, scope, and dates. Do it before the sale, not during, since half the value is in what gets staged in advance.
Conclusion
A sale is not your normal account at a discount. It is different maths with a deadline. Recompute the thresholds, respect the learning phase, stage the reset, and freeze judgment for 72 hours after.
Switch your ad maths for the sale, then back
Free Claude skill, yours in 1 click.
Frequently asked questions
How much does a 25% discount actually cut my margin?
Far more than 25%. The discount comes entirely out of contribution while COGS, shipping, and fulfilment stay fixed, so on typical margins the reduction can approach 60%. The skill computes it per product at your real costs.
Should I launch new campaigns for a short sale?
Not for promos under 5 days. New ad sets would spend the entire window in the learning phase at elevated costs. Run short sales on existing stable ad sets with a single creative swap at the start.
How early should I launch a promo campaign for a longer sale?
3 or more days before the sale for promos of 7 days or longer, so the learning phase burns off before peak demand rather than during it.
Why freeze judgment for 72 hours after a sale?
Because post sale demand dips as a matter of arithmetic. You pulled purchases forward into the promo window. Reading that dip as creative fatigue and cutting in response damages an account that is behaving normally.
What is the discount code leak check?
A review of what share of your trailing 30 day revenue arrives on discount codes. If codes touch more than 25% of revenue, your operating breakeven is the realized price version, not the list price one, and thresholds should be rebuilt on it.
Sources
Make ads that sell
your Products.
Generate on-brand product ads in minutes, no designer or brief required.
Trusted by 400+ growing brands


