Skip to main content

Assortment Planning

MNL choice model · Revenue-ordered property

Select which subset of \(N\) candidate SKUs to carry in the assortment, subject to a shelf-capacity constraint, to maximise expected revenue under the multinomial-logit (MNL) choice model. The landmark result of Talluri & van Ryzin (2004) is that under MNL with a capacity constraint, the optimal assortment is revenue-ordered — sort SKUs by price, add in order, and stop when marginal revenue turns negative. Reviewed comprehensively by Kök, Fisher & Vaidyanathan (2008/2014); modern generalisations include nested and mixed logit.

Why it matters

The merchandise-mix decision under customer choice

~2–8%
Revenue lift documented when retailers replace heuristic “stock everything” or “copy-from-header” rules with MNL-aware assortment optimisation.
Source: Kök, Fisher & Vaidyanathan (2008/2014) review.
O(N log N)
Complexity of the revenue-ordered optimum under MNL with capacity — sort by price, scan, stop. Orders of magnitude faster than enumerate-all.
Talluri & van Ryzin (2004).
NP-hard
Rusmevichientong et al. (2010): under constrained mixed-logit or nested-logit, the problem becomes NP-hard and requires approximation.
Rusmevichientong, Shen & Shmoys (2010).
~30%
Fraction of customer demand that substitutes when a SKU is not offered — the phenomenon that forces retailers into an MNL-aware framing.
Kök & Fisher (2007) field study.

Where the decision sits

Category planning · upstream of shelf, pricing, and replenishment

Assortment planning is the merchandise-mix decision: from a wider universe of candidate SKUs, pick the subset to carry in the category. It sits upstream of shelf-space allocation (which decides how many facings per carried SKU) and of markdown, grocery ordering, and newsvendor problems (which operate on the already-chosen mix). The retail-OR framing requires a customer-choice model because stock-out or omission substitution shifts demand across SKUs; without it, the problem is a plain knapsack and misses the structural effect (Kök & Fisher 2007).

Universe\(N\) candidate SKUs
Assortmentpick \(S \subseteq N\)
Shelffacings per SKU
Operateorder, price, markdown

Problem & formulation

MNL-based assortment optimisation with capacity constraint

Decision model
Subset Selection (MIP)
Demand model
Multinomial Logit (MNL)
Complexity
O(N log N) with capacity
Reference
Talluri & van Ryzin (2004)

Sets and parameters

SymbolMeaningUnit
\(i \in \mathcal{N}\)Candidate SKU (\(|\mathcal{N}| = N\))finite
\(r_i\)Retail price (or gross margin) of SKU \(i\)$ / unit
\(u_i\)Utility / attractiveness of SKU \(i\) (log-scale)real
\(u_0 = 0\)Utility of the no-purchase option (normalisation)real
\(C\)Shelf capacity (max SKUs in assortment)integer

Decision variable

SymbolMeaningDomain
\(S \subseteq \mathcal{N}\)Assortment: subset of SKUs to carry\(|S| \leq C\)

MNL choice probabilities

Under the multinomial-logit choice model (Ben-Akiva & Lerman 1985; Train 2009), a customer facing assortment \(S\) purchases SKU \(i \in S\) with probability:

$$P_i(S) \;=\; \frac{e^{u_i}}{1 + \sum_{j \in S} e^{u_j}} \qquad\qquad P_0(S) \;=\; \frac{1}{1 + \sum_{j \in S} e^{u_j}}$$

\(P_0(S)\) is the no-purchase probability. The denominator \(1 + \sum_{j \in S} e^{u_j}\) increases with every added SKU, so adding items reduces each incumbent's probability — the cannibalisation mechanic of MNL.

Objective

Maximise expected revenue per arriving customer:

$$\max_{S \subseteq \mathcal{N},\; |S| \leq C} \; R(S) \;=\; \sum_{i \in S} r_i \, P_i(S) \;=\; \frac{\sum_{i \in S} r_i \, e^{u_i}}{1 + \sum_{j \in S} e^{u_j}}$$

Revenue-ordered optimum (Talluri & van Ryzin 2004)

Under MNL with or without capacity, the optimal assortment is revenue-ordered: sort SKUs by price \(r_{(1)} \geq r_{(2)} \geq \cdots \geq r_{(N)}\). The optimal \(S\) is a prefix of this sorted list:

$$S^{\ast} \;=\; \{(1), (2), \ldots, (k^{\ast})\} \qquad k^{\ast} \;=\; \arg\max_{k \leq C} \; R(\{(1), \ldots, (k)\})$$

A critical-revenue condition: adding SKU \((k+1)\) is profitable iff \(r_{(k+1)} > R^{\ast}_k\) (the current optimal revenue); stop at the first SKU whose price falls below the running revenue. Complexity \(\mathcal{O}(N \log N)\) for the sort plus \(\mathcal{O}(N)\) for the scan.

Limitations of MNL

MNL satisfies the Independence of Irrelevant Alternatives (IIA) axiom, which means adding a new SKU shifts demand from all incumbents in proportion to their current share. When customers perceive some SKUs as closer substitutes than others (e.g., all diet sodas vs. regular), IIA is violated and nested-logit or mixed-logit is needed. Under those richer models the revenue-ordered property breaks and the problem is NP-hard (Rusmevichientong, Shen & Shmoys 2010).

Real-world → OR mapping

In the category officeIn the MNL model
Candidate SKUs (vendor offerings, incumbents, new items)\(\mathcal{N}\)
Ticket price (or gross margin) of each SKU\(r_i\)
Attractiveness (brand strength, features, past sell-through) — estimated from past assortment tests\(u_i\)
Category base-rate “no purchase” (customer walks away)\(u_0\)
Shelf / page slots available\(C\)
Chosen assortment this season\(S\)
Forecast per-customer revenue\(R(S)\)
“What happens if we drop this SKU” test\(R(S) - R(S \setminus \{i\})\)

