Skip to main content

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.

Network Planning
Inventory
Fulfillment
Last Mile

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.

Shelf-Space MIP Formulation maximize   Σi ci · xi   // total weekly category profit
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 theory

Try It Yourself

Select products and optimize shelf allocation

Assortment Optimizer

8 Products · 20 Facings
8 40 20
Selected: 0
Min Facings: 0
Est. Profit: $0
Shelf Utilisation 0%

Ready. Select products or load a scenario, then click “Optimize Assortment.”

AlgorithmProductsFacingsProfit/wkUtil %Time
Click Optimize Assortment
Product allocations will appear here after optimization.

The Algorithms

Three approaches to assortment selection

Heuristic

Greedy (Profit / Space Ratio)

O(n log n)  |  Sort by efficiency, fill greedily

Ranks 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.

Heuristic

Greedy (Pure Margin)

O(n log n)  |  Sort by absolute margin, fill greedily

Ranks 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.

Exact (MIP)

Integer Linear Program (ILP)

O(2n) worst case  |  Branch & Bound — globally optimal

Solves 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

  • Kök, A. G., Fisher, M. L., & Vaidyanathan, R. (2008). “Assortment Planning: Review of Literature and Industry Practice.” Retail Supply Chain Management, Springer, 99–153.
  • Honhon, D., Gaur, V., & Seshadri, S. (2010). “Assortment Planning and Inventory Decisions Under Stockout-Based Substitution.” Operations Research, 58(5), 1364–1379.
  • Bront, J. J. M., Méndez-Díaz, I., & Vulcano, G. (2009). “A Column Generation Algorithm for Choice-Based Network Revenue Management.” Operations Research, 57(3), 769–784.
  • Irion, J., Lu, J.-C., Al-Khayyal, F., & Tsao, Y.-C. (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.

Disclaimer
Data shown is illustrative. Product margins, velocities, and space requirements are representative scenarios for educational purposes and do not reflect any specific retailer or category.
Back
ESC