(This is the second article in the series on Profit Maximization that was first published at SCDigest.)
In a previous post, I discussed two big reasons why you shouldn’t build your supply chain model to maximize profit.
Hopefully, I convinced you and prevented needless extra work and heartache.
However, even if you have a cost minimization model, you may discover that the maximize profit feature can help you. I’ve often used the profit maximization feature to get out of a tricky situation.
The first and most common situation is to help debug a model. If you have a complicated model with lots of constraints, different types of minimum and maximum flows on lanes, multiple levels, and maybe a bill-of-material, it can be maddening to try to figure out why it won’t run. Remember, if you have the model set to minimize cost, you are adding yet another constraint: that demand has to be met. If the solver can’t meet demand, it may come back with an infeasible result.
Good modern tools will have some built-in debugging features like being able to put a penalty on constraints or to come back with the least infeasible solution. You should use these tools.
You should also add the profit maximization feature to your debugging toolkit. Put a big revenue number on all your demand—big enough so that the model will always want to meet demand, but not more than an order of magnitude more than you need. Then run as profit max. The model will want to meet all the demand (which is what you want), but doesn’t have to (so makes many infeasible models feasible). This won’t solve all your debugging issues, but is very helpful.
In the second case, you can use profit maximization to capture some special characteristic of your business. For example, I’ve used it to model product substitution. (Many tools wills have a product substitution feature, but it may not be as flexible as you need it to be.) In the case where you just have one product that can substitute for another, you simply model both products and double the demand at each customer—you model the full demand of the product and of the its substitute. If you do nothing else, your model will be wrong because you’ll end up meeting 2X the demand. So, you simply put a constraint saying you can only meet 1X of the demand, run as profit maximization, and put a big revenue number the demand (so the model will want to meet the demand). Then, run. Now, the model comes back and meets all the original demand (like in the cost minimization mode) and easily takes care of the substitution. More complicated substitution follows the same logic.
There is definitely an art to debugging and modeling. If you think creatively about the profit maximization feature, it will be another tool to help you find the business answers you need.