Your clearance floor price is the lowest price you can sell a product for without losing money you haven’t consciously decided to lose. The formula is short: floor = (true landed cost + cost to serve) × tier multiplier, where the multiplier is 1.20 for stock you’ll reorder, 1.10 for discontinued items, and 1.05 for last-call inventory you just need gone. The hard part isn’t the multiplication — it’s that most merchants plug in the wrong cost number, discover their “profitable” clearance sale was underwater, and only find out at tax time.
We build markdown software for Shopify, and before we shipped a single pricing rule we spent months running these calculations by hand on our own test stores. This post is the complete version of that math: how to build a true landed cost, what belongs in cost-to-serve, which floor tier applies to which inventory, three fully worked examples, and the specific situations where pricing below cost is the financially correct move.
Interactive
Floor-price calculator
Enter per-unit costs. The floor updates as you type — same formulas as the tables below.
Illustrative math on the numbers you enter — not pricing advice. Floors assume per-unit costs; recompute per variant when costs differ.
Every number in this post is a worked example we constructed to be representative — not customer data. Where we say “a $6.40 t-shirt,” we mean a fictional but realistic product you can swap your own numbers into.
What a clearance floor price actually protects
A floor price is not a target price. It’s a guardrail — the line below which a sale destroys value instead of recovering it. When you run a clearance event, your merchandising instinct sets the discount (30% off, 50% off, whatever moves units), and the floor sits underneath as markdown floor protection: no matter what percentage the promotion applies, the final price never crosses the line.
The mistake that makes floors necessary is anchoring to the wrong cost. Most merchants think of “cost” as the number on the supplier invoice. But the supplier invoice is just the starting point. By the time a unit reaches a customer’s door, you’ve also paid to ship it to your warehouse, paid duty at the border, paid someone to pick and pack it, subsidized the outbound shipping, given the payment processor a cut, and absorbed a statistical share of returns. A shirt that “costs $6.40” can easily consume $12 before you see a cent of margin.
So the floor calculation has three stages:
- True landed cost — what it cost to get the unit onto your shelf.
- Cost to serve — what it costs to get the unit from your shelf to the customer, per order.
- A tier multiplier — a deliberate buffer on top, sized to how much you still care about this SKU.
Add the first two, multiply by the third, and you have a minimum sale price formula you can defend to your accountant. Let’s build each stage.
Step 1: Calculate true landed cost
True landed cost is everything you paid to own the unit, sitting in your warehouse, before a single customer touched it. Three components cover almost every physical-product business.
Supplier unit cost (COGS)
This is the invoice price per unit — the FOB price if you import, the wholesale price if you buy domestic. Use the price you actually paid for the batch you’re clearing, not the current reorder price. If you bought this lot two years ago at $6.40 and the same shirt now costs $7.10, the floor math for the old lot uses $6.40. You’re recovering the cash you actually spent.
One nuance: if your accounting uses weighted-average cost across lots, use that average. Consistency with your books matters more than lot-level precision — the floor exists to prevent losses, not to win an accounting argument.
Inbound freight, allocated per unit
Whatever you paid to move the goods from the supplier to your warehouse — ocean freight, air freight, drayage, the courier bill on a domestic wholesale order — gets divided across the units in the shipment. Three allocation methods, in order of effort:
- By unit count — total freight ÷ total units. Fine when everything in the container is similar in size.
- By weight or volume — allocate proportionally to each SKU’s share of the shipment’s weight or cube. Use this when a container mixes t-shirts with cast-iron cookware; splitting evenly would make the shirts subsidize the pans.
- By value — allocate proportionally to each SKU’s share of the invoice value. Common because it matches how customs brokers itemize, but it can distort floors for cheap-but-bulky items.
For floor-price purposes, by weight or volume is usually the honest answer. In our own testing we found that switching a mixed shipment from per-unit to per-cube allocation moved individual SKU floors by as much as 15% — enough to flip a clearance price from profitable to not.
Duty and import fees
If you import, duty is a real per-unit cost that many merchants leave out because it arrives on a separate broker invoice weeks after the goods. Duty is calculated on the customs value (usually your FOB cost), so it scales with the supplier price: a 16.5% duty rate on a $6.40 shirt adds $1.06 per unit. Add merchandise processing fees, harbor maintenance fees, and your broker’s flat fee, allocated across the shipment the same way as freight.
Duty rates change — trade policy has been anything but stable lately — so recompute this component per receiving, not once a year. The batch that landed under a new tariff has a genuinely higher floor than the batch that landed before it.
That’s landed cost: COGS + allocated inbound freight + allocated duty and fees. Write it down per SKU. We keep ours in a metafield, which becomes important later when the floor needs to be enforced by software instead of by memory.
Step 2: Add your cost to serve
Landed cost gets the unit to your shelf. Cost to serve gets it to the customer, and it’s the half of the equation clearance math usually skips. Four components matter for a typical Shopify store. The rule for what belongs here: variable costs only. If a cost disappears when the order doesn’t happen, it belongs in cost to serve. Rent, salaries, and your Shopify plan don’t — they exist whether or not this unit sells, and loading them into the floor produces a number so high you’ll never clear anything.
Pick, pack, and materials
If you use a 3PL, this is on your rate card: a per-order pick fee plus per-additional-item fees, plus the box, mailer, tape, and dunnage. If you self-fulfill, estimate labor time honestly — even at $18/hour, four minutes of picking and packing is $1.20 before materials. For floor math, use the per-unit figure for a single-item order, because clearance orders skew toward single cheap items. That’s the conservative case.
Outbound shipping subsidy
If you charge exact shipping at checkout, this is zero. Almost nobody does. If you offer free shipping over a threshold, some fraction of clearance orders will ship free and you eat the label. The honest number is your blended subsidy: total shipping cost you paid last quarter minus total shipping revenue you collected, divided by orders shipped.
Watch for a trap specific to clearance: markdowns push order values down, so a larger share of clearance orders land under your free-shipping threshold — which sounds good until you notice customers pad their carts to reach it with more marked-down items, or you run a free-shipping promo on top of the sale. In our test-store runs, the shipping subsidy per order during clearance events came out consistently higher than the storewide average, not lower. Budget accordingly.
Payment processing fees
Card fees are a percentage of the sale plus a fixed amount — call it 2.9% + $0.30 for a standard Shopify Payments rate. Because the percentage applies to the final sale price, the exact fee depends on the price you haven’t set yet. Two ways to handle the circularity:
- The simple way: estimate the fee at your expected clearance price and treat it as a fixed cost. Selling a shirt around $14? The fee is roughly $0.70. Done.
- The exact way: solve for the price algebraically. If
ris the percentage fee andfthe fixed fee, thenfloor = (tier × (landed + serve excluding fees) + f) ÷ (1 − r).
We ran both versions side by side across a few hundred test SKUs and the difference was pennies to a dime or two per unit. Use the simple way unless you’re automating the calculation — software may as well be exact.
Returns allowance
Returns aren’t free even when the product comes back sellable: you pay the return label (if you offer one), the inspection labor, repackaging, and sometimes the unit is only resellable as open-box. Turn this into a per-unit allowance: return rate × average cost per return event. If 12% of apparel units come back and each return costs about $6 to process end to end, the allowance is $0.72 per unit sold.
Clearance changes this number in your favor if you let it. Marking clearance items final sale drops the return rate sharply, which shrinks the allowance and lowers your floor — one of the few levers that lets you price deeper without losing money. If you go final-sale, recompute the floor with the lower allowance rather than leaving the padding in.
Here’s the full cost build-up for the three example products we’ll use for the rest of this post — a basic cotton tee, a premium leather cardholder, and a discontinued Bluetooth speaker. All numbers are illustrative.
| Cost component | Cotton tee | Leather cardholder | Discontinued speaker |
|---|---|---|---|
| Supplier unit cost (FOB) | $6.40 | $22.00 | $31.00 |
| Inbound freight (allocated) | $0.55 | $1.80 | $1.90 |
| Duty and import fees | $1.06 | $1.76 | $2.33 |
| True landed cost | $8.01 | $25.56 | $35.23 |
| Pick, pack, and materials | $1.10 | $1.10 | $1.25 |
| Outbound shipping subsidy | $1.40 | $2.20 | $3.10 |
| Payment processing (est.) | $0.70 | $1.60 | $1.70 |
| Returns allowance | $0.75 | $0.60 | $0.85 |
| Cost to serve | $3.95 | $5.50 | $6.90 |
| Floor basis (landed + serve) | $11.96 | $31.06 | $42.13 |
Notice the pattern: the floor basis is 50–90% higher than the supplier invoice in every case. The $6.40 shirt is really an $11.96 shirt. Any clearance price below $11.96 loses cash on that tee even before we’ve asked for a single dollar of margin — and that’s the question the tier multiplier answers.
The floor formulas: three tiers and when each applies
The floor basis is break-even. You almost never want your guardrail set exactly at break-even, because every input above is an estimate and estimates miss low. The tier multiplier adds a deliberate buffer, sized to how much you still care about the SKU. We use three tiers, and after a lot of experimentation on our own stores we’ve stopped fiddling with the numbers — the discipline of picking a tier matters far more than the second decimal of the multiplier.
| Tier | Formula | When it applies | What the buffer covers |
|---|---|---|---|
| Standard clearance | basis × 1.20 | In-season or carry-over stock you will reorder; brand-sensitive lines; seasonal sales on continuing products | Real contribution margin — clearance should still fund the business, not just recycle cash |
| End-of-life | basis × 1.10 | Discontinued SKUs you won’t reorder; broken size runs; last season’s colorway | Full cost recovery plus a modest cushion for estimation error |
| Terminal | basis × 1.05 | Last-call inventory where the goal is space and cash, not margin; final markdown stage before liquidation | Only the estimation error itself — this is break-even with a seatbelt |
Some guidance on choosing:
- Default to 1.20. If a SKU is staying in the catalog, its clearance events are promotions, not evacuations. A 20% buffer on the floor basis keeps every discounted sale genuinely accretive — this is your clearance pricing margin, the piece most merchants give away without noticing.
- Drop to 1.10 the day you decide not to reorder. The decision, not the stock level, is the trigger. Once a SKU is end-of-life, insisting on full margin just slows the exit.
- Reserve 1.05 for a dated decision. Terminal pricing should have a deadline attached — “if it’s still here March 1, it goes to 1.05” — otherwise everything drifts there and the tier stops meaning anything.
Tiers also interact with the calendar. During peak discounting periods you’ll be tempted to cut deeper than your tier allows because everyone else is at 60% off; we cover how to set seasonal discount depth without breaking your floors in our Black Friday markdown strategy guide. The short version: the discount percentage is marketing, the floor is math, and the math doesn’t take holidays.
One more practical rule: the floor is a dollar amount, not a percentage. “Never discount more than 60%” is a common substitute and it’s a bad one, because a 60% cap on a high-margin SKU leaves money on the table while the same cap on a thin-margin SKU sells at a loss. Compute the dollar floor per SKU, then let the percentage be whatever it turns out to be.
Worked examples: three product archetypes
Let’s run the full calculation for each product in the table above, including the tier decision and what it means for the advertised discount. Again — these are constructed examples with realistic numbers, not customer data.
Archetype 1: The apparel basic (cotton tee, retails at $32)
Floor basis: $11.96 ($8.01 landed + $3.95 to serve). This tee is a core product — we’re clearing excess units of a color that over-ordered, but the style stays in the catalog. That’s a standard-clearance situation: $11.96 × 1.20 = $14.35.
Against the $32 retail price, a $14.35 floor means the deepest safe discount is about 55% off. So the merchandising team can run “up to 50% off” all day with room to spare, and even a 55% flash promotion clears the floor. What they cannot do is stack a 50% sale with an extra 15% welcome code — $32 × 0.50 × 0.85 = $13.60, which is under the floor. Discount stacking is where floors earn their keep, because no human is doing this multiplication at campaign-launch time.
If we marked the clearance color final sale, the returns allowance drops from $0.75 to roughly $0.20, the basis falls to $11.41, and the floor comes down to $13.69 — about 66 cents of extra room from a policy change alone.
Archetype 2: The premium accessory (leather cardholder, retails at $85)
Floor basis: $31.06 ($25.56 landed + $5.50 to serve). Premium goods get the 1.20 tier for a second reason beyond margin: price integrity. A leather brand that hits 65% off trains customers to never pay full price. $31.06 × 1.20 = $37.27.
The math allows up to 56% off the $85 retail — but for this archetype, the brand ceiling usually binds before the floor does. A premium accessory brand might cap public discounts at 30–40% and clear the rest through outlets, bundles, or gift-with-purchase, where the effective discount is invisible. The floor still matters, though: it tells you a “buy one get one 50% off” bundle (effective price $63.75 per unit) is comfortably safe, and it tells you the absolute worst case if you ever need to move fast.
Note the payment fee line in the cost table is bigger here ($1.60) because it’s estimated at the higher expected sale price. Percentage-based costs travel with price — one reason floors have to be computed per SKU rather than copied across the catalog.
Archetype 3: The discontinued electronics item (Bluetooth speaker, retailed at $99)
Floor basis: $42.13 ($35.23 landed + $6.90 to serve). The model has been replaced, the supplier no longer makes it, and every month it sits, it loses value to obsolescence — electronics is the archetype where waiting is most expensive. This goes straight to the terminal tier: $42.13 × 1.05 = $44.24.
Against the original $99, that’s up to 55% off — and unlike the tee, we’d actually price at or near the floor from day one, say $44.99, because the value of a discontinued speaker only moves in one direction. The floor here isn’t protecting margin; it’s protecting against selling for less than the cash the unit will return through any other channel.
It’s worth pausing on a pattern across all three examples: the deepest safe discount landed in the mid-50s each time. That’s not a coincidence — it falls out of typical DTC cost structures, where landed-plus-serve runs 35–45% of original retail. If your promotions regularly advertise 70% off and your margins are ordinary, either your original prices carry unusual headroom or some of those sales are underwater. The floor math tells you which.
When selling below cost is actually rational
Everything above assumes the goal is to never lose money on a sale. But “don’t sell below the floor” has a genuine exception, and it comes from a cost the floor formula deliberately leaves out: the cost of not selling.
Inventory that sits isn’t free. It incurs:
- Storage fees. 3PLs charge monthly per cubic foot or per pallet, and most add punitive long-term storage surcharges for stock aging past 6–12 months — often right before Q4, when they want your slow movers out of their buildings.
- Cost of capital. Cash locked in dead stock is cash not buying inventory that turns. If you borrow to fund purchases, the interest is explicit; if you don’t, the forgone margin on what you would have bought instead is just as real.
- Obsolescence and shrink. Electronics age out, apparel goes off-trend, packaging yellows, units get damaged in handling. Value decays while you wait.
- Opportunity cost of shelf space. In a physical store or a capacity-billed warehouse, a slow SKU occupies space a fast SKU would monetize better every single week.
A common rule of thumb puts total annual carrying cost at 20–30% of inventory value — call it 2% per month. Run that against the discontinued speaker: 2% of a $35.23 landed cost is about $0.70 per unit per month. Suppose 400 units remain and current velocity clears them in nine months. The average unit waits four and a half months, accruing roughly $3.15 in carrying cost — plus long-term storage surcharges if the timeline crosses a 3PL’s aging threshold.
Now compare two prices. At the terminal floor of $44.24, the sale is technically break-even-plus. At $39.99 — below the floor, and $2.14 below the raw cost basis — each sale books a $2.14 paper loss. But if the lower price doubles velocity and clears the stock in four months instead of nine, each unit avoids roughly $3 or more of carrying cost and returns its cash five months sooner. The $39.99 price loses money on the P&L line for that SKU and makes money for the business. That’s the entire case for below-cost clearance in one comparison.
The alternative benchmark is salvage. Liquidators typically pay 10–20 cents on the dollar of cost — $3.50 to $7.00 per speaker. Any direct-to-customer price meaningfully above salvage recovery beats the liquidation truck, even far below your floor. The decision framework we use:
- Hold the floor while the SKU has a plausible path to selling through within its carrying-cost budget.
- Break the floor deliberately — with a written decision, not a drifting discount — when months-of-supply at current velocity times monthly carrying cost exceeds the loss per unit from the lower price.
- Liquidate or donate when even below-cost pricing can’t generate velocity; at that point every week of delay is pure carrying cost with no recovery upside.
The key word is deliberately. A below-floor price chosen with the carrying-cost math in front of you is a rational trade. A below-floor price that happens because two discounts stacked is just a leak. We go deeper on the full dead-stock decision tree — including when to bundle, outlet, or write off — in our guide to clearing excess inventory on Shopify.
How to encode floors in your tooling
A floor that lives in a spreadsheet protects nothing. The whole point of the calculation is that it gets checked at the moment a price changes — during a flash sale, a stacked discount, an automated markdown — and no one is opening a spreadsheet at that moment. Here’s the progression we recommend, in increasing order of safety.
Level 1: The spreadsheet (better than nothing)
One row per SKU: landed cost components, cost-to-serve components, basis, tier, floor. Recompute when a new shipment lands or a carrier rate changes. Its weakness is enforcement — it depends on whoever builds the next promotion remembering to check it. In practice, spreadsheets catch mistakes after the sale ends, which is to say they don’t catch them.
Level 2: Floors as metafields on the product
Store the floor where the price lives. A variant metafield like custom.floor_price puts the number in the admin, in bulk-editor exports, and within reach of any app or Flow automation. Even without enforcement, this changes behavior: the floor is visible next to the price field when a human edits it. Populate it from your spreadsheet via CSV or the API, and update it on every receiving that changes landed cost.
Level 3: Automated enforcement
The end state is software that refuses to price below the floor no matter what rule requested it. This is exactly why we built Auto Markdown: you set the floor per product (or per collection, or as a cost-multiple formula like the tiers above), and every automated markdown the app applies clamps to it. A velocity rule can ask for 60% off; if 60% off crosses the floor, the price stops at the floor instead. The floor becomes a property of the catalog rather than a step in a checklist.
Floors and markdown rules are two halves of one system. The rules decide when and how fast prices descend — first markdown after 45 days of slow velocity, deeper cut at 90, and so on — and the floor decides where they stop. We’ve written up the descent side separately in our automated markdowns pricing-rules playbook; the floor formulas in this post are what those rules plug into. We use this exact setup — these tiers, stored as cost multiples, enforced by our own app — on the test stores where we trial every feature before it ships. We use the apps we sell.
Whatever tooling you use, two operational rules keep the floors honest:
- Recompute on cost events, not on the calendar. New shipment, new duty rate, new 3PL contract, new carrier rates — each one is a trigger. A quarterly review catches drift; event-driven updates prevent it.
- Log tier changes. Moving a SKU from 1.20 to 1.10 is a business decision (we’re not reordering this). A one-line log of who moved it and why keeps the terminal tier from becoming the default tier.
Common mistakes
We’ve made about half of these ourselves on our own test stores, which is how they earned a section.
- Using invoice cost as the floor. The classic. Selling at “cost” while paying freight, duty, fulfillment, fees, and returns means every clearance sale loses the entire cost-to-serve stack — $4 to $7 per unit in our examples, silently, at volume.
- Setting floors as a maximum discount percentage. A blanket “never more than 60% off” over-protects fat-margin SKUs and under-protects thin ones. Floors are dollar amounts, computed per SKU from that SKU’s costs.
- Ignoring discount stacking. The sale price respects the floor; the sale price plus the welcome code plus the loyalty discount doesn’t. Enforce the floor on the final charged price, not the listed price.
- Forgetting that percentage costs shrink with price — and fixed costs don’t. When a $99 item drops to $45, the payment fee falls but pick-pack and the shipping subsidy don’t move. Fixed per-order costs eat a much larger share of a clearance price, which is precisely why cheap items have proportionally high floors.
- Leaving the returns allowance in after going final-sale. If clearance items can’t come back, take the allowance out of the basis. Padding you know is padding isn’t conservatism; it’s inventory you didn’t clear.
- Never demoting the tier. Discontinued stock held at the 1.20 standard tier for months isn’t protected — it’s stuck, quietly accruing the carrying costs from the section above.
- Computing floors once and never again. Freight rates, duty rates, 3PL contracts, and processor fees all move. A floor computed on last year’s costs is a guess wearing a spreadsheet’s clothes.
- Confusing the floor with the price. The floor is the worst acceptable outcome, not the merchandising strategy. Pricing everything straight at the floor gives away margin the market would have paid; the floor should bind occasionally, not always.
FAQ
What is a clearance floor price?
A clearance floor price is the minimum price you’ll allow a product to sell for during markdowns — the point below which a sale loses money. It’s calculated as true landed cost (supplier cost + inbound freight + duty) plus cost to serve (fulfillment, shipping subsidy, payment fees, returns allowance), multiplied by a buffer between 1.05 and 1.20 depending on whether the item is continuing, discontinued, or in last-call clearance.
Should the floor include marketing and overhead costs?
Include only variable, per-order costs. Rent, salaries, software subscriptions, and general ad spend exist whether or not a given unit sells, so loading them into the floor inflates it past usefulness. The one exception: if you’re paying for ads specifically to promote the clearance event, that spend is variable to the campaign — fold a per-unit estimate into cost to serve for those SKUs.
How is a floor price different from MAP?
MAP (minimum advertised price) is a constraint a brand imposes on its retailers to protect price perception, and it governs what you can advertise, not what you can charge. A floor price is an internal economic constraint derived from your own costs. If you resell MAP-protected brands, your effective floor is whichever number is higher — usually MAP, since it’s set well above retailer cost.
How often should I recalculate floor prices?
On every event that changes an input: a new shipment (new freight and duty per unit), a 3PL rate change, a carrier rate change, a processor fee change, or a return-policy change. Between events, nothing moves, so nothing needs recalculating. The tier multiplier changes on business decisions — the day you decide not to reorder, the SKU drops from 1.20 to 1.10 regardless of what the costs are doing.
What discount percentage does a typical floor allow?
For typical DTC cost structures, where landed cost plus cost to serve runs 35–45% of the original retail price, the floor lands around 50–60% off. All three worked examples in this post bottomed out in the mid-50s. If your planned promotion is deeper than that, either your margins are unusually rich, your original price had unusual headroom — or the promotion is selling below cost and you should confirm that’s a deliberate carrying-cost decision rather than an accident.
Can Shopify enforce a floor price automatically?
Not natively — Shopify’s discount and price tools will happily apply any markdown you configure, with no concept of a per-product minimum. You can store floors as metafields for visibility, but enforcement requires an app. Our Auto Markdown app clamps every automated price change to the floor you set per product or per rule, so a markdown schedule can never cross the line, even when rules stack or velocity triggers ask for a deeper cut.
— Palm Beach Themes is a Miami-based Shopify app studio. We use the apps we sell, so every claim in this post comes from our own merchant testing.
If you’d rather set these floors once and let software hold the line, that’s what Auto Markdown does: store a floor per product, point your markdown rules at it, and every automated price change respects it — flash sales, velocity triggers, seasonal schedules, all of it. The math in this post is the setup; the app is the enforcement.