Systems Thinking Tools Overview
Session 0.10 · ~5 min read
Your Toolkit for Seeing Structure
Systems thinking is a way of seeing. But seeing is not enough. You need tools that help you capture, communicate, and test what you see. This session covers the core toolkit: behavior-over-time graphs, stock-and-flow diagrams, reference modes, and simulation tools. Each tool answers a different question about your system.
You already know Causal Loop Diagrams from Session 0.8. CLDs answer "what influences what?" The tools in this session answer complementary questions: "What pattern is the system producing?" and "How much is accumulating where?" and "What happens if we change this parameter?"
Behavior-Over-Time Graphs (BOTGs)
A behavior-over-time graph is the simplest tool in the toolkit. Plot a variable on the Y axis. Plot time on the X axis. Draw what actually happened, or what you expect to happen.
The shape of the line tells the story. A straight line going up means constant growth. A curve that steepens means exponential growth. A line that goes up, overshoots, then oscillates means the system has a delayed balancing loop. A line that rises then flattens means the system hit a constraint.
BOTGs are powerful because they force you to be specific about behavior. Saying "response time is getting worse" is vague. Drawing a graph that shows response time climbing steadily from 200ms to 800ms over three months, with periodic spikes to 2000ms, tells a precise story. The steady climb suggests a reinforcing loop (maybe growing data volume). The periodic spikes suggest a separate pattern (maybe batch jobs competing for resources).
Key concept: Before you build a model or propose a fix, draw a BOTG for the variable you care about. The shape of the graph tells you which type of system structure is producing the behavior. Exponential growth points to a dominant reinforcing loop. Oscillation points to a balancing loop with a delay. S-curves point to a reinforcing loop that eventually hits a balancing constraint.
How to Draw a BOTG
- Pick one variable (response time, error rate, user count, cost).
- Draw the axes. X is time. Y is the variable. Label both.
- If you have data, plot it. If you do not, sketch the shape you believe the variable follows based on your experience.
- Annotate key events on the timeline: a deployment, a traffic spike, a team change. These help connect behavior to causes.
- Draw a second line for what you expected or wanted. The gap between actual and expected behavior is where the interesting questions live.
Reference Modes
Reference modes are the common shapes that appear repeatedly in BOTGs. Learning to recognize them helps you quickly identify the underlying system structure.
| Pattern | Shape | System Structure | Software Example |
|---|---|---|---|
| Exponential growth | Curve steepening upward | Dominant reinforcing loop, no active constraint | Viral user growth before infrastructure limits hit |
| Goal-seeking | Curve that rises/falls toward a steady value | Balancing loop driving toward a target | Auto-scaler adjusting instance count toward target CPU |
| S-curve | Exponential growth that levels off | Reinforcing loop hits a balancing constraint | User adoption: fast growth, then market saturation |
| Oscillation | Repeating up-and-down waves | Balancing loop with a delay | Auto-scaling overshoot: too many instances, then too few |
| Overshoot and collapse | Rapid rise, peak, steep decline | Reinforcing loop erodes the resource it depends on | Aggressive caching fills memory, causes OOM kills, performance crashes |
Stock-and-Flow Diagrams
CLDs show qualitative structure. Stock-and-flow diagrams add quantities. They are the bridge between "we understand the feedback loops" and "we can calculate what will happen."
A stock is an accumulation. It is something that builds up or drains over time. Users in a system, requests in a queue, technical debt in a codebase, money in a budget. Stocks are measured at a point in time. "We have 50,000 registered users right now."
A flow is a rate of change. It is how fast a stock is increasing or decreasing. Signups per day, requests per second, story points of debt added per sprint. Flows are measured over a period. "We get 200 signups per day."
Every stock has at least one inflow (adding to it) and often one or more outflows (draining from it). The net change in a stock equals inflows minus outflows. If signups are 200 per day and churn is 50 per day, the user base grows by 150 per day.
(inflow)"] --> B["User Base
(stock)"] B --> C["Churn
(outflow)"]
This looks simple, but the power comes from connecting stocks and flows to each other. The size of the user base affects the churn rate (more users means more absolute churn). The churn rate affects the user base (the stock shrinks). This creates a balancing loop. At the same time, more users generate more word-of-mouth referrals, which increases signups. That creates a reinforcing loop.
(inflow)"] --> UB["User Base
(stock)"] UB --> CH["Churn/day
(outflow)"] UB -->|"Word of mouth
increases signups"| S UB -->|"More users =
more absolute churn"| CH
Now you can ask quantitative questions. At what signup rate does growth outpace churn? If we reduce the churn rate by 20%, how much does that change the equilibrium user base? These questions cannot be answered by a CLD alone. They require the stock-and-flow structure.
Key concept: Stocks change slowly because they accumulate. Flows can change instantly. This asymmetry is why stocks act as buffers, shock absorbers, and sources of delays in systems. A message queue (stock) absorbs burst traffic (inflow) even when processing rate (outflow) is constant. Technical debt (stock) accumulates invisibly through many small shortcuts (inflow) and is reduced only through deliberate refactoring effort (outflow).
Simulation Tools
Your mental model of a system is always incomplete. You can draw a CLD and build a stock-and-flow diagram, but you cannot reliably compute in your head what happens when five stocks and twelve flows interact over 100 time steps. That is what simulation tools are for.
Three tools worth knowing:
- Insight Maker (free, browser-based): Good for learning. Supports stock-and-flow models with a drag-and-drop interface. No installation required. Limited in scale but sufficient for most educational and exploratory models.
- Vensim (free PLE version available): Industry-standard tool for system dynamics modeling. Steeper learning curve, but more powerful. Supports sensitivity analysis and optimization.
- Stella Architect (commercial): Full-featured system dynamics environment. Used in academic research and professional consulting. Excellent visualization and storytelling features.
Why simulate? Because simulation reveals surprises that static diagrams cannot. You might look at a stock-and-flow diagram and assume that doubling the signup rate will double the user base. A simulation might show that doubling signups also doubles the load on customer support (another stock), which increases response time, which increases churn, which partially offsets the growth. The net effect is a 40% increase in users, not 100%. You would not see this without running the model.
When to Use Which Tool
| Tool | Purpose | Best Used When | Limitations |
|---|---|---|---|
| Behavior-Over-Time Graph | Identify patterns in system behavior | Starting an investigation. Communicating a problem to stakeholders. | Does not explain causes, only shows symptoms |
| Causal Loop Diagram | Map the feedback structure causing the behavior | Understanding why a pattern exists. Finding leverage points. | Qualitative only. Cannot answer "how much?" |
| Stock-and-Flow Diagram | Quantify accumulations and rates of change | Capacity planning. Understanding where delays come from. | Requires numerical estimates for flows and initial stocks |
| Simulation | Test interventions before implementing them | Evaluating policy changes. Comparing scenarios. Checking assumptions. | Only as good as the model. Garbage in, garbage out. |
A Practical Workflow
These tools work best in sequence:
- Draw a BOTG for the variable that concerns you. What pattern do you see? Exponential growth? Oscillation? Overshoot?
- Build a CLD to hypothesize the feedback structure that produces that pattern. What reinforcing and balancing loops are at work?
- Convert key parts to stock-and-flow if you need quantitative answers. Identify the stocks, define the flows, estimate initial values.
- Simulate if the system is complex enough that you cannot trace the behavior in your head. Test "what if" scenarios.
Not every problem requires all four steps. Many problems are well-served by a BOTG and a CLD alone. Use the heavier tools when the stakes justify the effort.
Further Reading
- W. Ross Ashby, An Introduction to Cybernetics (1956) — foundational text on systems and feedback, free on the Internet Archive.
- Jay Forrester and the origin of system dynamics (1956-1961) — how stock-and-flow modeling and simulation tools came to be.
- Insight Maker — free browser-based simulation tool for stock-and-flow models.
- Vensim — industry-standard system dynamics simulation software (free PLE version available).
- The Systems Thinker: Tools for Systems Thinking (PDF) — concise guide to the core toolkit.
- Open textbook on systems thinking — free, comprehensive resource covering all tools discussed in this session.
Assignment
Choose a metric you track or have access to in a system you work with: response time, error rate, monthly cost, user count, deployment frequency, or any other quantitative measure.
- Draw a behavior-over-time graph for the last 6 months (or estimate the shape if you do not have exact data). Label the axes and annotate any significant events on the timeline.
- What reference mode does the shape most closely match? (Exponential growth, goal-seeking, S-curve, oscillation, or overshoot and collapse?)
- Based on the reference mode, what type of feedback structure is likely producing this behavior? Sketch a simple CLD with 3 to 5 variables that could explain the pattern.
- Identify one stock and its corresponding inflow and outflow that are relevant to the metric you chose.