Why Fashion Sellers Drown in Dead Inventory
The classic mistake:
You launch a new dress. Manufacturer's minimum: 100 units. You guess at sizes:
- 20 XS (20%)
- 30 S (30%)
- 30 M (30%)
- 20 L (20%)
What actually sells in first 90 days:
- XS: 18 sold (90% sell-through) ✓
- S: 30 sold (100% sell-through) - stockout!
- M: 22 sold (73% sell-through)
- L: 8 sold (40% sell-through) - dead stock
You ended with:
- 50 units sold total
- Lost sales: ~10 S you didn't have
- Dead inventory: 12 L you'll markdown
- Cash tied up: $240 in dead L sizes (at $20 COGS)
The fix: Historical size/color matrices tell you the ACTUAL demand curve before you place orders.
This guide shows you how to build matrices that save you thousands in markdowns.
The Fashion-Specific Data You Need
Export from Shopify/WooCommerce:
Product-level data:
- Style name
- SKU (base SKU + variant)
- Size (XS, S, M, L, XL, XXL)
- Color
- Units ordered (purchase order quantity)
- Units sold (order line items)
- Units remaining
- Date first available
- Date last sold
Calculate These Metrics:
1. Sell-Through Rate:
```
Sell-Through % = (Units Sold / Units Ordered) × 100
```
2. Days to Sell Through:
```
Days to Sell Through = Date Last Sold - Date First Available
```
3. Sell-Through Velocity:
```
Units per Day = Units Sold / Days Available
```
4. Size Mix Actual vs Planned:
```
Actual % = Units Sold by Size / Total Units Sold
Planned % = Units Ordered by Size / Total Units Ordered
Variance = Actual - Planned
```
Build Your Size/Color Performance Matrix
-
3
Export Product Variant Sales Data
Shopify: Products → Export → Include all variants. Ensure columns for: Title, Variant SKU, Option1 (Size), Option2 (Color), Variant Inventory, Variant Sales Count. Last 12 months for seasonal patterns.
-
3
Calculate Sell-Through Rate per Variant
Add column: Sell_Through = (Units_Sold / Units_Ordered) × 100. This shows which size/color combos sold well (>80%) vs dead stock (<50%).
-
3
Create Size Performance Pivot Table
Pivot: Rows = Size, Values = SUM(Units_Sold), AVERAGE(Sell_Through_%), COUNT(Styles). Sort by units sold descending. This reveals your size curve: which sizes sell most.
-
3
Create Color Performance Pivot Table
Pivot: Rows = Color, Columns = Month (if seasonal trends), Values = SUM(Units_Sold), AVERAGE(Sell_Through_%). Sort by sell-through descending. Shows hot colors vs duds.
-
3
Build Size × Color Matrix
Pivot: Rows = Size, Columns = Color, Values = AVERAGE(Sell_Through_%). This 2D matrix shows which size+color combos are winners. Example: S+Black = 95%, L+Yellow = 12%.
-
3
Calculate Optimal Size Mix %
For each size, calculate: Optimal % = Units Sold of Size / Total Units Sold. This is your target size mix for future orders. Compare to what manufacturer offers (often flat 25% each).
-
3
Add Conditional Formatting for Alerts
In matrix, format cells: Green if >80% sell-through (winners), Yellow if 50-80% (acceptable), Red if <50% (avoid this combo). Instantly see which variants to avoid.
-
3
Create Buy Plan Template
When placing new order: Total units needed × Optimal size % = Units per size. Example: 200 units × 35% S = 70 S. Rounds to nearest case pack size if manufacturer requires it.
Typical Size Curves by Product Category
Women's Tops (T-shirts, Blouses, Sweaters)
Typical size mix:
- XS: 10%
- S: 30%
- M: 35%
- L: 20%
- XL: 5%
Peak: Medium
Women's Dresses
Typical size mix:
- XS: 15%
- S: 35%
- M: 30%
- L: 15%
- XL: 5%
Peak: Small (dresses run larger than tops)
Men's T-shirts
Typical size mix:
- S: 15%
- M: 30%
- L: 35%
- XL: 15%
- XXL: 5%
Peak: Large
Men's Button-Downs
Typical size mix:
- S: 10%
- M: 25%
- L: 35%
- XL: 20%
- XXL: 10%
Peak: Large (more XL/XXL demand than casual wear)
Kids Clothing
Varies dramatically by age range:
- Toddler (2-4T): Peaks at 3T
- Kids (5-12): Peaks at 8/10
- Youth (13-16): Peaks at 14/16
Critical: Kids sizes sell through FAST at peak age, slow at edges.
Color Performance: The Seasonal Matrix
Year-Round Safe Colors (80%+ sell-through)
1. Black: Universal, all seasons
2. White/Cream: Summer peak, decent year-round
3. Navy: Professional, stable demand
4. Gray/Heather Gray: Athleisure, year-round
5. Denim Blue: Casual, stable
Seasonal Colors (High sell-through in season, dead outside)
Spring (Mar-May):
- Pastels: Light pink, mint, lavender
- Coral, peach
- Light florals
Summer (Jun-Aug):
- Bright colors: Yellow, orange, bright pink
- Turquoise, aqua
- Bold florals
Fall (Sep-Nov):
- Earth tones: Rust, burgundy, olive
- Mustard, burnt orange
- Browns and caramels
Winter (Dec-Feb):
- Jewel tones: Emerald, ruby, sapphire
- Deep burgundy, forest green
- Metallics (for holidays)
Risky Colors (Often <50% sell-through)
- Neon colors (except specific athletic brands)
- Unusual colors (chartreuse, magenta)
- Trendy colors past their peak (millennial pink in 2025)
Excel Formula to Flag Seasonal Colors:
```excel
=IF(AND(Color="Pastel Pink", MONTH(Today())>=3, MONTH(Today())<=5), "Buy Now",
IF(AND(Color="Pastel Pink", MONTH(Today())>=9), "High Risk",
"Neutral"))
```
Advanced Analysis: Size × Color × Style Performance
The 3D Matrix Problem:
Size performance varies by:
1. Size (S, M, L)
2. Color (Black, Navy, Red)
3. Style (Fitted vs Relaxed, V-neck vs Crew)
Example patterns:
- Fitted styles: Peak at S (60% of sales)
- Relaxed styles: Peak at M/L (70% of sales)
- Black fitted: 95% sell-through
- Yellow relaxed: 30% sell-through
Excel Approach: Segmented Matrices
Create separate size/color matrices for:
- Fitted styles only
- Relaxed styles only
- Dress shirts vs casual shirts
- Each product category
Why: One "average" matrix hides critical patterns.
Real Example: Athletic Leggings
Overall size mix looks like:
- S: 30%, M: 35%, L: 25%, XL: 10%
But when you segment by style:
High-waisted leggings:
- S: 45%, M: 35%, L: 15%, XL: 5%
Standard-rise leggings:
- S: 20%, M: 35%, L: 30%, XL: 15%
Using overall average would create dead stock in both segments.
The Buy Planning Spreadsheet: From Matrix to Purchase Order
Step 1: Determine Total Units Needed
Methods:
A. Historical velocity:
```
Monthly_Velocity = Units_Sold_Last_3_Months / 3
Reorder_Qty = Monthly_Velocity × Months_of_Cover_Desired
```
B. Manufacturer minimums:
- You need 100 minimum to place order
- Or: 200 units to hit price break tier
C. Budget-constrained:
```
Max_Units = Available_Budget / Unit_COGS
```
Step 2: Apply Optimal Size Mix
Formula for each size:
```excel
=Total_Units × Size_Optimal_Percent
```
Example:
- Total order: 200 units
- S optimal: 35%
- S order qty: 200 × 0.35 = 70 units
Step 3: Round to Case Pack Requirements
Manufacturers often require multiples of:
- 6 units per size/color combo
- 12 units per size
- 24 units per inner carton
Formula:
```excel
=CEILING(Calculated_Qty, Case_Pack_Size)
```
Example: 70 S calculated, 12-pack required → 72 S ordered (6 packs)
Step 4: Allocate Colors within Each Size
Use color performance matrix:
If ordering 72 S, and color matrix shows:
- Black: 40% of S sales
- Navy: 30% of S sales
- Gray: 20% of S sales
- Red: 10% of S sales
Allocation:
- Black S: 72 × 0.40 = 29 → round to 30
- Navy S: 72 × 0.30 = 22 → round to 24 (case pack)
- Gray S: 72 × 0.20 = 14 → round to 12 (don't over-order risky)
- Red S: 72 × 0.10 = 7 → round to 6 (minimum for testing)
Total: 72 S (matches size allocation)
Markdown Decision Matrix: When to Liquidate
30-60-90 Day Sell-Through Benchmarks:
30 days:
- >50% sell-through: Winner, reorder
- 30-50%: Acceptable, monitor
- <30%: Risky, no reorder
60 days:
- >70% sell-through: Good product
- 50-70%: Acceptable
- <50%: Dead stock, markdown soon
90 days:
- >80% sell-through: Success
- 60-80%: Acceptable
- <60%: Markdown immediately
Excel Markdown Calculator:
Input:
- Units remaining
- Original retail price
- COGS per unit
- Target markdown % (25%, 50%, 75%)
Calculate:
```excel
Markdown_Price = Original_Price × (1 - Markdown_%)
Revenue_at_Markdown = Units_Remaining × Markdown_Price
Total_Cost = Units_Remaining × COGS
Profit_Loss = Revenue_at_Markdown - Total_Cost
```
Decision Matrix:
| Sell-Through | Days Available | Action | Markdown % |
|--------------|----------------|--------|------------|
| <40% | 90+ | Clearance | 50-75% |
| 40-60% | 90+ | Markdown | 25-50% |
| 60-80% | 90+ | Hold | 0-25% |
| >80% | Any | Reorder | 0% |
Stop guessing at size mixes. Get automated fashion analytics showing size curves, color trends, and buy recommendations based on your actual sales patterns.
Get Fashion AnalyticsWorks with Shopify, WooCommerce fashion stores
Common Mistakes to Avoid
Learn from these common pitfalls to ensure success
Using manufacturer's suggested size mix instead of your actual sell-through data
Solution: Manufacturers suggest flat 25% each size for their convenience. Your customers don't buy that way. Use YOUR historical size curve, not theirs.
Ordering seasonal colors outside their season
Solution: Pastels ordered in October will sit until March. Order seasonal colors 2-3 months before their peak season, liquidate at end of season.
Not segmenting size curves by product category
Solution: Dresses, tops, pants all have different size curves. One 'overall' mix creates dead stock in all categories. Segment by category.
Ignoring case pack requirements in buy plan
Solution: If calculated 37 M but case packs are 12, you must order 36 or 48. Build rounding into your Excel formulas: =CEILING(qty, 12).
How to Verify Your Numbers
Ensure accuracy with these verification steps
Your size mix sums to 100% (no rounding errors creating 103% or 97%)
Top 2 sizes represent 60-70% of total order (concentrated demand is normal)
Safe colors (black, navy, white) are 50%+ of color mix (risk management)
Your sell-through rate for past orders matches benchmarks: 80%+ at 90 days
When you apply optimal size mix to next order, units per size change from flat distribution
Frequently Asked Questions
What if my store is too new to have 12 months of data?
How do I handle plus sizes (1X, 2X, 3X)?
What about petite and tall variants?
Should I order less of risky colors to minimize dead stock?
How often should I recalculate optimal size mix?
Ready to Transform Your Reporting?
Start with a free report and see exactly what you'll get every time.