You launched with nine products. Four years later the catalogue has 64 SKUs, revenue is up, and cash is tighter than it was at 30. Nothing went wrong — every addition made sense on the day it was approved. That is the problem SKU rationalization exists to solve: catalogue sprawl is a tax that never appears as a line item, is charged every month, and is paid mostly in attention. Below is a weighted scoring framework, a worked table across eight SKUs, the traps that make a cut cost more than it saves, and the playbook for retiring a product properly.
Key takeaways
- Every SKU carries a fixed annual overhead — a forecast, a PO line, an MOQ, photography, shelf space, support answers — that is invisible in a P&L.
- Rank on contribution margin in rupees, never on revenue.
- Score seven weighted criteria and sort into keep / fix / watch / cut. Most of the list is “fix”, not “cut”.
- Check shared fabric, tooling and minimum orders first — killing a small SKU can raise a bestseller's material cost.
- The SKU worth cutting is usually a size or a colourway, not a whole product. Run it at variant level.
The hidden tax: what one extra SKU actually costs
Ask a founder what an extra SKU costs and you get the unit cost. That is the smallest part of it. The real cost is a bundle of fixed annual charges that barely move with volume — which is why they hurt most on your slowest products.
Every SKU needs a forecast and a reorder decision, twelve times a year. A line on a purchase order, and someone to receive and count it. An MOQ, so you buy more than you need and the surplus sits. A bin or a rack slot. Photography, copy, a size chart and a place in the navigation. Support answers — “does this run small”, “when is it back”. And a slice of your merchandising attention, the scarcest input of all.
Illustrative numbers, for a small Indian D2C brand at a fully loaded ops rate of ₹600 an hour:
Roughly ₹16,000 a year, before a single unit sells. Your numbers will differ; the shape is what matters. On a 64-SKU catalogue where 20 SKUs produce almost no contribution margin, that is ₹3.2 lakh of pure overhead plus the working capital frozen inside those 20 — buried in salary lines and a carrying-cost figure nobody itemises by product.
It is also the honest threshold for a keep decision. Note how brutal that is on the “high margin, low volume” story: 65% margin on 40 units at ₹900 is ₹23,400 of contribution, barely above the line, and that is before markdowns.
The scoring framework, with weights
A single metric always misleads. Contribution margin misses strategic role; units sold misses profitability; margin percentage misses scale. So score seven criteria, rate each 0-5, and weight them. The weights below are a sane default for a brand carrying physical inventory — adjust them, but write down what you changed and why.
| Criterion | Weight | What a 5 looks like | What a 0 looks like |
|---|---|---|---|
| Contribution margin, ₹, last 12 months | 30 | ₹6 lakh+ | Negative after returns and markdowns |
| Units sold, last 12 months | 15 | 2,000+ | Under 50 |
| Sell-through at 6 months | 15 | 80%+ | Under 20% |
| Gross margin % | 10 | 65%+ | Under 25% |
| Strategic role | 10 | Entry price point, range completer or proven acquisition product | No role beyond itself |
| Cannibalisation (inverse) | 10 | Nothing else in the catalogue replaces it | A survivor fully substitutes it |
| Shared-material overlap with survivors | 10 | Shares fabric, tooling or an MOQ slab with a bestseller | Wholly unique inputs and supplier |
Two criteria run backwards from intuition, deliberately. High cannibalisation argues for cutting — if a survivor absorbs the demand you keep most of the revenue and shed all the overhead. High material overlap argues against it, because the survivor's cost base depends on volume the small SKU contributes. Neither is visible in any sales report, which is why both get their own weight.
Get the inputs right first. Contribution margin is revenue minus landed cost, payment fees, shipping, returns and SKU-specific discounts — not gross margin. Measure sell-through from the same point in each product's life; the sell-through rate formula explains why comparing a three-month-old SKU to a three-year-old one is meaningless. And exclude stockout days from velocity, or every SKU you failed to reorder looks like a dud.
A worked scorecard across eight SKUs
A womenswear label with a 40-SKU catalogue, reviewing eight. The grouped column holds the three judgement ratings — role, cannibalisation, overlap — in that order.
| SKU | CM 12 mo | Units | Sell-through | GM % | Role / Cann / Ovl | Score | Call |
|---|---|---|---|---|---|---|---|
| Cotton shirt — Ivory | ₹8.4L | 2,400 | 86% | 62% | 5 / 5 / 5 | 98 | Keep |
| Linen dress — Indigo | ₹4.2L | 780 | 72% | 58% | 3 / 4 / 3 | 73 | Keep |
| Cotton tote — Natural | ₹0.6L | 1,150 | 78% | 33% | 5 / 5 / 3 | 64 | Fix |
| Quilted jacket — Olive | ₹2.6L | 410 | 61% | 48% | 3 / 4 / 2 | 60 | Fix |
| Cotton shirt — Sage | ₹1.1L | 320 | 44% | 60% | 4 / 2 / 5 | 54 | Watch |
| Linen dress — size XXL | ₹0.35L | 90 | 31% | 52% | 4 / 5 / 5 | 46 | Watch |
| Printed scarf — Multi | ₹0.42L | 260 | 24% | 41% | 1 / 2 / 1 | 27 | Cut |
| Silk kaftan — Gold | −₹0.18L | 40 | 18% | 22% | 1 / 3 / 0 | 8 | Cut |
The two Cut rows are obvious: the kaftan destroys margin after markdowns, and the scarf earns ₹42,000 a year against ₹16,000 of overhead while sitting on stock at 24% sell-through.
The value is in the middle four. The Sage shirt looks like a weak colourway — 320 units, 44% sell-through, a third of Ivory's contribution — and every revenue report says cut it; its 5 on material overlap says check first. The XXL dress scores 46 and is still a Watch, because a 5 on cannibalisation means nothing else serves that customer and a 4 on role means it tops the size run. The tote scores 1 on margin and 5 on role. The jacket is simply ordered in the wrong quantity.
"Fix" is the most important bucket, and usually the biggest. A fix is a price rise, a cost renegotiation, a smaller order quantity, a bundle or a photography redo — cheaper than a cut, and it keeps optionality. If your exercise produces more cuts than fixes, you are using it as a proxy for a conversation you have not had with your supplier.
Four traps that make a cut cost more than it saves
1. Cutting on revenue instead of margin
Revenue rank is the default sort in every store dashboard, and it is the wrong one. A discount-driven SKU sits in the top half on revenue and near the bottom on contribution: the scarf above did ₹4.1 lakh of gross revenue — mid-table here — and ₹0.42 lakh of contribution after promo discounts, a 9% return rate and free shipping on a low-value item. Rank on the money that survives, in rupees rather than percentages. An ABC analysis of the catalogue shows both rankings side by side.
2. Cutting a SKU that shares its fabric or its mould with a bestseller
This is the trap that turns a tidy cut into a net loss, and the reason the Sage shirt is a Watch. Both colourways are cut from the same base cotton, and the mill prices in slabs: 250 metres or more per order at ₹210/m, below that at ₹245/m. Ivory alone needs 170 m per run; Sage adds 90 m. Together they clear the slab.
Cutting the weak colourway makes the brand ₹2.28 lakh worse off. The same mechanism runs through a mould shared by two bottle sizes, a trim bought in one MOQ, a print screen amortised over two styles, and any price break you only reach by combining orders. With a proper bill of materials this check takes minutes: list what the candidate consumes, then see which survivors share it and what their price does at the lower volume. Without a BOM you are guessing, and the guess is usually wrong in the expensive direction.
3. Cutting a size or a shade that quietly kills the range
Ranges have a completeness effect per-SKU data cannot show. Drop XXL and the style stops being an inclusive size run — the customers who fit it leave, and a chunk of the customers who don't notice and judge. Drop the one deep shade from a six-shade foundation line and the line reads as unserious. The loss lands on the surviving SKUs weeks later, and nobody connects it to the cut.
The test: does the SKU exist to sell itself, or to make the range credible? If it is the second, it is a marketing cost — make fewer, make them to order, or accept low sell-through as the price of a complete range. What you don't do is judge it on its own contribution margin.
4. Cutting a product that acquires customers cheaply
The ₹1,290 cotton tote earns 33% margin and ₹0.6 lakh a year. Judged alone it is a Fix at best. But it is a common first purchase, and a cheap first purchase is worth more than its own margin — what matters is what those customers buy second. Pull the repeat rate of customers whose first order contained it. At or above your baseline, it is an acquisition channel that happens to ship in a box: fix the price or the cost, don't remove it.
A fifth trap worth naming: cutting on a history distorted by your own stockouts. A SKU unavailable for five months of twelve fails on both units and sell-through. Check availability days before you believe a low number, and lean on reports that measure velocity on in-stock days only.
Run it at variant level, not product level
Most rationalization decks operate on products. Almost every genuinely bad SKU is a variant. The shirt is not the problem; the Sage colourway in size XS is. A brand with 40 products across five sizes and three colours is really managing 600 SKUs, and the 40 hide how dead weight is distributed across the 600.
So your size curve is a rationalization tool. If XS is 6% of sales in a run where you buy 15% XS, you are manufacturing dead stock by policy — fix the curve before you delete anything. Variant-level costing matters too: two colourways of one style carry different margins once you account for dye lots, waste and rejection rates, and a product average hides both the winner and the loser.
By hand this is tedious. Honey Shelf keeps velocity, sell-through and BOM cost per variant, and the AI Copilot answers "which variants sold under 50 units in the last 12 months and share fabric with a top-10 SKU" in plain English — the exact question this framework asks.
The execution playbook
A decision to cut is not a delete button. Deleting a product destroys the sales history you need for next year's forecast, breaks order records, and creates 404s on URLs that may still hold rankings and backlinks. Retire it properly.
- Stop reordering, don't write off. Flag the SKU no-reorder and let existing stock sell through. A write-off converts an asset into a loss for accounting tidiness; a run-down converts it into cash.
- Sequence the exit over two cycles. Full price, then bundled with a bestseller, then discounted, then cleared. Bundling recovers more margin than discounting because the customer values the bundle, not the markdown. Same drill as clearing dead stock — except you choose the timing.
- Redirect the URL when the last unit ships. 301 to the nearest survivor — same category, similar price — not to the homepage. A homepage redirect throws away the ranking and the customer's intent.
- Tell the people who bought it. Email every purchaser from the last 18 months: being retired, last chance, here is the replacement. It clears remaining stock at full price to the people most likely to want it, and prevents the support wave that follows a silent deletion.
- Archive the variant data. Archived or draft, never deleted. Sell-through history, seasonality curve and cost record stay intact — you will want them if the SKU comes back or a similar one gets proposed.
- Reallocate the freed cash on purpose. The point is not a shorter list; it is capital moved to SKUs that turn faster. Decide where in the same meeting, or it dissolves into next month's ordering — your inventory turnover ratio by SKU says where.
- Cut in waves, then re-score. No more than 10-15% of SKUs a quarter, or you cannot tell which reduction caused which revenue change. Re-run the scorecard 90 days later.
Make it a quarterly habit
Catalogue sprawl accumulates through good decisions, one at a time, so it has to be reversed the same way. Put the scorecard on a quarterly calendar, hold the weights steady so scores stay comparable, and give every Fix an owner and a date. The discipline that matters is not the cutting — it is the honest ranking on contribution margin, in rupees, at variant level, with stockout days excluded.