10+10=16: How to quantify merger/ consolidation savings in your supply chain?

10+10=16: How to quantify merger/ consolidation savings in your supply chain?

Of course, there is more than just cost/ Intro and big picture

Mergers continue in many industries, e.g., in pharma there were 3 deals >50bn US$ announced or completed in 2019: Bristol-Myers Squibb (BMS)/Celgene – $74 billion, AbbVie/Allergan – $63 billion, Takeda Pharmaceutical Company (Takeda)/Shire – $58.6 billion.

In most cases, supply chains are expected to contribute cost savings to the merger case.

This post may be relevant for you, not only if you are asked to manage a supply chain consolidation and cost savings after a merger; it may also be relevant if you own a distribution network and always wanted to better understand what drives your total costs and the number of warehouses in an existing set-up to drive continuous improvement or have a non-merger case for consolidation or restructuring, e.g., new product launch.

Of course, you need to think beyond cost to maximize your company's benefit. You may want to

  1. use change to re-segment your supply chains
  2. for the segments, leverage scale to differentiate, e.g., by pursuing ‘service level’ or resilience leadership in certain segments
  3. consolidate and save costs close to center of gravity or
  4. build new presence off center of gravity/ at the fringes, e.g., in developing markets

See an earlier post at https://www.dhirubhai.net/pulse/5-questions-ask-your-supply-chain-ma-michael-terhoeven/ on ‘5 questions to ask your supply chain in M&A’.

In this post, I will focus on lever 3 above and share a simple way to estimate cost savings potentials from supply chain consolidation for distribution networks. I will focus on downstream/ distribution networks - in many supply chains, that is where the majority of cost sits...


No alt text provided for this image

Non-big data approach to supply chain consolidation and respective cost savings/ Note

Against the fashion of the year and against the standard network optimization, 'black box' approach with tons of data feeding a discrete optimization model, I’m taking a totally ‘non-big data’ approach here.

Instead, I look at the cost of a distribution network analytically. I will use a closed formula for the cost of the network and share insights on what drives a most cost-effective set-up …see earlier posts on how this formula can be derived


No alt text provided for this image

Ughhh/ Total cost formula and model

'Everyone' has seen variations of the graph above.

Let's break down the respective total cost formula (*) for the distribution network term by term

Total cost of distribution network = sqrt(A) N f + N d + sqrt(A/N) M mf + m + other

... and let's look at how the terms depend on or 'scale' with respect to the number N of DCs.

The first term describes the cost of distribution to the DCs, it depends on the square root (sqrt) of the total area A that you cover, the number N of DCs and the cost f for DC feeds or replenishment (per period and distance/ length unit). The second term describes fixed cost d per DC. Both of these terms scale with N; they increase linearly with N, one more DC, results in proportionally more DC feed cost and other DC fixed costs; double the number of DCs results in double the respective cost. Both of these terms combine to the blue columns in the graph for the 'variable' costs.

The third term scales with 1/sqrt(N) or N to the power of -1/2; double the number N of DCs (everything else equal) results in 1/sqrt(2) ≈ 71% of this cost position that describes the cost of the feed to the distribution milk runs; that cost depends on the area, the number M of milk runs and the cost mf for milk run feeds (per period and distance/ length unit). This term corresponds to the grey 'milk run feed' cost in the graph.

