Skip to content
Grocito
← All posts

Software Development Estimates: How to Read and Compare

By Grocito

Software Development Estimates: How to Read and Compare

Software development estimates differ between vendors mainly because each one has made different assumptions about scope, quality, integrations and who does what. To compare them fairly, put every estimate against the same written brief, check what is included and excluded, look at the stated assumptions, and prefer a clear range with a change process over a single confident figure.

Key takeaways

  • Two estimates for the same idea can both be honest, because they rest on different assumptions. The assumptions matter more than the headline figure.
  • A good estimate lists deliverables, assumptions, exclusions, acceptance criteria and how changes are handled.
  • Early estimates are ranges. Uncertainty shrinks as you learn more, which is why a short discovery phase often pays for itself.
  • Fixed price, time and materials and milestone models each shift risk in a different direction. Choose on purpose.
  • A very low estimate with no assumptions is usually a sign that something has been left out, not that the vendor is more efficient.

Why do software development estimates vary so much?

A software estimate predicts work that has not been done yet, written by people who do not yet know everything about your business. Each vendor fills the gaps differently. One assumes you will supply final designs, another includes design work. One plans automated testing, another assumes you will test manually. One counts a payment integration as a day or two of work, another has built it before with failure handling, refunds and reconciliation.

Other reasons for the spread:

  • Team shape. Senior people cost more per day but often finish faster with fewer expensive mistakes.
  • Quality bar. Security reviews, accessibility and documentation take time that a cheaper estimate may skip.
  • Risk allowance. Some vendors build in contingency, others leave it out and raise it later as a change request.

Our guide to what drives the cost of a business website walks through the same effect on a smaller scale.

What actually drives the scope of a software project?

Scope is the list of things the finished product must do, and how well it must do them. The main drivers are:

  1. Features. Not just how many, but how deep. A "user login" can mean an email and password form, or single sign-on, roles, password recovery, audit logs and multi-factor authentication.
  2. Integrations. Every connection to a payment provider, CRM, accounting package or shipping service brings extra design, testing and ongoing maintenance, and depends on someone else's system behaving as documented.
  3. Design depth. A clean template-based interface, a fully custom design system and a rich animated experience are very different amounts of work.
  4. Data migration. Moving existing records into the new system involves mapping, cleaning, trial runs and checking. It is frequently under-estimated.
  5. Non-functional requirements. Speed, security, availability, accessibility, audit requirements and the number of expected users all shape the architecture and the testing effort.
  6. Platforms. Web only, web and mobile, or several operating systems each multiply the work.

If these are not written down, each vendor will silently choose their own answer. A written brief fixes that; see how to write a software project brief.

Fixed price, time and materials or milestones: which suits you?

Fixed price

You agree a price for a defined scope. It gives budget certainty, but only if the scope is genuinely stable. Vendors usually protect themselves with detailed exclusions and a strict change process, so anything not written down becomes a paid change. It works well for small, well-understood projects.

Time and materials

You pay for the effort actually spent, usually with a team size and an agreed reporting rhythm. It suits uncertain or evolving work because you can change direction without renegotiating. The trade-off is that the budget is less certain, so you need a cap, regular reporting and a client who prioritises firmly.

Milestone-based

The work is split into stages with a payment tied to each one. It aligns payment with visible progress and reduces risk for both sides, provided milestones are defined by outcomes you can check, not by dates.

Retainer

A fixed monthly capacity for ongoing development and support, which suits products that keep changing after launch.

Many projects mix models: a fixed-price discovery phase, then milestones or time and materials for the build.

What should a good estimate contain?

Use this as a checklist when a proposal arrives.

  • Scope summary in plain language that you could explain to a colleague.
  • Deliverables: what you will actually receive (software, source code, documentation, designs, training).
  • Assumptions: for example, that your team will supply content, that a third-party service has a working test environment, or that decisions will be made within a set time.
  • Exclusions: what is deliberately not included, such as data migration, copywriting or hosting.
  • Acceptance criteria: how both sides will agree that a feature is done.
  • Timeline with dependencies, including what the vendor needs from you and when.
  • Change process: how new requests are assessed, priced and approved.
  • Payment schedule and what triggers each payment.
  • Ongoing costs: hosting, licences, support and maintenance after launch.

