Yury Pukhov, YuSMP Group
Yury Pukhov CEO & Software Engineering Lead, YuSMP Group · Delivering custom software for US and EU clients since 2015

TL;DR — the ranged-estimate mindset

Software estimation is not a prediction. It is a structured exercise in quantifying uncertainty. The teams that manage projects well treat every estimate as a range with a confidence level attached, not a committed delivery date carved in stone. The three most useful things to know before you read further:

  • Point estimates are fiction. A single number ("this will take 14 weeks") is a sales figure or a forced commitment. Real estimates are ranges: "8–14 weeks at 70% confidence, 14–20 weeks at 90% confidence."
  • The single biggest lever is scope clarity. Investing 4–6 weeks in a paid discovery phase before writing a line of production code reduces total project cost more reliably than any other action. See our MVP development service for an example of how we structure this phase.
  • Late estimates are cheaper to fix than early ones. Do not commit to a budget at the idea stage. Commit to a range. Then narrow it after discovery.

Why software estimates miss

Software projects are notoriously hard to estimate precisely, and the reasons go deeper than "engineers are optimistic." Understanding the structural causes is the first step to correcting for them.

The cone of uncertainty

Originally described in Barry Boehm's research on software economics, the cone of uncertainty formalises an uncomfortable truth: at the start of a project, when stakeholders most want a firm number, the estimate can be off by a factor of 4x in either direction. That range narrows as scope is defined, architecture is chosen and integration points are mapped. By the end of a solid discovery phase, the cone typically narrows to ±25%. By the time the first sprint is complete, it narrows to ±10%.

The implication is direct: demanding a fixed price at the idea stage is asking for a number that is structurally unreliable. The appropriate response is a range with an explicit confidence level.

Unknown unknowns

Known unknowns — "we are not sure how the legacy ERP exports data" — can be estimated with a risk buffer. Unknown unknowns cannot, by definition, be planned for. They surface mid-build: the payment provider's webhook behaviour differs from its documentation; the identity provider requires a custom SAML attribute that takes two weeks to implement; the regulator adds a new audit log requirement six weeks before go-live. These surprises are not engineer incompetence; they are inherent to building software on top of third-party systems and evolving compliance landscapes.

Scope creep and stakeholder additions

The most common budget killer is not a missed estimate — it is a scope addition that bypasses the change-control process. A stakeholder sees the beta build and requests "just one more" dashboard widget, notification type or integration. Each addition, individually reasonable, compounds. Studies by the Project Management Institute consistently show scope creep contributing to over 50% of project overruns. A well-structured estimate includes a change-control clause that prices any scope addition against the original baseline.

Integration and compliance surprises

Integrating with a third-party API is rarely as simple as its documentation suggests. Rate limits, authentication edge cases, data format inconsistencies and version deprecations add engineering time that compounds across multiple integrations. Similarly, compliance requirements — GDPR data residency, HIPAA PHI handling, SOC 2 audit trails — affect system architecture, not just documentation. If your estimation does not include a dedicated line item for each integration and each compliance requirement, the estimate will miss.

engineering team at a whiteboard breaking down user stories for project estimation
Breaking down user stories into concrete tasks before estimating is the single action that most reliably tightens the cone of uncertainty. A half-day estimation workshop before the sprint plan is cheaper than a month of rework.

Estimation approaches compared

There is no single correct estimation method. The right approach depends on how much is known, team size and the contract model. Here are the four most commonly used approaches and when to reach for each.

Expert / analogous estimation

An experienced engineer or PM produces an estimate based on prior projects of similar scope and complexity. Fast (hours, not days) and useful at the idea stage for ballparking a budget category. Accuracy depends entirely on the quality of the analogue — if the new project resembles past projects closely, expert estimation is reliable within ±30–40%. It breaks down when the new project has novel technology, unusual compliance requirements or a different team composition from the reference project.

When to use: Initial budget conversations, feasibility checks, early-stage investor discussions. Not for contracting.

Three-point (PERT) estimation

Program Evaluation and Review Technique (PERT) improves on expert estimation by requiring three values for each work item: optimistic (O), most likely (M) and pessimistic (P). The weighted expected value E and its standard deviation SD are:

