399 lines
14 KiB
Markdown
399 lines
14 KiB
Markdown
# Fermi Estimation Methodology
|
||
|
||
Advanced techniques for anchoring, bounding, triangulation, and calibration.
|
||
|
||
## 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**
|
||
|
||
Define scope, units, decision context before decomposition.
|
||
|
||
**Step 2: Decompose into estimable components**
|
||
|
||
Choose decomposition strategy based on problem structure and available knowledge.
|
||
|
||
**Step 3: Estimate components using anchors**
|
||
|
||
Apply [1. Anchoring Techniques](#1-anchoring-techniques) to ground estimates in known quantities.
|
||
|
||
**Step 4: Bound with upper/lower limits**
|
||
|
||
Use [2. Bounding Techniques](#2-bounding-techniques) to bracket answer with constraints.
|
||
|
||
**Step 5: Calculate and sanity-check**
|
||
|
||
Validate using dimensional analysis, reality checks, and [3. Calibration Methods](#3-calibration-methods).
|
||
|
||
**Step 6: Triangulate with alternate path**
|
||
|
||
Apply [4. Triangulation Approaches](#4-triangulation-approaches) to estimate via different decomposition.
|
||
|
||
---
|
||
|
||
## 1. Anchoring Techniques
|
||
|
||
Methods for grounding component estimates in known quantities.
|
||
|
||
### Common Knowledge Anchors
|
||
|
||
**Demographics**: Population figures, household counts, labor force
|
||
- US population: ~330M (2020s), grows ~0.5%/year
|
||
- US households: ~130M, avg 2.5 people/household
|
||
- US labor force: ~165M, unemployment typically 3-6%
|
||
- Global: ~8B people, ~2B households, ~55% urban
|
||
|
||
**Economic**: GDP, spending, income
|
||
- US GDP: ~$25T, per capita ~$75k
|
||
- Median household income: ~$70k
|
||
- Consumer spending: ~70% of GDP
|
||
- Federal budget: ~$6T (~24% of GDP)
|
||
|
||
**Physical constants**: Time, space, energy
|
||
- Earth: ~510M km², ~70% water, ~150M km² land
|
||
- US land: ~10M km² (~3.8M sq mi)
|
||
- Day = 24 hours, year ≈ 365 days ≈ 52 weeks
|
||
- Typical human: 70kg, 2000 kcal/day, 8hr sleep, 16hr awake
|
||
|
||
**Business benchmarks**: SaaS metrics, retail, tech
|
||
- SaaS ARR per employee: $150-300k (mature companies)
|
||
- Retail revenue per sq ft: $300-500/year (varies by category)
|
||
- Tech company valuation: 5-15× revenue (growth stage), 2-5× (mature)
|
||
- CAC payback: <12 months good, <18 acceptable
|
||
|
||
### Data Lookup Strategies
|
||
|
||
**Quick reliable sources** (use for anchoring):
|
||
- Google: Population figures, company sizes, market data
|
||
- Wikipedia: Demographics, economic stats, physical data
|
||
- Public company filings: Revenue, employees, customers (10-K, investor decks)
|
||
- Industry reports: Gartner, Forrester, McKinsey (market sizing)
|
||
|
||
**Estimation from fragments**:
|
||
- Company has "thousands of employees" → Estimate 3,000-5,000
|
||
- Market is "multi-billion dollar" → Estimate $2-9B
|
||
- "Most people" do X → Estimate 60-80%
|
||
- "Rare" occurrence → Estimate <5%
|
||
|
||
### Personal Experience Anchors
|
||
|
||
**Observation-based**: Use your own data points
|
||
- How many apps on your phone? (extrapolate to avg user)
|
||
- How often do you buy X? (extrapolate to market)
|
||
- How long does task Y take? (estimate productivity)
|
||
|
||
**Analogous reasoning**: Scale from known to unknown
|
||
- If you know NYC subway ridership, estimate SF BART by population ratio
|
||
- If you know your company's churn, estimate competitor's by industry norms
|
||
- If you know local restaurant count, estimate city-wide by neighborhood scaling
|
||
|
||
**Bracketing intuition**: Use confidence ranges
|
||
- "I'm 80% confident the answer is between X and Y"
|
||
- Then use geometric mean: √(X×Y) as central estimate
|
||
- Example: Starbucks locations - probably between 10k and 50k → ~22k (actual ~16k)
|
||
|
||
---
|
||
|
||
## 2. Bounding Techniques
|
||
|
||
Methods for calculating upper/lower limits to bracket the answer.
|
||
|
||
### Constraint-Based Bounding
|
||
|
||
**Physical constraints**: Cannot exceed laws of nature
|
||
- Maximum speed: Speed of light (for data), sound (for physical travel), human limits (for manual tasks)
|
||
- Maximum density: People per area (fire code limits, standing room), data per volume (storage media)
|
||
- Maximum efficiency: Thermodynamic limits, conversion efficiency (solar ~20-25%, combustion ~35-45%)
|
||
|
||
**Economic constraints**: Cannot exceed available resources
|
||
- Market size bounded by: GDP, consumer spending, addressable population × willingness to pay
|
||
- Company revenue bounded by: Market size × maximum possible share (~20-30% typically)
|
||
- Headcount bounded by: Budget ÷ avg salary, or revenue ÷ revenue per employee benchmark
|
||
|
||
**Time constraints**: Cannot exceed available hours
|
||
- Work output bounded by: People × hours/person × productivity
|
||
- Example: "How many customers can support team handle?" → Agents × (40 hr/week - 10hr meetings) × tickets/hr
|
||
|
||
### Scenario-Based Bounding
|
||
|
||
**Optimistic scenario** (favorable assumptions):
|
||
- High adoption (80-100% of addressable market)
|
||
- Premium pricing (top quartile of range)
|
||
- High efficiency (best-in-class productivity)
|
||
- Fast growth (aggressive but plausible)
|
||
|
||
**Pessimistic scenario** (conservative assumptions):
|
||
- Low adoption (5-20% of addressable market)
|
||
- Discount pricing (bottom quartile of range)
|
||
- Low efficiency (industry average or below)
|
||
- Slow growth (cautious, accounts for setbacks)
|
||
|
||
**Example - Market sizing**:
|
||
- Optimistic: All 500k target businesses × $100/month × 12 = $600M
|
||
- Pessimistic: 5% penetration (25k) × $30/month × 12 = $9M
|
||
- Range: $9M - $600M (67× span → likely too wide, refine assumptions)
|
||
|
||
### Sensitivity Analysis
|
||
|
||
Identify which assumptions most affect result:
|
||
|
||
**Method**: Vary each component ±50%, measure impact on final estimate
|
||
|
||
**High sensitivity components**: Small change → large impact on result
|
||
- Focus refinement effort here
|
||
- Example: If CAC varies 50% and final ROI changes 40%, CAC is high sensitivity
|
||
|
||
**Low sensitivity components**: Large change → small impact on result
|
||
- Less critical to get precise
|
||
- Example: If office rent varies 50% but total costs change 5%, rent is low sensitivity
|
||
|
||
**Rule of thumb**: 80% of uncertainty often comes from 20% of assumptions. Find and refine those critical few.
|
||
|
||
---
|
||
|
||
## 3. Calibration Methods
|
||
|
||
Techniques for improving estimation accuracy through practice and feedback.
|
||
|
||
### Calibration Exercises
|
||
|
||
**Known problems**: Practice on verifiable questions, compare estimate to actual
|
||
|
||
**Exercise set 1 - Demographics**:
|
||
1. US population in 1950? (Estimate, then check: ~150M)
|
||
2. Number of countries in UN? (Estimate, then check: ~190)
|
||
3. World's tallest building height? (Estimate, then check: ~830m Burj Khalifa)
|
||
|
||
**Exercise set 2 - Business**:
|
||
1. Starbucks annual revenue? (Estimate, then check: ~$35B)
|
||
2. Google employees worldwide? (Estimate, then check: ~150k)
|
||
3. Average Netflix subscription price? (Estimate, then check: ~$15/month)
|
||
|
||
**Exercise set 3 - Consulting classics**:
|
||
1. Piano tuners in Chicago? (Estimate, then check: ~100)
|
||
2. Gas stations in US? (Estimate, then check: ~150k)
|
||
3. Golf balls fitting in school bus? (Estimate, then check: ~500k)
|
||
|
||
**Feedback loop**:
|
||
- Track your estimate vs actual ratio
|
||
- If consistently >3× off, identify bias (underestimate? overestimate?)
|
||
- Calibrate future estimates (if you typically 2× low, mentally adjust upward)
|
||
|
||
### Confidence Intervals
|
||
|
||
Express uncertainty quantitatively:
|
||
|
||
**90% confidence interval**: "I'm 90% sure the answer is between X and Y"
|
||
- Width reflects uncertainty (narrow = confident, wide = uncertain)
|
||
- Calibration: Of 10 estimates with 90% CI, ~9 should contain true value
|
||
|
||
**Common mistakes**:
|
||
- Too narrow (overconfidence): Only 50% of your "90% CIs" contain true value
|
||
- Too wide (useless): All your CIs span 3+ orders of magnitude
|
||
- Goal: Calibrated such that X% of your X% CIs are correct
|
||
|
||
**Practice calibration**:
|
||
1. Make 20 estimates with 80% CIs
|
||
2. Check how many actually contained true value
|
||
3. If <16 (80% of 20), you're overconfident → widen future CIs
|
||
4. If >18, you're underconfident → narrow future CIs
|
||
|
||
### Bias Identification
|
||
|
||
**Anchoring bias**: Over-relying on first number you hear
|
||
- Mitigation: Generate estimate independently before seeing any numbers
|
||
- Test: Estimate revenue before someone says "Is it $10M?" vs after
|
||
|
||
**Availability bias**: Overweighting recent/memorable events
|
||
- Mitigation: Seek base rates, historical averages, not just recent headline cases
|
||
- Example: Don't estimate startup success rate from TechCrunch unicorn coverage
|
||
|
||
**Optimism bias**: Tendency to assume favorable outcomes
|
||
- Mitigation: Explicitly calculate pessimistic scenario, force consideration of downsides
|
||
- Particularly important for: Timelines, costs, adoption rates
|
||
|
||
**Unit confusion**: Mixing millions/billions, per-day/per-year
|
||
- Mitigation: Always write units, check dimensional analysis
|
||
- Example: Company earns $10M/year = ~$27k/day (sanity check: does that seem right for scale?)
|
||
|
||
---
|
||
|
||
## 4. Triangulation Approaches
|
||
|
||
Estimating the same quantity via multiple independent paths to validate.
|
||
|
||
### Supply-Side vs Demand-Side
|
||
|
||
**Supply-side**: Count producers/capacity, estimate output
|
||
- Example (Uber drivers in SF):
|
||
- ~5,000 drivers (estimated from driver forum activity, Uber PR)
|
||
- ~30 rides/day per driver
|
||
- = 150,000 rides/day in SF
|
||
|
||
**Demand-side**: Count consumers/need, estimate consumption
|
||
- Example (Uber rides in SF):
|
||
- ~900k population
|
||
- ~5% use Uber daily (frequent users)
|
||
- ~3 rides per user-day
|
||
- = 135,000 rides/day in SF
|
||
|
||
**Triangulation**: 150k (supply) vs 135k (demand) → Within 10%, confidence high
|
||
|
||
### Top-Down vs Bottom-Up
|
||
|
||
**Top-down**: Start with large total, filter down
|
||
- Example (Restaurant revenue in city):
|
||
- 1M population
|
||
- ~$8k/person annual food spending
|
||
- ~40% spent at restaurants
|
||
- = $3.2B restaurant revenue
|
||
|
||
**Bottom-up**: Start with unit, scale up
|
||
- Example (Restaurant revenue in city):
|
||
- ~1,500 restaurants
|
||
- ~50 meals/day per restaurant
|
||
- ~$25 average check
|
||
- ~350 days/year
|
||
- = ~$650M restaurant revenue
|
||
|
||
**Discrepancy**: $3.2B vs $650M → 5× difference, investigate!
|
||
- Possible explanations: Underestimated restaurants (chains, cafes, food trucks), or overestimated per-capita spending
|
||
|
||
### Multiple Decomposition Paths
|
||
|
||
**Example - Estimating AWS revenue**:
|
||
|
||
**Path 1 - Customer-based**:
|
||
- ~1M active AWS customers (public statements)
|
||
- Average spend ~$10k/year (mix of startups $1k, enterprises $100k+)
|
||
- = $10B revenue
|
||
|
||
**Path 2 - Workload-based**:
|
||
- ~5M EC2 instances running globally (estimated from public data)
|
||
- ~$500/month avg per instance (mix of small/large)
|
||
- = $30B revenue
|
||
|
||
**Path 3 - Market share**:
|
||
- Cloud infrastructure market ~$200B (2023)
|
||
- AWS market share ~30%
|
||
- = $60B revenue
|
||
|
||
**Triangulation**: $10B vs $30B vs $60B → Within same order of magnitude, actual AWS revenue ~$85B (2023)
|
||
- All paths got within 3-10× (reasonable for Fermi), but spread suggests different assumptions need refinement
|
||
|
||
### Cross-Validation with Public Data
|
||
|
||
After Fermi estimate, quickly check if public data exists:
|
||
|
||
**Public company financials**: 10-K filings, investor presentations
|
||
- Validate: Revenue, employees, customers, margins
|
||
|
||
**Industry reports**: Gartner, IDC, Forrester market sizing
|
||
- Validate: TAM, growth rates, share
|
||
|
||
**Government data**: Census, BLS, FDA, EPA
|
||
- Validate: Population, employment, health, environment figures
|
||
|
||
**Academic studies**: Research papers on adoption, behavior, impact
|
||
- Validate: Penetration rates, usage patterns, effect sizes
|
||
|
||
**Purpose**: Not to replace Fermi process, but to:
|
||
1. Calibrate (am I within 10×? If not, what's wrong?)
|
||
2. Refine (can I improve assumptions with real data?)
|
||
3. Build confidence (multiple paths + public data all agree → high confidence)
|
||
|
||
---
|
||
|
||
## 5. Advanced Decomposition Patterns
|
||
|
||
### Conversion Funnel Decomposition
|
||
|
||
For estimating outcomes in multi-step processes:
|
||
|
||
**Structure**:
|
||
```
|
||
Starting population
|
||
× Conversion 1 (% that complete step 1)
|
||
× Conversion 2 (% that complete step 2 | completed 1)
|
||
× Conversion 3 (% that complete step 3 | completed 2)
|
||
= Final outcome
|
||
```
|
||
|
||
**Example - SaaS conversions**:
|
||
```
|
||
Website visitors: 100k/month
|
||
× Trial signup: 5% = 5k trials
|
||
× Activation: 60% = 3k activated
|
||
× Paid conversion: 20% = 600 new customers/month
|
||
```
|
||
|
||
### Cohort-Based Decomposition
|
||
|
||
For estimating aggregate from groups with different characteristics:
|
||
|
||
**Example - App revenue**:
|
||
```
|
||
Cohort 1 (Power users): 10k users × $20/month = $200k
|
||
Cohort 2 (Regular users): 100k users × $5/month = $500k
|
||
Cohort 3 (Free users): 1M users × $0 = $0
|
||
Total: $700k/month
|
||
```
|
||
|
||
### Dimensional Analysis
|
||
|
||
Using units to guide decomposition:
|
||
|
||
**Example**: Estimating data center power consumption (want kW)
|
||
```
|
||
Servers (count)
|
||
× Power per server (kW/server)
|
||
+ Cooling overhead (×1.5 for PUE)
|
||
= Total power (kW)
|
||
```
|
||
|
||
Units guide you: Need kW, have servers → must find kW/server, which is estimable
|
||
|
||
---
|
||
|
||
## 6. Common Estimation Pitfalls
|
||
|
||
**Compounding errors**: Errors multiply in chains
|
||
- 3 components each ±50% uncertain → final estimate ±300% uncertain
|
||
- Mitigation: Keep decomposition shallow (3-5 levels max), validate high-sensitivity components
|
||
|
||
**False precision**: Reporting 8.372M when uncertainty is ±3×
|
||
- Mitigation: Round to 1-2 significant figures (8M not 8.372M), express as range
|
||
|
||
**Linearity assumption**: Assuming proportional scaling when it's not
|
||
- Reality: Economies of scale (costs grow sub-linearly), network effects (value grows super-linearly)
|
||
- Mitigation: Check if relationship is truly linear or if power law applies
|
||
|
||
**Survivorship bias**: Estimating from successes only
|
||
- Example: Average startup revenue based on unicorns (ignoring 90% that failed)
|
||
- Mitigation: Include full distribution, weight by probability
|
||
|
||
**Time-period confusion**: Mixing annual, monthly, daily figures
|
||
- Example: "Company earns $1M" - per year? per month? Need clarity.
|
||
- Mitigation: Always specify time units, convert to common basis
|
||
|
||
**Outdated anchors**: Using pre-pandemic data for post-pandemic estimates
|
||
- Example: Office occupancy, remote work adoption, e-commerce penetration all shifted
|
||
- Mitigation: Check anchor recency, adjust for structural changes
|
||
|
||
**Ignoring constraints**: Estimates that violate physics/economics
|
||
- Example: Market size exceeding GDP, growth rate >100%/year sustained indefinitely
|
||
- Mitigation: Sanity-check against absolute limits
|
||
|
||
**Double-counting**: Including same quantity twice
|
||
- Example: Counting both "businesses" and "employees" when businesses already includes employee count
|
||
- Mitigation: Draw clear decomposition tree, check for overlap
|