In the highly competitive grocery industry, retailers must navigate complex pricing decisions across a wide range of products to meet business objectives while also maintaining customer satisfaction.
Luca, a retail price optimization company, understands the pivotal role pricing plays in this space. That’s why they developed a sophisticated price optimization solution that puts the power of price optimization directly in the hands of grocery pricing operators.
With help from Gurobi’s solver, Luca built an advanced model that can handle tens of thousands of products and configurable constraints tailored to each retailer’s unique objectives and strategies—and that can be solved in seconds, with just the click of a button.
The complexity of grocery pricing cannot be overstated. Retailers often manage tens of thousands of products across multiple stores, resulting in a massive number of variables in any pricing model. Each retailer has a wide range of objectives (like profit maximization, revenue growth, or market share expansion) and constraints (including price bounds, margin requirements, and promotional strategies).
At the heart of the pricing model is a nonlinear objective function of profit and revenue. Profit and revenue depend on both the price and the demand of each product, with demand itself being a function of price, modeled through price elasticity. This creates a nonlinear relationship in the objective function, as changing the price impacts demand, which in turn influences the profit and revenue. This interdependence adds significant computational complexity to the optimization problem.
Moreover, some of the constraints—such as average margin constraints—are quadratic in nature, creating additional layers of complexity. The most intricate models Luca deals with are mixed-integer quadratically constrained quadratic programs (MIQCQP). These models are hard to solve efficiently due to their nonlinear and non-convex characteristics.
Despite the inherent complexity of the models, retailers must rapidly generate price plans to experiment with different responses to market changes, promotions, or competitor actions. Previous solutions that took over 30 minutes to process were impractical for this type of real-time decision-making and hindered the ability to scenario-plan different pricing strategies.
To address these challenges, Luca integrated Gurobi’s solver into their price optimization platform. Gurobi can be called by most modeling languages. In Luca’s case, they chose Pyomo, an open-source Python-based optimization modeling language.
Gurobi was able to solve the large-scale MIQCQP problem efficiently with:
The integration of Gurobi led to a dramatic improvement in solution times:
The integration of Gurobi into Luca’s price optimization platform brought significant benefits to both Luca’s product and their retail customers. Retailers can now configure a wide range of objectives and constraints, tailoring the optimization to their specific needs without sacrificing speed or performance. Gurobi’s ability to efficiently process models with tens of thousands of products and constraints, including quadratic constraints, has enabled Luca to handle complexity with ease.
One of the most remarkable outcomes is the dramatic improvement in solution times. Optimization problems that previously took over 30 minutes are now solved in seconds. This speed improvement allows retailers to generate price plans on demand within Luca’s product, placing the power to execute sophisticated price optimization strategies in the hands of the pricing operator.
“Gurobi has been a game changer for us, making it significantly easier and faster to solve complex pricing problems,” says Andrew Rall, Founding Data Scientist at Luca. “The speed and efficiency we’ve gained ultimately benefit our customers, enabling them to implement real-time, data-driven pricing strategies with confidence.”
GUROBI NEWSLETTER
Latest news and releases
Choose the evaluation license that fits you best, and start working with our Expert Team for technical guidance and support.
Request free trial hours, so you can see how quickly and easily a model can be solved on the cloud.