E = (O + 4M + P) / 6
SD = (P − O) / 6

The formula weights the most likely estimate four times more than the extremes, producing a single expected value and a standard deviation you can use to build confidence intervals. Summing SD values across independent tasks (using root-sum-square for independent tasks: √(SD¹² + SD²² + …)) gives a project-level uncertainty band.

When to use: Any estimate you intend to quote to a client or use in a contract. Particularly valuable when integrations or compliance introduce high pessimistic scenarios.

Story-point / velocity estimation

Used within agile teams that have established a historical velocity (story points completed per sprint). Each user story is sized relative to known reference stories using a Fibonacci-like scale (1, 2, 3, 5, 8, 13, 21). Total story points divided by team velocity gives sprint count and therefore calendar time. Highly accurate for teams with 3–6 sprints of velocity history on similar work. Unreliable for new teams, new technology stacks or scope that includes significant research or exploration.

When to use: Ongoing delivery with an established team. Sprint planning and backlog grooming. Not appropriate for initial fixed-price proposals to a client who has never worked with the team.

Bottom-up (WBS) estimation

Work Breakdown Structure (WBS) estimation decomposes the full project into atomic tasks — individual screens, API endpoints, integration connectors, test suites, deployment pipelines — and estimates each individually. The estimates roll up to phase totals and then to a project total. Most labour-intensive (can take 2–5 days for a mid-sized project) but produces the most accurate estimate before build begins. Naturally surfaces gaps in scope definition: if you cannot decompose a work item into concrete tasks, the scope is not yet defined.

When to use: Any project where a fixed-price contract is being considered. Post-discovery, when scope is well-understood. Also useful as a sanity check against expert or PERT estimates.

A practical step-by-step estimation workflow

This is the six-step process we use at YuSMP Group when producing estimates for US and EU clients. It works for projects from $50k MVPs to $500k+ enterprise builds.

  1. Define must-have user stories. Not the wish list — the 20% of features that deliver 80% of the value. Write user stories in the format "As [role], I want [action] so that [outcome]." Every story must have clear acceptance criteria before estimation begins. Stories without acceptance criteria cannot be estimated reliably.
  2. Decompose each story into tasks. Break each user story into concrete engineering tasks: UI component, API endpoint, data model change, test case, integration call. Aim for tasks of 0.5–2 days each. Tasks longer than 2 days hide uncertainty; tasks shorter than 0.5 days carry too much overhead to track meaningfully.
  3. Size each task with PERT. For each task, elicit three estimates (optimistic, most likely, pessimistic) from the engineer who will do the work. Calculate E and SD per task. Record all three values — the pessimistic column is where integration surprises and compliance requirements will live.
  4. Add multipliers for integration, compliance, QA and PM. Integration work: add a separate line item for each third-party API, sized independently. Compliance: if GDPR, HIPAA or SOC 2 is in scope, add 15–35% to the affected subsystems. QA: budget 15–25% of development time for automated testing and manual acceptance testing. PM/communication overhead: 10–15% of total engineering time for a well-run project; up to 20% for projects with many stakeholders or approval layers.
  5. Apply a range and confidence buffer. Do not deliver a single number. Produce three outputs: a P50 estimate (E summed across tasks, no buffer), a P70 estimate (E + 0.5×total SD), and a P90 estimate (E + 1.28×total SD). Present the P70 as the "expected" number and the P90 as the budget ceiling. If the client wants a fixed-price contract, the price should be based on the P90, not the P50.
  6. Validate against analogous past projects. Before delivering the estimate, compare the total against the most similar completed project. If the new estimate is more than 20% above or below the analogous project on a per-story-point or per-engineer-week basis, investigate the discrepancy before presenting. Either the decomposition missed something or the analogy is not as close as it appeared.
product manager reviewing a software estimation spreadsheet with PERT values and confidence ranges
A PERT-based estimation spreadsheet forces three numbers per task, not one. The pessimistic column is where the real risks live — if engineers fill it in honestly, it reveals the true project risk profile before a single line of code is written.

Worked example with PERT table

