Qm
Core

Cross-Checking Top-Down Against Bottom-Up

The single most reliable way to catch a Fermi estimate that's wildly off is to derive the same number two independent ways, once from a big aggregate divided down, once by building it up from small pieces, and see whether they land in the same ballpark.

Prerequisites: Breaking an Estimate Into a Decomposition Tree

You're asked to estimate how many coffee shops there are in Manhattan. A bottom-up chain, population, coffee drinkers per person, cups per day, customers per shop, gives you one number. But how do you know it's not off by 10×? A single chain of estimates, however careful, has no built-in way to catch a bad assumption baked into step three. The fix isn't to make the chain longer or more careful, it's to build a completely different chain from a different starting point and see if the two answers agree.

The idea: two independent derivations, one sanity check

Bottom-up starts from small, personal-scale numbers and multiplies up: how many cups you drink, times people like you, times shops needed to serve them. Top-down starts from a big aggregate you might already know or can estimate independently, total retail square footage, total coffee industry revenue, commercial rent per block, and divides down to the same target quantity. The two approaches use almost entirely different input numbers, so if they agree within roughly a factor of 2–3, that's real evidence neither chain has a badly wrong assumption buried in it. If they disagree by 10× or more, at least one of the input assumptions is off, and figuring out which one is often more informative than either estimate alone.

Worked example 1: coffee shops in Manhattan

Bottom-up: Manhattan population 1.6\approx 1.6 million; say 40% are regular coffee-shop buyers, buying roughly twice a week \Rightarrow about 1.6M×0.4×21.281.6\text{M}\times0.4\times2\approx1.28 million shop-visits per week. A shop serving, say, 300 customers a day (2,100/week) implies roughly 1,280,000/2,1006101{,}280{,}000/2{,}100 \approx 610 shops.

Top-down: Manhattan has roughly 23 square miles of land, a large fraction of it dense retail corridors; if there's on average one coffee shop per 2–3 city blocks across the borough's walkable grid (a rough density estimate), and Manhattan has on the order of 3,000 blocks, that's roughly 3,000/2.51,2003{,}000/2.5 \approx 1{,}200 shops.

Both land somewhere in the hundreds-to-low-thousands range, 610 vs 1,200 is within a factor of 2, which for a Fermi estimate counts as strong agreement. (The real figure, from public directories, is in the 1,500–2,000 range including chains and independents, both estimates were in the right order of magnitude, with the top-down one closer.)

Worked example 2: catching a bad assumption

Estimating a food-delivery app's daily order volume in a city bottom-up (population × adoption rate × orders/week) gives 200,000 orders/day. A top-down check, restaurant count in the city × average delivery orders per restaurant per day, a number an interviewer might expect you to guess at ~15–20, gives only 30,000. A 6–7× gap is too large to shrug off: re-examining the bottom-up chain, the adoption rate assumption ("40% of adults order delivery at least weekly") is probably too high for anywhere outside a handful of dense markets. The top-down number, anchored in something more physically constrained (restaurants can only fulfill so many orders), is likely closer to right, and the discrepancy itself is the useful finding, not just the final number.

Bottom-up: population → Top-down: aggregate ÷ Do the two land within ~2-3x of each other?
Two independent estimation paths converging within a factor of 2-3 is meaningful confirmation; a 10x gap flags a bad assumption worth hunting down.

Never trust a single Fermi chain. Build a second, structurally independent chain to the same target, from a different starting aggregate, and treat agreement within a factor of 2-3 as confirmation, and disagreement beyond 10x as a signal to hunt for the bad assumption rather than average the two numbers together.

When the two estimates disagree, the more physically constrained one (bounded by a hard capacity, like restaurant throughput or square footage) is usually more trustworthy than one built from an adoption-rate or behavioral-frequency guess, which is the easiest kind of assumption to get wrong.

Discussion

Sign in to join the discussion · reading is open to everyone

💡 Discussion rules

  1. Ask and answer about this concept. Off-topic gets removed.
  2. No homework dumps. Show what you tried first.
  3. Corrections are welcome. Cite a source when you claim an error.

Loading discussion…

Related concepts

Practice in interviews

Further reading

  • Guesstimation, Weinstein and Adam
ShareTwitterLinkedIn