Margin Protection Explained
The floor that stops any discount path from selling below your margin, what happens when cost data is missing, and every outcome the policy can return.
Show all sections (19)
- The outcomes you will see
- Skipped — already below margin floor
- Skipped — would raise price
- When cost data is missing
- When two limits disagree
- Rising demand raises the floor
- Verify it is working
- Troubleshooting
- Everything is being skipped for missing cost
- A discount applied smaller than I asked for
- Automation rules seem to ignore my floor
- FAQ
- Does the floor apply to discounts I apply manually?
- What margin definition is used?
- Can I set a different floor per market?
- Related articles
Margin protection is the guarantee that no discount StockSweep applies — manual, automated, or scheduled — takes a product below the margin you set. It is the single most consequential setting in the product, because it is the one standing between an automation rule and an underwater price.
Estimated time: 5 minutes
What you'll accomplish
- Understand what the margin floor guarantees, and what it cannot guarantee
- Know exactly what happens when a product has no cost data
- Recognise every outcome the policy can return, and what each one means
- Know which limit wins when market bounds and the margin floor disagree
Requirements
- Plan: Pro or Enterprise.
- Cost data on your variants for full protection (see "When cost data is missing").
- Found at Settings → Margin Protection.
What it guarantees
Margin protection is the policy gate on every discount path. A discount does not take one route when you click it manually and another when an automation rule fires — both pass the same evaluation.
The guarantee is: a discount will never leave the product below your margin floor. When a requested discount would breach the floor, it is not rejected — it is clamped back to the floor. You get the deepest discount that still respects your margin, rather than no discount at all.
The outcomes you will see
Every evaluation ends in one of these, and each appears in your discount history:
| Outcome | What it means |
|---|---|
| Applied as requested | The requested discount cleared the floor with room to spare |
| Clamped to margin floor | The request would have breached the floor, so it was reduced to the deepest discount that does not |
| Skipped — cost data missing | No usable cost, so the policy declined rather than guess |
| Skipped — would raise price | In cost-plus mode, the computed price was above the current one |
| Skipped — already below margin floor | The product was already under the floor before any discount |
| Percentage fallback applied | A percentage discount was applied without cost-based protection, by your explicit setting |
| Skipped — variant already discounted | The variant is already carrying a discount |
Two of these deserve expanding.
Skipped — already below margin floor
This fires in two situations, and the second is the one that catches people out. The obvious one: the product's current margin is already under your floor, so any discount makes a bad position worse.
The subtle one: the product has no headroom at all — the price that would exactly hit your floor is at or above the current price. Sitting exactly on the floor is not an exotic case. Merchants set the floor to their standard margin, so a whole cohort of keystone-priced products lands on that exact value: margin 50.00 against a 50% floor. Those products decline the discount rather than take it, because taking it would breach the one promise margin protection makes.
Skipped — would raise price
Only applies in cost-plus mode, where the price is computed from cost plus a target markup. If that computation lands above the current shelf price, the discount is skipped — a "discount" that raises the price is never the intent.
When cost data is missing
Cost-plus mode always needs cost; the formula cannot run without it. For percentage-off discounts you choose the behaviour:
- Honour the policy (default) — no cost means no protection is possible, so the discount is skipped. Safe, and it keeps the guarantee honest.
- Allow recovery percentage — apply the percentage discount without cost-based protection. Faster, but understand what you are choosing: on those products the margin floor is not enforced, because there is no cost to enforce it against.
There is one exception worth knowing: a plain percentage-off discount with margin protection switched off is a pass-through — cost is irrelevant and the discount applies as requested. That is a legacy path, not a loophole in the protection; turning protection on is what engages the floor.
When two limits disagree
If you also use market-gap bounds (part of Markets), three limits can apply to the same price:
- The margin floor — never sell below this margin.
- The market floor — do not undercut the market by more than X%.
- The market ceiling — do not stay more than X% above the market after discounting.
Floor and ceiling can never both bind at once, so at most one market adjustment applies. And when the market ceiling wants to push the price below your margin floor, the margin floor always wins. Market positioning never overrides your margin guarantee.
Rising demand raises the floor
When a variant shows a rising demand trend with at least medium confidence, the margin floor for that variant can be raised above your baseline. The reasoning is straightforward: a product whose demand is recovering does not need as deep a discount, and discounting it hard wastes margin you were about to earn. When this happens the clamp is labelled distinctly — margin floor raised, demand is rising — so you can tell it apart from an ordinary floor clamp.
Verify it is working
- Open Settings → Margin Protection and confirm the floor is set and protection is enabled.
- Apply a deliberately aggressive discount to a test product with known cost — the preview should show the clamp before you commit.
- Check Actions → Discounts (History tab): clamped discounts show the outcome and the reason.
Troubleshooting
Everything is being skipped for missing cost
Your variants have no cost data. Fix the source — cost syncs from your commerce platform — rather than switching to the fallback, which turns the protection off for exactly the products you cannot verify.
A discount applied smaller than I asked for
That is a clamp, and it is the feature working. The history entry will name the reason: below margin floor, market floor, market ceiling, or rising demand.
Automation rules seem to ignore my floor
They do not — automation runs through the same policy gate. If an automated discount looks wrong, check the discount history entry for its outcome; it will show whether it was applied, clamped or skipped.
FAQ
Does the floor apply to discounts I apply manually?
Yes. Every discount path runs through the same evaluation.
What margin definition is used?
Margin is computed as (price − cost) ÷ price, expressed as a percentage — margin on the selling price, not markup on cost.
Can I set a different floor per market?
Yes. A per-market policy overrides the global one when it is active; otherwise the global setting applies. See the Markets article.
Related articles
Was this article helpful?
Let us know — your feedback helps us improve our documentation.