Scenario: a US healthcare startup needs a patient intake portal — a web app with clinician and patient roles, appointment scheduling, a PDF consent form generator, a lab results viewer (HL7 FHIR API integration) and HIPAA-compliant data storage. No mobile app in scope for phase one.

Below is a simplified PERT estimate for the core features. All values are in engineering days for a senior-to-mid team pair.

Feature / work item Optimistic (O) Most likely (M) Pessimistic (P) PERT E
Auth & role management (clinician / patient)3585.2
Patient profile & intake form3575.0
Appointment scheduling & calendar58148.5
PDF consent form generator2474.2
HL7 FHIR lab results integration6102010.7
HIPAA-compliant storage & audit log47127.3
QA, automated tests & UAT58138.3
Total (engineering days)28478149.2

With a two-engineer team and a 5-day working week, 49.2 engineering days is approximately 5 calendar weeks at 100% allocation. Adding PM and design (15%), discovery work already completed (excluded here) and a 25% contingency buffer for a medium-confidence scope, the P70 delivery window is 7–8 calendar weeks and the P90 ceiling is 10–12 weeks.

At a senior nearshore blended rate of $65/hr (approximately $520/engineer-day), the PERT E cost is $25,584. With the full team including PM and design at 15%, total cost lands at roughly $29,000–$38,000 for the build phase alone — consistent with a well-scoped phase-one MVP. For full project cost context, see our article on custom software development cost in 2026.

Buffers, contingency and confidence levels

A buffer is not padding. It is an honest representation of estimation uncertainty. The right buffer percentage depends on how well the scope is known at the time of estimating.

  • High confidence (post-discovery, full WBS): 15–25% buffer on the PERT E total. Appropriate when every integration has been prototyped, compliance requirements are documented and no major technical unknowns remain.
  • Medium confidence (requirements defined, some integrations untested): 30–40% buffer. The most common situation for mid-market projects at the point of contract signing.
  • Low confidence (idea-stage, novel tech, many unknowns): 50% or more — or deliver the estimate as a range only, without a fixed number. A budget conversation at this stage should establish a spending envelope, not a delivery commitment.

For large projects, consider staging the contingency: release 50% of the buffer into the schedule at contract signing, hold 50% in reserve for the post-beta phase when the real integration and compliance surprises tend to surface.

One useful framing for client conversations: instead of "the project costs $X," present three scenarios — "if everything goes as planned, $X; if we hit the expected surprises, $Y; if we hit the worst-case integration scenario, $Z." Clients who understand the range make better decisions about scope prioritisation and timeline trade-offs than clients who have been given a single number.

Fixed-price vs T&M: who carries the estimation risk

The contract model fundamentally changes where estimation risk sits. This is one of the most consequential decisions in a software procurement, yet it is often made without understanding the risk transfer it implies.

Fixed-price contracts transfer schedule and cost risk to the vendor. The vendor absorbs any estimation error that falls within the contract scope. This sounds attractive to clients — but vendors compensate by pricing against the pessimistic scenario (P90), not the expected value (P70), and by defending scope rigorously. If your requirements evolve during the build — as they almost always do — every change request triggers a change-order negotiation. Fixed-price works best when scope is genuinely stable, fully defined and unlikely to evolve. That condition is rare outside of well-scoped, post-discovery phase-one builds.

Time-and-materials (T&M) transfers estimation risk back to the client. The vendor invoices for actual hours worked at agreed rates. Clients retain full flexibility to change priorities, add scope or stop early — but bear the cost of any scope additions and estimation misses. T&M works well for evolving products, ongoing development relationships and research-heavy phases where the output is knowledge, not a fixed deliverable.

The model we see work best for mid-market US and EU clients: a fixed-price discovery phase (4–6 weeks, $15,000–$30,000) followed by milestone-based sprints under T&M with a monthly budget cap. This gives clients the cost certainty they want at the planning stage and the flexibility they need during the build. For a full comparison of engagement models, see our article on time and materials vs fixed price vs dedicated team.

The estimation implications are direct: for a fixed-price proposal, base your price on P90 and include a clearly defined change-control process. For T&M, quote the P50 as the expected monthly burn rate and communicate the P90 as the ceiling to plan budget against.

