4 Smart Visualizations for Supply Chain Descriptive Analytics

Use Python to build visualizations that will provide visibility on key Supply Chain Metrics

4 Smart Visualizations for Supply Chain Descriptive Analytics

Article originally published on medium.

Supply chain Analytics can be defined as a set of tools and techniques your organization should use to get supply-chain operational insights from data.

In a previous article, I defined the four types of Supply Chain Analytics that answer different types of operational questions.

4 Questions of Supply Chain Analytics β€” (Image by Author)

It starts by building the foundation of Descriptive Analytics to monitor the present and analyze the past.

In this article, I will share four python smart visualizations for Descriptive Analytics that provide key insights to understand your Supply Chain.

πŸ’Œ New articles straight in your inbox for free: Newsletter

If you prefer watching, check my Youtube tutorial!

Supply Chain Network

A Supply Chain can be defined as a network of processes and stock locations built to deliver services and goods to customers.

Supply Chain Network β€” (Image by Author)

The main drivers of your network optimization are the locations of your manufacturing sites and the optimization of the flows.

Supply Chain Flows

Which factory is producing for Market XYZ?

You want to have an understanding of the efficiency of your network by drawing the flows between production areas and markets.

Sankey Chart

In this single chart, you have visibility on all the different flows. On the left, you have the production facilities and on the right, you have the markets.

Sankey Chart of Production Flows β€” (Image by Author)
- India is the biggest country for production output
- Japan market demand is mainly supplied locally
- USA and Germany do not have local production facilitiesπŸ“ˆ DATA
You need to prepare a DataFrame with three columns:
- Source: the production facility name
- Target: the market supplied
- Units: the number of items flowing
You can use pySankey

For more details, you can find the source code in my GitHub repository.

Network Design

Supply chain Network Optimization makes the best use of data analytics to find an optimal combination of factories and distribution centres to produce and deliver products at the lowest cost.

Which factories should I open to get an optimal network?

If your demand is unstable, you can run simulations for different scenarios and ask your model (based on linear programming) to provide the best solution for each of them.

Animated Plot with the different scenarios β€” (Image by Author)

A solution is basically a set of boolean decision variables listing all potential locations: their value is 1 if you open the location 0 else.

Boolean Plot

In this chart, you have visibility on the results of 50 different scenarios:

  • x-axis: the name of the scenario
  • y-axis: the decision variable linked to a facility (dark blue: open, white: closed)
Boolean Plot of Supply Chain Network Solutions β€” (Image by Author)
- Initial solution with (Indian, Brazil and Japan High + India Low) is repeated in more than 5 five scenarios
- Some extreme scenarios need only two factories in India
You need to prepare a DataFrame with the output of your optimization model (vectors with boolean parameters).
You can use matplotlib.pyplot.pcolor

For more details, you can find the source code in my GitHub repository.

Products Rotation

In Supply Chain Management, Product segmentation refers to the activity of grouping products that have similar logistics characteristics (like rotation).

Pareto Chart

It is important to classify your products in order to allocate your efforts to inventory management, optimize your warehouse operations or design your racking layout.

Pareto Rule & Product Rotation β€” (Image by Author)
How many references make 80% of my total turnover?

The foundation of this approach is the Pareto principle or also called the 80–20 rule.

Most of the time, a minority of your products (usually around 20%) is making the majority of your outbound volumes (usually around 80%).

Pareto Chart

This plot can show you where your product rotations are compared to the Pareto law:

  • x-axis: the percentage of reference of your portfolio (%SKU)
  • y-axis: the percentage of the outbound volumes they represent (%Boxes)

In this particular example, you can quickly see that you have less than 20% of your total portfolio which contributes to 80% of the outbound volume.

Pareto Chart β€” (Image by Author)
- Very high rotations (top 5%) make more than 60% of the volume
- 20% of the portofolio represent 84% of the outbound volume
You need to prepare a DataFrame with the outbound volume of each SKU, their contribution in the total volume and then calculate a cumulative sum.
You can use matplotlib.pyplot for a simple plot.

For more details, you can find the source code in my GitHub repository.

Logistics Performance

The performance of your distribution network can be summarised in one sentence

Are you delivering your end customers on time in full?

This is the central question animating performance management with analytics, operational review and continuous improvement initiatives.

Shipment Tracking

Supply Chain Descriptive Analytics use the data generated by the different systems involved in your distribution chain to follow the timestamp of each step your shipment is going through.

At a tactical level, you have distribution planning teams that are following the status of the orders created recently.

Where are my shipments?

From the order creation to the store delivery your shipment is going through different steps:

Example of a store delivery β€” (Image by Author)

For each step, your systems are recording time stamps at the beginning and at the end of the process.

Stacked Bar Plot
Stacked Bar Plot of Shipment Status β€” (Image by Author)

At a time t, this chart is showing the split of shipments by current status:

  • x-axis: orders are grouped by order creation date
  • y-axis: number of shipments
  • legend: the current status of your shipment from order creation to store delivery
- 100% of the orders created before 05th May are delivered
- A majority of the shipments created the 8th are blocked in the clearance
You need to prepare a DataFrame by grouping orders by creation date and current status and count them.
You can use matplotlib.pyplot for a bar plot selecting stacked=true

For more details, you can find the source code in my GitHub repository.


These very simple charts can provide extremely valuable insights for supply chain design, optimization, and monitoring.

About Me

Let’s connect on Linkedin and Twitter, I am a Supply Chain Engineer that is using data analytics to improve logistics operations and reduce costs.