A CLD with identified feedback loops and key variables exists.
Stock and Flow Diagram
Prerequisite
What needs to be finished first
At least time-series data for the central stock variable exists (ideally 6-24 months).
Preparation
What needs to be ready before start
Whiteboard or digital modeling tool (Stella, Vensim, Insight Maker); notation: stocks as boxes, flows as pipes with valve, clouds as source/sink; data snapshots; variable list with units.
One modeler experienced in system dynamics; domain expert with data knowledge; stakeholder with decision mandate; one reviewer for plausibility.
Reference-mode data; CLD model; known constraints (capacities, budgets, contracts); historical interventions and their effect; hypotheses about delays.
1-2 days initial, then refinement
Install modeling tool or whiteboard with clear notation. Define units per variable (items, hours, EUR). Rule: stocks are states, flows are rates. No arrow without unit per time.
Core question
The one question this method answers
How does the central stock change over time, which flows and feedback loops drive behavior, and which intervention changes the dynamic structurally?
Flow
Marker: Phase
| Step | Duration | Action | Hint |
|---|---|---|---|
1Phase 1: Identify stocks | 45 min | Extract variables from CLD that are accumulations (stocks, balance, population). Define unit and current baseline per stock. | Confusing stocks and flows is most common error. Rule of thumb: if world stops, a stock continues to exist (depends on past), flows are immediately zero. |
2Phase 2: Assign flows | 60 min | Define inflows and outflows per stock. Unit per time for each flow (for example signups/week). Mark source or sink as cloud if flow is external. | If a flow has no unit per time, it is not a flow. Check mass balance: what enters must stay somewhere or leave somewhere. |
3Phase 3: Auxiliaries and relationships | 60 min | Add auxiliary variables that influence flows (conversion rate, capacity, delay). Formulate relationships mathematically (Flow = Stock * Rate). | Auxiliaries make models realistic. If flows depend directly on stocks, mechanism is missing. Make intermediate step explicit. |
4Phase 4: Calibration with data | 2-4 h | Feed model with reference-mode data. Adjust parameter values so simulation reproduces historical data (with acceptable deviation). Sensitivity analysis for critical parameters. | If model does not explain past, it is unusable for future. Calibrate first, then forecast. |
5Phase 5: Scenarios and interventions | 60-120 min | Simulate several scenarios: baseline, intervention A, intervention B. Compare stock trajectories. Document effect after 3, 6, 12 months. | Make delays visible. Some interventions show effect only after months, that is learning point, not model error. |
Artifact
What comes out at the end
Stock-flow diagram with variables, units, relationships plus simulation results for baseline and intervention scenarios as plots over time. Complemented by assumption docs, sensitivity analysis and recommendations.
Version model as file in Git (XMILE format or tool-specific). One version per iteration, document changes to parameters or structure with rationale. Archive reference-mode data and simulation results separately.
- Vensim or Stella Architect (commercial)
- Insight Maker (browser-based, open source)
- Sysdea (web-based modeler)
- Python with PySD library for script-based models
- AnyLogic for more complex hybrid simulations
stock-and-flow-diagram-working-template.md
Compact working template for Stock and Flow Diagram with context, input, output artifacts, and next step.
Stock and Flow Diagram Canvas
Context
What is this method used for?
Core question
Which question should be answered at the end?
Input
Which data, observations, or materials are available?
Working area
- Area 1:
- Area 2:
- Area 3:
- Relationships / patterns:
Output artifacts
- Stock and Flow Model:
- Dynamics Notes:
- Simulation Hypotheses:
Open questions
- ...
Next step
Owner, date, success signal.
Example output
Concrete filled scenario, fictional example
stock-and-flow-diagram-beispiel.md
Concrete filled scenario, fictional example
Stock-and-Flow Diagram - Client base at tax firm Bertram
Central stock: active clients (count, current 142).
Flows
- New mandates (mandates/month, current 3.2).
- Cancellations (mandates/month, current 1.8).
- Shutdowns (for example insolvency, 0.4/month).
Auxiliaries
- Referral rate (referral/active client/year, current 0.18).
- Conversion rate (referral -> mandate, 35%).
- Utilization (mandates/person-hour, current 0.92 at capacity 1.0).
- Service quality (1-10, dependent on utilization, currently 7.2).
- Cancellation rate (=function(service quality), current 12% p.a.).
Relationships
- New mandates = client base * referral rate * conversion rate.
- Service quality declines nonlinearly when utilization >90%.
- Cancellation rate rises when service quality <7.
Reference Mode: Client base stagnates around 140-145 for 18 months despite rising referrals.
Scenarios (12-month simulation)
- Baseline: base at 144, slightly downward trend.
- Intervention A (half-time employee, capacity +0.4): base to 167 in 12 months, utilization falls, service quality rises to 8.4.
- Intervention B (referral program doubles referral rate): base to 152, but service quality drops to 6.1, cancellation rate rises, effect fades in month 14.
Recommendation: Intervention A. Capacity build-up is mandatory before growth impulses.
Pitfalls
Recognize symptoms and steer against them
Stocks and flows confused
"Signups" modeled as stock although it is a flow.
Test: when the world is paused, stock continues to exist (from previous state), flow is zero. Signups per week is flow, cumulative users is stock.
Units missing or inconsistent
Model equations do not calculate dimensionally, value looks absurd.
Dimensional check before every simulation. Tools like Vensim enforce unit consistency. Manually: left and right side of equation same unit.
Model not calibrated
Simulation contradicts historical data, recommendations not taken seriously.
Calibration mandatory. If data missing, mark model as qualitative only and plan quantification as follow-up.
Delays ignored
Model shows immediate effect of interventions, real data shows months of delay.
Use delay blocks (material delay, information delay). Reference Mode often points to existing delay.
Sensitivity analysis skipped
One simulation sold as truth, robustness of recommendation unclear.
Vary key parameters by +/-20%. If recommendation flips, it is not robust. Sensitivity note per recommendation.
Stop criteria
Done signals checkable in under a minute
Finished the runsheet?
Go to the profile for purpose, similar methods, and sources or continue to the next method in the catalog.