Blog Viewer

Dynamic pricing through data science

By Stylianos Kampakis posted Mon October 24, 2022 06:21 AM



So what is dynamic pricing?

Dynamic pricing or price optimization is the concept of offering goods at different prices and the prices vary according to their customer. So the idea behind dynamic pricing is that not all people share the same price for a product. Some people might be willing to pay more, some people actually want to pay less.

By understanding what each person's elasticity looks like, then we can find the optimal price for each individual.

Dynamic pricing was first created in the '80s by American Airlines. So American Airlines, it wasn't going too well, it was actually losing significant amounts of money and it was risking bankruptcy due to the invasion of low-cost competitor called People Express. So People Express was offering low prices far below what American United Airlines was offering. And American United Airlines came up with an idea which is now ubiquitous in airlines of splitting prices depending on the type of ticket and benefits that a customer basically desires. So people that had booked tickets early on would get them cheaper, and people who'd like to travel business class would pay more than those who chose for economy class. So it was the first time that dynamic pricing was applied in the industry. Obviously this is something we're all familiar with now, and we have progressed a lot since the '80s. And the reason we have progressed a lot is data.

Types of dynamic pricing

So there are different categorizations of dynamic pricing, but in my opinion as a data scientist, these are the two main categorizations I believe are the most important.

The first type being Flat dynamic pricing and the second type being Individualized dynamic pricing.


Flat dynamic pricing

refers to the idea of just increasing or decreasing price for all customers depending on various circumstances such as the location, the time, the event. So in a very easy to understand example, early bird tickets for music concerts or a seasonal pricing for clothes or a London's Underground peak pricing during rush hour.

Flat dynamic pricing

  • Increase price for all, depending on time, location or event
  • g. seasonal pricing for clothes
  • Prices of sport events (e.g. same team might charge different prices depending on opponent)
  • London's Underground peak pricing during rush hours


However, what is more exciting for me as a data scientist is what I call

Individualized dynamic pricing

and this is where everything is heading. We can collect data about each individual and create a bespoke offer for each individual depending on their circumstances as well as their profile.


So what are the advantages of dynamic pricing?

It's easy to figure out what the advantages are.

First of all dynamic pricing is a way to increase profits. We can increase profits by selling more or by capturing a larger audience, and we can also extract more value from people with lower elasticity of demand.

Dynamic pricing can also create more recurrent customers since we're communicating, we're capturing a larger audience, a larger base of customers, then we'll also end up getting more recurrent customers.


So Forrester suggests that you can boost your profits by 25%, but that's just one research I've read in other kinds of research that sometimes profits could be boosted by more than that. It really depends on the industry as well as the specific way that dynamic pricing is applied.

Obviously dynamic pricing is not perfect.

In some cases it can alienate customers which might consider it unfair especially if they're used to other prices. For example I found a story of a woman who had to pay a huge Uber bill because of Uber's surge feature when she hadn't realized she was actually paying more when she was booking the Uber. And this obviously lead customers to your competition.


Another problem with dynamic pricing is that it's not easy to understand the elasticity of demand for a given customer or for all your customers. It's nontrivial problem. Obviously, now with the algorithms that we have and the kind of data that we possess through smart-phone devices and other types of records this is easier than it used to be. However, it's still not a trivial problem.

So how to do dynamic pricing?

There are different ways to do dynamic pricing.


We start with data collection, and then we go through the pre-processing. And in the pre-processing tab you can see all the different kinds of data that we can collect on customers like purchases by category, brand, offers, companies, context, history, all that. And then segmentation.

Segmentation's are on pipeline. We don't have to do segmentation.

There are other ways that we could approach the problem. And then we do regression to determine how much someone would be willing to pay.

Another way to do this is basically there are two steps at the end. One is determining the price and the other one is determining whether someone would buy or not through logistic regression.

This is an example of pipeline. You can read the full story here.


And now let's see a larger perspective of how this can be tackled depending on circumstances. So I mentioned that at least in my opinion, the two main categorizations of dynamic pricing is flat dynamic pricing, and individualized dynamic pricing or personalized dynamic pricing. So, flat dynamic pricing is a supervised learning problem.