Interactive solver

Revenue-ordered MNL assortment with capacity constraint

MNL assortment solver
8 SKUs · edit price and utility · capacity \(C\)
★★★ Exact under MNL (revenue-ordered)
Max SKUs in assortment
Typically 0 (normalised)

Candidate SKUs (edit price and utility)

Expected revenue per customer
SKUs in optimum \(|S^{\ast}|\)
No-purchase probability
Lift vs “carry all C”
Lift vs top-utility baseline
Avg price in assortment
Revenue-ordered prefix revenue Optimum \(k^{\ast}\) Capacity \(C\)

Under the hood

The solver sorts the 8 SKUs by price descending, then computes the MNL revenue \(R(S_k) = \sum_{i \leq k} r_{(i)} e^{u_{(i)}} / (1 + \sum_{j \leq k} e^{u_{(j)}})\) for each prefix \(k = 1, \ldots, \min(N, C)\). The optimal \(k^{\ast}\) is the argmax. Under MNL with a capacity, the Talluri-van Ryzin revenue-ordered result guarantees this prefix-enumeration finds the global optimum — no need for exhaustive subset search over \(2^N\) possibilities. Complexity \(\mathcal{O}(N \log N)\) including the sort.

Reading the solution

Three patterns to watch for

  • High-price SKUs anchor the assortment. The revenue-ordered property says we always include the highest-priced SKU. Adding a low-priced alternative reduces incumbents’ probability and may hurt revenue even if the low-priced SKU has high utility.
  • Capacity rarely binds in practice. The unconstrained optimum is often smaller than \(C\) — because each added SKU cannibalises, the “more is better” intuition from pre-MNL assortment thinking is wrong. A good assortment is curated, not stuffed.
  • The marginal cutoff. The running revenue \(R^{\ast}_k\) is itself the “price floor” for marginal additions — add SKU \((k+1)\) only if \(r_{(k+1)} > R^{\ast}_k\). This gives category managers a clean decision rule.

Sensitivity questions the model answers

  • What if we add a new “flagship” SKU at price $80 with utility 1.0? — it becomes the new anchor; everything below it re-sorts.
  • What if the no-purchase utility \(u_0\) rises (customers more willing to walk)? — the assortment should shift toward higher-utility SKUs to retain customers.
  • What if capacity is reduced from 4 to 2? — the assortment drops the two lowest-price items; revenue falls by approximately their marginal contributions.

Model extensions

Nested logit

Groups of similar SKUs have correlated utilities. Revenue-ordered within a nest; allocation across nests via a higher-level logit. Davis, Gallego & Topaloglu (2014).

Mixed logit (heterogeneous customers)

Consumer utilities vary by segment. NP-hard in general; Rusmevichientong-Shen-Shmoys (2010) give constant-factor approximations.

Capacity & shelf coupling

Joint decision: which SKUs AND how many facings each gets. Cross-links to shelf-space allocation.

Personalised assortment

Different assortments for different customer segments (e-com homepage, store profile). Sub-problem per segment.

Personalisation →
Dynamic assortment

Assortment changes within a season based on observed sales. Bandit framing; see Caro & Gallien (2007).

Assortment + pricing

Jointly pick \(S\) and prices \(r_i\). The MNL structure gives closed-form optimal prices when utilities are linear in price.

Markdown optimisation →
Fashion buying (pre-season)

Assortment choice for short-lifecycle fashion; combined with the newsvendor buy quantity.

Fashion buying →
Omnichannel assortment

Assortment differs online vs. in-store; customer can substitute across channels. Research frontier.

Key references

Talluri, K. T. & van Ryzin, G. J. (2004).
Revenue management under a general discrete choice model of consumer behavior.
Management Science 50(1): 15–33. doi:10.1287/mnsc.1030.0147 (The revenue-ordered property.)
Kök, A. G. & Fisher, M. L. (2007).
Demand estimation and assortment optimization under substitution: Methodology and application.
Operations Research 55(6): 1001–1021. doi:10.1287/opre.1070.0409
Kök, A. G., Fisher, M. L. & Vaidyanathan, R. (2008, rev. 2014).
Assortment Planning: Review of Literature and Industry Practice.
In Retail Supply Chain Management, Agrawal & Smith (eds.), Springer. doi:10.1007/978-1-4899-7562-1_8
Rusmevichientong, P., Shen, Z.-J. M. & Shmoys, D. B. (2010).
Dynamic assortment optimization with a multinomial logit choice model and capacity constraint.
Operations Research 58(6): 1666–1680. doi:10.1287/opre.1100.0866
Train, K. E. (2009, 2nd ed.).
Discrete Choice Methods with Simulation.
Cambridge University Press. doi:10.1017/CBO9780511805271 (MNL and its extensions.)
Ben-Akiva, M. & Lerman, S. R. (1985).
Discrete Choice Analysis: Theory and Application to Travel Demand.
MIT Press.
Davis, J. M., Gallego, G. & Topaloglu, H. (2014).
Assortment optimization under variants of the nested logit model.
Operations Research 62(2): 250–273. doi:10.1287/opre.2014.1257
Caro, F. & Gallien, J. (2007).
Dynamic assortment with demand learning for seasonal consumer goods.
Management Science 53(2): 276–292. doi:10.1287/mnsc.1060.0613
(OR Spectrum 2024).
Assortment optimization: A systematic literature review.

Back to the retail domain

Assortment planning sits in the Product × Tactical cell of the 4P decision matrix — upstream of every other retail merchandise decision.

Open Retail Landing
Educational solver · pure MNL with fixed utility parameters · validate against your category’s historical substitution patterns before applying live.