SIMPLIFIED

Estimation Lab

A flat number hides a distribution. Decompose it into pieces, give each a best, a likely and a worst case, say how unfamiliar it is, and see the range the pieces support — and where the flat claim sits inside it.

ProblemUnderstandRequirementsConstraintsUnknownsDecompositionSmallest StepModelExperimentObserveDebugLearnIterate
The claim
“Online store: two weeks.”

One number, 10 working days, no range. Below is what it is made of.

The pieces

Edit any number; best ≤ likely ≤ worst is kept for you. Unknownness widens the tail — the worst case grows 25 % per level, the best case not at all.

PieceBestLikelyWorstUnknownness
Tables and a listing page. Done many times.
Add, remove, quantities; where the cart lives is the open question.
Address, summary, order creation, the happy path.
Never used the provider. Webhooks, failure paths, idempotency — the tail is long.
Grows with every piece above it.
Secrets, a database migration, a domain. Each one can eat a day.

What a flat number secretly assumes

Split the claim into equal pieces with a fixed shape and nothing unfamiliar — that is the estimate a flat number is, whether or not anyone wrote it down.

SIMPLIFIED

PERT per piece, variances summed across pieces — which assumes the pieces overrun independently. They rarely do, so the real spread is wider than shown; the note says so and a version that removes it removes the honest half. And a flat number is not always wrong: the file-upload preset is small and familiar enough that its claim lands inside the band. The argument is that a flat number hides a range, not that every flat number is optimistic.