estimation-fermi

from lyndonkl/claude

Agents, skills and anything else to use with claude

15 stars2 forksUpdated Dec 16, 2025
npx skills add https://github.com/lyndonkl/claude --skill estimation-fermi

SKILL.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:

  1. Population: Chicago ~3 million people
  2. Households: 3M people ÷ 3 people/household = 1M households
  3. Pianos: ~1 in 20 households has piano = 50,000 pianos
  4. Tuning frequency: Piano tuned once/year on average
  5. Tunings needed: 50,000 tunings/year
  6. Tuner capacity: Tuner works 250 days/year, 4 tunings/day = 1,000 tunings/year per tuner
  7. 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:

  1. Total businesses in US: ~30M
  2. With sales teams: ~10% = 3M businesses
  3. With >10 employees (can afford SaaS): ~2M businesses
  4. Addressable (tech-savvy, not enterprise with custom solutions): ~500k businesses
  5. Price point: $500/month average
  6. 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

...

Read full content

Repository Stats

Stars15
Forks2