Identifying the optimal prices for products was once a time-consuming process. That’s changing as businesses start to take advantage of advances in machine learning, increases in computing speed, and greater availability of data.

Until fairly recently, price optimization has been restricted primarily to certain industries that have limited inventory, such as airlines and hotels. It’s complex work, demanding the analysis of vast quantities of data and a deep understanding of competitors’ behavior. Few organizations could optimize the price of more than a handful of products at one time.

But this is changing. Thanks to the growing availability of internal and external data, advances in machine learning, and increases in computing speed, price optimization can be applied more broadly. We have developed a way to set optimal prices for hundreds of stock units in near real time and on an ongoing basis.

In trials of our pricing technology with three online retailers, we found that we were able to increase each retailer’s revenue, market share, and profit for selected products by double digits. What’s more, although the examples described in this article involve online retailers, the price optimization method we developed is also appropriate for brick-and-mortar retailers; we recently implemented a similar method at a brewing company, where we optimized the company’s promotion and pricing in various retail channels with similar results.

A Three-Step Process

Our system for generating better price predictions includes three steps:

  1. Forecast. We match a cluster of products with similar sales characteristics to those of the product being optimized. Then we use a machine learning technique called a regression tree,1 which consists of a set of if-then statements that yield a prediction. Using a company’s historical sales data, our algorithm generates as many as 20 if-then statements that can be used to predict the relationship between demand and price. That information, in turn, can be used to generate a price.
  2. Learn. Next, we test our price against actual sales, redrawing our pricing curve to match actual results. At the end of the learning period, we know how well the product sold and can use that information to refine our demand-price curve for it.
  3. Optimize. Once the learning period is over, we apply the new curve and optimize pricing across hundreds of products and time periods.

Price Optimization in Practice

In reality, not every step is used in every situation. For example, Boston, Massachusetts-based Rue La La Inc. did not want us to change prices in the course of its 48-hour sales, so we skipped the learning step.


1. A regression tree is a kind of decision tree where each node represents an “if-then” rule; when these rules are followed, the tree yields a numerical prediction. For our purposes, these if-then rules are created by an algorithm sifting through a company’s historical sales.

2. For more details, see K.J. Ferreira, B.H.A. Lee, and D. Simchi-Levi, “Analytics for an Online Retailer: Demand Forecasting and Price Optimization,” Manufacturing & Service Operations Management 18, no. 1 (winter 2016): 69-88.

3. For more details, see W.C. Cheung, D. Simchi-Levi, and H. Wang, “Technical Note — Dynamic Pricing and Demand Learning With Limited Price Experimentation,” Operations Research, Articles in Advance,

4. In this case, we used a more sophisticated version of regression trees called “random forest.”