One review cycle, three signals
Imagine a team preparing a small project for its next review. The numbers are signed, dimensionless deviations from a baseline: a negative value means below that baseline. The links and gains are assumptions for this toy, not measurements of delivery performance.
Step through the small cycle. Then choose “Growing oscillation” and run it. The negative two-link loop remains negative, yet the oscillation grows.
Ready at tick 0.
Change the assumptions
Edit gains and starting signals, then apply. Applying pauses and restarts at tick 0 so each run uses one fixed matrix.
Positive gain: same-direction effect. Negative gain: opposite-direction effect. Zero switches the link off. “Good” and “bad” are not encoded.
Restart retains your applied gains and starting signals. Restore returns to the selected example’s supplied values. Both pause the run.
See what enters the next tick
| Link / activity | Gain | Source now | Contribution |
|---|
Two loops, one coupled system
A loop’s sign is the product of its link signs; its numeric gain is their product. These paths take two and three ticks respectively. A cycle product is not an eigenvalue or the spectral radius of the coupled matrix.
How the next state is calculated
x(t + 1) = W x(t). Each next signal replaces its previous value with the sum of incoming contributions. There is no extra + x(t) term.
Watch the trajectory
One tick is an abstract model interval, not a day. The vertical scale adapts to the visible run; compare the numbers as well as the shape.
Read the last 12 states
Save or load a model · Graphviz report
JSON preserves node labels, starting signals and all four link gains and activity labels. Loading starts a new paused run at tick 0; it does not resume a previous trajectory. Export CSV separately to retain that history. All processing stays in this browser.
Use the exported template. The topology stays fixed at three states and four links. Labels accept up to 100 characters; gains and initial signals must be finite and within ±1,000,000.
The current DOT represents the displayed state and contributions for its next tick. Its first arrow applies the gain; its second passes the contribution through with gain 1. Download the original static governance DOT for comparison. That historical file labels both parts of each link with the same gain; it is a visual report, not a second executable model.
What this model can—and cannot—say
This is a discrete-time, autonomous linear map with three states and four links. It does not integrate a continuous-time differential equation. The source used “accountability vectors” (AV) for the intermediate nodes. Here they make the activity and its contribution visible: c(A→B, t) = gain × x(A, t), and x(B, t+1) = Σ incoming c(t). They have no memory, separate update or extra delay; naming an activity does not establish an accountable owner.
For fixed W, all starting states approach zero exactly when every eigenvalue has magnitude below 1. The displayed spectral radius is the largest of those magnitudes. When it exceeds 1, there is a growing mode; a special starting state may avoid it, and the largest signal need not grow on every tick. Values within 10⁻⁹ of 1 are labelled “Boundary”: this numerical cue does not certify marginal stability. Repeated unit-magnitude eigenvalues can require further analysis. See Stephen Boyd’s discrete-time stability notes, slide 11–34.
Link signs describe same- or opposite-direction effects; whole-loop polarity depends on all its signs. That convention is explained in David Ford’s system dynamics glossary. Polarity alone does not decide this model’s stability.
The delivery scenario is an illustrative interpretation of the original topology and numbers. It has no fitted parameters, persistent stocks, nonlinear saturation, measured time delays, external shocks, costs, capacity constraints or validation against project outcomes. The alternative “Original governance labels” restores Regulator, Operator and Oversight with their original activities and numerical values. Those labels do not make this a nuclear safety, licensing or governance simulator.
Runs stop at 500 ticks or before a signal exceeds 10¹², retaining the last finite state. Arithmetic is floating point; very large gain ratios, repeated roots and values near the stability boundary require care. The full three-root calculation replaces the source’s unreliable real power-iteration estimate.