2
$\begingroup$

This problem is work related not school related. I am developing a simple inventory management system to solve a digital supply chain problem and I need help with an algorithm to control the base-stock level.

I can measure things like the units sold in a specific duration of time (minutes) over time, historical inventory levels over the same duration of time, length of time it is taking to refill inventory and so on.

I have started to read some things about Erlang distribution but frankly I don't really know if that is the right direction. Do you have any ideas about an algorithm that might work that you can share? Do you have a starting point that you can share? Can you recommend a website/tutorial on the subject?

EDIT: More detail about the system

There are 16 - 24 clients that all pull from a centralized inventory management system. There are about 1000 unique digital products that are held in the inventory management system and they are sourced from a variety of other source systems.

I can measure the number of orders that are occurring in each of the clients because they are reporting the distribution of the digital product to the centralized system. I can also track the time it takes to replenish inventory from the source systems from the time that the order was created in the inventory system.

Basic system drawing

  • 0
    Can you also measure the holding cost (cost of holding inventory) and time it takes for the order to arrive (once ordered)? And when you say you want to find the base-stock level, you mean that your inventory strategy is to order once stock goes below a base-stock level, and you want to find what the optimal value to set that base stock to be is, right?2011-07-13
  • 0
    For the purposes of this system there is no cost associated to holding the inventory (100% digital). Yes, I can measure the time it takes for the order (restocking of inventory) to arrive once the order has been placed. Yes, I am looking for the optimal value to set that base stock. I have about 16 - 24 clients that will be requesting from a centralized inventory system and the demand from the clients will change dramatically from time-to-time. I will have advanced notice of the most dramatic changes days in advance and can give manual input if necessary but would like to avoid it if possible2011-07-13
  • 2
    Well, if there's no cost, then why not set the base-stock level arbitrarily high? :-) Enough to last the next few years, say. I know very little about this area, so perhaps there's something I'm missing…2011-07-13
  • 0
    I thought about the cost part a lot last night and this morning. There is virtually no cost to request them and virtually no cost to warehousing them. However there are several costs related to having excess inventory. There are some time costs to creating them in the other source systems and there are some time costs associated to reporting on them when volumes are high. Some of these costs will be lowered by this new system but they are still there.2011-07-13
  • 0
    However, the largest cost may be just having them because then they are counted as "inventory" and it may need to be recorded as a liability on the balance sheet.2011-07-13
  • 0
    In any case the business has said that they do not want excess inventory on hand if they don't have to have it. So I am left with the problem of creating a system that will dynamically set a base-stock level.2011-07-13

1 Answers 1

1

Don't over think the problem. Any slight differences resulting from using the not-quite-perfect probability distribution will be over-shadowed by real world factors that you can't anticipate.

I would take the approach that you want the smallest inventory that keeps you from going out-of-stock, without concern for cost. If you know the replenishment time, and the highest number of sales in that time frame, you are already in the ball park.

At a slightly more sophisticated level, model the arrival of orders, perhaps as a Poisson distribution. Then, at any base stock (or reorder point), you can calculate the probability of going out-of-stock, and pick a suitable level (1 in 100, 1 in 1000, whatever). I'd be worried about time-of-day effects and seasonality, too.

  • 0
    Going with the idea that it shouldn't be to complicated I am building a model of algorithm using an exponential weighted moving average and standard deviations of the same to create a channel that inventory levels should stay in. This along with a simple "do not go below this minimum" rule should get us to where we need to be.2011-07-14
  • 0
    After we get the basic functionality working we will for sure look to add some of the timing considerations that a Poisson distribution brings to the table.2011-07-14