Files
2025-11-30 09:00:08 +08:00

782 lines
27 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Causal Loop Diagramming
## When to Use This Skill
Use causal loop diagrams (CLDs) when:
- **Exploring problem structure**: "Why does this keep happening?"
- **Identifying feedback loops**: Finding vicious cycles and virtuous circles
- **Communicating to stakeholders**: Showing system dynamics simply
- **Pattern matching**: Recognizing archetypes (Fixes that Fail, Escalation, etc.)
- **Early-stage analysis**: Don't have data yet, exploring relationships
- **Building shared understanding**: Team has different mental models
**Don't use CLDs when**:
- Need specific numbers ("how many?", "when?") → Use stock-flow models
- Problem is well-understood → Use archetypes directly
- System is trivial (one cause, one effect, no feedback)
- Audience needs quantitative proof → Stock-flow first, then CLD to communicate
**Key insight**: CLDs reveal STRUCTURE (feedback loops), not MAGNITUDE (numbers). Use them to understand "why", then quantify with stock-flow if needed.
## The Incremental Construction Process
**Build CLDs step-by-step to catch errors early. Never jump to the complex final diagram.**
### Step 1: Identify Variables (States, Not Actions)
**Rule**: Variables must be STATES (nouns) that can increase or decrease, not ACTIONS (verbs).
**Test**: "How much X do we have right now?" If answerable, it's a valid variable.
**Examples**:
- ✅ GOOD: "Technical Debt" (can measure in story points)
- ❌ BAD: "Refactoring" (this is an action, not a state)
- ✅ GOOD: "Team Morale" (can measure on 1-10 scale)
- ❌ BAD: "Improving morale" (action, not state)
- ✅ GOOD: "Manual Process Burden" (hours/week spent on manual work)
- ❌ BAD: "Automating processes" (action, not state)
**Measurability test**: Can you track this variable over time? If not, it's probably not a good variable.
**Common error**: Using symptoms instead of root states.
- ❌ "Frustration with deployments" → ✅ "Developer Frustration" + "Deployment Frequency"
**From scenario to variables**:
1. Underline every noun phrase in the problem description
2. Ask: "Can this increase or decrease?"
3. Ask: "Can we measure this?"
4. Rename to be clearly a state (if needed)
**Audience-appropriate naming**:
- **Technical**: "Code Complexity", "Test Coverage %", "Deployment Frequency"
- **Executive**: "Product Value", "Customer Satisfaction", "Market Position"
- **Both**: "Revenue", "Team Size", "Customer Count"
**Pick names your audience will understand immediately**. You can translate later, but diagram readability matters.
### Step 2: Map Causal Links (Test Mechanism and Direction)
**For each potential connection, ask THREE questions**:
**Q1: If A changes, does B change?**
- Not just correlation - is there a MECHANISM?
- Example: "Customers" → "Revenue" (yes, customers pay money - direct mechanism)
- Example: "Customers" → "Stock Price" (indirect through revenue, earnings, etc. - don't link directly)
**Q2: Which direction does causality flow?**
- A → B (A causes B)
- Not: A ← B (avoid bidirectional arrows)
- Pick the PRIMARY causal direction
**Example**:
- Revenue enables hiring: Revenue → Team Size ✓
- Not: Team Size → Revenue (though more team eventually leads to more features → revenue, that's a longer path)
**Q3: Is this link strong, weak, or conditional?**
- Strong: Direct, immediate, clear
- Weak: Indirect, long delay, many mediating factors
- Conditional: Only happens under certain circumstances
**Mark weak or conditional links later** (after basic structure is clear). Start with strong, direct links.
**The mechanism test**:
State the link in a sentence: "When [A] increases, [B] changes because [mechanism]."
**Example**:
- "When Technical Debt increases, Development Velocity decreases because complexity slows down coding" ✓
- "When Team Size increases, Bugs decrease because..." (wait, do more people reduce bugs? Or increase coordination overhead? This link might be wrong!)
**Common mistake**: Assuming "more X is better" without testing the mechanism.
### Step 3: Assign Polarities (Test Both Directions)
**Polarity indicates whether A and B move in the same direction or opposite directions.**
**Same direction (+, S)**:
- A ↑ → B ↑ (more A causes more B)
- A ↓ → B ↓ (less A causes less B)
- Example: Features ↑ → Revenue ↑ (more features, more value, more revenue)
**Opposite direction (o, )**:
- A ↑ → B ↓ (more A causes less B)
- A ↓ → B ↑ (less A causes more B)
- Example: Technical Debt ↑ → Velocity ↓ (more debt slows development)
**THE DOUBLE TEST (prevents 90% of polarity errors)**:
1. Test increase: "If A INCREASES, does B increase or decrease?"
2. Test decrease: "If A DECREASES, does B increase or decrease?"
3. Verify both give consistent polarity
**Example - Testing "Budget Pressure → Automation Investment"**:
- If budget pressure INCREASES → Investment DECREASES (CFO cuts spending) → Opposite (o)
- If budget pressure DECREASES → Investment INCREASES (more slack, can invest) → Opposite (o)
- **Consistent**: Both tests show opposite direction ✓
**Common mistake**: "More pressure should drive more investment" (confusing "pressure to invest" with "financial pressure to cut"). **ALWAYS test the actual mechanism**, not what "should" happen.
**Negative words ≠ negative polarity**:
- "Technical Debt" (sounds bad) → "Velocity" (slower is bad) = OPPOSITE polarity (o)
- Don't confuse "bad thing" with polarity direction
**State the relationship in words** before marking polarity:
- "More debt makes development slower" → OPPOSITE (o)
- "More customers brings more revenue" → SAME (+)
**Notation**:
- Use `--+-->` or `→+` for same direction
- Use `--o-->` or `→o` (or `→−`) for opposite direction
- Be consistent throughout diagram
### Step 4: Find Loops (Trace Until You Return)
**Algorithm**:
1. **Pick any variable** (ideally one you think is important)
2. **Follow the arrows** until you return to the starting variable
3. **Mark the loop** with a label (R1, B1, R2, etc.)
4. **Repeat** from different starting points until no new loops found
**Example**:
```
Start: Manual Process Burden
→ (o) → Release Frequency
→ (o) → Developer Frustration
→ (+) → Automation Investment
→ (o) → Manual Process Burden
(returned to start = LOOP FOUND)
```
**Loop type determination**:
**Count the number of OPPOSITE (o) polarities in the loop**:
- **Even number (including 0)** = **Reinforcing (R)** (amplifies change)
- **Odd number** = **Balancing (B)** (resists change, seeks equilibrium)
**Example above**:
- Opposite links: 3 (odd number)
- **Loop type**: Balancing (B1)
**Why this works**:
- Each opposite link "flips" the direction
- Odd number of flips = net opposite = balancing (brings you back)
- Even number of flips = net same = reinforcing (amplifies)
**Multiple loops**:
Complex systems have many loops. Label them:
- R1, R2, R3... (reinforcing)
- B1, B2, B3... (balancing)
**Dominant loop**: Which loop drives the system?
- **Shortest delay**: Faster loops dominate early
- **Strongest amplification**: Which grows/shrinks fastest?
- **Phase-dependent**: R1 might dominate early, B1 later
**Nested loops**:
Some loops share variables. This creates complex dynamics where loops amplify or counteract each other.
### Step 5: Mark Delays (Where Significant)
**Delay notation**: `||delay time||` on the link where delay occurs
**When is delay significant?**
- Delay / Response time > 0.2 (20% of cycle time) → Mark it
- If delay > 50% of response time → VERY significant, double-mark or bold
**Types of delays**:
1. **Information delay**: Time to notice the change
- Example: Performance degrades → 2 weeks → Customers complain
- Mark: Performance → ||2 weeks|| → Customer Complaints
2. **Material delay**: Time to implement solution
- Example: Decide to hire → 3 months → New engineer productive
- Mark: Hiring Decision → ||3 months|| → Team Capacity
3. **Perception delay**: Time to believe/accept
- Example: Metrics improve → 1 month → Team believes it's real
- Mark: Metrics → ||1 month|| → Team Confidence
**Why delays matter**:
- Create overshoot (solution arrives too late)
- Enable oscillation (system bounces past equilibrium)
- Hide causality (cause and effect separated in time)
**Impact on loops**:
- Balancing loop with long delay → Oscillates around target
- Reinforcing loop with long delay → Problem invisible until crisis
**Example**:
```
Hiring → ||4 months|| → Team Capacity → (+) → Features → (+) → Revenue
By the time new hires are productive (4 months), the market has changed.
Decision made in Q1 affects outcomes in Q2 - causality is hidden.
```
### Step 6: Validate Your Diagram (Checklist)
**Before presenting any CLD, check these items**:
**All variables are states** (nouns), not actions (verbs)?
- "Investment Level" ✓ not "Investing" ✗
**All variables are measurable**?
- Can you track this over time?
- "Quality" is vague → "Bug Density" or "Test Coverage %" ✓
**All links are truly causal**?
- Is there a MECHANISM connecting A to B?
- Not just correlation or "feels related"
**Polarities tested both directions**?
- If A ↑ → B? AND If A ↓ → B?
- Both tests give consistent polarity?
**Loops correctly identified**?
- Counted opposite links?
- Even count = R, Odd count = B?
**Delays marked where significant**?
- Delay > 20% of cycle time?
- Marked on correct link?
**No bidirectional arrows**?
- Picked PRIMARY causal direction?
- (If truly bidirectional, it's two separate loops)
**Variables are independent concepts**?
- Not circular definitions (A defined by B, B defined by A)
- Each variable has clear meaning on its own
**Diagram is readable**?
- Can your audience follow the arrows?
- Variables clearly labeled?
- Loops labeled (R1, B1, etc.)?
**If any check fails, FIX before presenting**. Polarity errors change diagnosis completely.
## Diagram Simplification Techniques
**When diagram has >4-5 loops, it's too complex to communicate effectively.**
### Technique 1: Split by Time Phase
**Early stage** vs **Mature stage** dynamics:
- Draw two diagrams showing which loops dominate when
- Example: R1 (Growth) dominates months 0-12, B1 (Capacity limits) dominates months 12-24
### Technique 2: Split by Subsystem
**Growth dynamics** vs **Sustainability dynamics**:
- One diagram: Customer acquisition loops
- Second diagram: Technical debt and capacity loops
- Third diagram: How they interact
### Technique 3: Aggregate Variables
**Combine related variables**:
- "Bug Backlog" + "Tech Debt" + "Code Complexity" → "Technical Health"
- Simplifies diagram, loses some detail
- Good for executive audiences
### Technique 4: Hide Secondary Loops
**Show only dominant loop(s)**:
- For initial presentation, show R1 (main driver)
- Add B1 (constraint) after audience grasps R1
- Full diagram as appendix for detailed analysis
### Technique 5: Progressive Disclosure
**Build complexity layer by layer**:
- Slide 1: Show simplest loop (just 3-4 variables)
- Slide 2: Add balancing constraint
- Slide 3: Add delays and secondary loops
- Slide 4: Complete diagram
**Decision rule**: If you can't explain the diagram in 90 seconds, it's too complex. Simplify.
## Audience Adaptation Templates
### Template A: Technical Diagram (Engineers, Analysts)
**Include**:
- All loops (R1, R2, B1, B2, etc.)
- Specific variable names ("Cyclomatic Complexity", "Code Coverage %")
- Delays marked precisely ("||4.2 weeks||")
- Leverage points annotated
- Integration with stock-flow model notes
**Example variable names**:
- "Deployment Frequency" (releases/week)
- "Technical Debt" (story points)
- "Test Suite Runtime" (minutes)
- "Mean Time to Recovery" (hours)
**Purpose**: Detailed analysis, finding leverage points, building interventions
### Template B: Executive Diagram (Board, C-Suite)
**Include**:
- 1-2 dominant loops only
- Business-level variable names ("Customer Satisfaction", "Market Share")
- Delays in business terms ("||1 quarter||")
- Clear "what drives growth" and "what limits it" labels
- One-sentence insight per loop
**Example variable names**:
- "Revenue Growth"
- "Product Value"
- "Customer Satisfaction"
- "Market Position"
**Simplifications**:
- Aggregate technical details ("Complexity" instead of listing 5 types)
- Focus on strategic dynamics, not tactical
- Use analogies ("Vicious cycle", "Virtuous circle")
**Purpose**: Strategic decision-making, resource allocation, communicate "why we're stuck"
### Template C: Workshop Diagram (Collaborative Teams)
**Include**:
- Simple starting loop (draw live with participants)
- Add variables as team suggests them
- Test links together ("If A increases, what happens to B?")
- Build shared mental model interactively
**Process**:
1. Start with key variable (e.g., "Customer Churn")
2. Ask: "What causes this?"
3. Draw links as team suggests
4. Trace back to original variable → Loop found!
5. Validate together
**Purpose**: Alignment, shared understanding, buy-in for interventions
## Visual Layout Best Practices
**ASCII/Text conventions**:
```
Variable A --+--> Variable B (same direction +)
Variable C --o--> Variable D (opposite direction o)
Variable E --|delay|--> Variable F (with delay marking)
```
**Circular vs linear layout**:
- **Circular**: Good for showing single clear loop
- **Linear**: Good for showing cause → effect chains
- **Nested**: Good for showing multiple interacting loops
**Minimize crossing arrows**:
- Hard to follow if arrows cross frequently
- Rearrange variables to reduce crossings
- Or split into multiple diagrams
**Group related variables**:
- Cluster customer-related variables together
- Cluster technical variables together
- Cluster financial variables together
- Makes structure more obvious
**Loop flow direction**:
- **Reinforcing loops**: Often drawn clockwise
- **Balancing loops**: Often drawn showing the goal/target
- No strict rule, just be consistent
**Annotations**:
- Loop labels: (R1), (B1) near the loop
- Time constants: "Loop completes in 3 months"
- Leverage points: Mark with ⭐ or "HIGH LEVERAGE"
- Delays: ||time|| on the link
**Color coding** (if not ASCII):
- Reinforcing loops: Red (danger/amplification)
- Balancing loops: Blue (stability/control)
- High-leverage points: Green or gold
- Delays: Orange or yellow markers
## Common Mistakes Catalog
### 1. Confusing Symptoms with Root Causes
**Mistake**: "Problem: Slow releases. Cause: Slow releases."
**Fix**: Dig deeper. What CAUSES slow releases? Manual processes, testing bottlenecks, approval chains?
**Test**: Can you intervene on this variable? If "fix slow releases" is the answer, you're describing the symptom, not the cause.
### 2. Mixing Actions and States
**Mistake**: "Refactoring" → "Code Quality"
**Fix**: "Refactoring Time Allocated" (state) → "Code Quality"
**Rule**: If it's something you DO, it's an action. Convert to the LEVEL or RATE of doing it.
### 3. Wrong Polarity (Most Common!)
**Mistake**: "Budget Pressure → (+) → Automation Investment"
**Reasoning**: "Pressure drives investment"
**Reality**: Financial pressure causes CUTS, not increases
**Fix**: "Budget Pressure → (o) → Automation Investment"
**Prevention**: ALWAYS test both directions (A↑ and A↓)
### 4. Missing Key Delays
**Mistake**: Draw link without delay: "Hire Engineers → Team Capacity"
**Reality**: 3-6 month delay (recruiting + onboarding)
**Fix**: "Hire Engineers → ||4 months|| → Team Capacity"
**Impact**: Without delay, you'll think hiring solves problems instantly. With delay, you see why solutions arrive too late.
### 5. Bidirectional Arrows
**Mistake**: Revenue ↔ Features (both directions)
**Reality**: This creates confusion - which is the PRIMARY driver?
**Fix**: Pick dominant direction: Features → Revenue (features enable sales). The reverse is a separate loop through Budget → Hiring → Engineering → Features.
### 6. Vague Variables
**Mistake**: "Quality" (quality of what? measured how?)
**Fix**: "Code Quality (bug density)" or "Product Quality (NPS score)"
**Test**: Can you measure this? If not, it's too vague.
### 7. Circular Definitions
**Mistake**:
- Variable A: "Developer Productivity"
- Variable B: "Features Shipped"
- Link: Productivity → Features
**Problem**: Productivity IS features shipped - same thing!
**Fix**: Break into: "Developer Experience" (satisfaction, tools, focus time) → "Development Velocity" (story points/sprint) → "Features Shipped"
### 8. Ignoring Negative Consequences
**Mistake**: Only show positive loops (growth, success)
**Fix**: Add balancing loops showing limits, degradation, costs
**Example**: Show growth loop R1, BUT ALSO show capacity limit B1, technical debt R2 (negative reinforcing), budget pressure B2.
**Reality**: All systems have BOTH growth and limits. If you only show growth, diagram is incomplete.
### 9. Overcomplication
**Mistake**: Single diagram with 8 loops, 25 variables, impossible to follow
**Fix**: Split into multiple diagrams or simplify by aggregating variables
**Rule of thumb**: If you can't explain it in 90 seconds, it's too complex.
### 10. Presenting Without Validation
**Mistake**: Draw diagram, immediately present to stakeholders, polarity error discovered during meeting
**Fix**: Run validation checklist (above) before any presentation
**Result of skipping validation**: Wrong diagnosis → wrong intervention → problem persists or worsens
## Integration with Other Skills
### Causal Loop + Archetypes
**Use CLD to verify archetype diagnosis**:
1. Suspect "Fixes that Fail" pattern
2. Draw CLD to confirm structure: Quick fix → Symptom relief → Side effect → Problem returns worse
3. CLD validates or refutes archetype guess
**Use archetype to simplify CLD**:
1. Draw complex CLD with multiple loops
2. Recognize archetype pattern (e.g., "Escalation")
3. Use archetype name as shorthand: "This is Escalation between Engineering and Product"
4. Leverage known interventions from archetype library
### Causal Loop + Stock-Flow
**Workflow**:
1. **Start with CLD**: Explore structure, identify loops
2. **Identify key stocks**: Which variables accumulate? (Customers, Debt, Capacity)
3. **Build stock-flow model**: Quantify accumulation, equilibrium, time constants
4. **Return to CLD**: Communicate insights to stakeholders
**Example**:
- CLD reveals: Technical Debt → Velocity → Pressure → Shortcuts → Debt (R loop)
- Stock-flow quantifies: Debt grows 15 points/sprint, reaches critical mass at 180 points, crisis in 12 sprints
- CLD communicates: "This is a vicious cycle that will crash us in 6 months unless we break it"
**When to use which**:
- **CLD first**: Unknown problem, exploring dynamics
- **Stock-flow first**: Known problem, need numbers/timing
- **Both**: Complex problem needing analysis AND communication
### Causal Loop + Leverage Points
**CLDs show WHERE to intervene**:
- **Loop structure** = Meadows' Level 10, 9, 8, 7 (structure)
- **Information flows** = Level 6 (what info affects decisions)
- **Rules** = Level 5 (policies that govern links)
- **Goals** = Level 3 (what loops optimize for)
**Example**:
- CLD shows: Budget Pressure → (o) → Automation Investment (weak link, gets cut easily)
- Leverage Point (Level 5 - Rules): "Automation budget ring-fenced, immune to quarterly cuts"
- Intervention: Change rules to protect high-leverage investment from short-term pressure
**High-leverage points in CLDs**:
- **Break reinforcing loops**: Interrupt vicious cycles
- **Strengthen balancing loops**: Enhance stabilizing feedback
- **Shorten delays**: Make feedback faster
- **Change goals**: Redefine what success means
## Decision Framework: Which Tool When?
**Start here**:
**Unknown problem, exploring dynamics** → Causal Loop Diagram
- "Why does this keep happening?"
- "What's driving this behavior?"
**Familiar pattern, quick diagnosis** → System Archetypes
- "I've seen this before"
- Pattern matches known archetype
- Leverage standard interventions
**Need specific numbers or timing** → Stock-Flow Model
- "When will we hit capacity?"
- "How many customers at equilibrium?"
- "How fast is debt growing?"
**Need to show change over time** → Behavior-Over-Time Graph
- "What will this look like in 6 months?"
- Compare scenarios (with intervention vs without)
**Multiple stocks interacting** → Phase Diagram (advanced)
- Two stocks plotted against each other
- Shows equilibrium points, trajectories
**Typical workflow**:
1. **CLD**: Explore structure, find loops → Identify archetype
2. **Archetype**: Apply known interventions → Choose strategy
3. **Stock-Flow**: Quantify impact → Validate timing and magnitude
4. **BOT Graph**: Show predicted future → Communicate to stakeholders
5. **CLD** (again): Present structure and recommendation
## Real-World Example Patterns
### Pattern 1: "Fixes That Fail" Structure
```
Problem Symptom
↓ (o)
Quick Fix Applied
↓ (+)
Symptom Relief (SHORT TERM)
↓ (+)
Unintended Consequence
↓ (+)
Problem Symptom (LONG TERM, WORSE)
Example: Hire more engineers (fix) → Lower quality (consequence) → More bugs → More pressure → Hire more (makes it worse)
```
**CLD insight**: Quick fix creates balancing loop (symptom relief), BUT also creates reinforcing loop (side effects worsen root cause). The reinforcing loop dominates long-term.
### Pattern 2: "Escalation" Structure
```
Party A's Actions
↓ (+)
Party B's Perceived Threat
↓ (+)
Party B's Actions
↓ (+)
Party A's Perceived Threat
↓ (+)
Party A's Actions (cycle repeats)
Example: Engineering cuts corners → Product demands faster delivery → Engineering cuts more corners → Product demands even faster → Escalation
```
**CLD insight**: Two reinforcing loops feeding each other. Each side's response amplifies the other's reaction. No natural limit (balancing loop absent).
### Pattern 3: "Growth and Underinvestment"
```
R1: GROWTH ENGINE
Performance → Demand → Resources → Investment → Capacity → Performance
B1: CAPACITY CONSTRAINT
Demand → Load on Capacity → Performance Degradation → Demand
Gap: Investment should match growth, but often lags (underinvestment)
Result: B1 eventually overpowers R1, growth stalls
```
**CLD insight**: Growth creates need for capacity investment. If investment lags (due to short-term focus), performance degrades, limiting growth. Self-fulfilling: "Growth slowed, we didn't need that investment" (but underinvestment CAUSED the slowdown).
## Red Flags: Rationalizations to Resist
### "Everyone already knows this structure"
**Reality**: Different people have different mental models. Drawing it aligns them.
**Counter**: "Let's draw it to verify we agree. 5 minutes to draw, saves 2 hours of talking past each other."
**Test**: Ask three people to describe the problem. If explanations differ, you NEED the diagram.
### "We don't have time for diagramming"
**Reality**: Meeting starts in 1 hour, temptation to skip validation.
**Counter**:
- 15 minutes to draw correctly > 2-hour confused debate
- Present wrong diagram → Wrong intervention → Weeks of wasted work
**Test**: Can you afford to be wrong? If cost of error >$5K, take 15 minutes to validate.
### "I can explain this verbally"
**Reality**: Verbal explanations fade, diagrams persist. Verbal misses feedback loops.
**Counter**:
- Diagrams reveal structure that verbal descriptions miss
- Loops are invisible in linear narrative
- Diagram becomes shared reference for future discussions
**Test**: Try explaining "R1 amplifies while B1 constrains until R2 dominates" verbally. Now show the diagram - which is clearer?
### "This diagram is close enough"
**Reality**: Polarity error or missing loop changes diagnosis completely.
**Counter**:
- Wrong polarity = wrong loop type (R vs B) = wrong intervention
- "Close enough" in diagnosis → Completely wrong in prescription
**Test**: Run validation checklist. Takes 3 minutes. If error found, diagram ISN'T close enough.
### "The problem is too simple to diagram"
**Reality**: "Simple" problems often have hidden feedback loops.
**Counter**:
- Simple problems with surprising persistence = Hidden loop
- If it's truly simple, diagram takes 5 minutes
- If diagram reveals complexity, it WASN'T simple
**Test**: If problem was simple, it would be solved. Persistence suggests feedback loop - diagram it.
### "My audience won't understand diagrams"
**Reality**: Audiences understand pictures better than equations or walls of text.
**Counter**:
- Use executive template (simple, business language)
- Walk through diagram with them: "More customers → More revenue → More hiring"
- Diagrams are EASIER than verbal for many people (visual learners)
**Test**: Try explaining multi-loop system verbally vs showing simplified CLD. Which leads to "aha!" moments faster?
### "I'll just sketch it quickly without validating"
**Reality**: Quick sketch presented as analysis → Stakeholders trust it → Wrong intervention
**Counter**:
- Polarity errors are EASY to make and HARD to spot without systematic check
- Validation checklist takes 3 minutes
- Presenting wrong structure has long-term consequences (months of wrong decisions)
**Test**: How much time to fix wrong diagnosis and reverse bad intervention? Hours/weeks. How much time to validate before presenting? 3 minutes. Do the math.
## Summary
**Causal loop diagrams** reveal the feedback structure driving system behavior:
**Construction process** (step-by-step):
1. Identify variables (states, measurable, audience-appropriate names)
2. Map causal links (test mechanism, pick direction)
3. Assign polarities (double-test: A↑ and A↓)
4. Find loops (trace until return)
5. Identify loop types (count opposite links: even = R, odd = B)
6. Mark delays (where significant: D/R > 0.2)
7. Validate (checklist before presenting)
8. Simplify (for audience readability)
**Error prevention**:
- Double-test polarities (prevents most common mistake)
- Validation checklist (catches errors before presentation)
- Common mistakes catalog (avoid known pitfalls)
**Audience adaptation**:
- Technical: All loops, specific variables, detailed analysis
- Executive: 1-2 dominant loops, business language, strategic insight
- Workshop: Build together, simple starting point, progressive complexity
**Integration**:
- CLD + Archetypes: Verify pattern, leverage known interventions
- CLD + Stock-Flow: Structure first, quantify second
- CLD + Leverage Points: Loops show where to intervene
**Resist rationalizations**:
- "Everyone knows this" → Draw it to align mental models
- "No time" → 15 min now vs hours of confused debate
- "I can explain verbally" → Diagrams persist, reveal loops verbal misses
- "Close enough" → Polarity error = wrong diagnosis
- "Too simple" → Persistent "simple" problems have hidden loops
- "Audience won't understand" → Use executive template, walk through it
**The discipline**: Build incrementally, test polarities twice, validate before presenting, simplify for audience.
**The payoff**: Reveal feedback loops driving persistence, align stakeholder mental models, identify high-leverage intervention points, communicate system structure clearly.