Discount Floor vs Markdown Floor: When To Use Which On Slow-Moving SKUs

Sitewide discount codes and SKU-level markdowns hit contribution margin differently. Here's how to decide which floor to use on a slow-moving SKU — and when carrying cost flips the answer.
Discount Floor vs Markdown Floor
The lowest price two different tactics — a sitewide code or a SKU-level markdown — can hit before contribution margin turns negative on a slow-moving SKU.
A discount floor is the deepest sitewide or code-based promotion a SKU can absorb before contribution margin goes negative. A markdown floor is the deepest permanent SKU-level price drop that clears units without dipping below the cost-to-serve.
The two floors sit at different depths because they behave differently. A discount code applies broadly, cannibalizes full-price demand, and is often stackable. A markdown is surgical, visible on the PDP, and pulls in buyers actively hunting the SKU. On a slow-mover, the right floor depends on how much dead-stock carrying cost has already eaten the margin — and how visible you need the price cut to be to move units before end of season.
Most merchandising teams treat discounts and markdowns as interchangeable levers. They're not. A 20% sitewide code and a 20% markdown produce very different orders, different margin outcomes, and very different sell-through curves on the exact same SKU.
The decision matters most on slow-movers, where every extra week in the warehouse compounds carrying cost and pushes the true floor lower than the accounting margin suggests. Get the tactic wrong and you either burn margin you didn't need to, or watch dead stock sit through another season.
How a discount floor and a markdown floor behave differently on the same slow-moving SKU
| Dimension | Discount floor (sitewide code) | Markdown floor (SKU-level) |
|---|---|---|
| Visibility | Cart / checkout only | PDP, collection, search results |
| Cannibalization of full-price SKUs | High — code applies broadly | None — priced per SKU |
| Typical depth on slow-movers | 10–25% off | 25–60% off |
| Effect on brand equity | Contained (code required) | Public — visible strike-through |
| Speed to clear dead stock | Slow (2–6 weeks) | Fast (5–14 days) |
| Stacking risk | High if code + markdown overlap | Low unless code stacks on top |
| Best when | SKU is slow but still full-margin | SKU is dead stock or near-expiry |
The rows that move the decision are visibility and cannibalization. A discount code hides the price cut behind a coupon field, which protects premium positioning but also hides the SKU from browsers who never enter a code. A markdown puts a strike-through on the PDP, which is exactly what a hunter is scanning for.
When a discount floor is the right choice
A discount floor wins when the SKU is slow but not dead. Sell-through is under target, but contribution margin is still healthy and you have runway before the season ends or the product ages out. You want to nudge conversion without repricing the catalog.
It's also the right call on premium SKUs where a public markdown would damage brand equity — the reason a targeted code beats a public markdown on hero products. Codes let you segment: winback flows, cart-abandon triggers, or a loyalty-tier offer. The SKU keeps its full-price shelf position while a specific audience sees a cheaper number at checkout.
Watch the stacking trap
If a sitewide code lands on a SKU you've already marked down, the two floors compound and you can blow through contribution margin without noticing until the P&L closes. Either exclude marked-down SKUs from code eligibility in Shopify's discount rules, or hold markdowns until the promo window ends.
When a markdown floor is the right choice
A markdown floor takes over when carrying cost has become the biggest line item in the SKU's economics. Every additional week of storage, insurance, and capital tied up in inventory drops the true floor. At some point holding costs exceed the margin you're trying to protect — and that's the tipping point where markdown beats discount, regardless of headline depth.
It's also the right tactic on near-expiry beauty SKUs, end-of-season apparel below the CM floor, and dead stock you've segmented out of the slow-burn tail. Markdowns show up on the PDP and in collection filters like "Sale" — that visibility is what actually moves units in the 5-to-14-day window you need.
Cumulative sell-through: discount code vs SKU markdown on the same slow-mover
Sitewide discount code (-20%)
SKU-level markdown (-30%)
Discount floor vs markdown floor: common questions
A discount is a temporary price reduction applied via code or automatic promotion at cart or checkout. A markdown is a permanent (or semi-permanent) change to the SKU's list price, visible on the PDP and reflected in the compare-at price. Same headline percentage, very different mechanics.
Roughly when weekly carrying cost — storage, insurance, capital cost, obsolescence risk — exceeds the incremental margin you'd protect by holding out for a lighter discount. For most DTC apparel and beauty SKUs, that tipping point lands 8–16 weeks after the sell-through curve flattens.
Yes. A sitewide code applies to everything in the eligible set, so full-price buyers who would have converted anyway now convert cheaper. A markdown affects only the marked-down SKU, so the margin hit is contained to units that were unlikely to move at full price.
The floor is COGS plus variable fulfilment and payment fees, adjusted for carrying cost already burned. On dead stock where carrying cost has already exceeded gross margin, going below unit CM can still be the right call because the alternative is writing the inventory off entirely.
Technically yes in Shopify and Woo, but it's usually a mistake — you compound two floors and lose margin visibility. Configure code eligibility to exclude sale items, or block stacking in your promo rules. See the deep-dive on sitewide-code-on-marked-down-SKU stacking risk.
Move the current price into compare-at, then lower the price field — don't overwrite compare-at with the new lower number. That preserves the strike-through UI and keeps analytics tools reading the historical price correctly for margin reporting.
Generally yes — markdown-hunters have a stronger price-anchoring signal and repeat at lower AOV. Promo-code redeemers, especially from winback and loyalty flows, tend to have higher LTV because the code is a nudge, not the primary reason they're buying.
A ladder (e.g. −20%, then −35%, then −50% at weekly intervals) captures price-sensitivity segments and usually yields higher blended margin than a single deep clearance. One-shot clearance wins only when the season truly ends and warehouse space is the binding constraint.
Bundling is often the highest-margin exit for a slow-mover because you protect the headline price on both SKUs and shift the perceived value into the bundle. It's the third option worth testing before you commit to either a discount floor or a markdown floor.
Split the tail into three buckets: dead stock (zero sell-through in 60+ days), slow burn (below target but still moving), and long-tail (intentional low-velocity SKUs). Dead stock takes markdowns; slow burn takes discount codes; long-tail stays at full price.
Test ideas before you ship them
Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.