estimation-fermi
from lyndonkl/claude
Agents, skills and anything else to use with claude
npx skills add https://github.com/lyndonkl/claude --skill estimation-fermiSKILL.md
Fermi Estimation
Table of Contents
Purpose
Fermi estimation provides rapid order-of-magnitude answers to seemingly impossible questions by decomposing them into smaller, estimable parts. This skill guides you through decomposition strategies, bounding techniques, sanity checks, and triangulation to make defensible estimates when data is scarce, time is limited, or precision is unnecessary for the decision at hand.
When to Use
Use this skill when:
- Market sizing: Estimating TAM/SAM/SOM for product launch, addressable market for new feature, competitive market share
- Resource planning: Infrastructure capacity (servers, storage, bandwidth), staffing needs, budget allocation, inventory requirements
- Feasibility checks: Can we build this in 6 months? Will customers pay $X? Is this market big enough?
- Strategic decisions: Build vs buy tradeoffs, enter new market assessment, fundraising/runway calculations, pricing validation
- Business metrics: Revenue projections, customer acquisition costs, LTV estimates, unit economics, break-even analysis
- Impact assessment: Carbon footprint, energy consumption, social reach, cost savings from initiative
- Interview questions: Consulting case interviews (piano tuners in Chicago), product sense questions, analytical reasoning tests
- Quick validation: Sanity-checking detailed models, pressure-testing assumptions, getting directional answer before investing in precision
Trigger phrases: "ballpark estimate", "order of magnitude", "back-of-envelope", "roughly how many", "feasibility check", "gut check", "triangulate", "sanity check"
What Is It?
Fermi estimation (named after physicist Enrico Fermi) breaks down complex unknowns into simpler components that can be estimated using common knowledge, constraints, and reasoning. The goal is not precision but being "right to within a factor of 10" quickly.
Quick example:
Question: How many piano tuners are in Chicago?
Fermi decomposition:
- Population: Chicago ~3 million people
- Households: 3M people ÷ 3 people/household = 1M households
- Pianos: ~1 in 20 households has piano = 50,000 pianos
- Tuning frequency: Piano tuned once/year on average
- Tunings needed: 50,000 tunings/year
- Tuner capacity: Tuner works 250 days/year, 4 tunings/day = 1,000 tunings/year per tuner
- Tuners needed: 50,000 ÷ 1,000 = ~50 piano tuners
Actual: ~80-100 piano tuners in Chicago (within order of magnitude ✓)
Business example - Market sizing:
Question: What's the TAM for a B2B sales automation SaaS in the US?
Decomposition:
- Total businesses in US: ~30M
- With sales teams: ~10% = 3M businesses
- With >10 employees (can afford SaaS): ~2M businesses
- Addressable (tech-savvy, not enterprise with custom solutions): ~500k businesses
- Price point: $500/month average
- TAM: 500k × $500/month × 12 = $3B/year
Validation: Quick search confirms B2B sales tech market ~$5-7B (same order of magnitude ✓)
Workflow
Copy this checklist and track your progress:
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
Restate question precisely (units, scope, timeframe). Identify what decision hinges on estimate (directional answer sufficient? order of magnitude?). See resources/template.md for question clarification framework.
Step 2: Decompose into estimable components
Break unknown into product/quotient of knowable parts. Choose decomposition strategy (top-down, bottom-up, dimensional analysis). See resources/template.md for decomposition patterns.
Step 3: Estimate components using anchors
Ground estimates in known quantities (population, physical constants, market sizes, personal experience). State assumptions explicitly. See resources/methodology.md for anchor sources and calibration.
Step 4: Bound with upper/lower limits
Calculate optimistic (upper) and pessimistic (lower) bounds to bracket answer. Check if decision changes across range. See resources/methodology.md for constraint-based bounding.
Step 5: Calculate and sanity-check
Compute estimate, round to 1-2 significant figures. Sanity-check against reality (does answer pass smell test?). See [resources/template.m
...