In short: Strip the language away and network design is capacitated facility location, choosing which candidate sites to open against a fixed cost, a throughput capacity and the flow cost of serving each demand point. Fixing the open set leaves a transportation problem that solves in seconds, so the whole difficulty sits in choosing the set, and forty candidates give roughly a trillion subsets. Service belongs in the constraints rather than priced into the objective, because attaching money to a day of transit buries the most contested assumption in a coefficient nobody argues with. The model compares two steady states and says nothing about the years between them, which is where these programmes usually fail.
Count the distribution centres you operate, and for each one ask who decided to put it there and what they knew at the time. The honest answers usually run something like this. Two came with an acquisition. One is a former plant with a warehouse bolted onto the side of it. One was opened because a customer worth a third of the volume in 2009 wanted next-day cover, and that customer has since consolidated its own receiving into two national sites. One has been there long enough that nobody in the building can tell you.
Meanwhile the demand map moved. Wholesale shrank, direct shipping grew, the freight market repriced twice, and a large retailer redrew where your volume physically lands without consulting you. Nobody ever sat down and asked what the network should look like now, because that question was never the one on the agenda.
Supply chain network design is the exercise of asking it deliberately. It has a well-defined mathematical statement, a literature going back to the early 1960s, and characteristic answers that come out the way they do for structural reasons. Understanding that structure is worth more than understanding any particular tool, because it tells you which parts of the output to trust.
What the model is actually solving
Strip the language away and the problem is capacitated facility location. You have a set of candidate locations, each with an annual fixed cost you pay if you open it and a throughput capacity it cannot exceed. You have a set of demand points, each with a known annual requirement. For every pairing of candidate and demand point there is a variable cost to serve, mostly outbound freight plus handling.
Two decisions come out of it: which candidates you open, and how you assign demand to them. Three constraints hold it together: all demand is served, no site exceeds capacity, and nothing is served from a closed site. The objective is to minimise fixed costs of the open set plus the total variable cost of the assignment.
Written formally that is a mixed integer linear program, with continuous flow variables and binary open or closed decisions. Nothing in the statement is subtle, and every hard thing about it comes from those binaries.
Why exact answers stop being practical
Fix the open set and the rest is a transportation problem that solves in seconds at any realistic size. The difficulty sits entirely in choosing the set, and forty candidate locations gives you roughly a trillion subsets.
Branch and bound with a decent linear relaxation prunes most of that, and for a single-product, single-period instance with a few dozen candidates a current solver will prove optimality. Real instances have several thousand demand points, product families with different freight classes, more than one time period because volume grows, capacity that arrives in lumps because buildings do, and a requirement to answer forty variations of the question in the fortnight before a steering committee meets. An exact solve that runs for six hours is unusable when somebody in the room asks what happens if that site is off the table, and then asks again about a different one.
So the practical engines use construction plus local search. The construction step is the ADD heuristic from Kuehn and Hamburger's 1963 paper in Management Science, which predates most of the hardware people assume this needs. Start with nothing open. For every candidate, ask how far total cost falls if you open that single site and reassign demand optimally across the resulting open set. Open the best one. Repeat. Stop when no remaining candidate reduces total cost, which happens when the fixed cost of the next site exceeds the freight it would save. Their paper pairs this with a cleanup pass that drops sites which stopped earning their keep once later ones were added.
Greedy construction produces sites in order of contribution, so the fourth site opened is the fourth most valuable, and you can put the marginal case for each one in front of a decision maker as a number rather than as an opinion.
It also misses combinations, because it cannot see that two sites which are each mediocre alone work well together. The repair is interchange local search. From the current configuration, try three families of move: add a closed site, drop an open one, swap an open site for a closed one. Score each by re-solving the assignment, take the best improving move, and repeat until nothing improves. Swap is the expensive move and it is the one that matters, since it is what escapes the pattern greedy construction locked in. That is vertex substitution in the style Teitz and Bart described in 1968, and it is still the workhorse for this class of problem.
None of it guarantees the optimum, which you should say out loud when you present a result. What you can establish instead is practical confidence. Run the search from several starting configurations, including one seeded with the network you already have, and watch where they land. If eight restarts converge on the same five sites, the answer is stable where it matters. If they scatter across configurations of similar cost, that is itself the finding.
The costs that never make it into the model
Freight and facility fixed cost are the easy inputs because somebody already reports them monthly. The components that get dropped are the ones living in another department's ledger.
Inventory carrying cost, which moves when the site count moves. Safety stock across locations scales roughly with the square root of the number of locations, the relationship Maister set out in 1976. Going from eleven sites to five multiplies the pooling-sensitive portion of stock by the square root of five over eleven, about 0.67, so roughly a third comes out. Two conditions matter. Demand across locations has to be approximately independent, and items have to be genuinely common across sites. A slow mover that only ever ships from one building does not pool with anything. And the relationship applies to safety stock, while cycle stock follows order quantity economics, so multiplying your whole inventory balance by the square root ratio overstates the release, often badly.
The one-time working capital release. Consolidating stock frees cash once, and it belongs on its own line separate from the recurring effect, because presenting them together flatters year one and confuses year three.
Inbound freight, which moves the other way. Fewer receiving points means more full truckloads inbound and fewer part loads, while average outbound distance rises. Models built by transport teams carry outbound in fine detail and inbound as a flat rate, because outbound is where their invoices sit, and inbound frequently accounts for a third of the transport bill.
Labour, priced for the market rather than from a benchmark. In a catchment where three other operators are hiring the same people, the effective rate includes overtime, agency premium, and a turnover cost that surfaces as lost productivity rather than as wages.
Duty, customs treatment and local tax. Where a site sits relative to a customs boundary or a free zone changes landed cost per unit by amounts that swamp a few hundred kilometres of trucking.
The model will optimise whatever cost structure you hand it, and its confidence has nothing to do with whether that structure is complete. A network model with accurate freight and no inventory economics reliably recommends more sites than it should, because it prices the transport benefit of proximity and none of the inventory cost of fragmentation.
Service belongs in the constraints
There is a standing temptation to put service into the objective by attaching a monetary value to a day of transit or a point of next-day coverage. That value is the most contested assumption in the whole exercise, and burying it in a coefficient means nobody argues with it, which gets you a single answer the commercial side never agreed to.
Write service as a constraint with a number in it instead. Ninety-five percent of demand inside a one-day transit. Next-day coverage for accounts in the top revenue decile, two-day nationally for everyone else. Then run the model across a series of those constraints and plot the frontier: cost on one axis, coverage on the other, one point per run.
That frontier is usually a better deliverable than the winning configuration. It converts an argument about whether the business should promise next day into a priced question, and it puts the price in front of the person who owns the promise. The shape you tend to see is that the final points of coverage cost disproportionately, because buying them means opening a site for a thin tail of demand.
Why the answer is usually fewer sites, plus one nobody proposed
Two forces push toward consolidation and one pushes back. Fixed cost per site is largely flat above a threshold of throughput, so spreading volume across more buildings raises cost per unit. Safety stock scales with the square root of the site count, so fragmenting stock costs inventory. Against them, outbound transport cost rises with average distance to the customer. The outbound penalty grows fairly smoothly while the fixed and inventory savings arrive as step changes, which is why total cost plotted against number of sites comes out U-shaped with a long flat bottom.
Two things follow. The optimiser usually recommends fewer and larger sites than the network you have, because incumbent networks accumulated buildings one decision at a time and no decision ever removed one. And the bottom of the curve is often flat enough that five sites and six sites land within a percent or two of each other, comfortably inside the error of the cost inputs. When that happens, choosing between them on the model output is false precision, and the honest basis for choosing is what the model does not hold, meaning risk concentration, depth of the labour market, which customer notices, and what your operations team can run at once.
The output that deserves the most attention is normally a site nobody proposed. Incumbent networks are shaped by where land was cheap in 1994, where an acquired business happened to sit, and where a founder lived, and the search has no attachment to any of it. When it opens a location that has never come up internally, that is usually because the data supports it and the internal conversation had no way to produce it. Treat the site as a hypothesis: check whether a building of the required size can exist there, whether the catchment can staff it, and whether the road network matches what your distance matrix assumed. Where you would site facilities on a clean map with no reference to your current estate is a separate exercise with its own method.
The limit is the transition
The model optimises a steady state. It compares the network you run today against a different network as it would run once it existed, and it says nothing at all about the years in between. That gap is where network programmes actually fail.
The transition carries dual running while both sites are open and both fixed costs are payable, lease exit and dilapidations, severance, and the retention cost people forget, since you need the staff at the closing site working carefully for nine months and that takes a stay bonus. Add system configuration and cutover, an inventory build ahead of each transfer, the service dip while the receiving site ramps, and the freight cost of the transfers.
Put a schedule against it. A single site transfer into an existing building, run carefully, takes six to nine months from decision to steady state, and five moves do not run in parallel because the same small team does all of them and concurrent cutovers are not a risk anyone should accept. A three-site consolidation is therefore an eighteen to thirty month programme, and each move's annual saving only begins accruing when that move finishes.
So the discipline is to model the steady state to find out whether an answer worth pursuing exists, cost the transition separately as a project with a schedule and a risk allowance, and require the steady state case to clear the transition cost with room left over. A double-digit steady-state improvement against a transition that consumes three years of it is a case for doing nothing, and finding that out from a model beats finding it out in the second year of a programme.
The steady state is conditional in another way. The demand map you fed the model is last year's, and a configuration that takes two years to reach and then holds for ten deserves testing under variability rather than at its averages.
Before you model anything, write the service constraint down as a single sentence with a number in it and get the person who owns the customer promise to agree to it in writing, because every result you produce afterwards is conditional on that line and re-running the study when it changes will cost you a fortnight.