Red flags in vendor estimates

When you are on the buyer side evaluating vendor proposals, these five patterns indicate an estimate that will not survive contact with reality.

A precise fixed price with no discovery phase

If a vendor quotes a precise fixed price on a complex system before spending any time understanding your data model, integrations and compliance requirements, they are either guessing or planning to cut scope to hit the number. A reputable software development partner will quote a fixed price for a discovery phase first, then provide a fixed price for the build after that phase produces a detailed scope document.

No ranges anywhere in the proposal

Real estimates always carry uncertainty. A proposal that presents a single delivery date and a single price with no stated confidence level is a sales document, not an engineering estimate. Ask the vendor to show you their optimistic, most likely and pessimistic scenarios. Their willingness to do so is a signal of technical maturity.

Integrations listed as a single line item

Each integration with a third-party system — payment processor, CRM, ERP, identity provider, data provider — deserves its own line item with its own uncertainty range. A proposal that lists "3 integrations" as a single $5,000 row has not been decomposed at the integration level. The HL7 FHIR example above illustrates why: one integration can swing a project by two months.

Compliance treated as documentation overhead

GDPR data residency, HIPAA PHI handling, SOC 2 audit logging and PCI-DSS card data requirements change system architecture. They are not documentation exercises you layer on at the end. If a proposal mentions GDPR in a single bullet point with no separate cost line, the vendor has not actually thought through what compliance means for your data model, encryption requirements and access control design. For a detailed treatment of how compliance affects build cost, see our HIPAA software development checklist.

No maintenance or post-launch line item

Every production system needs ongoing maintenance from day one: security patches, dependency upgrades, monitoring, incident response. A proposal that ends at "launch" and includes no post-launch cost model is presenting an incomplete picture of the total cost of ownership. Industry benchmarks put annual maintenance at 15–20% of the original build cost. If that number is not in the proposal, ask where it went — and factor it into your total-cost evaluation. For a full cost model including maintenance, see our guide to custom web app development cost and our companion article on MVP cost in 2026.

FAQ

Why do software project estimates so often miss?

Software estimates miss primarily because of the cone of uncertainty: early in a project, when estimates are demanded, only 5–20% of the scope is actually known. The most dangerous driver is unknown unknowns — integrations that turn out to be undocumented, compliance requirements discovered mid-build, third-party APIs that behave differently than their documentation promises. Estimates also drift when scope is added without a corresponding budget conversation.

What is the PERT estimation formula?

PERT calculates a weighted expected value as: E = (O + 4M + P) / 6, where O is the optimistic estimate, M is the most likely and P is the pessimistic. The formula weights the most likely value four times more than the extremes. It also yields a standard deviation of (P − O) / 6 that lets you build 70% and 90% confidence intervals around the expected value.

What contingency buffer should I add to a software estimate?

Buffer size depends on how much is known. After a paid discovery phase with a full WBS, 15–25% is appropriate. For a medium-confidence scope, 30–40%. For an early-stage idea with many unknowns, 50% or more — or deliver as a range rather than a point figure. Buffers represent honest uncertainty, not vendor padding.

When should I use fixed-price vs time-and-materials?

Fixed-price works when scope is fully defined and stable — typically after a paid discovery phase. It transfers cost and schedule risk to the vendor, who prices against the pessimistic scenario. T&M is better for evolving scope, ongoing development or research-heavy phases. The hybrid model that works best for most mid-market clients: fixed-price discovery, then milestone-based T&M for the build.

What are the red flags in a vendor software estimate?

Five red flags: (1) A precise fixed price on a complex system with no discovery phase. (2) No ranges — a single number with no confidence band is a sales figure, not an estimate. (3) Integrations collapsed into a single line item. (4) Compliance treated as documentation overhead rather than an architectural concern. (5) No post-launch maintenance line — every production system needs ongoing maintenance budgeted from day one.

Last updated 11 June 2026. Estimation ranges and multipliers reflect YuSMP Group's delivery experience on US and EU client projects since 2015. Individual project estimates vary; contact us for a scoped assessment of your specific build.