Every unit of stock sitting in your warehouse is a bet. You spent cash to make or buy it, and now it waits, earning nothing, slowly going out of date, on the chance a customer turns up wanting exactly that thing. Logistics, inventory and distribution is the discipline of making those bets well: holding enough to serve demand without drowning the business in cash you can't get back. Most of it comes down to a handful of durable ideas that long predate the software now used to run them.

The quick version

  • Inventory is a buffer against uncertainty, you hold it because demand and supply lead times are unpredictable. The cost of holding it (cash, space, spoilage) trades off against the cost of running out.
  • Not all stock is equal. A small share of your items usually drives most of the value, so you prioritise tight control there (ABC analysis) and manage the long tail loosely.
  • How much to order each time balances the cost of ordering against the cost of holding, the century-old EOQ idea. When to order is set by lead time plus a safety buffer (the reorder point).
  • Small demand changes get amplified up the chain, the bullwhip effect. Sharing real demand data, not just orders, is the main cure.

The idea in depth: why you hold stock at all

Start with the question most inventory decisions skip: why hold any stock at all? In a world of perfectly predictable demand and instant resupply, the answer is none, you would make each unit the moment it was ordered. Inventory exists precisely because that world doesn't. Demand jumps around, suppliers run late, and ships, trucks and factories take time. Stock is the buffer that absorbs that uncertainty so the customer never feels it.

That buffer comes in recognisable types, and naming them changes how you manage them. Cycle stock is the working inventory you order in batches because ordering isn't free. Safety stock is the extra cushion held against the two things you can't predict: demand spiking and lead times slipping (NetSuite's reference sets this out clearly). The level of safety stock is driven by your target service level, the probability of not running out during a replenishment cycle. Push that target from 90% to 99% and the buffer doesn't grow gently; it grows steeply, because covering the rarest spikes costs the most stock per point of protection.

The practical move is to make service level an explicit, item-by-item decision rather than a blanket promise. A leader who declares "we never run out of anything" has quietly committed to carrying enormous, costly buffers on items nobody would miss. Decide which products genuinely warrant 99% availability and which can sit at 90%, and you free up cash without the customer noticing. An honest limitation: the textbook safety-stock formulas assume demand follows a tidy bell curve, which lumpy, promotion-driven or seasonal demand often violates, so treat the numbers as a starting estimate to be corrected by what actually happens, not a law.

Sizing the bet: EOQ, the reorder point and the Pareto split

Two questions sit under every replenishment decision: how much to order, and when. The "how much" has a surprisingly old answer. In 1913, an engineer named Ford Whitman Harris published a short article, "How Many Parts to Make at Once", deriving the Economic Order Quantity (EOQ), the order size that minimises total cost by balancing two opposing forces. Order in big, infrequent batches and your ordering costs fall but your holding costs soar; order little and often and the reverse happens. EOQ finds the bottom of that curve. Harris's formula was so far ahead of its field that it was, as the centennial reviews note, largely overlooked for years before being rediscovered (the history is recounted in Erlenkotter's account in Operations Research, 1990).

The "when" is the reorder point: reorder when stock falls to the level you expect to consume during the resupply lead time, plus your safety stock (the standard definition). The practical insight is that lead time, not warehouse level, is what should trigger an order. If a supplier takes three weeks, the moment to act is when you have three weeks of cover left, regardless of how full the shelf looks.

