
Machine Learning can outperform pricing experts in predicting transaction prices. Software can do the job much faster and consider a very large number of variables. More importantly, the output is consistent: a machine will always recommend the same price in the same context, whereas two human experts will probably recommend different prices.
Does this mean that Machine Learning is all you need to optimize pricing? The answer is no—and we explain why in this article.
Your data helps you analyze your business and, in the pricing domain, understand how prices vary depending on different variables such as customer revenue, industry, country, region, cost factors, service levels, and more.
Machine Learning enables us to capture the relationship between price and these variables, and then predict the expected price level given a specific set of inputs.
Let’s consider a simple model to explain the level of discount on the list price of a contract. For each contract, we calculate the Price Index as:
Price_Index = 1 − Discount % on List Price
We then analyze the relationship between the customer’s Gross Revenue (i.e., revenue at list price) and the Price Index.
Here’s a representation of the Price Index as a function of customer Gross Revenue.
Price Index function of Revenue

The Descriptive Model
The orange curve on the graph shows the result of a kernel regression model. This “descriptive model” provides an understanding of the actual relationship observed between Gross Revenue and Price Index, without making assumptions about the business rules that should govern this relationship.
This model reveals inconsistencies—i.e., points where the price index increases as revenue increases. This situation is counterintuitive and indicates that the prices observed in the historical dataset should be corrected.
The Normative Model
The blue curve represents the “normative” model that will actually be used for pricing. This model incorporates a basic business rule: the price index should always decrease as gross revenue increases.
This rule enables the correction of inconsistencies identified in the historical dataset and revealed by the descriptive model.
Beyond correcting inconsistencies, a normative pricing model is forward-looking, not backward-looking. Its objective is not to predict past prices in a given situation, but to recommend the price that should be applied to a future quote. For this reason, it must also include business rules aligned with market conditions and the company’s strategic objectives.
In our simplified model, where the Price Index is a function of Gross Revenue, there are multiple ways to model a decreasing relationship. However, the logarithmic function is the most suitable because it ensures fairness between customers: the additional discount granted when a customer increases their gross revenue by a factor of m% is independent of the initial revenue.
P(Gross Revenue * m) – P(Gross Revenue) = a + b * log10(Gross Revenue * m) – (a + b * log2(Revenue))
= b * (log10(Gross Revenue * m) – log10(Gross Revenue))
= b * log10(m) which doesn’t depend on the Gross Revenue.
With a corresponding to the maximum of the price Index (Small Revenue) and b the slope (if a customer doubles their revenue, their discount increases by b).
Contact us to learn how our latest features can help you optimize your pricing :
P(Gross Revenue * m) – P(Gross Revenue) = a + b * log10(Gross Revenue * m) – (a + b * log2(Revenue))
= b * (log10(Gross Revenue * m) – log10(Gross Revenue))
= b * log10(m) which doesn’t depend on the Gross Revenue.
With a corresponding to the maximum of the price Index (Small Revenue) and b the slope (if a customer multiplies his revenue by 2, his discount is increased by b).
Contact us to know how our latest features can help you to optimize your pricing :