We consider the problem of choosing, from a set of N potential stock-keeping units (SKUs) in a retail category, K SKUs to be carried at each store to maximize revenue or profit. Assortments can vary by store, subject to a maximum number of different assortments. We view a SKU as a set of attribute levels and also model possible substitutions when a customer\u27s first choice is not in the assortment. We apply maximum likelihood estimation to sales history of the SKUs currently carried by the retailer to estimate the demand for attribute levels and substitution probabilities, and from this, the demand for any potential SKU, including those not currently carried by the retailer. We specify several alternative heuristics for choosing SKUs to b...