Schematex
causalloop·Sterman, Business Dynamics (2000)·business, systems-thinking·complexity 3/3·since v0.8.0

Startup growth engine (R and B loops)

A system-dynamics model of a viral product whose growth is capped by scaling strain. The engine enumerates every feedback loop and classifies each reinforcing (R) or balancing (B) by Sterman's even/odd rule.

For the systems-thinking strategist

Open in Playground →
causalloop·§
↘ preview
100%
Startup growth engine Causal loop diagram "Startup growth engine": 7 variables, 9 causal links. 3 feedback loops: 2 reinforcing (R), 1 balancing (B). R1 "Viral flywheel" (reinforcing, 0 negative links): Active users → Word of mouth → New signups → Active users. B1 "Scaling strain" (balancing, 1 negative link): Active users → Server load → App performance → Active users. R2 (reinforcing, 0 negative links): Active users → Revenue → Infra investment → App performance → Active users. Startup growth engine + + + + + + + + R1 Viral flywheel B1 Scaling strain R2 Active users Word of mouth New signups Server load App performance Revenue Infra investment
UTF-8 · LF · 12 lines · 452 chars✓ parsed·8.7 ms·7.9 KB SVG

What this shows

The two-sided story of every viral product. One reinforcing loop drives growth: more active users produce more word of mouth, which drives signups, which adds users — an amplifying cycle. A second, balancing loop pushes back: more users raise server load, which degrades app performance, which (after a delay) loses users. The delay markers put the system-dynamics hash mark on the slow legs, where the lag between cause and effect is what makes the system overshoot.

The engine finds and labels the loops for you, which a drawing tool cannot. It enumerates every elementary cycle in the signed graph with Johnson's algorithm, then applies Sterman's rule — count the negative links, even means reinforcing (R), odd means balancing (B) — and numbers them R1, B1… The growth cycle comes back R (zero negatives), the load cycle B (one negative). The named loop declarations attach the human phrasing — "Viral flywheel", "Scaling strain" — onto the loops the engine detects.

Causal loop syntax