This downloadable virtual product implements discrete-event simulation in Python using SimPy. The product delivers a framework for poultry supply chain simulation, focusing on inventory control and information flows.
In detail this downloadable SimPy simulation framework comprises:
- SimPy object-oriented modeling library for modeling poultry meat production supply chains
- Example model implementing exemplary poultry supply chain
- Conceptual model description
- Configuration file
- Integrated statistics generation
To learn more about the various different simulation methods you can e.g. read this introduction to simulation methods for SCM analysts.
Poultry supply chain elements included in the model
The framework comprises the following supply chain entity models:
- Egg supplier
- Farmer coops
- Meat processing
Below is a conceptual overview of the simulation model and the supply chain interdependencies considered by it.
Relevant information flows are defined in the next paragraph.
Information flow assumed by the simulation framework
The exemplary poultry supply chain model included by this virtual product implements and assumes a PUSH controlled supply chain. The egg supplier is the source of the material flow, and the meat processor is the sink. Egg shipments from the egg supplier are supplied to the hatchery upon order placement by the hatchery, using a s,S-based inventory control logic (order point inventory control logic). From there on material flow is pushed through the supply chain, all the way to the slaughterhouse’s finished product stock (carcass inventory). Meat processing, facilitating the sink in the example model included by the downloadable product, pulls its demand from the slaughterhouse’s inventory. I.e., only the carcass inventory at the slaughterhouse’s finished product warehouse is pulled. Carcass production itself is pushed. For more details read the conceptual supply chain description (part of the product).
Relevant poultry growth assumptions and constraints
This framework focuses on supply chain simulation. It thus makes some simplifying assumptions. For example, chicken growth dynamics are not modelled in detail. Instead the model assumes process dwell times and chicken start and end weights for relevant processes. I.e. chickens are assumed to have a fixed weight gain at the brooder, and a fixed weight gain at the farm coop. All chickens are assumed to reach the same slaughter-ready weight – but different defined chicken species or sexes can achieve this slaughter-ready weight at differing speeds. For example, tom chicken could be assumed to stay at the farm coop for 10 weeks, while hens could be assumed to stay there for 8 weeks. The model allows for assumptions of this kind and on this level of granularity.
Some additional remarks with regards to following processes:
- Brooder. The framework, via its configuration file, allows for brooding time specification. It is assumed that all hatched eggs undergo the same brooding time. It is furthermore assumed that all chicken have the same weight when exiting the brooder, and that this weight is the weight when entering the farm coop. Weight gains during waiting time at the brooder while waiting for an available and suitable farm coop are not considered by this model.
- Farm coops. The framework supports modeling of two different population types. For example, hens and toms. Coop dwell time is the same for all chicken and all populations of the same type. Dwell times in the coop can however be different for the two different population types. This allows to reflect e.g. faster growth of one population type over another. All chicken, regardless of their type, are assumed to have the same weight at the end of their coop dwell time. This is the “slaughter-ready weight”.
KPIs calculated by the poultry supply chain simulator
This framework calculates and tracks the number of units in a process or in stock (inventory). The same is true for final demand at the end customer (meat processing facility).
Modeling demand and inventory becomes unit neutral in this way. That allows for straight forward specifcation of mortality rates (referred to as “scrap” – as per production industry terminology) and unsuccessful hatching ratios (failure ratios). Morever, chicken weights at the various stages of the supply chain can thereby easily be assumed and multiplied with the quanitites. The same is true for costs, e.g. purchasing costs, feeding costs (per period and chicken unit), holding costs, processing costs, etc.
It must be clearly understood that a cost model is not part of this simulation model. But since stocks and flows are measured in the same unit (“number of chicken”, “number of eggs”, “number of carcasses”) a cost model can flexibly and easily be applied on top of the simulation results generated by this framework. For example, once slaughter-ready weight is defined, the number of units stocked in the slaughterhouse’s carcass inventory then translates directly to total carcass weight stocked in the inventory. The demand distribution of meat processing facility, pulling carcass demand from the slaughterhouse inventory, then translates into carcass demand in e.g. Kg.
Exemplary model output
Here are some exemplary statistics and visualizations generated by the SimPy framework comprised by this virtual product. These standardized visualizations are comprised by the framework and thus by the downloadable product.