



The supply chain modelling inside a factory inside a factory seems like an overwhelming task. Keep on reading and we will explain everything in detail, how to keep your production plan up-to-date and in order.
The supply chain modelling inside a factory seems like an overwhelming task. You deal with complex multi-stage specification, internal logistics, and just-in-time product deliveries. More or less, you try to keep your production plan up-to-date and in order. This complex reality downsized into a computer program doesn’t make it any easier.
But there is a possibility to grasp everything and keep you in control. It opens up new concepts for you and your company. In this post, we’ll try to illustrate the solution by segmenting the whole picture and making graphs correspond to customer orders. This enables us to create an elegant structure that is extensible and understandable for both developers and factory managers.
The goal of every manufacturing company is the production of products from commodities. So the first question arises: What commodities do we need to produce the end-product? Let’s start from a basic tree diagram. During production, we have commodities that we buy or produce. Let’s call them ingredients, for better understanding. If we throw several ingredients together and pre-produce them to fit the production process, we’ll refer to it as a recipe. This way, we’ll answer more questions throughout the article, such as:
Later we’ll explore alternative views and extensions of our model. They will meet more specific needs and allow a detailed analysis.
We also know that a day in a factory holds various surprises. So, our graphs and answers to above-mentioned questions change dynamically.
Let’s start with the following assumptions:
The above-mentioned ingredients formulate a recipe. It basically shows which commodities we need to start production. Let’s visualize it as a tree. The root is the ordered book and the stem with its branches portrays, as referred to in graph terminology, nodes and their children displaying the production process of said book. The leaves represent the commodities crucial for the production process.
The recipe can be dynamically adjusted. For instance, we may start printing the pages, before the book cover has arrived. Even if it doesn’t arrive, we have created a future buffer for a different order. This means, the factory workers decide what to do next. If we lack some commodities, we can simply abandon a subtree and replace it with a leaf or another subtree derived from another recipe.
At this stage, our model represents dependencies, but omits specifics. Strategies to satisfy the need for commodities may vary among companies and certain cases. Let’s take a closer look of the possible strategies:
A company could mix strategies depending on the business sector and specific variables such as commodities, time and availability. Whatever method they choose, our diagram needs to represent the results in the right sequence within our structure.
For all preassembled items in the graph, we’ll assume that the company produces them locally. It doesn’t have to be true, since we can outsource some production and our model will also support it. So, a company keeps commodities either in stock or needs to order them from a supplier.
Let’s model our exemplary assumptions like this:
The fulfilment for various parts in the graph can rapidly change. In case of cancellation of an urgent order, we could reuse the already produced items to satisfy other orders. This means we use them as an available and suitable substitute.
As for now, we can simply change the label on a given node and perhaps relink its children to another production, or increase the future buffer of a commodity.
Let’s imagine a situation, where we have a single node for a single item. Either it’s created or detach from some larger graph. This could mean one of two things:
In other words, a node can be either a fulfilment that comes from a production process or a demand from a customer order. This means, we’ll split our nodes into:
This approach satisfies single or large demands with multiple small fulfilments, or caters multiple demands with single or large fulfilments. We’ll go deeper into this matter in the section “Other Models”, but for now, let’s leave it at that.
This definition of nodes also allows us to attach a single node to a single process. It gives us multiple advantages:
The distinction between demand and fulfilment lets us easily handle scenarios, such as cancellation or modification of the graph. Let’s say, a node becomes detached. It still contains precise information about operations that were planned before. This means we need to decide what to do with the connected fulfilment.
Once we’ve extracted every process into a separate group of nodes, we can try to represent the most crucial dimension – time. We want to save and access data about time as:
This distinction fits nicely into our supply chain model. It draws borders between processes. If a given edge is crossing the “process’ border”, we call it idle time. This means another process demands an item later than the other process will fulfil it.
If processes don’t cross borders, we call it active time. This means the demands of a process need to be fulfilled before another process commences.
Then again, if we assign durations between the edges, we get a key advantage. We can now evaluate paths in our tree according to their “duration” and compare every possible tree and subtree within this metric.
Moreover, if we assign completion times to recipes, or processes, we are able to calculate the fulfilment time for the end-product in a bottom-up manner.
Let’s visualize this data in our example.
In our example, the time of the whole process is dictated by the availability of leaves. If they are available, they can be processed right away and if supplied externally, their availability might be delayed. But major delays are caused by processes that take a long time or their initial position in the production queue.
Both durations of processes and waiting times can dynamically change according to the following factors:
Since we now have a representation of time, we turn to the availability of an item at a requested time. Yet, we add one crucial assumption: The fulfilment satisfies the demand right after completion. This assumption is problematic since different processes happen in different locations. Let’s call them places. This means we need to account transportation as another kind of process for our calculation:
After adding transport processes between demands with different locations, we’d get the following representation:
This way, we have built a complete supply chain model that involves items and fulfils other demands. The processes are anchored in space and time, so we’re able to visualize a complete tree of fulfilment for an order in the company.
If you want to read more about advances of modeling and simulation in supply chain and industry, we recommend to read this article.
With such a complete supply chain model, we derive various other data models to see our company from multiple perspectives.
The supply chain model and simulation can be extended to a multiple order fulfilment. This means we address multiple demands with a single fulfilment, or execute a single request with multiple fulfilments.
Nodes as events enable us to represent demands and fulfilment as a chart with historical stock levels along with a forecast with future stock level changes. Each demand represents a decrease, and a fulfilment represents an increase of a given stock level. This way, we get a great tool to detect high priority stock orders or even inappropriate buffers.
Let’s consider the fact that we hold data about all transports in our supply chain model. We are then able to create another graph, and every node symbolizes a place. This allows us to see the transfer rate between places in a given timeframe. It can help us to optimize transportation. For example, we could increase commodity buffers in our warehouses or organize internal logistics to reduce transfers or make the majority of them as short as possible.
We haven’t mentioned any specific industry along the whole process, since we tried to make this model as generic as possible. If we extend processes in the bounds of our definitions, this model can be used to represent a material flow in a lot of industries, from manufacturing to logistic companies. If introduced in various sectors interacting with each other, we can even cover graphs from multiple companies.