Before you set BFCM discounts, check where your break-even actually sits

Quick math that saves stores real money every November.

Take one product: price $40, cost $23. Margin is $17, so 42.5% off is break-even. A 25% site-wide sale leaves $7 per unit, before shipping, fees and returns eat into it. Now stack a 25% code on top of an automatic 20% (Shopify allows some combinations to stack when the boxes are ticked) and you’re at 40% off. That’s $1 left per unit. One combination checkbox nobody re-checked, and BFCM becomes paying customers to haul your stock away.

Three things worth doing this week, while it’s still September:

  1. Get cost prices into Shopify (Products → variant → Cost per item). Without them, no report on earth can tell you your margin.
  2. List every discount that will be live in November — codes, automatics, free shipping — and look at the combination settings on each pair. Pairs are where the damage hides.
  3. Replay last year’s orders against this year’s planned discount before launch. A spreadsheet is enough: units sold × planned discount vs the margin you kept.

Disclosure: I build Scriptly, a discount-rules app, and we recently shipped a backtest that runs step 3 against your real order history, plus a margin floor the checkout can’t discount past. The math above works without any app though. Most below-cost BFCM sales I’ve seen came from stacking settings, not from the headline percentage.

The discount stacking example makes the margin risk much easier to see. I especially like the suggestion to test the planned discounts against last year’s orders before launching, because it gives you a chance to catch the problem before the sale goes live.

Hi @Denyslg,

One of the most silent margin killers during BFCM is discount stacking, which many merchants are unaware of until the payout reports arrive.

A lot of November anxiety can be avoided by checking variation costs and evaluating those checkbox combinations in Shopify in advance. Excellent explanation of the math

Great write up! The stacking part is something a lot of merchants don’t check until it’s too late, we see it quite often :confused: Testing planned discounts against last year’s orders is a very smart move, definitely worth the hour it takes

Hey @Denyslg ,

This is a really good reminder, especially before BFCM. I think discount stacking is one of those things that can easily get overlooked when multiple promotions are running at the same time.

I’d definitely check the cost per item and then test the actual discount combinations before launching anything. It’s easy to focus on the headline discount and forget to look at what’s left after all the discounts are applied.

Doing a quick test with a few of the best selling products could probably catch a lot of these issues before the sale goes live.

Thank You!

Glad this is landing where it’s useful.

You’re right, and it’s worth underlining: nobody needs to test a whole catalog. Your top ten sellers carry most of the P&L, so run the math on those first. If the stack is safe there, the tail rarely surprises you.

One more check that trips people every November: apps count too. A gift-with-purchase app or a shipping app often creates its own automatic discount, and that discount enters the same combination rules as everything you built by hand. The checkbox audit only works if every discount is on the list, including the ones an app quietly made for you.

And yes, it really does take about an hour. ETRADE_PARTNER wasn’t exaggerating. Against a November of selling $1 units at 40% off, I’d call it the best-paid hour of the quarter.

That’s a good point about the app generated discounts. They can definitely be easy to miss when reviewing everything manually.

Checking the top sellers first also makes sense, especially when time is limited before a big sale. It’s a small check, but it can prevent some pretty expensive mistakes during BFCM.

If you found my answer helpful, feel free to mark it as the solution as well.

yeah, this is where Shopify’s variant setup gets annoying. there isn’t really a native “temporarily disable this variant everywhere” switch that lets you hide, say, the blue colour across every product without editing each product individually.

if you’re not tracking inventory because everything is made to order, i’d look at using an app that can manage variant availability globally, or handle the availability logic in the theme so a colour can be marked unavailable without deleting it from every product. deleting the variant isn’t ideal anyway because you’re changing the product data just to reflect a temporary supply issue, and you’d have to recreate it later.

Completely agree on not deleting variants. That creates a huge mess down the road with historical reporting and SKU mapping.

A clean way to handle this without touching theme code is using custom product or variant metafields (like out_of_stock_colors). You can hook those up to your frontend layout to disable specific options right from the Shopify admin. Bulk editing via CSV export is another quick workaround if you need to adjust multiple items at once.

Still, Shopify really needs a built-in global toggle for options across the board.