Every schedule carries safety stock. It is not on the balance sheet and nobody calls it inventory, but it is there: the 2 hours between the inbound truck and the outbound departure, the day between vessel discharge and the rail connection, the cutoff set 3 hours before the flight closes, the spare vehicle on the yard. Each is a buffer against variability, and each has a carrying cost paid every day whether the variability shows up or not.
Inventory managers learned long ago to size safety stock from the demand distribution and the service level target. Schedule buffers are set by rule of thumb, inherited from the last planner, and never revisited. They are an inventory of time and capacity, with a holding cost and an optimal level.
The safety stock nobody books
Consider an illustrative cross dock running 10 connections a day, each with a 2 hour buffer between scheduled inbound arrival and outbound departure. That is 20 hours a day of dock space, handling labor, and driver time held against lateness. At an illustrative $60 per hour across those resources, the buffers cost $1,200 a day, about $300,000 a year for a single building. The number appears in no report, because it is dispersed across wages, equipment utilization, and the lead time the customer is quoted.
Now look at the lateness distribution the buffer protects against. If 95 percent of inbounds arrive within 40 minutes of schedule and 99 percent within 75, a 2 hour buffer covers a tail that almost never occurs, and pays 20 hours a day for it. The buffer was never sized. It was set.
Size it like inventory
The calculation is the one used for safety stock. Choose the service level: the share of connections that must be made. Read the quantile of the lateness distribution at that level. That is the buffer. At 95 percent, the illustrative cross dock needs 40 minutes, not 120. At 99 percent it needs 75. The difference is inventory held for no reason.
The service level itself is a trade. A missed connection costs money: a late delivery, a rebooked departure, a penalty. A longer buffer costs money every day. The right buffer is where the marginal cost of 1 more minute of slack equals the marginal cost of the misses it prevents, which is the newsvendor problem restated in hours. The answer is rarely the round number on the schedule.
It also moves when the distribution moves. Lateness in a congested port week is not lateness in a quiet one. A buffer sized once a year is wrong for most of the year. A buffer recomputed from the last 8 weeks of arrivals tracks the operation it protects.
Pool it, then measure it
2 further lessons from inventory carry over directly.
The first is pooling. 10 connections each holding their own buffer carry 10 separate reserves. If lateness on those connections is independent, a shared reserve covers the same service level with far less total slack, because the standard deviation of a sum grows with the square root of the count, not the count. In a schedule, pooling means designing connections so that slack in 1 can absorb lateness in another, through flexible dock assignment or a shared departure window.
The second is that buffers hide information. When every connection carries 2 hours of slack, no inbound is ever late enough to be recorded, and the lateness distribution is never measured. The operation pays for protection against a variability it has made itself unable to see. Shrink the buffer to the quantile and the misses that occur become data, and the data sizes the next buffer.
Buffers are inventory. Book them, size them from the distribution, pool them where the structure allows, and recompute them as it moves. Anything else is safety stock set by habit and paid for by the hour.
