RefactorOps
← All Writing

The Estimate Is Hiding Decisions You Haven't Made Yet

When a project blows past budget, the estimate gets blamed. But most blown estimates were carrying decisions the organization had not made yet.

estimatesscope managementdigital deliveryproject management

When a digital project runs over budget or blows past scope, the estimate gets blamed. The number was wrong. The team underestimated. The vendor missed something. The project got more complicated than expected.

Sometimes that is true. But often the estimate became fiction before the work started because it was asked to carry decisions the organization had not made yet:

What are we actually building? What capability are we creating? What systems does this touch? What content is moving? Who owns the data? What does "integration" mean? How flexible does the CMS need to be? How many design variations are real? What does the user journey require? Who owns approvals? What quality standards apply? What is explicitly excluded?

If those questions are unresolved, the estimate is pricing imagination.

The assumptions behind the number

An estimate is a number plus the assumptions that hold it up.

That distinction matters because the number is the part people remember. The assumptions are the part that make the number meaningful.

When the assumptions disappear, the estimate becomes dangerous.

A team may say:

This is likely $250,000 to $350,000 based on what we know today.

But what people hear six weeks later is:

This costs $250,000.

The range disappears. The caveats disappear. The unknowns disappear. The assumptions disappear. The estimate becomes a commitment through repetition. That is how early uncertainty turns into delivery conflict.

The problem is not early estimating. Early estimates are useful. SWAGs, ROMs, t-shirt sizes, and directional budget ranges all have a place when everyone treats them honestly.

The problem is pretending an early estimate has late-stage certainty.

Once a number is attached to budget, timeline, staffing, procurement, or executive expectation, it starts behaving like a commitment whether anyone calls it that or not.

A time-and-materials estimate with a not-to-exceed number may still feel like fixed fee to the client. A budgetary estimate may become the number leadership remembers. A timeline estimate may become a launch promise. A staff plan may become a delivery guarantee. Labels do not protect the team if the organization treats the estimate as certainty.

The estimate is carrying missing decisions

Much of the friction in estimates comes from vague hand-waving.

Not because people are acting in bad faith, but because digital work has a lot of hidden decisions inside ordinary words.

Take the word "website."

That can mean a refreshed marketing site. It can mean a new CMS implementation. It can mean a replatforming effort. It can mean content migration. It can mean CRM integration. It can mean personalization. It can mean analytics cleanup. It can mean accessibility remediation. It can mean a campaign engine. It can mean design system work. It can mean all of those things at once.

Or take the word "integration."

Integration with what? In which direction? Real-time or batch? Who owns the source of truth? What data moves? What happens when the receiving system rejects the record? Is there retry logic? Error handling? Reporting? Logging? Authentication? Data transformation? Consent logic? Duplicate handling? Manual review?

If no one knows what "integration" means yet, no one knows what the integration costs.

The same is true for content migration. What content is migrating? Who decides what stays? Who rewrites? Who maps old pages to new content types? Who owns redirects? Is this manual, automated, or hybrid? Are we migrating pages, structured assets, media, metadata, taxonomy, relationships, authorship, publish dates, URLs, forms, documents, or all of it? If no one knows what is moving, no one knows what migration costs.

The estimate is often where these missing decisions hide. They do not go away. They reappear later as change requests, schedule pressure, QA churn, stakeholder frustration, or "why wasn't this included?"

Capability definition comes before reliable estimation

Before a team can estimate with confidence, it needs to understand the capability being created.

A capability describes what the business, user, or operating team needs to be able to do when the work is complete.

That starts at the top:

A capability might be:

Those are estimable ideas because they describe an outcome and an operating expectation.

"Build a new site," "add integration," "make the CMS flexible," "support personalization," and "improve the user journey" are not. They may be valid goals, but they are not yet defined enough to estimate responsibly.

Requirements are decisions, not paperwork

Requirements get treated like documentation. They are really decisions.

A requirement says something about what must be true. It limits interpretation. It creates scope. It gives the team something to design, build, test, and accept. Without requirements, the team is left estimating the space between everyone's assumptions. That space is expensive.

The business stakeholder may assume the CMS gives authors full layout control.

The designer may assume the component has three variations.

The developer may assume one reusable pattern.

The content strategist may assume structured content.

The SEO lead may assume editable metadata and schema support.

The analytics lead may assume custom event tracking.

The security lead may assume no PII is stored in the CMS.

The client may assume all existing content is migrating.

The delivery team may assume migration is client-owned.

None of those assumptions may be unreasonable.

But if they are not surfaced, the estimate becomes a container for conflicting expectations.

That is why requirements matter before the work is priced too confidently.

Acceptance criteria help validate slices of work during delivery. They matter. But the estimate is usually being created before ticket-level clarity exists.

At the estimating stage, what matters most is capability definition, requirement maturity, constraints, dependencies, assumptions, and exclusions.

"Simple" often means "undefined"

One of the most expensive words in digital delivery is "simple."

A simple form. A simple migration. A simple landing page. A simple integration. A simple dashboard. A simple CMS component. A simple workflow. A simple approval process.

Sometimes simple really does mean simple. Often it means the complexity has not been discussed yet.

A simple form may involve spam prevention, consent language, CRM routing, hidden campaign fields, notifications, error states, analytics events, data retention, accessibility, and PII handling.

A simple dashboard may involve user roles, data permissions, aggregation rules, source-of-truth questions, reporting latency, export formats, filters, and exception handling.

