197 lines
11 KiB
Markdown
197 lines
11 KiB
Markdown
|
|
# 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.
|
||
|
|
|
||
|
|
|