SafeSale · Blog

Tuning SafeSale's hard cap and confirmation threshold

What SafeSale's two safety limits do, where each is enforced, how to pick numbers for your margins, and what changes if you edit them mid-schedule.

Every store has a number below which no legitimate sale goes. For a fashion label with 65% gross margin it might be 40% off. For a clearance outlet it might be 85%. For a brand with distributor agreements it might be 20%, full stop. SafeSale ships with two limits that encode that number, set to defaults that suit a typical store, and a Settings page where you can change them. This post is about what the two limits actually do, where in the pipeline each one is enforced, and how to choose values that match your own margins rather than ours.

Two limits, two different reactions

Open Settings in SafeSale and the first section is called Safety limits. It has two fields.

  • Ask for typed confirmation above (% off). Default 50. Accepts a whole number from 1 to 100. If any variant in the sale would end up discounted more than this, the Confirm step grows a text field and the Start sale button stays disabled until you type the sale's exact name into it.
  • Never discount more than (% off). Default 90. Accepts a whole number from 1 to 95. Any variant whose planned discount is deeper than this is blocked: it is listed in the preview with the reason, it keeps its current price, and the rest of the sale goes ahead without it.

The two are related by one rule: the confirmation threshold cannot be above the hard cap. Saving a threshold of 80 with a cap of 70 is rejected with a message saying so, because a threshold you can never reach is a threshold that never asks.

Both limits are measured per variant, against the discount percentage that variant would actually see, not against the headline of the rule. That distinction is the whole reason the limits exist. A "20 off" rule is harmless on a 200 dollar jacket and an 80% cut on a 25 dollar belt. The guardrails post has the cancelled-order stories that come from exactly that kind of rule.

Where the limits are enforced

SafeSale checks the limits in three places, and knowing which one fires when explains most of what you will see on the sale page.

StageThresholdHard cap
PreviewRows above it get a warning badge; the "Max N% off" badge turns orangeRows above it are marked blocked; a banner counts how many will keep their price
ConfirmTyped sale name required before Start sale is enabledBlocked variants are excluded from the lock; if nothing is left the sale refuses to start
Start (price rewrite)Not re-checked; confirmation already happenedRe-planned from the snapshot with the current cap; blocked rows are skipped
Start and checkout (discount)Not re-checkedCap written into the discount configuration; the checkout function clamps every cart line to the cap floor

The preview is the honest one. It runs the same pure pricing function the apply step uses, with the same two numbers, so what it labels blocked is what will be blocked. The rule editor repeats the current values in a line of small print under the discount fields ("Discounts above 50% need typed confirmation; anything above 90% or that would raise a price is blocked") with a link to Settings, which is the fastest way to notice that someone changed them.

The checkout enforcement deserves a sentence of its own. When a sale uses the automatic discount rather than rewriting prices, the discount function that runs in Shopify's checkout receives the cap as part of its configuration. For every cart line it computes a floor, the original line price times one minus the cap, rounded up to the cent, and never discounts below it. The function sees the live cart price, so even if a product's price was lowered by hand after the sale was planned, a 90% cap stays a 90% cap on whatever the price is now. The settings page describes this as the checkout discount enforcing the cap independently, and that is precisely what it means.

Choosing your own numbers

The defaults are a compromise for a store we have never seen. Here is how to replace them.

Set the threshold just above your deepest routine sale. If your seasonal sales are 30% and your end-of-season is 50%, a threshold of 50 asks for confirmation only on the one event where a typo in the rule could really hurt, and stays out of the way for the rest. If you run a tight-margin store where anything beyond 25% is a decision, set it to 25. Typing a name takes four seconds; the threshold is cheap to lower and the cost of having it too high is paid once, on the wrong day.

Set the cap at the line you never cross. A brand selling under minimum advertised price agreements might set it to the deepest discount any agreement allows, so that no rule, however it is typed, can publish a price below it. The vendor sale post covers the per-variant overrides that go with that. A clearance store that genuinely sells at 95% off can raise the cap to 95, and that is the top of the range. There is no 100: a variant that a rule would take to zero is reported as rounded to zero, treated as 100% off, and blocked by any cap. The fixed-price post shows how often that happens by accident with amount-off rules on cheap items.

Keep a gap between them. With threshold 50 and cap 55, almost everything that asks for confirmation is a few points from being blocked, which makes the confirmation feel like noise. A gap of thirty or forty points gives the threshold a real job: it catches the sales that are legal but unusual, while the cap catches the ones that are simply wrong.

Changing the limits with sales in flight

The limits are store-wide and take effect immediately, so it is worth knowing what they do to sales that already exist.

  • Drafts pick up the new values the next time you preview; a draft has no lock and no snapshot yet.
  • Scheduled price-rewrite sales re-plan from their snapshot when the start job runs, using whatever the cap is at that moment. Lower the cap and extra variants may be blocked at start; raise it and variants that were blocked at preview time are still excluded, because the lock was taken on the preview's set. The threshold is not consulted again: you confirmed the sale once and the start job does not ask twice.
  • Scheduled discount-mode sales embed the cap when the automatic discount is created, which happens at start. A cap you change before the start applies; a cap you change after the discount exists does not touch that discount.
  • Active sales are not re-evaluated by a settings change. Prices that were written stay written until the sale ends and the snapshot is restored.

If you want certainty rather than rules of thumb, the sequence is: change the setting, open the scheduled sale, re-run the preview, and read the blocked count. The preview costs nothing and the fingerprint it produces is what the confirm step compares against.

What the limits do not do

They do not prevent a price increase; that is a separate check that blocks any variant the rule would make more expensive, regardless of settings. They do not apply to gift cards, which are excluded from sales before the engine runs. They do not override the per-variant overrides in a sale: a variant pinned to 0% is 0% whatever the cap. And they are not a plan feature. Both fields are available on every plan, the same way snapshots and the emergency restore are, because a safety limit that costs extra is a limit most stores will not have on the day they need it.

Two numbers, five minutes to set, and a sale editor that tells you which one it is about to trip. That is the whole feature, and it is the part of SafeSale we would least like to see left on the defaults.

Frequently asked questions

What is the difference between the confirmation threshold and the hard cap?

The threshold asks, the cap blocks. If any variant in a sale would be discounted more than the threshold, SafeSale makes you type the sale's name before it will start. If any variant would be discounted more than the cap, that variant is excluded from the sale and keeps its current price; the rest of the sale proceeds. Defaults are 50% and 90%.

Can I set the hard cap to 100% to run a free giveaway?

No. The setting accepts whole numbers from 1 to 95, so a rule that would take a variant to 0.00 is always blocked. That is deliberate: a zero price is the single most expensive mistake a sale app can make, and gift cards are already the right tool for giving a product away.

Does the hard cap apply to the automatic discount at checkout as well?

Yes, independently. For discount-mode sales the cap is written into the discount's configuration when it is created, and the checkout function clamps each cart line so the discounted amount never goes below original price times one minus the cap, even if the line's price has moved since the sale was planned.

What happens if I change the limits after a sale is scheduled?

Price-rewrite sales re-plan from their snapshot when the start job runs, using the limits in force at that moment, so a lower cap can block extra variants at start and a lower threshold has no effect because confirmation already happened. Discount-mode sales embed the cap when the automatic discount is created at start time. Re-open the preview if you want to see the effect before the start.