A simple component may involve responsive behavior, optional fields, media handling, design variations, CMS authoring controls, accessibility states, analytics tagging, and QA combinations.

A simple integration may involve authentication, mapping, transformation, retries, logs, alerts, duplicate handling, and manual correction workflows.

If the team has not defined those things, "simple" is a placeholder.

Discovery does not make the future certain

Discovery is sometimes treated like an optional sales tax. It is not.

Discovery is how teams turn vague intent into decisions, assumptions, exclusions, risks, and scope boundaries. It improves the estimate because it makes uncertainty visible. It does not eliminate uncertainty.

That caveat matters. You can do good discovery and still find new information later. You can define the capability, map the systems, document assumptions, identify risks, and still learn something during design, implementation, QA, UAT, or launch.

That does not mean discovery failed. It means software and digital delivery involve uncertainty.

The point of discovery is not to make the future perfectly knowable. The point is to stop pretending the unknowns are known.

Good discovery should answer questions like:

That work protects both sides.

It helps the client understand what they are buying. It helps the delivery team understand what they are committing to. It helps procurement understand why the number is what it is. It helps leadership understand which decisions are still open.

Discovery does not remove all risk. It gives the risk a name.

Ranges are more honest than false precision

A responsible estimate should usually include a range, not because the team lacks confidence, but because ranges communicate uncertainty better than false precision.

A range says:

Based on what we know today, this is likely between X and Y.

But the range is only useful if it comes with assumptions.

For example:

This assumes three reusable page templates, not fifteen page-specific layouts.

This assumes CRM integration is limited to lead submission, not bidirectional account synchronization.

This assumes content migration is client-owned and manual.

This assumes baseline analytics tagging, not a full measurement strategy.

This assumes no personalization, localization, ecommerce, or authenticated user functionality.

This assumes accessibility review is included for new components, not remediation of the entire legacy content library.

Those assumptions matter. They are the structure holding up the estimate, not legal decoration.

A number without assumptions is a liability.

Exclusions make scope visible

Exclusions prevent misunderstanding. If something is not included, say so. Not vaguely, not buried, not in a way only lawyers can decode. Say it clearly enough that a business stakeholder understands the tradeoff.

This estimate excludes content entry. This estimate excludes rewriting legacy content. This estimate excludes CRM cleanup. This estimate excludes third-party licensing. This estimate excludes advanced personalization. This estimate excludes accessibility remediation outside new templates. This estimate excludes data cleanup in source systems. This estimate excludes post-launch support beyond the warranty period.

That does not mean those things are unimportant. It means they are not part of this estimate unless someone decides they should be.

Exclusions make decisions visible.

Making the hidden decisions visible

The estimate is not supposed to absorb every decision the organization has avoided making.

When the business has not decided what capability matters, the estimate absorbs it.

When the team has not defined the integration, the estimate absorbs it.

When content ownership is unclear, the estimate absorbs it.

When design variation is unknown, the estimate absorbs it.

When quality standards are not stated, the estimate absorbs them.

When upstream work is unfinished, the estimate absorbs it.

When dependencies are unknown, the estimate absorbs them.

Eventually, the project starts and those hidden decisions come due.

That is when everyone discovers the estimate was not really an estimate of the work. It was an estimate of the assumptions.

Estimate Readiness Checklist

Before treating an estimate as reliable, ask these questions.

Business outcome

  • What business outcome is this work meant to support?
  • What strategic intent is driving the investment?
  • What problem are we solving?
  • What would make the work successful?

Capability

  • What capability are we creating?
  • Who needs to use it?
  • What user journeys are being enabled?
  • What business operations depend on it?
  • What must be true when the work is complete?

Scope shape

  • Are we building a website, CMS, portal, CRM workflow, integration, platform, app, or some combination?
  • What systems does it touch?
  • What data is involved?
  • What workflows are required?
  • What upstream work needs to be completed first?

Content and design

  • What content is required?
  • What content is migrating?
  • Who owns migration?
  • What page types, templates, or components are assumed?
  • How many variations are included?
  • What responsive, accessibility, SEO, and analytics expectations apply?

Integrations and dependencies

  • What does 'integration' mean in this context?
  • Which systems are source of truth?
  • What data moves, when, and how?
  • What happens when an integration fails?
  • What third-party vendors or internal teams are dependencies?

Assumptions and exclusions

  • What assumptions support the estimate?
  • What is explicitly excluded?
  • What could materially change the number?
  • What decisions are still unresolved?
  • Who owns those decisions?

Estimate type

  • Is this a SWAG, ROM, budgetary estimate, staff plan, timeline estimate, or delivery commitment?
  • Is everyone treating it according to that level of certainty?
  • Has the uncertainty been communicated clearly?
  • Is the estimate a range or a false-precision number?

This checklist will not make every estimate perfect. It will make the uncertainty harder to ignore.

Estimate the work, not the wish

Estimates are necessary. Businesses need budgets. Teams need staffing plans. Procurement needs numbers. Leaders need to make decisions. No one gets to wait until everything is perfectly known.

But the answer is not to pretend unclear work is clear. The answer is to be honest about what the estimate is based on.

Define the capability. Document the assumptions. Name the exclusions. Identify the unresolved decisions. Use ranges where ranges are more honest. Push for discovery when the risk is too high. Treat early estimates like early estimates.

The problem is not that estimates are imperfect. The problem is when organizations forget what the estimate was estimating. Better numbers come from better decisions. The estimate is not the problem. The missing decisions are.