When to use
- The same problem keeps recurring, and treating the symptom instead of the root cause only provides temporary relief
- A part has been optimized but the whole has not improved (or has even gotten worse)
- You want to design a growth flywheel, or diagnose a vicious cycle that is reinforcing itself
- You want to know where to apply effort, rather than applying effort everywhere
Workflow
-
Define the system boundary and target variable Clarify "what is growing/worsening." The target variable must be observable and measurable, such as "traffic jam duration," "daily active users," or "customer service ticket volume," rather than a vague "the experience got worse." At the same time, draw the system boundary clearly: which factors inside the system can be intervened on, and which are exogenous variables outside the scope of discussion.
-
Find stocks and flows A stock is an accumulated quantity that can be measured at a point in time, while a flow is the rate of inflow/outflow that changes the stock. For example, "the number of vehicles on the road" is a stock, and "traffic entering the city" and "traffic leaving the city" are flows. Only after distinguishing stocks from flows can you see clearly whether "the quantity is accumulating" or "the rate is changing," avoiding conflating the two.
-
Draw feedback loops Describe the causal chain using a text-based loop notation, marking the polarity of each edge (same direction is
+, opposite direction is-), then look at the net polarity of the entire loop:- Reinforcing loop(net
+): deviation amplifies itself; both flywheels and vicious cycles are this, differing only in direction. For example,车多 → 拥堵 → 大家提前出门抢道 → 车更多 (+)。 - Balancing loop(net
-): deviation is self-corrected, appearing as a ceiling or stabilizer. For example,车多 → 拥堵 → 部分人放弃开车改坐地铁 → 车变少 (-). A real system is usually a superposition of multiple loops; identifying which loop is currently dominant is more important than drawing only one loop.
- Reinforcing loop(net
-
Find the bottleneck and leverage point The bottleneck is the stock or flow currently limiting the system's output. Locate it first, then ask "why is it stuck here?" Priority of leverage points:Rules > information flows > parameters。
- Changing parameters (price, headcount, duration) takes effect quickly but has a low ceiling; if the system structure does not change, the loops will eat the effect right back.
- Changing information flows (who can see what information, how quickly feedback returns to the decision point) can change behavior at a lower cost than changing rules.
- Changing rules (entry conditions, incentive mechanisms, constraints) changes the structure of the loops themselves; the effect is the most durable and the hardest to reverse. These three levels are a practical excerpt from the full spectrum of leverage points, focusing on interventions that can be directly implemented at the execution level. Above them are two stronger levels—system goals (what to optimize) and paradigms (how to view the system itself); the rules level is already the upper limit covered by this workflow. When encountering major strategic issues, it is worth thinking at the goals and paradigms levels, rather than just circling around the rules level. Anchor example: treating traffic congestion. Building roads adds capacity within the existing structure; traffic quickly fills the newly added capacity and returns to the original congestion level (induced demand)—the structure changed, but the gain of the reinforcing loop did not, so the effect is still eaten up. Setting a congestion charge is changing the rules; it directly changes the entry condition for the flow of "driving into the city," structurally lowering the gain of the reinforcing loop itself, and the effect is more durable.
-
Output the intervention plan + second-order check For the located leverage point, give specific intervention actions, then you must do a second-order check, going through at least these two items:
- Will this intervention spawn new single-point dependencies, new loops, or shift the problem to another part of the system?
- Is this intervention consuming a hidden stock that was not explicitly modeled in step two (intangible accumulations such as trust, loyalty, reputation, etc.) in exchange for a short-term improvement in the target variable? An intervention plan that has not gone through these two checks is incomplete.
Output template
## 系统分析:<问题名称>
### 目标变量
<在增长/恶化的那个变量,如何度量>
### 存量与流量
- 存量:<...>
- 流入:<...>
- 流出:<...>
### 回路图(文字版)
- 回路 1(增强/调节):A → B → C → A (+/-)
- 回路 2(增强/调节):...
### 瓶颈
<当前限制系统产出的存量/流量,以及为什么卡在这里>
### 杠杆点
<规则 / 信息流 / 参数三选一,说明为什么选它而不是其他两类>
### 干预与副作用
- 干预动作:<...>
- 第二序检查①(新单点依赖/新回路/问题转移):<...>
- 第二序检查②(是否消耗未建模的隐藏存量):<...>
Independent development scenario
- Growth flywheel design:
用户多 → 分摊成本低 → 价格低 → 用户更多 (+). When designing product pricing or recommendation mechanisms, first draw this reinforcing loop, then check which link in the loop is weakest (for example, customer acquisition cost does not fall as users grow); that link is the leverage point where resources should be invested. - Content compounding loop:
发内容 → 搜索引擎收录/被转发 → 免费流量 → 更多曝光反哺创作动力 → 发更多内容 (+). To judge whether a content strategy is "compounding," see whether it is a self-reinforcing reinforcing loop, or whether it is a linear investment that must reacquire customers from zero every time. - Single-point dependency identification:
唯一供应商/唯一渠道涨价或下线 → 收入归零, this is a breakage-risk dependency chain, not a loop—it has only one edge from start to end, with no closed loop that returns to the start and can self-correct. The characteristic of a single-point dependency is precisely the absence of a balancing loop as a backstop: one external shock directly breaks through the system, with no buffer at all. Identifying this kind of single-point dependency in advance and turning it into a leverage point at the rules level (multi-channel distribution, multiple payment methods) costs far less than remediating after something goes wrong.