Product Assortment Optimization
Mixed-Integer Programming — Shelf Space Allocation
A retail category manager must decide which of 8 candidate products to carry and how many shelf facings to allocate. Poor assortment wastes 5–15% of potential category profit. The problem is a shelf-space MIP with substitution effects.
The Problem
Shelf-space allocation as a mixed-integer program
A category manager evaluates 8 candidate products, each with a known weekly margin per facing, velocity (units sold per facing per week), and space requirement (number of shelf facings needed). The total available shelf space is S facings. The goal is to select a subset of products and assign facings to maximize total weekly category profit.
This is a classic bounded knapsack variant where each product may receive multiple facings up to an upper bound, and the objective accounts for diminishing marginal returns on additional facings. Substitution effects mean that dropping a popular product shifts some of its demand to remaining items in the assortment.
subject to
Σi fi · xi ≤ S // total shelf space capacity
xi ∈ ℤ+ // integer facings per product
xi ≤ ui // max facings per product
Where ci is the profit contribution per facing of product i, fi is the space requirement (facings), xi is the decision variable (number of facings to assign), and S is the total shelf capacity.
See Integer Programming theoryTry It Yourself
Select products and optimize shelf allocation
Assortment Optimizer
8 Products · 20 FacingsReady. Select products or load a scenario, then click “Optimize Assortment.”
| Algorithm | Products | Facings | Profit/wk | Util % | Time |
|---|---|---|---|---|---|
| Click Optimize Assortment | |||||
The Algorithms
Three approaches to assortment selection
Greedy (Profit / Space Ratio)
O(n log n) | Sort by efficiency, fill greedilyRanks all candidate products by their profit-per-facing ratio (ci / fi) and fills the shelf top-down until capacity is exhausted. This is the fractional knapsack heuristic applied to integer facings. Fast and intuitive, it produces near-optimal solutions when items are small relative to shelf capacity, but can miss global optima when large items with high total profit are displaced by many small efficient ones.
Greedy (Pure Margin)
O(n log n) | Sort by absolute margin, fill greedilyRanks products by absolute margin per facing (ci) regardless of space consumed. This strategy favours premium, high-margin products and ignores space efficiency. It works well when the category manager wants to maximize per-unit profitability and shelf space is not the binding constraint, but can lead to poor utilisation when high-margin items also require many facings.
Integer Linear Program (ILP)
O(2n) worst case | Branch & Bound — globally optimalSolves the shelf-space allocation as a bounded knapsack problem using dynamic programming (pseudo-polynomial) or branch-and-bound. Guarantees the global optimum by exploring the integer feasible set exhaustively. For the 8-product instance here, the solution is found in microseconds. In production with thousands of SKUs and side constraints (planogram rules, brand blocks, minimum assortment requirements), commercial MIP solvers like Gurobi or CPLEX handle instances with 10,000+ variables.
Real-World Complexity
Why retail assortment goes beyond a simple knapsack
Beyond the Basic Model
- Substitution effects — When a product is dropped, some demand transfers to substitutes; ignoring this overestimates the cost of delisting
- Space elasticity — Sales response to additional facings is non-linear; the first facing captures most demand, subsequent facings have diminishing returns
- Planogram constraints — Shelves have fixed heights and depths; products must fit physically, and brand blocks must be contiguous
- Multi-store heterogeneity — Optimal assortments differ across store clusters (urban vs suburban, large vs small format)
- Supplier agreements — Listing fees, slotting allowances, and minimum distribution commitments constrain which products can be carried
- Seasonality & trends — Product velocity changes over time; assortment reviews must anticipate demand shifts
- Cross-category effects — Carrying a specific brand in one category may drive traffic to complementary categories (e.g., chips and dips)
Key References
Foundational works in assortment optimization
- (2008). “Assortment Planning: Review of Literature and Industry Practice.” Retail Supply Chain Management, Springer, 99–153.
- (2010). “Assortment Planning and Inventory Decisions Under Stockout-Based Substitution.” Operations Research, 58(5), 1364–1379.
- (2009). “A Column Generation Algorithm for Choice-Based Network Revenue Management.” Operations Research, 57(3), 769–784.
- (2012). “A Piecewise Linearization Framework for Retail Shelf Space Management Models.” European Journal of Operational Research, 222(1), 122–136.
Need to optimize your product assortment?
From shelf-space allocation to demand-driven assortment planning with substitution modelling, mathematical optimization can unlock 5–15% more category profit. Let’s discuss how Operations Research can work for you.