How Many DCs? — Total Cost Model — User Guide

Module 01 · Network Design & Consolidation
Module 01 · Network Design & Consolidation

How many distribution centres should this network have, and where?

Look only at freight and the answer is always “more sites”. Every additional building shortens the average haul. But facility fixed cost rises linearly with site count, and inventory rises with the square root of it — the classic result that safety stock scales with √n when demand is pooled across more locations. Put all three on the same axis and the curve becomes a U. This tool finds the bottom of that U, tells you which assumption would move it, and inverts the arithmetic to give you the lease rate at which one more site would pay for itself.

Who uses it
Network design, supply chain finance, anyone building a capex case for a facility
When
Annually, three to four months before budget
Time to first answer
Instant — the whole search runs in about 150 ms
Quick start

From open page to a defensible site count

Set the scale on tab 1

Annual shipped weight and outbound fill. The fill figure should come from the Consolidation Optimizer, not guessed — it drives how many trucks the volume becomes.

Pick the inbound source

This matters more than anything else on the page. Two ports, three ports, a plant, or ignore inbound entirely. Import-driven networks cluster near ports; plant-driven ones cluster near plants.

Load the financial parameters on tab 2

COGS, inventory turns, safety stock share, carrying rate, and annual fixed cost per DC. These have to come from finance. They decide the answer and logistics cannot set them alone.

Read the U-curve on tab 3

The green marked point is the optimum. Underneath it, the flat zone tells you how many site counts sit within 2% — inside that band the differences are model noise.

Go straight to the incremental table

This is the real output. For each step it shows freight saved, fixed cost added, inventory added, net effect, and the breakeven fixed cost — the annual cost per DC at which that step would break even. Compare it to a real lease quote.
Screen map

What each tab is for

Tab 2 is where the answer is actually decided. Tab 4 tells you whether to believe it.

TabWhat it controlsLeave it alone unless
1. DemandVolume, fill, demand distribution, inbound source, and how many sites to search.You have real volume and a real source network — then change it immediately.
2. CostsFreight rates, facility fixed cost and handling, and the inventory block. Optional service-benefit model.Never. Nothing here should stay at default in a real study.
3. ResultsU-curve, cost composition, TCO by site count, incremental analysis with breakeven inversion.Never.
4. SensitivityTornado, stability of the optimum under ±25% moves, and a two-way grid of fixed cost against carrying rate.Never — this is what separates a defensible answer from a guess.
Reading the output

Four outputs, in order of usefulness

The optimum itself is the least interesting number here. The breakeven and the stability table are what you take into a meeting.

MetricWhat it meansWhat to do about it
Breakeven fixed costThe maximum annual cost per DC at which the next site still pays for itself.Compare directly against a lease quote. If the quote is higher, the site is rejected on arithmetic, not opinion.
Required β*If cost alone rejects the step, this is how much revenue must rise per point of next-day coverage to justify it anyway.This is a question for the commercial team, expressed in a number they can answer.
Flat zoneWhich site counts land within 2% of the optimum.If several do, the cost model does not decide it. Choose on service, risk and executability instead.
Stability tableWhether the optimum survives each parameter moving ±25%.Parameters that never change the answer do not need precise estimates. Concentrate verification on the ones that do.
Inbound shareWhat proportion of freight cost is inbound replenishment.Above 15% and the source location is driving the siting decision. Get the real coordinates before going further.
Use cases

Three questions this actually settles

Use case 1

Is a fourth DC justified?

Set upLoad real volume, fill and financial parameters. Read the incremental row for the 3→4 step.
WatchFreight saved against fixed plus inventory added. In a typical mid-size network the third or fourth step is where net effect turns positive — meaning the step costs money.
DecideTake the breakeven fixed cost from that row to the property team. If nobody can deliver a building at or below it, the answer is no and the conversation is over.
Use case 2

What would have to be true for it to be justified?

Set upSame run. Read the required β* column on the same row.
WatchIt expresses the revenue lift needed per point of next-day coverage gained. A figure like 0.3% is a question sales can actually answer.
DecideIf the commercial team believes the elasticity is above β*, the site is justified on revenue. If they will not commit to a number, it is not justified.
Use case 3

Which assumption do we need to measure before anyone believes this?

Set upTab 4. Read the tornado, then the stability table, then the two-way grid.
WatchParameters that flip the optimum are highlighted. The two-way grid shows whether the answer holds across a plausible range of fixed cost and carrying rate.
DecideVerify the highlighted parameters first. If the two-way grid splits between two or three answers, the site count cannot be settled without measured data — say so rather than presenting a number.
Pitfalls

Where people misread this tool

Every one of these has actually happened during testing.

Inbound is the assumption that quietly decides everything

During testing, switching the source preset moved the optimum between one and three sites. Inbound accounted for roughly 20% of freight cost. Omitting inbound entirely — the most common shortcut in real network studies — makes adding sites look far better than it is.

A blended freight rate inflates the whole model

A rate averaged across TL, LTL and parcel is much higher than a TL contract rate. Feeding the blended figure in once moved the optimum from two sites to five. The tool now warns when the TL-only rate is missing — do not ignore that warning.

β can decide the answer on its own

The service-benefit model is off by default for a reason. In testing, moving β from 0.20% to 0.40% flipped the optimum from two sites to five. It is an unverifiable assumption. Always check whether the conclusion survives with it switched off.

Handling cost does not move the optimum

It is purely volume-driven, so it adds the same amount at every site count and shifts the curve without tilting it. Tuning it feels productive and changes nothing.

Several real constraints are outside the model

Labour availability, inventory and sales tax, lead-time variability, tariffs, and hazard diversification are all unmodelled. Use the result to narrow the candidate list, then evaluate those separately.
Data in and out

Files this tool reads and writes

DirectionFilePurpose
Inhub_config.csvAn existing hub set, to measure the gap against the optimum at the same site count.
Inassumption_registry.csvRate and annual volume from actuals.
Outoptimal_hub_config_NDC.csvThe optimal sites, ready for the Coverage and Consolidation simulators.
Outnetwork_tco_analysis.csvFull TCO table, incremental analysis with breakeven, resilience data and the complete assumption set.
Where it sits in the loop
This is the strategic stage and it runs first. Its optimal sites feed the Coverage simulator, which checks what that choice does to service, and the Consolidation Optimizer, which builds the load plan underneath it. Because the answer is dominated by finance parameters, it is also the tool that most needs someone outside logistics in the room.