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 million; say 40% are regular coffee-shop buyers, buying roughly twice a week about million shop-visits per week. A shop serving, say, 300 customers a day (2,100/week) implies roughly 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 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.
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.
Related concepts
Practice in interviews
Further reading
- Guesstimation, Weinstein and Adam