An estimate that is one page and one number is a guess, not a proposal.

Ranges and the cone of uncertainty

At the very start of a project, the honest answer to "how long and how much?" is a wide range. This is sometimes called the cone of uncertainty: early on, the possible outcomes are spread widely, and as decisions are made, designs are agreed and unknowns are tested, the range narrows.

In practice, this means:

  • Be wary of a precise figure given after one short call.
  • Ask for a range with the assumptions behind the low and high ends.

Discovery and technical spikes

A discovery phase is a short, paid piece of work before the main build. It typically produces a prioritised feature list, wireframes, an architecture outline and a firmer estimate. A spike is a small time-boxed experiment to answer one risky question, such as whether a third-party API can really do what you need. Both cost something, but they are cheaper than finding out halfway through a build.

How to compare estimates like with like

Before choosing, normalise the proposals.

  1. Give every vendor the same brief and the same answers to questions.
  2. Put the estimates side by side in a table with the same rows: features, integrations, design, testing, migration, deployment, training, support.
  3. Mark every row where one vendor has included something and another has not.
  4. Compare the assumptions line by line. Ask each vendor what happens if an assumption turns out to be wrong.
  5. Check the team: who is doing the work, their experience and how much of their time you get.
  6. Compare the commercial terms: change process, payment schedule, ownership of code, and what happens at the end.

Our article on how to choose a web development agency covers the wider selection process.

Red flags in an estimate

  • Much lower than every other proposal, with no explanation.
  • No assumptions or exclusions listed anywhere.
  • No questions asked about your business before pricing.
  • A single figure for a large, vaguely defined project.
  • Pressure to sign quickly because a discount expires.
  • No change process, or no mention of testing, security or handover.

Managing scope creep and payment milestones

Scope creep is the gradual addition of small requests that nobody priced. It is not always the client's fault; unclear scope invites it. To keep control:

  • Keep a visible, prioritised backlog and agree that anything new goes into it first.
  • Use a short change request: what, why, impact on cost and timeline, and a clear yes or no.
  • Trade rather than add: if something new comes in, ask what can move out.

For payment milestones, tie each payment to something you can verify, such as an approved design set, a working feature in a test environment, or a completed migration trial. Avoid terms so front-loaded that the vendor loses interest, or so back-loaded that a good vendor cannot afford to work for you.

A worked example

Imagine a distribution company asking three vendors to quote for a customer ordering portal. Vendor A gives the lowest figure on a single page. Vendor B gives a middle figure with a detailed feature list and three stated assumptions. Vendor C gives the highest figure but proposes a short discovery phase first. When the company puts the proposals in a table, it finds Vendor A has left out data migration, testing and the integration with the accounting package. Vendor B has assumed the company will supply product images. Vendor C is the only one who has asked how orders are approved internally. The company picks Vendor C for discovery, then decides how to proceed once the range has narrowed.

FAQ

Why are software development estimates so different?

Vendors make different assumptions about scope, quality, team and risk. One may include design, testing and migration while another leaves them out. Compare the assumptions and exclusions, not just the total.

Is a fixed-price software quote safer than time and materials?

A fixed price gives budget certainty only when the scope is stable and clearly written. If requirements are likely to change, a fixed price tends to produce disputes over what is included, and a milestone or time and materials model with a cap may serve you better.

How accurate are early software estimates?

They are ranges, not promises. Accuracy improves as designs are agreed and unknowns are tested, which is why many teams run a short discovery phase before committing to a full build.

What should I do if a quote is much cheaper than the others?

Ask the vendor to walk through the assumptions, exclusions, team and testing approach. A low price is fine when the scope is genuinely the same, but often it means something has been left out and will appear later as a change request.

Related reading

Next steps

Write a short brief, send it to two or three vendors with the same questions, and compare the answers in a single table. If you would like a second opinion on a proposal you have received, or help scoping a project, contact us and we will review it with you.

More from the blog

Let's build together

Ready to take your business to the next level?

Tell us what you need. We will reply within one business day with next steps.