Stocks and Flows

Stocks and flows are foundational concepts in systems thinking, essential for analyzing and designing effective systems.

What are Stocks?

A stock is an accumulation—a pool of things you can count at any instant. Stocks give systems memory and inertia.

Examples of Stocks

  • GitHub issue backlog in a repository
  • Cash in a firm's reserve account
  • Inventory in a warehouse
  • Knowledge in a person's mind

Key Characteristics of Stocks

  • Measurable: Countable at any point in time
  • Memory: Represent system state and history

What are Flows?

Flows are rates that change stocks. Because flows are easier to adjust than stocks, quick wins often come from modifying a flow rather than rebuilding the stock.

Examples of Flows

  • Opening new issues (inflow) and closing issues (outflow) in GitHub
  • Revenue (inflow) and expenses (outflow) affecting cash
  • Products arriving at and leaving a warehouse

Key Characteristics of Flows

  • Rate-based: Measured per unit of time
  • Direction: Can increase (inflow) or decrease (outflow) a stock

Anatomy of a Flow

Rate/Throughput: The quantity that moves through a flow per unit of time (items/day, dollars/month).

Delay: The time lag between a change in conditions and the resulting change in flow rate.

Why Start Here?

Stocks and flows form the foundation for understanding more complex system behaviors. Before diving into feedback loops, we must grasp how accumulation works and how rates of change affect system behavior over time.

When you can identify the key stocks in a system and the flows that affect them, you gain leverage points for intervention and can begin to see how feedback mechanisms emerge.

The Relationship Between Stocks and Flows

Stocks and flows are interdependent parts of a system:

  • A stock can only be changed by its inflows and outflows
  • The level of a stock can influence its flows through feedback
  • Changes in flows produce gradual changes in stocks, creating delays

Understanding stocks and flows provides powerful insights:

  • To change a stock quickly, adjust both inflows and outflows
  • Small persistent flow changes can produce large stock changes over time

Example

Bathtub Fill and Drain

Simple stock and flow model of water volume in a bathtub.

Level:Beginner

  • Stocks:water_volume
  • Flows:inflow, outflow
  • Probes:water_volume, inflow, outflow

Challenge

Identify the stock, inflow, and outflow in your email inbox. How might changing these flows affect your productivity? What delays exist in this system?