A milk run is a timed, looping delivery route that drops small quantities of material to many line-side locations on a fixed schedule, instead of making big, infrequent bulk drops. Because it delivers little and often, a milk run cuts both line-side inventory and stockouts at the same time, the two problems bulk delivery forces you to trade against each other.
The name comes from the old milkman, who visited every house on a route each morning, left what each home needed, and picked up the empties. A factory milk run does the same thing: a tugger train or route driver follows a set path on a set clock, delivering parts to each station and collecting empty containers to trigger the next refill. This post explains why little-and-often beats big-and-rare, how to design a milk run, and how internal and external milk runs differ.
What is a milk run in logistics?
A milk run is a consolidated delivery method in which one vehicle follows a predetermined route to make many small deliveries (or pickups) on a repeating timed cycle, rather than each destination getting its own dedicated bulk trip. Inside a plant it replenishes line-side stations; across a supply chain it collects parts from several suppliers in one loop. Either way, the logic is consolidation plus timing plus predictability.
The idea comes straight from lean. Instead of a forklift dumping a full pallet at a station every few hours, feast then famine, a milk run brings a couple of bins every 20 or 30 minutes, matched to what the line actually uses. Toyota built internal milk runs into the Toyota Production System precisely because they keep line-side inventory tiny while still protecting the line from running dry.
By the numbers. The term traces to milk delivery, including Upper Midwest milk trains documented as early as 1917 that stopped frequently to collect farmers' cans, and it was adapted for manufacturing as a scheduled, looped material-handling method (Milk run). It is a standard lean material-handling practice, consistent with lean's principles of flow and pull maintained by the Lean Enterprise Institute (Lean Enterprise Institute, Lean Thinking and Practice).
Why does a milk run cut inventory and stockouts at the same time?
Because it breaks the trade-off that bulk delivery forces. With big, infrequent drops you must choose: deliver rarely and hold a large safety pile at the line to survive between drops, or hold little and risk running dry before the next forklift arrives. A milk run escapes the choice by making delivery frequent and reliable, so the line can hold only a small buffer and still never starve.
Frequent small deliveries flatten the sawtooth. Instead of inventory spiking to a full pallet and then draining to near zero, line-side stock rides in a thin band between one delivery and the next. That thin band means less space consumed, less cash tied up, and fewer parts hiding damage or obsolescence, while the tight, timed cadence means the line is refilled long before it can stock out. Little-and-often wins on both counts because it replaces a big buffer with a fast, dependable heartbeat.
There is a quality payoff too. When a station holds only an hour of parts instead of a day's worth, a defective batch is caught within the hour rather than after it has been consumed and buried in finished product. Small line-side inventory shortens the feedback loop the same way small work-in-process does on the line, so problems surface while they are cheap to fix. Bulk delivery hides bad parts inside big piles; the milk run keeps the piles too small to hide anything for long.
How do you set up a milk run?
You design a milk run around a fixed route and a fixed time, then size the containers and signals to the line's real usage. The steps below build one from the demand up.
- Size demand at each stop. Work out how many parts each station consumes per hour from its takt, so you know how much to deliver and how often. Everything else is built on this usage rate.
- Set the cycle time and route. Choose a delivery interval, often 20 to 60 minutes, and lay out the shortest fixed loop that visits every stop. Shorter cycles mean smaller line-side buffers but more trips; balance the two.
- Standardize small containers. Use right-sized bins or carts that hold roughly one delivery cycle's worth of parts, so the tugger carries little and the line holds little. Standard containers make loading, counting, and space planning predictable, and they make the empties themselves a clean, countable pull signal.
- Trigger refills with a pull signal. Tie each refill to consumption using kanban cards or empty containers, so the route replenishes exactly what was used rather than what someone guessed. The empties are the signal, just like the milkman's bottles.
- Run to a timed, visual schedule. Publish the route timetable, mark line-side locations clearly, and hold the cadence like a bus route. Reliability is what lets the line trust a small buffer; a milk run that runs late forces everyone back to hoarding, and once operators start hiding a private stash the whole system quietly unwinds.
What is the difference between internal and external milk runs?
Internal milk runs move material inside a plant, from a central market or supermarket out to line-side stations. External milk runs move material between sites, one truck collecting parts from several suppliers in a timed loop, or one route delivering to several customers. The mechanics rhyme, but the scale, vehicle, and cycle time differ.
| Aspect | Internal milk run | External milk run |
|---|---|---|
| Scope | Within the plant | Between sites and suppliers |
| Vehicle | Tugger train, cart | Truck or van |
| Typical cycle | Minutes (20–60) | Hours to daily |
| Delivers to | Line-side stations | Docks and warehouses |
| Main gain | Low line-side stock, no starving | Full trucks, less inbound freight |
The external version also cuts transportation cost and truck emissions by consolidating what would otherwise be many partial loads into one efficient loop, while keeping deliveries frequent enough to support low inventory at the receiving end. The internal version is mostly about protecting flow at the line with minimal stock, so the two loops chase related but distinct wins. Many plants run both, with the external loop feeding the market that the internal loop draws from.
What are the benefits and challenges of a milk run?
The benefits stack up fast. Line-side inventory drops because stations hold a thin band instead of a full pallet; floor space opens up because the piles shrink; damage and obsolescence fall because parts do not sit; and material handling gets safer and calmer because one planned route replaces a swarm of forklifts darting between the stockroom and the line. Ergonomics improve too, since operators handle small bins at reach height rather than wrestling bulk containers.
The challenges are real and mostly about discipline. A milk run only works if the cadence is reliable, so it demands standard routes, standard containers, and a schedule people hold to; a route that slips forces everyone back to hoarding, which quietly rebuilds the inventory you removed. It also needs a stable enough demand mix to size the loop, and it adds handling touches, so very high-volume single parts may still be better on direct bulk delivery. The honest rule is that a milk run shines for the many small-to-medium parts a line uses, not for the one giant component it burns through by the pallet. Map the flow with value stream mapping before committing a route, so the loop serves the real value stream rather than a convenient path.
How does a milk run tie into pull and kanban?
A milk run is the delivery engine of a pull system. Pull says a station should only be refilled with what it just consumed; the milk run is how that refill physically arrives, on a reliable cadence, in small amounts. The kanban card or empty bin is the signal, and the timed route is the muscle that acts on it. Without a milk run, pull signals pile up waiting for someone to fetch parts; without pull, a milk run is just a scheduled guess.
Seen across the whole flow, the milk run is what keeps line-side inventory honest while the plant runs to takt. It works hand in hand with kitting when stations need matched sets rather than loose parts, and it draws from the same supermarket a lean warehouse is organized to serve. Sizing the loop well depends on knowing true usage and lead time, the arithmetic of Little's Law and honest safety stock and holding the cadence depends on seeing consumption in real time. That live view of what each station is actually using, rather than a static plan, is what a connected lean operation gives a material handler; see how that plays out in the CLS case study.