Retail & Neo4j: Pricing & Revenue Management

It’s never been easier for customers to comparison shop.

In a matter of minutes, customers can compare prices for a specific product across a dozen stores — and all from the comfort of home. They can even compare prices and purchase from a competitor while shopping at a different retailer’s brick-and-mortar storefront.

To compete on prices and optimize profitability, retailers need to deliver competitive prices in real time. In order to keep up, retailers will need a secret weapon: graph technology.

Learn how Neo4j enables you to adjust complex retail pricing and revenue management in real time

In this series on Neo4j and retail, we’ll break down the various challenges facing modern retailers and how those challenges are being overcome using graph technology. In our previous posts, we’ve covered personalized promotions and product recommendation engines, customer experience personalization, ecommerce delivery service routing and supply chain visibility.

This week, we’ll discuss retail pricing and revenue management.

How Neo4j Powers Revenue Management for Retailers

Competitive pricing is based on a variety of factors, such as inventory, location, season, consumer demand, and more. These factors are very fluid and change quickly.

For example, if a hotel plans pricing based on the basketball championships, which goes to seven games, then those cities where the games are hosted will have low inventory, and should be priced accordingly. But if the championship is over in five games, then there will be more inventory for what would’ve been the last two games, and the retail pricing should change appropriately.

What’s more, each retail location may have a different price based on the market. The more retailers are able to understand their micro-markets and optimize product pricing to match availability, the more options there are to improve margins and sales in the right proportion. However, a relational database can’t keep up with these data points, and poor performance makes it impossible to deliver real-time pricing updates across multiple locations.

A graph database can help retailers address revenue management while delivering the scale and performance necessary for a real-time pricing engine. The interdependencies between the many variables can be represented as a graph, which gives retailers an effective way to determine and efficiently calculate prices even as dependencies change rapidly.

Marriott International Neo4j case study

Case Study: Marriott International

Marriott International – one of the world’s largest hospitality companies – needed a new pricing engine to drive both revenue and competitive differentiation.

The older pricing engine was being stretched by complex pricing rules that resulted in long pricing update cycles despite spending on massive amounts of hardware and tuning the legacy application. Marriott needed to provide a global system for on-property managers to review pricing recommendations and maintain pricing strategies for a 365-day horizon.

The hospitality company’s previous revenue management system was a manual-based mainframe green screen system. Prices were changed relatively infrequently due to the complexity of doing so. Publishing performance was slow — new prices didn’t show up for minutes or hours — and users avoided the system. But as the number of properties increased, so too did the number of pricing strategies and the complexity of those strategies.

The system used a highly normalized data model consisting of about ten levels of data in a relational database management system (RDBMS) with foreign key constructs. The company decided to build an application aware of the data model and relationships of the data.

However, some rate programs required over 30,000 lines of SQL queries to process, which took too long. With a business requirement to publish in less than 60 seconds, the company decided a rewrite was necessary.

The team decided to try Neo4j to achieve scale and performance for its 4,500 independent graphs with related data. In just eight weeks they built a prototype using Neo4j.

Although it wasn’t functionally complete, the team built a projection model that could process its most complex property in less than 34 seconds compared to 240 seconds (four minutes). The prototype also demonstrated that it could process properties concurrently compared to serially.

In five months, the company deployed the global system based on Neo4j for its 4,500 properties. As a result, the company found a 10-fold increase in publishing volumes, a 96% reduction in average publishing times, and a 50% reduction in server capacity and infrastructure costs.


Revenue management and real-time pricing are no longer calculations that can be made on the back of an envelope – nor in a far-off corporate headquarters. Rather, in order to remain competitive, retail prices must change rapidly as complex factors change within local markets.

These complex calculations are too interconnected for a relational database to handle at scale – or to publish in a narrow time window. That’s why retailers need a revenue management solution based on graph technology: every pricing factor within a connected data set can be calculated quickly and then published immediately.

In the coming weeks, we’ll take a closer look at other ways retailers are using graph technology to create a sustainable competitive advantage, including network management and IT operations.

It’s time to up your retail game:
Witness how today’s leading retailers are using Neo4j to overcome today’s toughest industry challenges with this white paper, Driving Innovation in Retail with Graph Technology. Click below to get your free copy.

Read the White Paper

Catch up with the rest of the retail and Neo4j blog series: