What Shape Is Your Plant? A V, A, T and I Simulator

Four plant shapes, one engine. Drag any station's capacity and watch that shape's characteristic pathology emerge on its own.

VATI analysis sorts a plant by the shape of its material flow, not by what it makes. A V flow diverges: one raw material, many end products. An A flow converges: many parts, one end item. A T flow converges into common parts and then diverges again into many configurations. An I flow runs in a straight line. Nothing in this simulator is scripted. Every outcome falls out of three rules: convergence fires at the minimum across its legs, divergence lets the priority branch claim first, and a shared buffer is drawn down first come first served.

running self-check...

What you are looking at

One trunk operation converts raw material for both branches. After the divergence point, branch A has the priority claim on the shared buffer. Both branches carry 50 units a day of orders and the trunk makes exactly 100 a day, so on paper this plant is perfectly balanced. Watch what branch A's own capacity does to branch B's customers.

Flow, day 30 of 30

Scroll the diagram sideways to see the whole plant.

Running at capacity Starved, input was short Running full, output queue growing Drum, the slowest resource

Capacity against the 100 a day order book

    Bar is the station's capacity. The black tick marks total daily demand of 100 units. Starvation at a non-constraint is normal and cheap. Starvation at the constraint is the expensive kind.

    Cumulative shipped against cumulative orders

    Both branches book 50 units a day, so a single dashed order line covers both. Under the default greedy policy branch A sits exactly on that line while branch B falls away from it.

    Try this

    1. Drag the trunk down to 80. Throughput falls, as it must. Now check who loses the units.
    2. Put the trunk back to 100 and drag branch B down to 40 instead. Branch B's fill rate does not move at all, because 40 a day is already every unit branch A was leaving it. Its problem was never its own capacity.
    3. Change no capacity at all and switch to Pull. Same machines, same people, same trunk rate, and branch B is back at 100 percent.

    The lesson

    Robbing

    The Theory of Constraints literature calls the primary problem in V-plants robbing: the operation immediately after a diverging point takes material meant for its sibling. Once that material has been processed down one branch it cannot come back and run through the other without significant rework.

    In the default run branch A claims 60 a day against 50 of orders. Those 10 units a day are the same 300 units seen from three sides: 300 robbed, 300 sitting as branch-A dead stock, 300 of branch-B orders never filled. Note what the fix does not change. The trunk converts 100 units a day under both policies.

    Sources and model notes

    This is a deterministic teaching model, not industry data. Thirty daily ticks, integer units, no randomness anywhere, every buffer primed to its steady-state value so day 1 is already running. Each node moves material exactly one step per tick. Numbers here are simulation output from a model defined for this post, not measurements from any plant. Engine ported from the frozen dataset contract v1.0. AI transparency (EU AI Act): this simulator was built with AI assistance under human editorial control; its outputs were verified against the published R reference implementation.