So we want to predict let's say the total sales or some related metric and we assume that the total sales is influenced by a variety of factors including the price. And what we have in our possession is historical sales data and exogenous factors such as the weather, the season, the prices of competitors etc.

So, obviously a good way to approach this problem is an econometric model, something like linear regression because of the simplicity of the problem.

But we can also if we want to make things more exciting, add a bit of forecasting into the mix, such as an ARIMA model.

Now individual dynamic pricing is still a supervised learning problem however, we now operate in a more granular scale.

So what we care now is whether a user would buy a particular produc and there are many ways to approach this.

We can ask the question whether a user will buy a specific product or become product-agnostic in a sense, ignore specific labels for products and describe products as a set of features.

And the kind of data we can have here is a lot. Besides historical, we can also use demographic data and pretty much anything we can get our hands on relating to the users. Obviously, we can use this using supervised learning however, this could also be partially solved by using the recommender system.

There are also hybrid approaches. So for example, we can have some kind of hybrid between flat dynamic pricing and individualized dynamic pricing. And this is what Uber is doing because Uber does not have a price, I mean it adjusts prices but not for the whole city or for an individual user. It adjust prices depending on the time and the wider area. So, we can have different prices for two areas in the same city. Also, it's possible to start from individual models. Maybe individual models of what we believe are representative users, then average these models out and use these models for the average user in order to get aggregates for the whole population. So that's another way to do this. And also something else we can do is instead of just offering special prices we can serve these as special offers. Maybe use a combination of products for different packages. Again, something that is very useful here is the predict and optimize framework.


Forecasting is also something very important in the area of dynamic pricing because we're dealing with time series quite often. We're dealing with time series around demand for example over the prices of competitors. So being wherever these techniques that can be used for forecasting whether they are traditional statistical techniques such as ARIMA or machine learning techniques such as recurrent neural networks can be very useful, since we might want to incorporate forecast of demand into our dynamic pricing model. And obviously in dynamic pricing, I mentioned this a few times already, it's a very good idea to track the prices of your competitors. Obviously, there's a concern that if you're just tracking the prices of your competitors too closely and you try to beat them in price, then maybe what's gonna happen is what we call a race to the bottom. Everyone's reducing the price, eliminating respective margins, then everyone goes bankrupt. Big data however offers another possibility. You obviously have a different angle compared to your competitor.


So with individualized pricing, and big data you can create bespoke offers for the customers which offer the greatest value to your business. And this does not have to sidestep on the business of your competitor that much.

So dynamic pricing creates new opportunities for the market.


We're gonna close with an example.

I believe Uber is the prime example of dynamic pricing. Most people are aware. And it really works. There's been research to validate the idea behind Uber's dynamic pricing. Even if in some cases calling an Uber can be considerably more expensive because there are not enough drivers out there, it helps create this demand to get more drivers to use the app and help commuters reach their destinations. And this is some research that validates this. There was a surge outage a few years ago. And you can see that around the time that Uber surge didn't work, the requests spiked as well the estimated time of arrival. And the same time the completion rate dropped dramatically.

So basically what this means in simple words is that when the surge was out during a high demand period, this was basically around New Year's Eve in 2015, then basically the app stopped working as well as it should have and many people were either not able to get back home, or they arrived much, much later.
So dynamic pricing can make a huge difference in Uber's bottom line and this is the same for many other businesses.
However, it's not the perfect solution. Sometimes there can be mistakes in how dynamic pricing is implemented and again I mentioned an example earlier on.
I'm gonna mention another one around Uber. There's this funny story with a person that, I mean not funny probably for the person who had to go through this ordeal. Someone paid a crazy fee, over $1,000 for a 20 minute Uber ride. So, this is a case of the algorithm not really using any kind of ceiling in the way it calculated cost.
And the person who booked their ride was not careful enough to see what the surge pricing actually looked like. So that's very bad for everyone. It's very bad for the person who booked the ride obviously but it's also very bad for the company because it portrays an image as very irresponsible company in this regard.

So we always need to be careful when we apply any kind of intelligent algorithm and not just let it run wild. We always need to monitor intelligent algorithms that we've deployed.