What Factory Physics is
Most production meetings argue opinions. Factory Physics ends the argument. In 1996, Wallace Hopp and Mark Spearman wrote down what physicists had long done for nature: a set of laws that every production system obeys, whether its managers believe in them or not. No fads, no acronyms of the month. Just relationships between throughput, inventory, cycle time, and variability that you can compute on the back of an envelope.
The laws are few, and they're not complicated. WIP, throughput, and cycle time are locked together (Little's Law). Adding WIP past a critical level buys you nothing but lead time. Variability always degrades performance, and it always gets paid for: with inventory, with spare capacity, or with your customers' time. Once you've internalized these, half of the usual factory-floor debates dissolve.
This dashboard walks through the six core principles. Each tab explains one, gives it a formula, attaches a worked example, and lets you push the sliders until the behavior clicks.
The six principles
Notation cheat sheet
| Symbol | Meaning | Typical unit |
|---|---|---|
| TH | Throughput: output rate of the line | jobs/hour |
| CT | Cycle time: how long one job spends in the system | hours, days |
| WIP | Work in process: jobs inside the system right now | jobs |
| rb | Bottleneck rate: capacity of the slowest station | jobs/hour |
| T0 | Raw process time: pure touch time with zero waiting | hours |
| W0 | Critical WIP: rb × T0, where a perfect line saturates | jobs |
| u | Utilization: workload divided by capacity | 0 to 1 |
| ca, ce | Coefficient of variation of arrivals / of process times | dimensionless |
How to use this dashboard
- Go in order the first time. Little's Law is the grammar; everything after is sentences.
- Move one slider at a time and predict the direction before you look. That's where the learning happens.
- Try to break the laws. Set utilization to 98%, push the batch size to 1, release work faster than the bottleneck. The formulas will show you the bill.
- Steal the defaults. Each tab opens on a realistic mid-size manufacturing scenario, so the numbers you see first are numbers you could meet on a real shop floor.
One warning before you start: none of this requires simulation software or a consulting engagement. Every result on these tabs comes from formulas short enough to memorize. That's the point of the book.
Little's Law: the conservation law of operations
WIP = TH × CTWork in process equals throughput times cycle time. Proven by John Little in 1961, and astonishingly general: it holds for any stable system over the long run, regardless of variability, scheduling rules, machine count, or luck. A CNC cell, an accounts-payable desk, a container port, your e-mail inbox. Same law.
Why it matters: you rarely control all three quantities. Demand fixes your throughput. So the law leaves you exactly one degree of freedom, and it's a choice: how much WIP you allow. Choose the WIP and you have chosen your cycle time. There's no third option where the queue is long and the lead time is short.
Why it's true (30-second version)
Controls
WIP vs cycle time at fixed throughput
Each line is one throughput level. At a given throughput, WIP and cycle time move in lockstep: slide along the blue line and you trade one for the other. You can't leave the line without changing throughput.
What the law lets you do
–
–
A fulfillment center ships 1,200 orders per day, and pick-pack-ship takes 3.5 days door to door. Little's Law says 1,200 × 3.5 = 4,200 orders are sitting inside the building at any moment. No WMS query needed.
Now flip it. The operations manager doesn't know the cycle time (nobody timestamps individual orders), but a Friday count finds 4,200 open orders and shipping confirms 1,200 per day leave the dock. CT = WIP / TH = 4,200 / 1,200 = 3.5 days. You just measured lead time with a headcount and a shipping report.
Same trick works on invoices: an AP team clearing 300 invoices a day with 2,400 in the open-items list has an 8-day approval cycle, whatever the process documentation claims.
WIP is a policy, not weather. Since demand fixes TH, every unit of WIP you tolerate is cycle time you signed up for. Long lead times are not a mystery to investigate; they're a WIP level to decide.
How much WIP does a line need? The Penny Fab
Hopp and Spearman's teaching factory is a four-station line that stamps pennies, each station taking 2 hours. Bottleneck rate rb = 0.5 jobs/h, raw process time T0 = 8 h. Their central quantity is the critical WIP:
W₀ = r_b × T₀With WIP below W₀, even a perfect line starves: stations idle because there aren't enough jobs. At exactly W₀, a perfect line runs at full throughput with zero queueing. Above W₀, throughput can't rise any further, so every extra job converts one-for-one into waiting. Three reference curves bound reality:
- Best case: zero variability, perfect balance. TH = min(w/T₀, r_b).
- Worst case: maximum batching, jobs move as one clump. TH = 1/T₀ no matter how much WIP you add.
- Practical worst case (PWC): "maximum randomness", the benchmark for a typical messy line. TH = w/(W₀+w−1) × r_b.
Real lines live between PWC and best case. If yours sits below the PWC curve, you don't have a WIP problem, you have a variability problem.
Controls
Performance at your chosen WIP
| Scenario | Throughput | Cycle time |
|---|---|---|
| Best case (zero variability) | – | – |
| Practical worst case (typical line) | – | – |
| Worst case (everything batched) | – | – |
–
Throughput vs WIP
Throughput saturates at the bottleneck rate. Past W₀ the best-case curve is flat: more WIP, same output.
Cycle time vs WIP
Below W₀, cycle time is flat at T₀. Above it, cycle time climbs linearly. The WIP you add is the queue you built.
A circuit-board line has four stations and a bottleneck placement machine rated at 0.5 panels/h, with 8 h of touch time end to end. Critical WIP is 0.5 × 8 = 4 panels. The supervisor, worried about starving the line, keeps 20 panels released.
Read it off the curves: at w = 20 a typical line (PWC) delivers about 0.43 panels/h, just 13% more than the 0.38 panels/h at w = 10, while cycle time climbs 77%, from 26 h to 46 h. The last 10 panels of WIP bought almost no output and more than two extra shifts of lead time.
Past critical WIP, releasing more work buys you nothing but lead time. Compute W₀ for your line this week: bottleneck rate times raw process time. Then go count what's actually on the floor. The ratio is usually embarrassing.
Variability × utilization: the VUT equation
CT_q = V × U × T = ((c_a² + c_e²) / 2) × (u / (1 − u)) × t_eQueue time at a station is the product of three factors. V is variability: the squared coefficients of variation of arrivals (ca) and of process times (ce), averaged. U is the utilization amplifier u/(1−u). T is the mean process time te. This is Kingman's approximation, and it's the single most useful formula in the book.
Look at the U term. At 50% utilization it equals 1. At 80% it's 4. At 95% it's 19. At 98% it's 49. Utilization doesn't degrade performance linearly; it compounds. And V multiplies everything, which is why two plants at the same 90% utilization can have wildly different lead times.
Where does variability come from? Setups, breakdowns, operator differences, quality loops, expedites, and lumpy order release. Rough calibration from the book: a CV below 0.75 is a low-variability process, 0.75 to 1.33 is moderate (exponential-ish, CV = 1), above 1.33 is high, usually a sign of long, rare disruptions.
Controls
The wall
Total cycle time at the station (queue + process) as a multiple of te, against utilization. Grey dashed line: moderate variability reference (ca = ce = 1). Blue line: your V. The wall moves, but it never disappears.
Your station right now
A machining center runs 2-hour jobs with moderate variability (ca = ce = 1, so V = 1). At 85% utilization: queue time = 1 × (0.85/0.15) × 2 h ≈ 11.3 h, total cycle time ≈ 13.3 h.
Sales lands a big order and planning loads the center to 95%. Queue time = 1 × 19 × 2 = 38 h, total ≈ 40 h. Ten points of utilization tripled the cycle time. Nothing broke, nobody slacked off. The equation just did what it always does.
Set the sliders to reproduce both cases, then try buying the capacity back: at what utilization does cycle time drop below one shift (8 h)?
A 95% utilization target is not efficiency. It's a decision to make customers wait, taken one level below anyone who meets customers. If you must run hot, the VUT equation names your only lever: cut V, because U is off the table and T is engineering.
Batching: the U-curve nobody plots
Machines with setups force a choice: run big batches and amortize the changeover, or small batches and stay flexible. Factory Physics turns the argument into arithmetic. With a setup of ts hours, k parts per batch at t0 hours each, and parts arriving at rate ra, the station's utilization is:
u = r_a × (t_s + k × t₀) / kSmall k means the setup is paid too often and u climbs toward 1: the queue explodes (see tab 4). There's a hard floor, the minimum feasible batch size, below which the machine simply can't keep up. But large k hurts too: each part waits for its batch-mates before and during processing. Total cycle time is a U-shaped curve in k, and the bottom of the U is usually far to the left of where tradition runs the machine.
The model here: cycle time = wait-to-form-batch + queue (VUT on whole batches) + batch process time.
Controls
Cycle time vs batch size
Shaded zone: batches too small to be feasible (utilization would reach 100%). Green dot: the computed minimum of the U-curve. Blue dot: your batch size.
Your batch policy right now
–
A coating line takes a 1-hour color change, then 6 minutes (0.1 h) per rack, with demand at 6 racks/hour. Tradition says "run at least 60 per color, changeovers are expensive." At k = 60 the model shows roughly 28 h of cycle time.
The U-curve bottoms out at k = 32 with about 22 h of cycle time, a 21% cut in lead time with zero investment. And notice the floor: below k = 16 the station is infeasible, so "just go single-piece flow" is equally wrong here. Now drag the setup slider down to 0.5 h and watch both the floor and the optimum slide left. That's why SMED programs shrink batches: they move the curve, not just the policy.
The "economic" batch your ERP suggests optimizes setup cost, not lead time, and the two answers differ badly. Plot the U-curve for one bottleneck machine. If your current batch sits on the right-hand slope, you're paying lead time for changeover savings nobody costed.
Push vs pull: what the WIP cap actually does
A push system releases work on a schedule: MRP says start 22 jobs today, so 22 jobs hit the floor, whatever the floor looks like. A pull system releases work only when work leaves. The cleanest version is CONWIP: hold line WIP constant at a cap w; when a job ships, the next one enters.
Kanban cards aren't magic. The WIP cap is. Little's Law explains why: with WIP pinned, cycle time can't drift, and the line becomes self-regulating. Push has no such governor. Release at 95% of bottleneck rate with real-world variability and WIP doesn't settle; it wanders upward for weeks, taking lead time with it. Hopp and Spearman also prove a robustness result: a pull line's performance is far less sensitive to picking the "wrong" WIP cap than a push line is to picking the wrong release rate.
Below: a live simulation of a 4-station line (1 h per station, so rb = 1 job/h, T₀ = 4 h, W₀ = 4). Same demand variability feeds both policies. 600 jobs, first 100 discarded as warm-up. Results are seeded, so they're reproducible; re-roll for a fresh sample path.
Controls
–
WIP over time, same line, two policies
CONWIP (blue) is pinned at its cap. Push (grey) breathes with every run of bad luck, and the hotter the release rate, the longer the excursions last.
Simulation results (after warm-up)
| Metric | Push | CONWIP (pull) |
|---|---|---|
| Throughput (jobs/h) | – | – |
| Average cycle time (h) | – | – |
| 95th percentile cycle time (h) | – | – |
| Average WIP (jobs) | – | – |
–
1. The meltdown. Set CV to 1.25 and push release to 97%. Watch push WIP climb into the dozens while CONWIP sits at its cap. Push throughput looks fine on paper; the inventory and the 95th-percentile lead time are where it bleeds.
2. Matching throughput fairly. At CV = 1, push at 90% delivers TH ≈ 0.9. To match it, CONWIP needs a cap near w = 27 (PWC predicts w/(w+3) = 0.9). Try it: similar throughput, but the pull line's WIP and cycle time are stable and predictable, not a random walk.
3. Robustness. Halve the CONWIP cap from 16 to 8 and note how little throughput you lose. Then raise push release from 90% to 96% and note how much WIP you gain. Wrong cap: cheap mistake. Wrong release rate: expensive one.
Pull isn't a Japanese cultural artifact, it's a control policy: capping WIP converts an open-loop system into a closed-loop one. You don't need kanban cards, supermarkets, or a sensei to start. One CONWIP loop around your worst line, cap chosen from the PWC curve, beats another release-rate debate.
The buffering law: someone always pays
Variability is buffered by some combination of inventory, capacity, and time.This is the law managers resist hardest, because it says "no" to a popular wish: high utilization, low inventory, and short lead times, all at once, in a variable world. Pick two. At best.
Every real system pays for its variability in one of three currencies. Capacity: run at 70% so queues stay short (the fire department's choice). Inventory: hold finished stock so customers never see the queue (the supermarket's choice). Time: make customers wait (the choice of every custom fabricator, and of every plant that "optimized" the other two). Refuse to choose explicitly and the system defaults to time, which is the buffer your customers notice most.
The model below is a stylized single work center: one day's demand arrives as one production order per day, utilization and variability set by you. It computes the going price of each buffer, live.
Controls
The capacity-inventory trade
Safety stock needed for ~95% service vs the utilization you run. Hotter utilization means longer cycle times, which means more demand exposure to cover with stock. Each grey line is a variability level; blue marks your setting. There is no point on this chart with high utilization and low inventory and no waiting. That's the law.
The price of each pure strategy, at your settings
Time: expected order cycle time at your utilization. Capacity: the utilization ceiling that would keep queue time within one process time (queue ≤ touch time). Inventory: safety stock covering demand over the cycle time at roughly 95% service (z = 1.64). Stylized model, meant for intuition, not for parameterizing your MRP.
The laws on one page
| Law | What it says | What to do with it |
|---|---|---|
| Little's Law | WIP = TH × CT for any stable system. | Measure cycle time from a WIP count and a completion rate. Set WIP to set lead time. |
| Capacity | No plant can sustain releases above its capacity. The overflow becomes WIP, not output. | Plan releases below the bottleneck rate. "Catching up next week" is not a plan. |
| Utilization | With variability present, cycle time grows without bound as utilization approaches 100%. | Treat the last few points of utilization as what they cost: lead time. Price slack accordingly. |
| Variability | Increasing variability always degrades the performance of a production system. | Hunt CV, not just averages: setups, breakdowns, quality loops, lumpy releases, expedites. |
| Variability buffering | Variability will be buffered by some mix of inventory, capacity, and time. | Choose the buffer mix per product family on purpose. Unchosen buffers default to customer waiting. |
| Best-case performance | TH ≤ min(w/T₀, rb) and CT ≥ max(T₀, w/rb). No line beats these bounds. | Benchmark your line against its own best case before benchmarking against other plants. |
| Worst-case performance | The worst stable line still achieves TH = 1/T₀, by moving all WIP as one giant batch. | If performance is near worst case, look for batching and move-together flow, not lazy operators. |
| Practical worst case | A "maximally random" line achieves TH = w/(W₀ + w − 1) × rb. | Above the PWC curve: manage WIP. Below it: fix variability first, WIP policies second. |
| Process batching | Cycle time vs lot size is U-shaped; below a minimum lot size the station is infeasible. | Compute the U-curve at bottlenecks. Cut setup times to move the whole curve left. |
| CONWIP efficiency & robustness | A WIP-capped (pull) line needs less WIP for the same throughput than push, and is far more forgiving of a badly chosen control parameter. | Cap WIP and release on completion. Tune the cap later; it's a cheap knob. |
| Lead time | A competitive quoted lead time is average cycle time plus a safety margin scaled to cycle-time variability. | Quote from the CT distribution, not the average, or accept chronic 60% on-time delivery. |
Lean says "remove waste", Six Sigma says "remove variation", and both are downstream of this one law: until variability shrinks, the buffers are non-negotiable, only their form is up to you. The most useful supply chain conversation you can start this quarter: "which buffer are we choosing, per product family, on purpose?"