The fourth and fifth term does not depend on N; m is the cost of the milk runs in the respective areas of distribution (it is 0, if you distribute with dedicated full truck load. DC-to-customer 'milk runs' to single customers) and 'other' is just a bucket for other cross-DC fixed costs, e.g., cost of commissioning, which should not depend on the number of DCs (assuming here that we don't have less effective operations in more and smaller DCs). These two terms combine to the orange 'fixed' costs in the graph.


No alt text provided for this image

So, how do more warehouses reduce total distribution cost?/ First insight

There is only one term here that reduces with the number N of DCs and that is the one for the milk run feed cost. Basically, more DCs are reducing the total distribution costs by reducing the distance driven, time spend and cost of your delivery vehicles to reach the area of distribution and in the right situation/ set-up, more DCs reduce the milk run feed cost to a larger extend than the cost increase from more DCs (with fixed costs per DC and with increasing feed cost to DCs).

In the logistics literature, there is a lot of discussion on how safety stocks are increasing with the number N of DCs and are scaling with sqrt(N); we ignore this effect here assuming that the cost effect described above is more relevant for total network costs. Of course, a respective square root term can be added as seen fit.


No alt text provided for this image

So, how many DCs do you need?/ Second insight

The analytical, closed formula allows us to take an analytical approach and understand what drives the most cost effective number N_opt of DCs.

This requires a bit of analysis but you may just as well look at the result and explanations below.

We just take the derivative in N, set the result to 0 and do a bit of algebra to find

Most cost effective number N_opt of DCs =
[ (sqrt(A) M mf) / (d+sqrt(A) f) ]^(2/3)

where []^(2/3) is a fractional power.

See (*2) in notes below for a Mathematica approach to derive that formula.

Again, let's break down this formula for most cost-effective number N_opt of DCs term by term and let's look at how N_opt depends on or 'scales' with respect to the various parameters.

The numerator 'sqrt(A) M mf' above the line tells us that N_opt increases with the number M of milk runs and the cost mf of milk run feeds (per period and distance) - as expected: the more milk runs we have and the more the feed costs (per period and distance), the shorter we 'want' the feed to be, e.g., heavier and slower traffic should drive the number of DCs up.

Going to the quantitative level, the most cost-effective number N_opt of DCs scales with the power 2/3 on the number M of milk runs; everything else equal,

Double the number of milk runs will require a most cost-effective number N_opt of DCs of 2^(2/3) ≈ 159% of the original figure

(if you had 10, you'll need 16), where a doubling of milk runs may be driven by an increase in number of customers, drop points and volume or combinations thereof.

The denominator 'd+sqrt(A) f' below the line tells us that N_opt reduces with the fixed cost d per DC and with the cost f per DC feed (per period and distance) - again, as expected: the higher the additional cost per DC is, the fewer we 'want'.

It should be interesting to note, that N_opt depends in a non-linear way on the various cost parameters.


No alt text provided for this image

How does the cost split at most cost-effective number of DCs?/ Third insight

On the way to derive the most cost-effective number N_opt of DCs, there is an observation on the cost structure or cost split that may be relevant.

Basically, the first two terms scale with N and taking the derivative to N, will just create a factor of 1. The third term scales with 1/sqrt(N) and taking the derivative will result in a factor of 1/2 that is relevant for the cost structure at the optimum. Multiplying by N gives back the original terms excluding the cross-DC fixed cost ones; thus,

At most cost-effective number N_opt of DCs, the cost for DC feed and fixed cost per DC should be about half the cost from milk run feeds

Put differently, the cost for the milk run feeds (grey in the graph above) should be double the cost of the DC feeds and the fixed cost per DC (blue in the graph). No statement can be made on the cross-DC fixed cost (m and other - orange in the graph).

So, unless the cost of the milk runs in the respective distribution areas (e.g., when there a many stops per milk run) are huge or unless other fixed costs are significant (e.g., cross-DC order management and customer service), a distribution network management should focus more on milk run feeds (and DC location driving milk run feed length) than on DC feeds and per-DC fixed costs.


No alt text provided for this image

How much cost can you save in a merger?/ Fourth insight

We will need an additional assumption here on how the number of milk runs increases with volume in a merger or consolidation situation: we assume that the number M of milk runs increases one-to-one with volume; double the volume requires double the number of milk runs. Please see (*3) for a bit of a cautionary note/ discussion on that assumption.

Under the assumption and using the second insight above, we have

Double the volume (and number of milk runs) will require a most cost-effective number N_opt of DCs of 2^(2/3) ≈ 159% of the original figure

and you will save some 20% vs. the pro-forma total (of 40% = 20% of expected 200%).

Example 1: If you have 10 DCs in the US and merge with another company with the same volume and 10 DCs as well (and assumption above/ (*3) holds), then you should expect 10*159%=16 DCs to be required for your most cost-effective set-up and a saving of 20*20%=4 . Put differently: 10+10=16 in this case.

Example 2: If you have 10 DCs and you merging partner has 4 DCs and adds some 15% to your volume, then you can do with 11 DCs (10 DCs * (115%)^(2/3)) and close 3 DCs of the 14.

Of course, other considerations and details can complicate things, limit or at least delay DC reduction and reduce or delay cost savings, e.g., strategy or need to invest instead in service quality or redundancy and supply chain resilience, significant service level differences, further plans to merge/ disinvest business, 'must-serve' customers/ centers of demand, contract duration/ exit options, cost of change/ avoidance, factor cost differences and dynamics, barriers to IT integration etc.

Moving to a cost view, a reduction in the most cost-effective number N_opt of DCs should lead to respective cost savings in the fixed cost (sqrt(A) N f + N d) for DC feed and fixed cost per DC. Also, at N_opt, we know (third insight), that the milk run feed cost is double that amount, so should also simply reduce by the same factor.

Actually, the discussion under note (*3) is your friend here, if the milk runs are not well-utilized, there may be even more savings in the milk runs (feeds and in distribution area). Also, with shorter feeds into the distribution areas, a single milk run may be able to serve more customers and drop points.

So, under the key assumptions in the notes

Double the volume should lead to total DC-dependent cost of not more than 2^(2/3) ≈ 159% of the original DC-dependent cost

where the 'DC-dependent cost' includes milk run feed, fixed cost per DC and DC feeds and excludes milk run in distribution area and cross-DC fixed costs.


No alt text provided for this image

Closing and outlook

Mergers in many cases allow cost savings against some one-time costs of change. We provide a cost model and some ‘as simple as it gets’ formulas for the cost savings that you can expect: 10+10=16.

Of course, as mentioned before, there should be a good discussion on other options to maximize the benefits of scale in differentiation and service level or in reaching market segments that have been sub-critical before.

At the same time, I hope I have provided some good food for thought for any supply chain manager on what drives the cost of your network and how you may want to check levers to optimize your set-up: number of DCs/ warehouses, number of milk runs, utilization of milk runs, option to outsource at the fringe etc. 

In later posts, I plan to look at further insights beyond cost savings from the model.


No alt text provided for this image

Now to you: Do you know your distribution costs? Do you know your cost structure? Can you separate cost for milk run feed from milk run cost in respective distribution areas?


Please share, if useful; please comment, if you want to add/ complement.

Many thanks to my colleagues and network for input!!!

----

Notes

(*) Below some key assumptions made in the total cost formula (please comment if you see major other ones)

  • square land/ Manhatten metric is a good approximation of driving distances for the total cost formula - if far off that, a numerical factor may need to be added to the milk run feed cost
  • largely homogeneous distribution of demand/ delivery points - if there are strong geographic clusters of demand, each cluster may need to be looked at separately; if demand density varies a lot within each DC's footprint, a modeling approach with zone segments may be reasonable short of a 'black box' approach
  • safety stocks rather small - if far off, a safety stock term also varying with sqrt(N) can be added
  • no strong economies of scale in DC/ warehouse operations, e.g., no automatic or semi-automatic picking that that is more efficient but requires a large DC set-up
  • divisibility constraints of resources ignored, e.g., length of a time shift, size of a truck or delivery vehicle

(*2) Mathematica approach to derive the formula for most cost-effective number N_opt of DCs

(* total cost in Mathematica

aa = Area =A

ndc = number of DCs = N

mmm = number of milk runs = M

*)

totalCost[ndc_] := Sqrt[aa]*ndc*f + ndc*d + Sqrt[aa/ndc]*mmm*mf + m+ oth;

 

(* first derivative w.r.t. ndc=number of DCs=N *)

dTotalCost = D[ totalCost[ndc], ndc];

 

(* first step of simplification *)

simpDTotalCost1 = Simplify[ dTotalCost, {aa>0, ndc>0, f>0, d>0, mmm>0, mf>0, m>0}];

 

(* second step of simplification: multiply by power of ndc *)

simpDTotalCost2 = Expand[ PowerExpand[ simpDTotalCost1 * Sqrt[ ndc^3] ] ];

 

(* third step of simplification: divide by factor to power of ndc and sort by powers of ndc *)

simpDTotalCost3 = Collect[ simpDTotalCost2/ (d+Sqrt[aa] f), ndc]

(*3) The key underlying assumption for this one-to-one relationship (volume ≈ M) is that most milk runs are well utilized (vehicles are full/ not half-empty and use a full shift to go to their distribution area, to the milk run and return). If half-empty vehicles can just be better filled with more volume going to the same drop points as before (in the same milk run and full shift), there is no need for more milk runs and more DCs. Instead, there will be pure cost synergies in better capacity utilization. Of course, that comes back to options to consider better service quality with a more frequent delivery/ milk run cycle instead… or actually to options of considering outsourcing to an external distributor or integrator for ‘fringe’ destinations, where a milk run logistics provider, that can bundle over several producers/ manufacturers, will generate a value add.

要查看或添加评论,请登录

Michael Terhoeven的更多文章

社区洞察

其他会员也浏览了