so I have this situation. I am trying to understand whether my customers will buy my product at a certain price based on a previous offer made to them. Specifically, I have a lot of data on my clients and I have rolled a previous "campaign" round and I saw who bought it and who did not. Now I am trying to calibrate new prices for those who did not and I wanted to find prices that maximize the chances of them buying it but at the same time I have an aggregate constraint that I have to uphold (a weighted aggregate profit margin).

I am in the early stages but I wanted to understand the models of reference for this kind of problems. Any suggestion to which area/material is most relevant is very appreciated.

p.s.: I have tried to scour the forum for similar questions without success but, in case I missed something, do close the question and kindly refer me to that content.


Hi Asher11 and welcome to the community. I have worked in pricing in the past and I will try to give you some directions, although your question is quite general. It all comes down to how you want to formulate your problem. I suggest you to not look for models first but to figure out the problem you are facing and translate into math.

For example:

  • Do you want to know if a customer will buy a specific product according to some characteristics (features) of them? Then you have a prediction problem. You could possibly represent each customer with a set of features and try to predict if they will buy a product by training a Supervised Learning model. Start with linear regression in order to have a performance baseline.

  • Do you want to optimize profit/revenue? then you have an optimization problem and potentially you can use Reinforcement Learning methods to solve it. If the sequence of the events (offering and buying) does not play an important role in the decision then you can try algorithms from Bandit theory.

Another question you need to answer is why you want to use ML methods? You might be surprised but you will have a way easier solution by looking at Pricing Optimization with Linear Programming. You will need to make some assumptions about the supply and demand curve of each product (or a group of products), add appropriate constraints and optimize in order to get the best price. The product grouping might be done with ML methods or according to your intuition. By doing this exercise you will start getting an idea of the best way to formulate your problem.

Be aware in order to train an RL agent for optimizing profit/revenue it means that the agent will try random prices LIVE (RL training is based on trial and error). For this reason you need to look up for techniques on how you can pre-train a network to suggest prices within a specific range and then use RL live without the fear that the algorithm will output unreasonable values. Another way is to build a "market" simulator with the data that you have and train the RL agent directly there.

By writing the above, I tried to give you few keywords that you could look up in order to specify your problem better and possibly find a solution.

  • 1
    $\begingroup$ This is exactly what I was looking for. Thank you! $\endgroup$ – Asher11 Jan 31 '20 at 7:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.