9.4 KiB
Fermi Estimation Templates
Quick-start templates for decomposition, component estimation, bounding, and sanity-checking.
Workflow
Fermi Estimation Progress:
- [ ] Step 1: Clarify the question and define metric
- [ ] Step 2: Decompose into estimable components
- [ ] Step 3: Estimate components using anchors
- [ ] Step 4: Bound with upper/lower limits
- [ ] Step 5: Calculate and sanity-check
- [ ] Step 6: Triangulate with alternate path
Step 1: Clarify the question and define metric
Use Clarification Template to restate question precisely with units, scope, timeframe, and decision context.
Step 2: Decompose into estimable components
Select decomposition strategy using Decomposition Strategies and build estimation tree.
Step 3: Estimate components using anchors
Ground each component in known quantities using Component Estimation Template.
Step 4: Bound with upper/lower limits
Calculate optimistic and pessimistic bounds using Bounding Template.
Step 5: Calculate and sanity-check
Compute central estimate and validate using Sanity-Check Template.
Step 6: Triangulate with alternate path
Re-estimate via different decomposition using Triangulation Template to validate.
Clarification Template
Original Question: [As stated]
Clarified Question:
- What exactly are we estimating? (metric name, definition)
- Units? (dollars, people, tons, requests/sec, etc.)
- Geographic scope? (US, global, city, region)
- Time scope? (annual, daily, lifetime, point-in-time)
- Exclusions? (what are we NOT counting?)
Decision Context:
- What decision depends on this estimate?
- What precision is needed? (order of magnitude sufficient? need ±2x? ±10%?)
- How will estimate be used? (go/no-go decision, budget planning, prioritization)
- What threshold matters? (if >X we do Y, if <Z we don't)
Success Criteria:
- Question is unambiguous (two people would estimate same thing)
- Units are specified
- Scope is bounded (not infinite)
- Decision context is clear
Decomposition Strategies
Choose strategy based on question structure and available knowledge.
Top-Down Filtering
When to use: Estimating subset of total population (market sizing, target audience)
Structure: Start with total, apply filters to narrow down
Template:
Total population
× Filter 1 (% that have characteristic A)
× Filter 2 (% that have characteristic B | A)
× Filter 3 (% that have characteristic C | A,B)
= Target population
Example - TAM estimation:
US population (330M)
× Adults 18-65 (65% = 215M)
× Urban/suburban (80% = 172M)
× Smartphone users (90% = 155M)
× Willing to pay for app (5% = 7.75M)
× Price point ($50/year)
= TAM: ~$390M/year
Bottom-Up Scaling
When to use: Have data on units, want to estimate total (revenue, capacity, production)
Structure: Start with single unit, multiply by count
Template:
Output per unit
× Number of units
× Utilization rate (% of theoretical capacity actually used)
= Total output
Example - Server capacity:
1 server handles 10k requests/sec
× 100 servers in cluster
× 70% utilization (peak headroom, maintenance, failures)
= Cluster capacity: 700k requests/sec
Rate × Time
When to use: Estimating accumulation over time (customers served, miles driven, content consumed)
Structure: Flow rate × Duration
Template:
Rate (per time unit)
× Time duration (in same units)
= Total quantity
Example - Annual customers:
50 customers/day
× 250 business days/year
= 12,500 customers/year
Density × Area/Volume
When to use: Spatial estimation (people in stadium, cars on highway, storage capacity)
Structure: Concentration × Space
Template:
Density (per unit area/volume)
× Total area/volume
= Total quantity
Example - Stadium capacity:
4 people/sq meter (seated)
× 10,000 sq meters seating area
= 40,000 capacity
Analogous Scaling
When to use: Have data on similar system, adjusting for size difference
Structure: Known comparable × Scaling factor
Template:
Comparable system value
× (Our scale / Their scale)^exponent
= Our estimate
Exponent = 1 for linear scaling, <1 for economies of scale, >1 for diseconomies
Example - Competitor revenue:
Competitor A revenue: $100M with 500k users
Our users: 50k
Estimate: $100M × (50k/500k) = $10M
(assumes linear revenue per user)
Component Estimation Template
For each component in decomposition:
Component: [Name of quantity being estimated]
Anchor Strategy (how will we estimate this?):
- Known data (cite source):
- Personal experience/intuition (describe basis):
- Derived from other estimates (show calculation):
- Analogous comparison (similar known quantity):
Estimate: [Value with units]
Confidence: (How certain are we?)
- High (have data or strong knowledge)
- Medium (reasonable inference)
- Low (educated guess, wide range)
Sensitivity: (How much does final answer depend on this?)
- High (10% change here → >5% change in final)
- Medium (10% change here → 1-5% change in final)
- Low (final answer insensitive to this component)
Assumption stated: [Explicit statement of what we're assuming]
Bounding Template
Optimistic Bound (Upper Limit)
Scenario: [What favorable conditions would maximize the estimate?]
Assumptions:
- Component 1: [Optimistic value]
- Component 2: [Optimistic value]
- ...
Calculation: [Show work]
Result: [Upper bound with units]
Pessimistic Bound (Lower Limit)
Scenario: [What unfavorable conditions would minimize the estimate?]
Assumptions:
- Component 1: [Pessimistic value]
- Component 2: [Pessimistic value]
- ...
Calculation: [Show work]
Result: [Lower bound with units]
Range Assessment
Bounds: [Lower] to [Upper]
Ratio: Upper/Lower = [X]× range
Decision Sensitivity:
- Decision same across entire range → Estimate good enough
- Decision changes within range → Need more precision or different approach
- Range too wide (>10× span) → Decomposition may be flawed, revisit assumptions
Sanity-Check Template
Dimensional Analysis
Units Check: Do units cancel correctly in calculation?
- Calculation: [Show units through formula]
- Final units: [Should match expected units]
- Units are correct
Reality Checks
Check 1 - Order of magnitude comparison:
- Our estimate: [X]
- Known comparable: [Y]
- Ratio: [X/Y]
- Within factor of 10? (If not, investigate why)
Check 2 - Extreme case testing:
- What if assumption taken to extreme? (e.g., 100% penetration, everyone participates)
- Result: [Calculate]
- Does it violate physical/economic constraints? (population limits, GDP constraints, physics)
Check 3 - Internal consistency:
- Do derived metrics make sense? (profit margins, growth rates, per-capita figures)
- Derived metric: [Calculate, e.g., revenue per employee, cost per user]
- Is it in reasonable range for industry/domain?
Check 4 - Personal intuition:
- Does this "feel right" given your experience?
- Passes gut check
- Feels too high (revise assumptions)
- Feels too low (revise assumptions)
Common Failure Modes to Check
- Did I double-count anything?
- Did I mix units (per day vs per year, millions vs billions)?
- Am I extrapolating linearly when should be exponential (or vice versa)?
- Did I account for utilization/efficiency factors (not everything runs at 100%)?
- Did I consider survivor bias (basing estimate on successful cases only)?
Triangulation Template
Primary Estimate (from main decomposition)
Method: [Top-down, bottom-up, etc.]
Decomposition: [Brief formula or tree]
Result: [Value with units]
Alternate Estimate (different approach)
Method: [Different strategy than primary]
Decomposition: [Brief formula or tree]
Result: [Value with units]
Comparison
Primary: [X] Alternate: [Y] Ratio: [X/Y] = [Z]×
Assessment:
- Within factor of 3 (good agreement, increase confidence)
- Factor of 3-10 (moderate agreement, average or investigate difference)
- >10× difference (investigate: one decomposition is likely flawed)
Reconciliation (if estimates differ):
- Why do they differ? (which assumptions differ?)
- Which approach is more reliable?
- Final estimate: [Choice or average]
Complete Estimation Template
Structure for full documentation:
- Clarification: Original question, clarified with units/scope, decision context
- Decomposition: Strategy (top-down/bottom-up/etc), formula, estimation tree
- Component Estimates: For each component - estimate, anchor, assumption, confidence
- Calculation: Formula with numbers, central estimate (1-2 sig figs)
- Bounds: Optimistic/pessimistic scenarios, range assessment
- Sanity Checks: Units, order of magnitude comparison, extreme cases, consistency, gut check
- Triangulation: Alternate approach, comparison (within factor of 3?), reconciliation
- Final Estimate: Point estimate, range, confidence, key assumptions, sensitivity, recommendation
- Next Steps: Data collection, assumption testing, detailed modeling if precision needed