SKU Rationalization: How to Use Data to Kill Low-Performing Products
Published on December 24, 2025
Key Takeaways
The $40K-$120K Problem: Most D2C brands pay carrying costs on 200+ SKUs that destroy profitability.
The 80/20 Rule is Brutal: 20% of SKUs drive 80% of revenue. The bottom 50% often consume 40-50% of warehouse space.
Direct Product Profitability (DPP): Calculate Revenue - COGS - Direct Operating Costs for each SKU to identify losers.
8-12 Week Liquidation Process: Strategic phase-out recovers 60-80% of inventory cost vs. 20-40% fire-sale.
You have 847 SKUs. Your warehouse manager says you're overstocked on 200 of them. Your CFO says carrying costs are eating 32% of inventory value. Your sales team says "we might sell it someday."
Nobody knows which 200 SKUs to cut.
So nothing happens. You keep ordering replacement stock for products that sit on shelves for 8 months. You rent additional warehouse space because 35% of your inventory is dead weight. Your margin collapses by 3-4 percentage points annually because carrying costs on slow movers compound.
This is the $40,000-$120,000 annual cost of not killing your bad SKUs.
We audited a $3.2M D2C apparel brand last month. They had 847 active SKUs. Within that: 642 SKUs represented 80% of revenue (per Pareto analysis). The remaining 205 SKUs? $18,400 in annual carrying costs. Profit contribution? $12,000. Net loss: $6,400 per year on 205 products.
They were paying to lose money.
SKU rationalization isn't complicated. It's just data. You calculate which products are destroying profitability, build a case to kill them, and liquidate methodically. But most D2C brands don't because:
- They confuse sales volume with profit. A SKU that sells 50 units has no profit if carrying costs exceed margin.
- They don't calculate true carrying costs. They estimate $2,000/year and don't realize it's actually $8,000.
- They're scared to make the call. Marketing said "we need variety." Sales said "keep it, it's strategic." Nobody uses data.
- They don't have the data. Inventory lives in one system, sales in another, margins in a spreadsheet.
Here's the exact process to use data to identify and eliminate your worst SKUs—and free up $30,000-$100,000 annually in capital and carrying costs.
The Brutal Math: Why Dead SKUs Kill Margins
Let's start with the actual cost of holding inventory that doesn't sell.
Carrying cost = all the money it costs you to store unsold goods. Not just warehouse rent. Insurance, labor, utilities, shrinkage, obsolescence, opportunity cost (capital you could've deployed elsewhere).
Industry standard: 15-25% of inventory value per year. Some sources say 18-75% depending on business type.
Let's be conservative and use 20%.
Example: Your $3.2M brand
Average inventory value: $480,000 (typical 4-month supply for D2C apparel)
Carrying cost at 20%: $96,000/year
If 205 of your 847 SKUs represent $35,000 in average inventory value, that's $7,000/year in carrying costs on those 205 SKUs alone
Now here's the kill shot: Most of those 205 SKUs probably don't generate $7,000 in annual profit.
A SKU that sells 8 units per month at $40 retail with $18 COGS:
Monthly revenue: $320
Monthly COGS: $144
Monthly gross profit: $176 = $2,112/year
But if that SKU ties up $1,200 in average inventory carrying 20% cost = $240/year holding cost, net profit = $1,872.
Seems positive. Now factor in:
Fulfillment labor: $40/SKU/year (picking/packing overhead)
Platform fees (Shopify, Amazon): $30/SKU/year
Marketing attribution: $80/SKU/year (allocation of paid ads)
Returns processing: $20/SKU/year
True net profit: $1,872 - $40 - $30 - $80 - $20 = $1,702.
Still positive, but tight. Now multiply by 205 low-performing SKUs. Even if each is $1,700 profitable:
205 × $1,700 = $348,500 in aggregate profit.
But 205 SKUs require:
Warehouse space: $35,000/year (allocated based on cube utilization)
Systems overhead: $8,000/year (per-SKU tracking, data integration, support)
Supplier complexity: $12,000/year (managing 50+ suppliers for niche items, bulk ordering inefficiency)
Aggregate carrying costs on 205 SKUs: $55,000 + other overhead = ~$75,000/year.
205 SKUs profit: $348,500. 205 SKUs cost: $75,000. Net benefit: $273,500.
But here's the trick: those 205 SKUs distort your mix. When you rationalize down to your best 200 SKUs, you typically see:
Warehouse space freed: Reduce from 8,000 sqft to 6,400 sqft = $20,000/year savings
System overhead reduction: Fewer SKUs = fewer exceptions, faster data processing, less manual intervention = $8,000/year savings
Supplier consolidation: Fewer vendors, larger orders per vendor, better negotiation = $12,000/year better terms
Marketing ROI improvement: Concentrate spend on winners; B-items and C-items dilute CAC = $25,000/year improvement
Inventory turns improvement: Fewer SKUs = faster avg turnover = capital freed up
Total recovered: $65,000-$85,000.
One more thing: If you freed up warehouse space ($20K/year), you're also freeing up ~$200K in capital that was tied up in inventory. That capital can go to paid ads (let's say 20% ROAS) = $40K additional revenue annually.
Total annual impact of killing 205 underperforming SKUs:
$105,000-$125,000
in recovered margin and capital.
That's the gap between a 12% net margin business and a 16% net margin business. That's the difference between sustainable growth and survival mode.
And all it requires is honest data and the guts to make the cut.
The 80/20 Rule (And Why It's Brutal)
The Pareto Principle applied to inventory is simple: 20% of your SKUs drive 80% of revenue.
Shopify 2025 data: The average online seller manages 3,200 SKUs. Typically:
Top 10-20% of SKUs = 80%+ of revenue
Middle 30-40% = 15-18% of revenue
Bottom 50% = 2-5% of revenue
But here's the truly brutal part: those bottom 50% of SKUs often take up 40-50% of warehouse space.
Why? Because the high-performers turn 6-8 times per year. They move fast. They don't accumulate. They take up less cube.
The bottom 50%? They turn <2 times per year. They sit. They accumulate. They take up massive space relative to their revenue contribution.
Look at the bottom 40%: 2% of revenue but 22.5% of inventory value.
If carrying cost is 20%, that's $21,600/year in cost for 2% of revenue.
If those 338 SKUs generate $64,000 in revenue at 35% gross margin = $22,400 gross profit, minus $21,600 carrying cost = $800 net profit on $108,000 in tied-up capital.
That's a 0.74% return on capital. Your CFO could invest that $108,000 in paid ads at 20% ROAS and generate $21,600 in incremental revenue with zero inventory risk.
The choice is obvious: Kill the bottom 40% of SKUs.
You lose 2% of revenue. You free up $108,000 in inventory capital. You reduce carrying costs by $21,600. Your warehouse footprint shrinks. Your remaining SKUs (the 60% that drive 98% of real profit) get better inventory allocation, better space, faster fulfillment.
The Data You Need (And Why You Probably Don't Have It)
To rationalize SKUs properly, you need to calculate exactly one metric for each SKU:
Direct Product Profitability (DPP)
= Revenue - COGS - Direct Operating Costs
Direct operating costs include:
Fulfillment labor (picking, packing, QC)
Shipping (FBA fees if Amazon, postage if DTC)
Returns processing (inspection, restocking, credit card chargebacks)
Carrying costs (allocated warehouse space, insurance, shrinkage, obsolescence)
Marketing attribution (if you can track it; otherwise use average CAC per SKU)
The problem: Most brands don't have this data. It lives in different systems:
Sales in Shopify/WooCommerce
COGS in spreadsheets or disconnected accounting
Fulfillment labor in warehouse notes
Carrying costs estimated (not calculated)
Marketing attribution missing entirely
Without integrated data, you're flying blind.
A brand we worked with had 1,247 SKUs. They thought they had data. They pulled a "top performers" report from Shopify. Top 50 SKUs by revenue. Done.
Then we built a DPP analysis. Top 50 by revenue? Only 32 were in top 50 by profitability.
Two SKUs in top-50 revenue were negative profitability. High volume, low margin, high returns.
They were prioritizing products that lost money.
Without integrated data and DPP calculation, you can't make intelligent SKU decisions.
The ABC Classification System (The Framework to Kill SKUs)
Once you have DPP data, classify SKUs into three tiers:
A-Items (Top 20% by revenue contribution)
Annual revenue per SKU: $8,000+
Inventory turnover: 6-8+ times per year
Carrying cost % of profit: 10-20%
DPP: Positive, >15% margin
Action: Protect, optimize, invest in marketing
Warehouse priority: Prime location, tightest controls
Decision: KEEP
Example: Your bestselling t-shirt. Sells 500 units/year at $40 = $20,000 revenue. COGS $12. Gross profit $14,000. Carrying cost $1,200. Net profit $12,800. Strong.
B-Items (Middle 30% by revenue contribution)
Annual revenue per SKU: $2,000-$8,000
Inventory turnover: 2-4 times per year
Carrying cost % of profit: 20-40%
DPP: Positive, but margin compressed
Action: Monitor, consolidate variants, consider bundling
Warehouse priority: Secondary location, standard controls
Decision: KEEP, but evaluate variants
Example: Your mid-range hoodie. Sells 80 units/year at $65 = $5,200 revenue. COGS $20. Gross profit $3,600. Carrying cost $1,400. Net profit $2,200. Tight.
C-Items (Bottom 50% by revenue contribution)
Annual revenue per SKU: <$2,000
Inventory turnover: <2 times per year
Carrying cost % of profit: >40% (often exceeds profit)
DPP: Negative or near-zero
Action: Evaluate closely; likely discontinuation candidate
Warehouse priority: Racking in back, or eliminate entirely
Decision: KILL (with exceptions for niche but strategic items)
Example: Your niche colorway (discontinued by supplier, only 3 units left in inventory). Sells 8 units/year at $40 = $320 revenue. COGS $12. Gross profit $224. Carrying cost $300/year. Net profit: -$76. You're paying to lose money.
Not all C-Items die. Some are strategic:
You make a $20,000 custom hoodie for a single enterprise client (high margin, low volume, strategic partnership) → KEEP
You offer 27 color variants of the same base product, but 24 are C-items → Consolidate down to top 5 variants
A product is in "end of life" phase but still loved by a niche segment → Phase out gradually instead of killing
The data informs the decision. Relationships and strategy override the data when justified.
The Elimination Process (Don't Cold-Cut; Liquidate Strategically)
You've identified 150 C-items to kill. Don't just delete them. You'll create obsolete inventory and anger customers.
Phase-out timeline: 8-12 weeks
Week 1-2: Stop Ordering
Don't place any new POs for these 150 SKUs
Let existing stock sell down naturally
Communicate to suppliers (reduces future inbound)
Week 3-4: Flag for Liquidation
Mark SKU as "discontinued" in system
Reduce price by 20-30%
Consolidate inventory to single location to reduce fulfillment complexity
Week 5-6: Promotional Push
Email to past buyers of that category (not the SKU; personalization matters)
Email example: "These colorways are being cleared. Final 50% off."
Feature in "clearance" category on website
Bundle with bestsellers ("Buy this hoodie, add discounted colorway for $X")
Week 7-8: Deep Discount
Reduce price by 50%+
Email again to broader audience
Consider Amazon liquidation partners (sell remainder in bulk at 40-60% of cost)
Week 9-10: Final Push
Last-chance email
75% off remaining stock
Donate remainder for tax write-off (if small volume)
Scrap or recycle unsellable inventory
Why this takes 8-12 weeks:
You don't want forced liquidation (desperation pricing = brand damage)
Gradual sell-down finds buyers at reasonable prices
You avoid "dead inventory" that never sells
Customers have opportunity to buy if they want
You recover 60-80% of cost vs. 20-40% with fire-sale
Real example: A $2.8M brand discontinued 47 low-performing SKUs. With strategic liquidation over 10 weeks, they recovered $34,000 (60% of inventory cost). With fire-sale liquidation (which they initially wanted), they would've recovered $8,000 (12% of cost). 8-week patience = $26,000 better outcome.
The Data-Driven Decision Framework
Here's the exact checklist to decide on each SKU:
| KILL IT if: |
|---|
| ☐ DPP is negative (losing money per unit) |
| ☐ Carrying cost exceeds 50% of annual profit |
| ☐ Inventory turnover <2x per year (DIO >180 days) |
| ☐ Return rate >20% (quality/fit issue) |
| ☐ Revenue trend declining 3+ consecutive months |
| ☐ No customer reviews or engagement (signal of low demand) |
| ☐ Supplier lead time >60 days (supply chain risk outweighs benefit) |
| ☐ Specialized/customized product with <5 annual orders |
| KEEP IT if: |
|---|
| ☐ Revenue >$5,000/year AND positive DPP |
| ☐ Strategic reason (brand positioning, full-line offering) |
| ☐ High customer satisfaction (reviews >4.0 stars) |
| ☐ Niche but loyal customer base (defensible, recurring buyers) |
| ☐ Seasonal (only evaluate in-season) |
| ☐ New product (allow 6-month runway before killing) |
| CONSOLIDATE VARIANTS if: |
|---|
| ☐ 3+ variants of same base product |
| ☐ Top 2 variants drive 85%+ of category volume |
| ☐ Kill bottom variants; focus on winners |
| ☐ Example: 4 color options → keep top 2 colors |
Odoo Implementation: How to Automate SKU Rationalization
Most brands should automate this. Manual SKU analysis in spreadsheets = delayed decisions, missed data, inconsistent methodology.
Odoo Inventory module gives you:
Real-Time Metrics:
Sales by SKU (last 30, 90, 365 days)
Inventory turnover ratio (auto-calculated)
Days inventory outstanding (DIO)
Average inventory value per SKU
Carrying cost allocated per SKU
Return rate by SKU
Automated Reports:
"Low-Turnover SKUs" (all SKUs <2x turnover)
"Aging Inventory" (all SKUs >120 days in stock)
"ABC Classification" (auto-generated A/B/C tiers)
"Profitability by SKU" (if COGS data is accurate)
"Return Rate Analysis" (high-return SKUs flagged)
Workflow Automation:
Auto-flag SKU if DIO >180 days
Alert if carrying cost > quarterly profit
Suggest discontinuation candidates weekly
Automate periodic (quarterly) SKU review
Decision Support:
Side-by-side comparison of variants
Demand transference modeling (if you discontinue SKU-A, what % of demand goes to SKU-B?)
Inventory valuation impact (write-off calculation if you kill stock)
Historical trend visualization
A $2.8M brand implementing Odoo-based SKU rationalization:
Time to identify discontinuation candidates: 30 minutes/quarter (vs. 4 hours in Excel)
Data accuracy: 99.5% (vs. 70% in manual spreadsheets)
Decision speed: Kill decision made in days, not weeks
Impact: Discontinued 87 SKUs, freed $52,000 in inventory capital, improved margin by 2.1 points
The Uncomfortable Truth
You're probably holding 100+ SKUs that actively destroy profitability.
You're not going to kill all of them. You should. But you won't, because:
"What if a customer wants it?"
"The supplier already made them."
"We might bring them back."
"The product team spent time developing it."
All bad reasons. The data doesn't care about sunk costs or "what-ifs."
But you'll probably kill 30-50% of your C-items, which will recover $40,000-$80,000 in capital and margin.
That's worth doing.
Your SKUs Are Dying in Slow Motion. Use Data to Put Them Out of Their Misery.
The average online seller manages 3,200 SKUs. Only 20% drive real profit. The bottom 50% destroy it.
You can calculate exactly which ones in 2-3 weeks if you have integrated data.
With data, you can make the call. Kill 50 underperforming SKUs, free up $50K in capital, improve margin by 1-2 points.
Without data, you guess. You keep products alive that are losing money. You pay carrying costs on dead weight.
Braincuber has helped 50+ D2C brands rationalize SKU portfolios using Odoo Inventory analysis.
The pattern: $40,000-$120,000 annually recovered per brand through:
Carrying cost reduction
Freed warehouse capital
Improved inventory turns
Better margin mix
Schedule your free 15-Minute SKU Rationalization Audit. We'll analyze your SKU portfolio, calculate your true carrying costs, identify discontinuation candidates, and show you the exact capital you can recover.
FAQ: SKU Rationalization & Product Elimination
How do we know if a SKU is truly underperforming vs. seasonal?
Great question. Seasonal products should be analyzed separately. Track 12+ months of data, not 3 months. A product that sells zero units June-August but $5,000 in December-January is seasonal, not dead.
Segment your analysis by season to avoid killing winter/summer products based on summer/winter data.
Won't killing SKUs hurt customer choice and sales?
Sometimes. But usually the opposite. Customers like curated selection. When you cut 150 low-performing SKUs and focus marketing on your top 200 winners, sales often increase by 5-10% because:
You're marketing winners (higher ROI)
Inventory turns faster (better availability)
Fewer out-of-stocks on bestsellers
Simpler website (better UX, easier to browse)
Real example: A brand cut 280 SKUs out of 847. Revenue dipped 2% initially, but within 3 months improved 8% because inventory allocation improved and they could stock bestsellers more aggressively.
How do we handle customer requests for discontinued products?
Offer alternatives in the same category. "We've discontinued that color, but customers love this one instead" with a linked recommendation. Or offer pre-order if you think there's demand.
Most customer requests are from long-tail demand; you can satisfy 95% of them with fewer SKUs.
What if we've already invested in inventory for a dead SKU?
Sunk cost. Don't let it influence the decision. Keeping dead stock to "recover" the investment usually costs more (carrying, obsolescence) than taking a write-off.
Accept the loss, liquidate, and move on.
How often should we review SKU performance?
Quarterly minimum. Some brands do monthly. Set a calendar reminder and run ABC analysis every 13 weeks.
As you grow and data improves, you'll get faster at identifying candidates.
What's the difference between "slow-moving" and "dead" inventory?
Slow-moving = sells 1-3 times per year (DIO 120-365 days). Dead = hasn't sold in 90+ days.
Slow-movers might be seasonal or niche; dead inventory has no demand signal.
Focus on dead first (certain kill). Slow-movers deserve analysis for seasonal/strategic factors.
How do we calculate true carrying costs? We're not sure if we're at 15% or 40%.
Calculate it properly:
Carrying Cost = (Warehouse Rent + Insurance + Labor + Utilities + Spoilage/Shrinkage + Obsolescence Write-offs) ÷ Total Annual Inventory Value
Example:
Warehouse rent: $24,000/year
Insurance: $6,000
Labor (part-time warehouse): $18,000
Utilities: $4,000
Spoilage/Shrinkage: $2,000 (assume 0.5%)
Obsolescence: $6,000 (assume 1.5%)
Total: $60,000
Average inventory value: $300,000
Carrying cost: $60,000 ÷ $300,000 = 20%
Many brands discover their actual carrying cost is 25-35%, not the 15% they assumed.
What if a product is low-revenue but high-margin?
Good catch. Use GMROI (Gross Margin Return on Investment) or DPP instead of just revenue.
A $1,000 revenue product at 60% margin and $500 carrying cost might be more valuable than a $5,000 revenue product at 20% margin and $1,500 carrying cost.
Should we involve sales/product teams in SKU decisions?
Absolutely. Show them the data, but don't let them override it without business justification.
"We might sell it someday" is not justification. "Our top customer specifically requests this variant" is.
Data informs decisions; relationships and strategy override data when there's a clear business reason.
Can we bundle slow-moving SKUs to boost sales?
Yes. Bundle a C-item with an A-item. "Buy bestseller + get this variant for $X."
Often works because you're leveraging the A-item's demand to clear the C-item.
Liquidation method, not a long-term solution, but valid intermediate step.
What's the risk of killing too many SKUs?
Lowest risk is killing bottom 10-20% by revenue. Higher risk when you go beyond 30-40%. At that point, you're touching products that might have loyal niche demand.
Use the data framework; don't kill based on pure gut.
Data says kill, but business relationship says keep? Probably keep. Data says kill, and no strategic reason to keep? Kill.
Braincuber specializes in SKU rationalization for D2C brands using Odoo Inventory data analysis.
We've helped brands recover $40K-$200K annually by identifying and eliminating unprofitable SKUs while protecting strategic products.
Your inventory tells you which products matter. Stop ignoring it.
Stop guessing which SKUs to kill. Get your data audit now.

