Inductive Reasoning
Generalize from instances to rules. The logic of pattern extraction and empirical learning.
Type Signature
Inductive : [Observation] → Pattern → Generalization → ConfidenceBounds
Where:
Observations : [Instance] → Dataset
Pattern : Dataset → (Regularity × Frequency)
Generalization : (Regularity × Frequency) → Rule
ConfidenceBounds : Rule × SampleSize → (Confidence × Exceptions)
When to Use
Use inductive when:
- Multiple similar observations accumulate
- Looking for recurring patterns across threads
- Building predictive rules from experience
- Identifying systemic behaviors
- Validating or discovering Canvas assumptions
- "This keeps happening" situations
Don't use when:
- Explaining single observation → Use Abductive
- Known causal chain exists → Use Causal
- Transferring one case to another → Use Analogical
- Resolving disagreement → Use Dialectical
Distinction from Other Modes
| Mode | Input | Output | Question |
|---|---|---|---|
| Abductive | Single anomaly | Explanation | "Why did this happen?" |
| Inductive | Multiple instances | Pattern/Rule | "What keeps happening?" |
| Analogical | One source case | Transferred solution | "How is this like that?" |
Key difference from Abductive:
- Abductive: 1 observation → 1 explanation
- Inductive: N observations → 1 generalization
Four-Stage Process
Stage 1: Observation Collection
Purpose: Gather and structure multiple instances for analysis.
Minimum Sample Requirements:
| Confidence Target | Minimum N | Notes |
|---|---|---|
| Exploratory | 3-5 | Hypothesis generation only |
| Tentative | 6-10 | Directional confidence |
| Moderate | 11-20 | Actionable patterns |
| High | 21+ | Strong generalizations |
Components:
observations:
dataset:
- instance_id: "deal-001"
timestamp: ISO8601
context: "Enterprise sales"
attributes:
deal_size: 400000
sales_cycle: 120
stalled_at: "legal_review"
outcome: "won"
- instance_id: "deal-002"
timestamp: ISO8601
context: "Enterprise sales"
attributes:
deal_size: 350000
sales_cycle: 150
stalled_at: "legal_review"
outcome: "lost"
# ... more instances
metadata:
total_instances: 12
time_range: "Q3-Q4 2024"
source: "threads/sales/*/6-learning.md"
collection_method: "automated scan"
quality:
completeness: 0.92 # % of fields populated
consistency: 0.88 # % following same schema
recency: 0.75 # Weight toward recent
Stage 2: Pattern Detection
Purpose: Identify regularities in the dataset.
Pattern Types:
| Type | Description | Example |
|---|---|---|
| Frequency | How often X occurs | "7/12 deals stall at legal" |
| Correlation | X and Y co-occur | "Large deals AND long cycles" |
| Sequence | X follows Y | "Stall → lose within 30 days" |
| Cluster | Groups emerge | "Two deal archetypes exist" |
| Trend | Direction over time | "Cycles getting longer" |
| Threshold | Breakpoint exists | "Deals >$300K behave differently" |
Detection Process:
patterns:
detected:
- pattern_id: P1
type: frequency
description: "Legal review stalls"
evidence: "7 of 12 deals (58%) stalled at legal review"
strength: 0.78
- pattern_id: P2
type: correlation
description: "Deal size correlates with cycle length"
evidence: "r=0.72 between deal_size and sales_cycle"
strength: 0.72
- pattern_id: P3
type: threshold
description: "CFO involvement threshold"
evidence: "Deals >$250K require CFO, adding 30+ days"
strength: 0.85
- pattern_id: P4
type: sequence
description: "Stall duration predicts outcome"
evidence: "Stalls >21 days → 80% loss rate"
strength: 0.80
rejected:
- pattern: "Industry affects outcome"
reason: "No significant difference across industries (p>0.3)"
insufficient_data:
- pattern: "Seasonality effects"
reason: "Only 2 quarters of data, need 4+ for seasonality"
Stage 3: Generalization
Purpose: Form rules from validated patterns.
Rule Formation:
generalizations:
rules:
- rule_id: R1
statement: "Enterprise deals >$250K require CFO approval, adding 30+ days to cycle"
derived_from: [P2, P3]
structure:
condition: "deal_size > 250000"
prediction: "sales_cycle += 30 days"
mechanism: "CFO approval requirement"
applicability:
domain: "Enterprise sales"
segments: ["all enterprise"]
exceptions: ["existing customers with MSA"]
- rule_id: R2
statement: "Legal review stalls >21 days predict deal loss with 80% probability"
derived_from: [P1, P4]
structure:
condition: "stall_duration > 21 AND stall_stage = 'legal'"
prediction: "outcome = 'lost' (p=0.80)"
mechanism: "Budget cycle expiration, champion fatigue"
applicability:
domain: "Enterprise sales"
segments: ["new customers"]
exceptions: ["government deals with known long cycles"]
- rule_id: R3
statement: "58% of enterprise deals will stall at legal review"
derived_from: [P1]
structure:
condition: "enterprise deal"
prediction: "P(legal_stall) = 0.58"
mechanism: "Custom contract requirements"
applicability:
domain: "Enterprise sales"
segments: ["all"]
exceptions: ["standard contract accepted"]
Stage 4: Confidence Bounds
Purpose: Quantify reliability and identify exceptions.
Confidence Calculation:
Confidence = f(sample_size, pattern_strength, consistency, recency)
Base confidence from sample size:
N < 5: max 0.40
N 5-10: max 0.60
N 11-20: max 0.80
N > 20: max 0.95
Adjustments:
× pattern_strength (0-1)
× consistency (0-1)
× recency_weight (0.5-1.0)
Components:
confidence_analysis:
rules:
- rule_id: R1
confidence: 0.72
calculation:
base: 0.80 # N=12, moderate sample
strength: 0.85 # Strong pattern
consistency: 0.88 # Good data quality
recency: 0.95 # Recent data
final: 0.72 # base × min(strength, consistency, recency)
bounds:
lower: 0.58 # Pessimistic estimate
upper: 0.82 # Optimistic estimate
exceptions:
identified:
- "Existing customer deal closed in 45 days despite $400K size"
explanation: "Pre-existing MSA eliminated legal review"
- "Government deal took 180 days but won"
explanation: "Known government procurement cycle"
exception_rate: 0.17 # 2/12 instances
validity:
expires: "2025-06-01" # Re-validate after 6 months
invalidated_by:
- "Process change eliminating legal review"
- "New contract template adoption"
strengthened_by:
- "3+ more instances following pattern"
- "Causal mechanism confirmed"
- rule_id: R2
confidence: 0.68
# ... similar structure
Output Summary:
inductive_output:
summary:
rules_generated: 3
highest_confidence: R1 (0.72)
total_observations: 12
time_range: "Q3-Q4 2024"
actionable_rules:
- rule: R1
action: "Add 30 days to forecast for deals >$250K"
confidence: 0.72
- rule: R2
action: "Escalate intervention when legal stall exceeds 14 days"
confidence: 0.68
tentative_rules:
- rule: R3
action: "Plan for legal stall in 60% of deals (resource accordingly)"
confidence: 0.55