How to maximize Revenue subject to customer constraints?

196 Views Asked by At

Imagine you have N people that want to buy your product. However, each person will buy your product if the price of your product is less than or equal to some price say Tn(subscript). What is the price that maximizes your revenue?

For example, say you have 3 people and that the first person will buy your product if its less than T1 = \$1 , the second person will buy your product if it is less than T2 = \$3 and the third person will buy your product if its less than T3 = \$5. If i set the price of my product to say $2. Then the first person will not buy my product since \$2 is larger than \$1, however the other two will buy my product and therefore giving a revenue of \$4. However, i can do better. You can easily see that the price that will maximize my revenue in this case is \$3 giving you a revenue of \$6.

My question is that given any number of people with any "constrains" (Tn), what is the best price that will maximize my revenue?

I tried to solve this problem analytically but i couldn't. I think an approximate solution could probably be given using statistics.

I wrote a python code to experiment with this problem and it seems like for a random set of Tn (the constrains that each person sets) the mean of that set is actually a close approximation to that price that maximizes revenue. However, sometimes the mean just differs a lot.

Thank you for reading, if what i wrote before is not clear please tell so i can edit it.

1

There are 1 best solutions below

0
On

First order the $T_n$, for $1 \le n \le N$, maximum price constraints from lowest to highest, into a new set, say $C_n$.

Now, consider how your total revenue changes as your price increases from below $C_1$ up to $C_N$. Starting at below $C_1$, all $N$ people will buy your product. As you increase your price towards $C_1$, all $N$ people will still buy your product so, with the higher price, you will get more revenue. When you get to $C_1$, your total revenue would then be $C_1(N)$. As soon as you go past $C_1$, the person who had that constraint will stop buying, so you have a slightly higher amount per person, but with one less person buying, so the overall amount would be less. Thus, the revenue from the price at $C_1$ would be a local maximum. Now, as the price increases towards $C_2$, you will once again see an increase in revenue as you will still keep getting $N-1$ people buying the product. At $C_2$, the total revenue would then be $C_2(N-1)$. As before, when your price increases past $C_2$, you will see one less person buying so there's an initial decrease, but then the total revenue will go up as you increase the price towards $C_3$.

In general, as shown above, you will get local maximums in total revenue when your prices are at each $C_n$, with these revenues being $C_n(N-n+1)$. As such, you just need to check each of these values to determine the maximum overall, with the corresponding $C_n$ price being the best one to use.

For example, let's suppose you have $N = 4$, with $C_1 = \$\,1$, $C_2 = \$\,3$, $C_3 = \$\,10$ and $C_4 = \$\,14$. The corresponding total revenue values would be $C_1(4) = 1(4) = \$\,4$, $C_2(3) = 3(3) = \$\,9$, $C_3(2) = 10(2) = \$\,20$ and $C_4(1) = \$\,14$. As you can see, the maximum revenue would occur using $\$\,10$ per item for a total revenue of $\$\,20$. In this case, the mean would be $\frac{1+3+10+14}{4} = \frac{28}{4} = \$\,7$ per item, so if you consider $30\%$ to not be too much, then it's not too far off. However, as you mention, and can be fairly easily demonstrated, there are cases where the mean can be off even considerably more from the optimal value. Since what I've shown can be programmed fairly easily in Python (I'll leave that to you), and it's quite efficient for even quite large sets of $T_n$ values, it's what I suggest you use instead.