190 lines
10 KiB
Markdown
190 lines
10 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
|
|
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.
|
|
|
|
|