Which leads to the harder discipline: stop managing every item the same way, because they are not worth the same. ABC analysis applies the Pareto principle (the 80/20 rule) to inventory: typically around 20% of items account for roughly 80% of the value, and that vital few deserves tight control, frequent review and careful forecasting, while the trivial many can run on simple, hands-off rules (Lokad's definition is a good plain-English account). The honest caveat: the 80/20 split is an empirical rule of thumb, not a constant, your own curve might be 70/30 or 90/10, and "value" can mean revenue, margin or strategic importance depending on what you're optimising. Run the numbers on your real data before trusting the cliché.

flowchart TD
  A(["Every SKU in the catalogue"]) --> B{"Rank by annual
value (price × volume)"} B --> C(["A items: ~20% of SKUs,
~80% of value
→ tight control, frequent review"]) B --> D(["B items: the middle
→ periodic review"]) B --> E(["C items: the long tail
→ simple rules, bulk buys"])
ABC analysis, concentrate scarce attention on the items that move the numbers, not on the long tail. Leaders Loop

The bullwhip effect: how small wobbles become big swings

The most counter-intuitive idea in distribution is that a supply chain can manufacture chaos out of calm. In 1997, Hau Lee, V. Padmanabhan and Seungjin Whang named the bullwhip effect in MIT Sloan Management Review after Procter & Gamble noticed something odd: retail sales of Pampers were fairly stable, yet distributors' orders to P&G swung wildly, and P&G's own orders to suppliers swung wider still. A gentle ripple at the customer end became a violent crack of the whip upstream.

A steady demand at the shelf can arrive at the factory as feast-or-famine, the supply chain amplifies its own noise.

Crucially, Lee and colleagues showed this is not caused by foolish managers. It emerges from four rational behaviours: each tier forecasting from the orders it receives rather than true end demand; batching orders to save on ordering costs; forward-buying when prices are promoted; and inflating orders to game allocation when supply looks short. Everyone behaves sensibly, and the system still oscillates, which is why the authors argued the fix is structural, not motivational.

The fix, then, is to attack the information distortion rather than its symptoms. Share real point-of-sale demand up the chain so every tier forecasts from the same signal instead of from each other's distorted orders; shrink batch sizes so orders track consumption; and steady your pricing so you stop training customers to hoard. The most expensive response, piling on safety stock at every tier, treats the symptom and feeds the disease. The limitation worth naming: demand sharing requires trust and data plumbing across organisations you don't control, which is exactly why the bullwhip persists decades after it was diagnosed.

A worked example

Take a mid-sized homewares distributor, call it Harbour & Co, supplying independent shops. (Illustrative figures throughout; this is a teaching example, not real data.) Two symptoms dominate the weekly meeting: warehouses are bulging with cash-sapping stock, yet the products customers actually want are forever out. The instinct is to rent more warehouse space. The better answer is to run the three lenses in order.

ABC first. Harbour ranks its 4,000 lines by annual value and finds, say, an illustrative 18% of lines drive 82% of revenue. Those A-items had been managed with the same casual monthly check as everything else. They move to weekly review and tighter forecasting; the C-item long tail moves to simple bulk reorder rules and gets a fraction of the attention it used to absorb.

flowchart LR
  A(["Symptom: too much stock
AND too many stockouts"]) --> B(["ABC: focus control
on the vital ~20%"]) B --> C(["Reorder point per item:
lead time + safety stock"]) C --> D(["Set service level by item:
99% for A, 90% for C"]) D --> E(["Share real sell-through
with suppliers (anti-bullwhip)"]) E --> F(["Less cash tied up,
fewer stockouts (illustrative)"])
The sequence applied to one distributor, prioritise, then size the bet, then calm the signal. Leaders Loop

Reorder points next. For each A-item, Harbour sets the trigger at lead-time demand plus a safety buffer sized to a deliberate service level, 99% on the bestsellers, 90% on the also-rans. The stockouts that mattered shrink; the buffers on items nobody missed shrink too, releasing cash. Anti-bullwhip last. Harbour starts sending key suppliers weekly sell-through data instead of only lumpy purchase orders, and stops the quarterly price-promo that had trained shops to forward-buy and distort the signal. In this illustrative case, availability of the top lines rises while total inventory falls, no extra warehouse required. The order of operations is the lesson: decide what matters, size each bet on purpose, then stop the chain amplifying its own noise.

Frequently asked questions

Isn't holding more stock just safer?

Only up to a point, and an expensive one. Every extra unit ties up cash, occupies space, risks obsolescence and hides problems you'd otherwise fix. The goal is not maximum stock or minimum stock but the right stock, enough buffer to hit a chosen service level on the items that matter, and no more. "Safer" past that line is just slower and more costly.

Do I really need EOQ formulas to run inventory?

Not to start. EOQ is valuable as a way of thinking, there is a genuine trade-off between ordering too often and holding too much, and there is a sweet spot between them. Most modern systems compute it for you. The leadership task is to understand the trade-off so you can question the inputs (are holding costs realistic? is the lead time current?) rather than to do the algebra by hand.

What's the single biggest cause of supply-chain pain?

For multi-tier chains, distorted demand information, the bullwhip effect, is the classic culprit. Each link reacts to the link next to it rather than to the real customer, and small changes amplify into large, costly swings. The cure is sharing true end-demand and steadying ordering and pricing behaviour, not heroically over-stocking every tier.

How does this apply outside warehouses and physical goods?

The same logic governs any system with queues and buffers. A support team's ticket backlog is inventory; a software team's work-in-progress is stock that ties up effort and hides problems. "How much buffer, where, against what uncertainty?" is a general operating question, not a manufacturing one.

Centralise distribution or push stock closer to customers?

It's a real trade-off, not a right answer. Centralising pools demand, which mathematically reduces the total safety stock you need (the risk-pooling effect) and cuts cost, but adds distance and delivery time. Pushing stock to local depots speeds delivery and resilience but multiplies the buffers you carry. The choice turns on how much customers value speed versus how much that duplicated stock costs you to hold.

Related in the Toolkit

Inventory thinking sits next to the methods that improve the work itself, Lean treats excess stock as a form of waste to be flowed away, and the cash it ties up shows up directly on your financial statements as working capital.

Where to go next