think-fermi-estimation · v0.1.0 · 2026-10-21 · sha256 94b7704bb0652ae3

think-fermi-estimation v0.1.0A

Immutable. This exact content never changes and is served at /api/v1/blob/94b7704bb0652ae3.

---
name: think-fermi-estimation
description: Produces a Fermi decomposition worksheet that estimates an unknown numeric quantity by factoring it into a chain of order-of-magnitude sub-estimates, guessing each to within a band, then multiplying back to a point estimate plus a compounded low/high range, with an independence check and a dominant-uncertainty flag. Use when you need a number and no lookup-able data or genuine reference class exists, so the magnitude has to be built from factors (for example sizing a market, a load, a cost, or a conversion you cannot look up). Not for forecasting from real base rates (use reference-class-forecasting) or decomposing a question for coverage with no number (use issue-tree).
license: Apache-2.0
metadata:
  id: thinking-framework-skills.fermi-estimation
  family: decision-and-option-evaluation
  evidence-tier: "M/P"
  version: 0.1.0
  standard: "0.8"
---
<!-- thinking-framework-skills | https://github.com/product-on-purpose/thinking-framework-skills | Apache-2.0 -->
# Fermi Estimation

Sometimes you need a number and there is nothing to look up: no dataset, no genuine reference class, no precedent to borrow. A single all-at-once guess at the whole magnitude is badly anchored and hides its own uncertainty. The Fermi move is to **factor the unknown into a short chain of sub-quantities** - each one small and familiar enough to guess to within a factor - then multiply the chain back into an estimate and compound the per-factor bands into a low/high range. The reason it can beat one wild guess is **partial error cancellation**: if the per-factor errors are roughly independent and centered, over-guessing one factor and under-guessing another tend to offset in the product. The output is a **Fermi decomposition worksheet**, not a lone number. The honest constraint: the cancellation only works when the factors are independent, and the benefit is real mainly for large, unfamiliar quantities - not ordinary ones you could estimate directly.

## When to Use

- You need a numeric magnitude and **no lookup-able data and no genuine reference class** exists, so the number has to be built from factors.
- The quantity is **large and unfamiliar** (market size, total load, total cost, a conversion count you cannot look up) - the regime where decomposition actually helps.
- An **order-of-magnitude** answer with an honest band is useful for sizing, sanity-checking, or triage; the number does not have to be exact.
- You want the estimate **inspectable**: each factor, its basis, and its band exposed so a reader can challenge one number, not an opaque total.

## When NOT to Use

- **A genuine reference class with real base-rate data exists.** Then anchor on that data, not on invented factors - use `think-reference-class-forecasting`. Fermi is precisely the build-from-factors method for when no such class exists; if you have real base rates, reference-class forecasting is strictly better.
- **The task only needs the question decomposed for coverage, not a number.** If you want a mutually-exclusive, collectively-exhaustive breakdown of a question and explicitly *no* estimate, use `think-issue-tree`, which produces a tree and produces no number. Fermi exists to produce a number; do not use it when a number is not wanted.
- **The quantity is ordinary and familiar.** Decomposing something you could estimate directly adds noise; the decomposition benefit was absent or negative in that regime (see `evidence/dossier.md`).
- **The factors share a driver (correlated).** Multiplicative error-cancellation fails when factors move together; the chain can be worse than one careful guess. Flag it and restructure to independent factors, or stop.
- **Never emit a point estimate with no low/high band.** A Fermi number without its range hides the uncertainty the method exists to expose.

## Instructions

When asked to estimate a magnitude with no data to look up, follow these steps:

1. **State the target quantity precisely**, with its unit. Confirm there is no real base-rate data or reference class to use instead (if there is, route to `think-reference-class-forecasting`). Confirm a number is actually wanted (if not, route to `think-issue-tree`).
2. **Build the multiplicative factor chain.** Write the unknown as a product of sub-quantities, each one small and familiar enough to guess to within roughly a factor. Keep the chain short; prefer factors you can anchor. If a factor sums several named sub-categories, add an explicit "other" term for what is not named. Estimate that "other" term on its own, before summing the named parts. Splitting the named parts more finely raises their summed share. Do not let the finest split crowd out "other."
3. **Give each factor a band and a basis.** For every factor, state a low / best / high guess, and **where the number came from** (a known datum, an analogy, a plausible range). A factor with no stated basis is just a guess in disguise.
4. **Run the independence check.** Ask whether any two factors share a driver (move together). If they do, the error-cancellation premise breaks - flag the correlated factors and either restructure to independent factors or note that the range is unreliable.
5. **Combine.** Multiply the best-guesses for the **point estimate**. Multiply the lows for the range floor and the highs for the range ceiling to get the **compounded low/high range**. Report the estimate as the point value *and* the range, never the point alone.
6. **Flag the dominant uncertainty.** Name the one factor whose band most widens the combined range - that is where tightening one guess would most improve the answer.
7. **Emit the Fermi decomposition worksheet** per `references/TEMPLATE.md`.

## Output Format

Use the template in `references/TEMPLATE.md`. The deliverable is the worksheet: the factor chain, per-factor low/best/high with bases, the point estimate, the compounded low/high range, the independence check, and the dominant-uncertainty flag - not a single number and not prose.

## Quality Checklist

Before finalizing, verify:

- [ ] The target is genuinely a build-from-factors magnitude: no real base-rate data or reference class was available (else use reference-class-forecasting), and a number is actually wanted (else use issue-tree).
- [ ] The unknown is written as a multiplicative chain of factors, each small enough to guess to within a factor.
- [ ] Every factor has a low/best/high band **and** a stated basis for the guess.
- [ ] The independence check was run, and any correlated factors (sharing a driver) are flagged rather than silently multiplied.
- [ ] The output gives a point estimate **and** a compounded low/high range - never a point estimate alone.
- [ ] The dominant-uncertainty factor is named.
- [ ] No overclaim: the method gives directional, order-of-magnitude help for extreme uncertain quantities under an independence condition; it does not give a precise or proven number (see `evidence/dossier.md`).
- [ ] The output is the Fermi decomposition worksheet artifact, not prose.

## Evidence

Tier **P** (governing; honest read **M/P**, transferred-evidence, capped at P). The mechanism - judgmental multiplicative decomposition - has *some* controlled support: MacGregor & Armstrong (1994, *International Journal of Forecasting*, "Judgmental Decomposition: When Does It Work?") and MacGregor (2001, in Armstrong ed., *Principles of Forecasting*) report that breaking an estimate into parts and recombining can reduce error - that earns the M half. Three facts cap it below a clean M and demand honesty: (1) the benefit is **conditional**, present for extreme/uncertain (large, unfamiliar) quantities and absent or negative for ordinary ones; (2) the multiplicative cancellation premise is **sensitive to correlated component errors**, which erode the benefit; (3) the base is essentially a single multi-problem study line plus field lore (the "within an order of magnitude" track record) plus a statistical argument (log-normal / geometric-mean cancellation), **not** replicated or meta-analytic. A related caution: splitting a factor's named sub-categories more finely can inflate their summed share. This crowds out what should go to the "other" term (Fischhoff, Slovic and Lichtenstein 1978; Fox and Clemen 2005). This skill therefore cites **no effect-size figure**: one widely-repeated number (error factor 99 vs 3) holds only for six extreme, high-uncertainty problems, another could not be verified to a primary source, and either would overstate the grade. The evidence is human-subject, **not** AI-agent-validated. Full grading, sources, and the deliberately-omitted statistics: `evidence/dossier.md`.

## Examples

See `references/EXAMPLE.md` for a completed Fermi decomposition worksheet on the shared Northwind scenario.