10 KiB
Case 1: Simulating Stock Policies
- Title: Choosing stock policies under uncertainty
- Description: Students role-play their participation as consultants in a project for Beanie Limited, a coffee beans roasting company. Elisa, the regional manager for the italian region, is not happy with their inventory policies for raw beans. The students are asked to analyse the problems posed by Elisa and apply simulation techniques, together with real data, to recommend a stock policy for the company's warehouse in the italian region. Python notebooks with some helpful prepared functions are provided to the students. The final delivery is a report with their recommendation to the client company, along with the used code.
Stuff I want them to understand:
- The model/hypothesis/validate
- That in a simulation you set parameters, and you observe results
- To write in a problem-solving manner.
- That there are trade-offs and it's not trivial to find optimal solutions.
Elements of the simulation:
- Demand behavior
- Lead time and standard deviation of provider (or providers)
- Service level
- Punishment for sales lost
Observable effects of policies:
- Mean inventory at hand
- Service level
- Warehousing/Capital Cost
- Lost sales cost
Case 1: Choosing ordering goods under uncertainty
You are part of an expert simulation team in SimiUPF SL. You have been assigned to a new project with a client company, Beanie Limited. Beanie Limited is a coffee roasting company and also distributes raw coffee beans through Europe and Middle East.
Specifically, you will be working for Elisa Bolzano, the Director of Beanie Limited's warehouse located in Caserta, near Naples. Elisa is the full responsible for all the operations in the warehouse. She has requested the help of the SimiUPF team because she is worried about how certain things are managed in the warehouse and wants your help.
The Caserta warehouse serves the raw coffee beans distribution business of Beanie Limited in southern europe and the mediterranean. The warehouse and its team are responsible for serving clients and also other smaller regional warehouses from Beanie Limited in this geography. From the warehouse point of view, they are usually just called "the clients". Whenever one of the clients needes raw beans, they arrange a transport truck that goes to the warehouse to pick up a certain amount of goods. Elisa's team fill up the truck with the requested goods, and then the clients take care of receiving that in their own locations.
The Caserta warehouse itself has only one way to source coffee beans to store in their warehouse: requesting them to the Beanie Limited central offices in Diemen, near Amsterdam. Whenever Elisa's team considers that more stock is needed, they post a sourcing order to the central office for a certain amount of beans. The central office arranges the goods and the delivery and, after a few days, the goods reach Caserta and are stored. The central office tries to ensure a lead time of 7 days (lead time is the time that passess between an order being placed and the goods reaching their destination), but the reality is they do what they can and this time is not always respected.
Stock is a necessary evil (it implies a lot of cost), but Elisa's warehouse plays a key role in serving the clients in their region properly. Having too little stock means the clients need to wait long times to get their goods, which is risky for the business. On the other hand, having a lot of stock means high warehouse costs and financial opportunity cost (if Beanie Limited has 1 million € in coffee beans in a warehouse, that is 1 million € they can't invest somewhere else to improve their business). Thus, Elisa needs the stock to be as small as possible, without disappointing clients.
Elisa is calling you because 2021 was a terrible year for the warehouse. The year was a chaotic one, and Elisa's team was not able to run operations smoothly. Although Elisa is not providing exact numbers, she is very well aware that the warehouse stock was unnecessarily high at times, and that there were too many periods were the warehouse was out of stock and clients had to wait to get their goods.
Elisa thinks that the main reason for this is the lack of a clear policy for when to order and how much to order from Diemen. Her team decides independently when to do it, and Elisa has a feeling that they are not approaching these decisions the right way. This means that sometimes they order when there is no need to, sometimes they don't order when they should be, and that the amounts being ordered might not be the best ones.
Here is where you come in. As simulation experts, Elisa expects from you that you can help design an ordering policy to fix these issues. Doing this implies examining data from last year, building a proper simulation to examine the different factors being involved, and deciding when and how should Elisa's team order more goods from Diemen.
Elisa expects a report where you share your findings and recommendations in a clear way that can help her team. Also, Elisa does not trust you blindly: you need to motivate the reasoning behind your recommendations. Otherwise, she will not feel comfortable implementing your recommendations and the bosses at SimiUPF will be mad at you...
Detailed task definition
- Below you will find four levels of questions. Levels 1 to 3 are compulsory. Level 4 is optional.
- You need to write a report document where you answer the questions of the different levels. This report should be directed towards Elisa, should give her clear recommendations and should justify these recommendations.
- Each level is worth 2 points out of a total of 10. The 2 missing points will grade the clearness and structure of your report.
- You need to use Python notebooks to solve all levels. A helper notebook is provided. For each level, please attach a notebook that shows your solution/proposal/analysis.
Data
- You are provided with three tables that contain real data from 2021.
- demand_events: this table shows how many beans left the Caserta warehouse to serve clients. There is some amount leaving every day because the warehouse serves many small orders from small clients, so there is always some order being fulfilled. The amount is measured in kilograms, and represents the total amount that left during that day.
- sourcing_events: this table shows the beans orders that Elisa's team placed to Diemen. For each order, there are two dates: the date when Elisa's team placed the order, and the date where the beans actually reached the Caserta warehouse. The amount is measured in kilograms.
- stock_state: this table shows the stock at the warehouse at the end of each date. As you can guess, the stock for a certain date is the stock of the previous day, plus the goods that reached Caserta coming from Diemen, minus the goods that left the warehouse to serve client orders. A negative stock is not a challenge to the laws of physics: it means clients are waiting for their requested beans. If one row shows -1.000, it means that the warehouse is empty, and clients are awaiting for a total amount of 1.000 kgs of beans. If next morning, a 1.000 kgs reach Caserta from Diemen, those will be used immediately to satisfy those waiting clients, and the warehouse stock will become 0.
Notebook
A notebook with some helping code has been provided. The code contains a small simulation engine that can help you simulate a year of activity for the warehouse. The instructions on how to use the code are in the notebook itself.
Levels
- Level 1
- Elisa wants you to measure the performance of the last year, providing quantitative metrics. She knows it was a bad year, but hasn't looked at the real data to summarize how bad it was. Remember that there is a trade-off: too much stock, is not desired, but running out of stock and making clients wait is also negative.
- Going one step further, Elisa wants to know: what was done wrong?
- Level 2
- Elisa wants you to propose an ordering policy. This means, that you need to define a rule that, once each day, should answer the questions: should be place an order to request material today? If yes, how much should we order?
- Use simulation to present metrics on what is the expected performance with the policy you are proposing. Remember, you need to convince Elisa that this is better than what happens today.
- As a specific constraint, Elisa explains that she wants that the probability of a stockout is at most of 5%.
- Level 3
- Right after you finished designing your policy for level 2, Elisa called with some news: she has just been informed by the management in Diemen that a new Minimum Order Quantity (MOQ) rule will begin soon. This rule means that, when the Caserta warehouse places an order to request material from, the order should be of at least 500,000 kgs of beans, and not less than that.
- Elisa wants you to take this into account. Does it affect the policy you proposed for level 2? If so, you need to come up with a new one that adapts to this rule.
- Level 4
- Elisa briefly discussed with you in one meeting that there is an option to come to an agreement with the team in Diemen to improve the lead time stability. The proposal from Diemen is that, if the target lead time was set to something higher that the current 7 days target, providing a more stable delivery would be feasible.
- The specific proposal from Diemen is: if the lead time target is changed to 15 days, they provide a 100% guarantee that orders will be delivered in exactly 15 days.
- Elisa would love if you could take some additional time to study this proposal. What is better for Caserta? The current 7 days target lead-time, with unstable deliveries? Or a fixed, 15-day lead time?
- The MOQ rule of level 3 still applies.