Choosing a Margin Floor: One Number Won't Fit Your Whole Catalog
A margin floor is the line below which a SKU stops paying its way — the point where you'd honestly rather not make the sale. Most stores either don't have one, or have exactly one, applied to everything from fast-moving filters to a bumper that ships freight. The first mistake means you find out about sick SKUs from the annual accounts. The second means your alarm rings for the wrong products and stays silent for the right ones.
Floor and target are different numbers
Two thresholds do two jobs, and conflating them is where most margin policies go wrong:
- The target margin is where you price. When you set or restore a price, you aim here:
price = cost / (1 − target). - The margin floor is where you act. It's below the target by design — a buffer zone where a SKU is underperforming but not yet an emergency. Crossing the floor means the SKU now demands a decision: reprice, renegotiate, or drop.
If floor equals target, every routine cost wiggle becomes an alarm and you learn to ignore the alarms. If there's no floor at all, "we'll reprice when things get bad" has no definition of bad. A sensible gap is 5–15 margin points, depending on how volatile your suppliers are.
The floor has a physical meaning: cost-to-serve
The floor shouldn't be a round number you like. It has a hard lower bound: the margin at which a sale stops contributing anything, because the gross profit is consumed by the cost of processing the order. That stack is knowable for your store. A typical shape, for a $30.00 item shipped parcel:
On this stack, a SKU showing an 18% margin isn't a thin performer — it's a passenger. Its $5.40 of gross profit nets $0.48 after serving the order: 1.6% of the sale, before a cent of overhead, ads or your time. This is the same arithmetic that makes Shopify's profit reports read high — the report shows the 18%, not the 1.6%.
So the recipe for the base floor is: measure your own stack (your fees, your average label subsidy, your return rate), then add the minimum contribution you're willing to accept per sale. Cost-to-serve of 16% plus a required 9-point contribution gives a 25% floor. Now the number means something, and when someone asks "why 25?", there's an answer.
Why one floor can't cover the catalog
Because the two things the floor depends on — cost-to-serve and what a sale is worth to you — both vary wildly across a catalog. The clearest way to see it is to follow a dollar of inventory for a year.
A fast-moving commodity SKU costs $10.00, sells at $12.50 — a 20% margin, $2.50 a unit — and turns its stock twelve times a year. Each stocked unit returns $30.00 of gross profit annually on $10.00 invested. A long-tail SKU also costs $10.00 and carries a fat 45% margin ($18.18 retail, $8.18 a unit) — but it sells through once a year. Each stocked unit returns $8.18 annually on the same $10.00.
The "thin" SKU out-earns the "fat" one almost four to one per dollar of shelf. That's why velocity buys a lower floor: the fast mover can survive on less margin per sale, while the slow mover must earn more per sale to pay for the months it sits. A single catalog-wide floor gets this exactly backwards — set it low and the long tail rots quietly below a threshold that never fires; set it high and your best-working inventory pages you daily about margins that are, for its velocity, perfectly fine.
A tiering that works in practice
Three or four tiers are enough. More than that and nobody remembers the rules. A starting framework — the specific numbers are yours to derive, the structure travels well:
| Tier | Typical contents | Floor | Target | Rationale |
|---|---|---|---|---|
| Fast commodity | Filters, fasteners, consumables | 12% | 20% | Velocity carries it; heavily price-checked |
| Core catalog | The 80% of revenue in the middle | 25% | 35% | Pays the bills; standard cost-to-serve |
| Long tail / slow | Sells a few times a year | 35% | 45% | Each sale funds months of shelf time |
| Heavy / oversize | Freight or dimensional-weight items | 30% | 40% | Shipping eats a bigger slice of price |
Two placement rules cover most edge cases. Anything under MAP or contract pricing keeps its tier floor but loses the reprice lever — a breach there goes straight to the renegotiate-or-drop conversation. And deliberate traffic drivers you knowingly run thin should be excluded explicitly, on a written list — not by quietly lowering the whole tier's floor to stop the alerts.
When a price file pushes a SKU through the floor
Floors earn their keep on the day a supplier reprices. Concretely: a core-catalog SKU retails at $15.99 with a cost of $10.00 — a 37.5% margin, comfortably above its 30% floor. The new price file lands the cost at $11.80, up 18%. The margin is now (15.99 − 11.80) / 15.99 = 26.2% — through the floor, and nothing about the product page looks any different.
The floor turns that from a silent fact into a queue of decisions:
- Reprice to target. Hold-target price = 11.80 / (1 − 0.35) = $18.15; rounding to a $17.99 shelf price lands at 34.4%. Whether the product survives a 12.5% retail increase is a judgment call — the repricing math and its options are a separate article.
- Renegotiate or re-source if the retail is capped by competition or MAP.
- Drop or run out if neither works — an honest outcome the floor forced you to reach in July rather than at year-end.
What the floor is not is an auto-repricer. It's a tripwire that converts a line in a spreadsheet into a decision with a deadline.
Maintaining the floors
Floors drift stale the same way costs do. Two habits keep them honest:
- Re-derive the cost-to-serve stack twice a year. Carrier rate changes and processor terms move the base of every floor. If your blended label subsidy rises two points, every floor just silently dropped two points in real terms.
- Audit the exceptions quarterly. The list of SKUs sitting below floor "for a reason" only ever grows. Each quarter, every resident of that list either gets a current justification or gets handled.
Find what's already under your floor
Load your latest supplier price list and your Shopify export into the free Supplier Price Margin Checker: it recomputes every matched SKU's margin at the new cost and shows you exactly which ones just went through whatever floor you set.
Open the free checker ↗