ML driven dynamic pricing @ CARS24 — Part 1

Shashank Kumar
CARS24 Data Science Blog
9 min readMar 24, 2023

Intro to CARS24 & the pricing dilemma

CARS24 is one of the leading global online used car platforms selling thousands of cars every month spread across India, Middle East, South East Asia, and Australia.

A very significant part of the car buyer’s journey at CARS24, from search & discovery to condition assessment to financing and transaction happens completely online. And a lot of factors come into play to drive superior buyer conversion - ideal assortment, quality of the cars, ease of navigation on the product, availability & interest rate of financing, superior customer experience, operational excellence on the ground & so on.

However, one factor that comes at the top of this consideration set, is the price of the car.

At our scale, keeping an attractive listing price for all the cars without compromising on margins is one of the most important challenges for the business. This is especially relevant in the used cars market since unlike most other industries there is no universally accepted price for a used car and there can be large swings in the prices attributable to the idiosyncrasies of the buyers & sellers, variance in the car condition & documentation, and the stochastic nature of the market. Moreover, the high ticket size and depreciating nature of the inventory make car pricing one of the most important problems to crack for predictable & profitable growth.

‘True story’ across many high car ownership countries when new car supply line got impacted in 2021

At CARS24 we tackle this problem with the help of massive data generated through ~4mn+ used car inspections, ~9mn+ auctions, and more than ~750k cars transacted on our platform across auctions & retail business since inception in 2015. Apart from our internal data, we also leverage the classified listings and new car pricing information set by the OEMs in the pricing algorithm.

These data points help us learn the age depreciation curves at granular model level across different regions; the impact of different current car condition parameters as well as service history & documentation; and other external factors like localized demand-supply gap, government regulations, OEM strategies, etc. (refer our previous blogs, this & this for more details)

However, despite all the sophistication in establishing ‘true’ price of car, there can & will always be some variance when it comes to the final selling price of a given car at a given point in time and this is where our dynamic pricing model comes into play.

In this blog series, we will introduce the methodology we follow for the dynamic pricing of cars with the intent to sell them faster while being profitable.

Pricing A-B-C

Let’s start with a quick overview of the usual pricing strategies used across industries for determining the listing price of a product or service.

  1. Cost-Plus Pricing (Economics Driven) — Where a product or service is priced with a markup over the cost. In this paradigm, margin or profit is the focus.
  2. Market-Based Pricing (Competition Driven) — Where a product or service is priced based on competing alternatives in the market. In this paradigm, market penetration or overall sale is the focus.
  3. Value-Based Pricing (Supply-Demand Driven) — Where a product or service is priced based on what the buyer is willing to pay based on its utility or value for the consumer. In this paradigm, value for the end consumer is the focus.

While these are elementary pricing strategies, most firms advanced in their pricing journey follow a hybrid pricing strategy.

At CARS24 we follow a predominantly value-based pricing approach where we leverage internal and external pricing data to estimate the expected buying and selling prices. But on top of it, we also overlay cost-plus pricing inputs to constrain our buying price and control listing margins. And market-based pricing inputs on the first listing price to control our platform-level sell-through rate.

What and why do we need Dynamic Listing Price?

As we understand from above, there are many factors internal and external to a car, that make the final selling price of the car a moving target. So even if we have all the data about selling prices of similar used cars from the past, we still wouldn’t know upfront the demand for a given car at a given listing price & a point in time. And hence, we would need to evaluate the price of a car post listing and decide to change it, if and when required. This very process of systematically changing the listing prices is called dynamic listing price (LP) revision.

So in this context, dynamic LP refers to the changes in the listing price of a car primarily based on the end buyer demand (on and outside our platform), to find the optimal selling price that maximizes some strategic business goal e.g. overall revenue, inventory turnover, etc. Hence, by design, if executed properly, dynamic LP revision gives us the following levers on business.

  1. Inventory turnover — Since there’s no intrinsic and universally right price for a car rather it’s a spectrum of possible prices each with a share of demand from different kinds of buyers, finding the optimal selling price for a used car in the smallest of time helps us to reduce the inventory holding costs.
  2. Margin predictability — Being able to source and refurbish a car at a cost in line with the final expected selling price of the car allows us to make planned margins.
  3. Improving pricing efficiency — Being able to experiment with our pricing levels allows us to predict the sourcing and final selling price better over time.

Getting under the hood

