11 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 needs raw beans, they arrange a transport truck that goes to the warehouse to pick up a certain amount of goods. Elisa's team fills up the truck with the requested goods, and then the clients take care of receiving that at their own locations. Given the size and relevance of the Caserta warehouse, activity is pretty much constant, with goods leaving the warehouse towards client locations every day.
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 Purchase 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 in the warehouse. The central office tries to ensure a lead time of 7 days (lead time is the time that passes 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 needs it to serve 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, while making sure she is not disappointing clients at the same time because of stockouts.
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 where the warehouse was out of stock and clients had to wait to get their goods.
Elisa thinks 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, and that the amounts being ordered might not always be the optimal 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. It's important for you to reflect your methodology to back your proposals.
- Each level is worth 2 points out of a total of 10. The 2 missing points will grade the clarity and structure of your report and code.
- You need to use a Python notebook to solve all levels. A helper notebook is provided. Please attach a notebook that shows your solution/proposal/analysis.
- Include your team number, names and student IDs in all your deliverables.
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. Individual orders are not relevant for this case, so we only look at daily total figures.
- sourcing_events: this table shows the Purchase 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 difference between those dates is the real lead time of each order. 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 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 awaiting 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 we place a Purchase Order to request beans from Diemen 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 to be at most of 5% on any given day.
-
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 Diemen, 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 and compare it to the previous one.
-
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 delivery times? Or a fixed, 15-day lead time?
- The MOQ rule of level 3 still applies.