Demonstration of Goldratt's Theory of Constraints

This is a continuous process simulation, demonstrating a simple, but often overlooked phenomenon: variability in a system's inputs tends to decrease the capacity of the system — even if the inputs' mean values are well within the system's theoretical capacity.

A very clear illustration of this phenomenon is the "matchstick game", described in The Goal: A Process of Ongoing Improvement. This simulation is based, in part, on that explanation.

The process simulated here is very simple: the system consists of serial arrangement of processing stations (corresponding to the bowls in the matchstick game), and inventory is moved from one station to the next at each time step. The amount transferred from one station to the next at each step is based on a random demand between 1 and a maximum (in the matchstick game, this is a roll of a single die); it is also constrained by the amount available at each station.

To prepare the simulation, set the number and initial inventory of the processing stations, the maximum transfer demand (the actual demand will be a random integer value from 1 to the maximum, inclusive), the run length, and the number of steps after which the statistics will automatically be reset (in some simulations, it is desirable to reset statistics after the system has been running for a while, to minimize startup effects). The animation delay values can be used to control the simulation speed. When you're ready, use the Next Step or Run to End button, to execute a single step or multiple steps (respectively) of the simulation.

As the simulation runs, notice how the total in-process inventory tends to increase, even though the average demand for finished goods is exactly the same as the average number demanded from each processing station.

The original version of this simulation model was developed by Grass Roots Consulting for newScale, Inc. That original version is in the form of a standalone HTML file (i.e. it doesn't use any linked stylesheets or external JavaScript files), which can be downloaded or viewed separately from this site; see the file linked at the bottom of the page.

Note: While this simulation model doesn't require the Java plug-in, it does (like most of the rest of this site) require JavaScript to be enabled in the browser.

Configuration & Control

Parameter Range Value
Number of processing stations [2, ]
Starting inventory at each station [0, ]
Maximum transfer at each step [2, ]
Run length, in steps [1, ]
Statistics reset step [0, ]
Animation delay (in milliseconds) before transfer [0, ]
Animation delay after transfer [0, ]

In-Process Inventory

Station Inventory Demand Shipped to Next
Raw Materials      


Turns Starting In-Process Inventory Raw Materials Added Finished Goods Shipped Average Finished Shipment Average Demand, per Station


matchstick-game.html26.39 KB