Listing price journey @ CARS24

Our current algorithm works on the premise that any inefficiency in a car’s LP will affect the car’s demand on our platform. And hence we can leverage this demand signature to correct these inefficiencies. Simply put a car priced relatively higher than another similar car will receive lesser interest or demand as measured in early indicators like car views, bookings, test drives, etc. Keeping this in mind our dynamic LP framework tries to change the LP of cars such that it maximizes the expected portfolio margin at or above a target sell-through rate (STR i.e. %cars sold off those listed in X days).

Since margin and sell-through rate are conflicting goals, the way we solve this optimization problem is by establishing price elasticity curves and trying to find the minimal price change that gives us the maximum drop in target vs current demand gap.

Let’s now look in detail at each of the steps followed by the framework.

1) Car selection — Before evaluating the LP of all listed cars we want to make sure that the car has received enough exposure. This is done to increase the statistical significance of the demand indicators. And is done by excluding cars from revision based on some exposure thresholds on the last listing price.

2) Price evaluation based on current and target demand — We define demand on a car for the purpose of this optimization as its selling likelihood in the next X days. Current demand is estimated using a sell likelihood prediction model which leverages car-level attributes and the click-stream data. At the same time, target demand is derived from the overall platform-level target for different fingerprints (static attributes of car e.g. make model variant, etc. ) of cars. Using both of these we calculate the demand deficit and decide whether or not the car needs a revision.

Impact of pricing inefficiency vs demand — higher inefficiency->higher elasticity->lower demand

3) Price optimization — This is the most important module of the entire framework which picks the cars selected for revision and uses target STR and margin constraints to decide the optimal price changes required. This optimizer uses an elasticity model inside, which predicts the change in demand for a car based on price change to evaluate the overall loss function corresponding to different possible price changes before finally converging at the optimal price changes for each car.

Optimization function used for determining the optimal price changes

4) Price Validation — This is the final step before the new prices are sent into the production system after sanitizing the changes. At this step, we implement the necessary business and market guardrails on the final LP of the car e.g. price ladder constraint i.e. a higher odometer car from the same fingerprint should be priced lower and vice-versa.

5) Performance Tracking — These next two steps are part of the continuous feedback for the model improvement. In this part, we do the continuous measurement of the car cohort level STR against the target STR and designed vs realized margin constraints after the price changes.

6) Course Correction — Finally, in this step, we do regular tuning of the hyper-parameters of the framework e.g. exposure thresholds, elasticity model, demand prediction model, etc. based on retrospective analysis.

Impact of Dynamic Pricing — real-life stats

The following views illustrate the impact of the dynamic pricing framework in relation to the need for dynamic LP we discussed earlier.

  1. STR improvement — Increase in the total %cars sold over inventory aging. LP revision helps us sell cars stuck in inventory faster and hence reduces the inventory holding costs.

2. Margin control — Gradual improvement in the portfolio STR with Realized Margin ≥ Target Margin constraint. By selling cars with the least price drop, the LP revision approach improves the portfolio STR with a minimal negative impact on the margin.

3. Pricing efficiency for future pricing — Improvement in the %cars sold without price revision. Over time by finding the final selling price faster, the LP revision approach gives us feedback to adjust the first listing prices and hence reduce the gap between the first listing price and the final selling price. This systematically minimizes the need for revision which again improves the STR and margin predictability.

Conclusion

Setting an optimal listing price for a used car inventory is one of the most important problems in the used car domain due to the subjectivity of buyers and sellers, and the variance in condition-dependent prices of used cars. Moreover, there are structural constraints of the domain in terms of high ticket size and the depreciating nature of the inventory.

Under these challenges and constraints, dynamic pricing provides a very strong lever for predictable growth and profitability. At CARS24 we have built a dynamic pricing framework that uses data and ML modeling to quantify this problem into an optimization problem over target margin and sell-through rate.

In the next parts of this series, we’ll go deeper into each of the fundamental building blocks of this framework i.e. car selection, demand prediction, price optimization, and the continuous improvement of the framework. So stay tuned, see you around and until then drive safe!

Acknowledgment

Before signing off, would like to call out the real drivers from our core DS team who have worked ‘tyre’lessly to get this going across the different geographies we operate — Paridhi, Sachin, Vivek, and Sandhya, and special thanks to Naresh, Mehul, and VC for believing in us and constantly guiding us towards the ‘head’light.

--

--