I'm working on an Inventory Optimization (Allocation) problem.

The decision variable is the amount of inventory budget to allocate for each product, from a set of products. My objective is to maximize my profit. My constraint is a total budget which limits how much inventory I can purchase (I can't satisfy demand for all products - otherwise my allocations would simply be my forecasts).

The inputs to the problem are the following:

  • Future sales forecast for each product.
  • Forecast intervals (analogous to standard deviation) for each product: For example, for product 1, the forecast is 190 Units +/- 50 units, while the forecast for product 2 is 200 +/- 20 units.
  • A desired in-stock rate for each product.
  • A profit margin for each product.

If I only use point forecasts (i.e. I discard the second input), then maximizing my total profit across all products becomes pretty straightforward. I would just allocate as much as possible to products that will get me the most profit based on the margin × forecast sales. Basically allocate to products in order of decreasing profitability.

But if I take into account the forecast intervals, then the problem becomes more complex, and a "risk" factor seems to come into play: Product 1 might be the most profitable if I consider the upper bound of the forecast interval, but product 2 might be the most profitable if I consider the median of the forecast interval.

The only way to optimally allocate my budget is if I define a risk factor (similar to portfolio optimization).

How do I go about deciding this risk factor? What the approaches for doing so? Does service level/in stock rate come into play?

To clarify based on LarrySnyder610♦ 's comments.

By risk I do not mean risk of running out of stock. I mean the risk that comes from the variance in the product forecasts. To take the example I mentioned above:

Say we have just two products, where all is equal: margins, cost, etc...and lets say that I am forced to choose between one or the other for space or logistics constraints.

Product 1 one has a mean forecast of 190 units and a forecast interval of 50 units, so my forecast can be thought of as most likely falling between 140 and 240.

Product 2 has a mean forecast of 200 units and a forecast interval of 20 units, so my forecast can be thought of as most likely falling between 180 and 220.

If I disregard my forecast intervals, then obviously should go with product 2, since that means I would sell 200 units instead of 190.

However, if I take into account the forecast intervals, then there is a possibility that I will make more money if I go with product 1 (I'm lucky and I sell 240 units, compared to 220 units for product 2). But there is also a chance that I sell only 140 units, hence making less the lower bound of 180 for product 2.

So there is this idea that there is a "risk" factor involved: If I am willing to take the risk, then my optimal solution is to allocate to product 1. If I want to play it safe, then my optimal solution is to go with product 2.

To reiterate the main question: How do I quantify the risk? And what are the approaches for deciding whether I should take a risk or not? And does this risk factor somehow tie into service levels/in-stock rates (I don't think it does, but I might be wrong) ?

Most of all how do I communicate this to business users and product managers who have no math or stats knowledge?

  • $\begingroup$ Is the "desired in-stock rate" a hard requirement (management insists on at least 90% demand coverage) or a soft goal (gee it would be nice if we had 90% coverage)? Basically, are we talking about hard or soft constraints? $\endgroup$ – prubin Sep 12 '19 at 17:47
  • $\begingroup$ @prubin more of a soft constraint, since the budget constraint overrides it. $\endgroup$ – Alex Kinman Sep 12 '19 at 17:53
  • $\begingroup$ Would you penalize stockouts, backorders (if they are allowed) or what? I think that how you model that "soft" constraint may impact how you utilize the ranges. $\endgroup$ – prubin Sep 12 '19 at 19:44
  • $\begingroup$ @prubin what if I ignore the in-stock rate. That is I assume a simplistic model where an out of stock event has no other impact besides the actual lost sale it causes. How would I quantify/factor in my "risk"? $\endgroup$ – Alex Kinman Sep 12 '19 at 22:24
  • $\begingroup$ That brings up another question: Is this a single period model? Larry's profit function implicitly assumes that unsold inventory is scrapped with no residual value. In a multiperiod model, it would be carryover inventory, available for sale in the next period (with some holding cost). Even in a single period model, you would need to decide whether surplus inventory had any scrap/resale value. $\endgroup$ – prubin Sep 14 '19 at 15:45

Here's an approach that might be close to what you are looking for. Suppose that we have $n$ products, and for each product $i$ we know:

  • $c_i$ = purchase cost per unit (i.e., cost to order inventory from the supplier)
  • $\pi_i$ = profit margin per unit sold
  • $f_i$, $F_i$ = probability distribution (pdf, cdf) of demand per period

If there is only 1 product, then this is just a newsvendor problem. With multiple products, it's just multiple newsvendor problems subject to a budget constraint. The decision variables are:

  • $S_i$ = order quantity for product $i$

(You didn't specify whether this is a single- or multi-period model. I'm assuming single period, but it's not too hard to adapt this to the multi-period case. In that case we assume we follow a base-stock policy for each product, and the $S_i$ variables are interpreted as base-stock levels.)

For each product $i$, the expected profit function is

\begin{align*} \Pi_i(S_i) & = \pi_i\mathbb{E}[\min\{S_i,D_i\}] - c_iS_i \\ & = \pi_i\left[\mathbb{E}[D_i] - n_i(S_i)\right] - c_iS_i, \end{align*} where $n_i(x)$ is the loss function for distribution $f_i$, i.e.,

$$n_i(x) = \int_x^\infty (y-x)f_i(y)dy.$$

(The second $=$ follows from the fact that $\min\{S,D\} = D - (D-S)^+$.) The loss function $n_i(x)$ is convex (its derivative is $F_i(x)-1>0$), so $\Pi_i(S_i)$ is concave.

Then we want to solve the following optimization problem:

\begin{align*} \text{maximize} \quad & \sum_{i=1}^n \Pi_i(S_i) \\ \text{subject to} \quad & \sum_{i=1}^n c_iS_i \le B \\ & S_i \ge 0 \quad \forall i=1,\ldots,n, \end{align*} where $B$ is the budget. This is a convex problem (concave maximization), and should be easy to solve.

  • $\begingroup$ So if I understand your approach correctly, model the demand as distribution, not as a point forecast + interval. I don't see how that addresses the question of risk? There are still multiple optimal solutions based on how much risk we are willing to incur, no? Also what is $D_i$ ? $\endgroup$ – Alex Kinman Sep 13 '19 at 4:10
  • $\begingroup$ (1) Yes, model the demand as a distribution, but if you don't know the distribution, you can take your point forecast + interval and represent it as a uniform distribution. $\endgroup$ – LarrySnyder610 Sep 13 '19 at 12:58
  • $\begingroup$ (2) Maybe I interpreted "risk" too loosely, but I was interpreting it as the tradeoff between having too much and too little inventory. Setting $S$ is the same as choosing a point on that tradeoff, and it's also the same as choosing the stockout probability for that product. In fact you can write $\Pi_i$ explicitly in terms of that tradeoff, which gives it more of a portfolio optimization feel. But it's not the same as risk aversion/neutrality -- is that what you were asking for? $\endgroup$ – LarrySnyder610 Sep 13 '19 at 12:58
  • $\begingroup$ (3) I'm not exactly sure what you mean by "multiple optimal solutions depending on how much risk we are willing to incur". My formulation maximizes expected profit, and I doubt there are multiple optima since the objective function is strictly concave. $\endgroup$ – LarrySnyder610 Sep 13 '19 at 13:02
  • $\begingroup$ (4) $D_i$ is the random variable representing the demand of product $i$. $\endgroup$ – LarrySnyder610 Sep 13 '19 at 13:02

Your Answer

