← All notes
Project Scoping6 min

A single number is not an estimate

Someone asks how long it will take. The room wants one number. A single number at that moment is not precision — it is a commitment made before the decisions that would make precision possible. We treat an estimate as a range tied to what is still undecided, and we only narrow it when those decisions are written down.

What a single number hides

At the first conversation, the honest spread on novel work is wide. The classic cone of uncertainty puts early estimates at roughly a factor of four in either direction for skilled estimators — and that is the best case, not a failure mode. Compressing that into "six weeks" does not remove the spread. It just stops you from seeing it.

Most single numbers we have been handed in discovery were targets: a launch date someone already promised, a budget of calendar that felt palatable, or an optimistic path that assumed every seam behaved. Targets are useful. They are not estimates. An estimate says what the work still depends on. A target says what someone hopes will be true.

When we catch ourselves offering one number too early, it is usually because the conversation got uncomfortable. Ranges feel like hedging. They are not. They are the difference between forecasting and guessing with confidence theater.

The cone narrows with decisions, not with time

A four-week scoping period that never locks who holds which surface, what the seam must survive, or what is explicitly out does not tighten the estimate. Calendar time alone does nothing. The cone closes when product definition, acceptance criteria, and integration assumptions become signed decisions — not when meetings accumulate.

That is why we put a short seam spike inside scoping on projects like Al's Flowers print tickets or BuilderHelp payment methods. The spike is not there to decorate the plan. It is there so the range for the integration path is arguing with a real webhook payload or a real provider response instead of a slide.

Until those decisions land, we keep the range visible. After they land, we re-estimate the affected slice. The schedule updates because the unknowns did — not because we waited long enough to feel braver.

How we write a range that means something

A useful range names three things: the likely path given what we know, the upside if the seams behave, and the downside if the known risks fire. It also names the assumptions that would move us from one end to the other. "Four to seven weeks, depending on whether vendor PDFs need a human review loop" is an estimate. "Five weeks plus twenty percent contingency" is still a single number with a cushion taped on.

Contingency percentages hide which uncertainty you are carrying. A range forces the conversation onto the actual fork: offline-default sync for Endeo-style field notes, duplicate Shopify webhooks for a florist ticket pipeline, OCR that invents characters on a purchase order. Those forks change the work. A padded midpoint does not describe them.

We keep the range attached to a scope slice, not to the whole company roadmap. The part we have spiked can sit in a tight band. The part that still depends on a third-party behavior we have not touched stays wide on purpose.

When a commitment is allowed

Commitments are fine. They are just a different speech act from estimates. You can commit to the optimistic end, the likely middle, or the pessimistic end of a range — as long as everyone knows which end you picked and what would invalidate it.

The failure mode is converting a wide early range into a single committed date without shrinking the unknowns. That is how a happy-path workshop becomes a calendar everyone pretends to believe. We would rather shrink the first useful slice until the range is honest, ship that, and re-estimate the next slice with evidence.

If the date is immovable, the range still exists — it just moves onto scope. Fixed calendar plus wide uncertainty means the variable is which paths make the cut, not whether physics will bend. Saying that out loud early is kinder than discovering it after the screens are painted.

What we put in the scoping notes now

For each major slice: a likely / upside / downside band, the assumptions that separate those bands, and which assumptions we will spike before the schedule hardens. If we cannot name the assumption, we do not pretend the band is tight.

We also write what would cause a re-estimate. New surface for a different user. A seam we have not touched. Acceptance criteria that only describe the sunny route. Those are not change-order theater — they are the moments when the previous number stopped being an estimate.

The point is not to sound uncertain. The point is to keep the plan honest long enough for the real project to show up. A single number offered too early feels decisive. A range that shrinks as decisions land is how the work actually gets scheduled.

Have something to build?

Tell us what you're working on and we'll tell you honestly whether we're the right fit.

Work with us