Skip to content
LPR Studio
FREN
Contact us

BudgetMethodChoosing a vendorFixed price

How to estimate a software project: a buyer’s guide to reliable numbers

10 min read

To estimate a software project, a development team breaks the requirement down into features, sizes each one against similar past work, adds the items buyers tend to forget (integrations, data migration, testing, deployment) and applies a buffer proportional to what is still unclear. The result is only as reliable as the brief behind it. When two quotes differ widely, they are almost always pricing two different projects. The best way to get an accurate number is to remove ambiguity before asking for a price, not to collect more quotes.

This guide is written for the person signing off the budget: a founder, an operations director, a business owner. It explains how estimates are built on the vendor side, why they go wrong, and what you can do to make yours more dependable.

Estimate, quote, commitment

Three different things tend to get called "the price":

  • an estimate is an assessment of effort and cost, with a margin of error. It commits nobody;
  • a quote (or proposal) is a commercial offer for a described scope, with terms attached;
  • a commitment is what the contract actually guarantees: a price for a scope under a fixed-price contract, or a rate per day or hour under time and materials.

A number mentioned in the first call is an estimate, however confidently it is delivered. Until it is tied to a written scope, it is not a commitment. Our comparison of fixed price and time and materials explains who carries the risk under each model.

How vendors actually estimate

Behind most quotes sits a mix of the same few techniques.

TechniqueHow it worksWhen it helpsWeak spot
AnalogyCompare with similar projects already deliveredVery early, for a ballparkOnly as good as the comparison
Bottom-upBreak into features and tasks, size each oneAfter discoveryMisses whatever is not listed
Three-pointSize an optimistic, likely and pessimistic caseUncertain tasksNeeds honesty about the worst case
Team estimationSeveral developers size independently, then compareComplex featuresTakes team time
Fixed budgetSet the budget, then shape the scope to fitWhen money is the real constraintScope becomes the variable

Agile teams often size work in relative units such as story points before converting to time. The unit matters less than the habit behind it: estimating in small pieces, comparing against real past delivery, and re-estimating as you learn.

The breakdown that drives the number

A solid bottom-up estimate goes beyond the visible features. It covers:

  • features: data entry, search, approvals, calculations, exports, notifications;
  • roles and permissions: who sees what and who approves what;
  • integrations: ERP, accounting, CRM, payments, e-signature, single sign-on;
  • data migration: from spreadsheets, a legacy system, an Access database;
  • non-functional requirements: security, backups, performance, audit logs, privacy compliance;
  • delivery work: design, QA, bug fixing, deployment, documentation, training.

The last two groups are the ones most often missing from a quick estimate, and the ones most likely to come back later as change requests.

The risk buffer

An honest estimate does not just add up tasks. It includes a buffer for what is still unknown, larger where the brief is vague: an integration with an API nobody has looked at yet, a pricing rule described in one sentence, a data migration that has never been tested. That buffer is not padding. A vendor who leaves it out will usually recover it later, through change requests or through quality.

Why early estimates are wrong

Estimation uncertainty shrinks as a project gets defined. Software engineers call this the "cone of uncertainty", popularised by Steve McConnell in Software Estimation: Demystifying the Black Art (Microsoft Press, 2006), building on Barry Boehm’s work from 1981. According to Construx, McConnell’s firm (accessed 6 November 2026), an estimate made at the initial concept stage can end up as much as four times too high or four times too low, and the range narrows as product definition and requirements are settled.

Two caveats. The bounds reflect the authors’ experience rather than a measured dataset, so treat them as an order of magnitude. And the cone does not narrow on its own with the passing of time. It narrows because decisions get made: which screens, which rules, which integrations, what is out of scope. A project that keeps moving without those decisions stays at the wide end of the cone, months in.

The practical takeaway: a precise number in the first meeting is not a sign of competence. Often it is the opposite.

What really drives the cost

The same one-line description ("a field service app", "a customer portal") can hide very different budgets. The usual swing factors:

  1. Business rules and their exceptions. A two-step approval flow is quick to build. The same flow with delegation, thresholds by amount and customer-specific exceptions takes several times longer.
  2. Integrations. Each connection depends on the quality of the other system’s API, its documentation and access to a test environment.
  3. Data migration. Exporting is rarely the hard part; cleaning duplicates and repurposed fields is.
  4. Roles and permissions. Three roles and twelve roles are not the same product.
  5. Availability and security requirements. An internal tool for ten staff and a platform open to your customers need different levels of rigour.
  6. Mobile and offline use. Field data entry without a connection adds sync logic and edge cases.

For ballpark figures by type of application, see our guide to what a custom business application costs.

Why quotes for the same project diverge

Source of the gapWhat happensHow to spot it
Different assumptionsEach vendor fills the gaps in its own wayAssumptions are missing or differ
Hidden scopeQA, deployment or migration not pricedLook for those lines in every quote
Pricing modelBinding fixed price versus a T&M estimateRead what is guaranteed, not the total
Risk bufferMissing in one, explicit in anotherAsk how risk was priced
Quality levelAutomated tests, code review, documentationAsk what you get besides code
After launchHosting and support included or notCompare cost over several years

The cheapest quote is not necessarily the cheapest project, and the most expensive is not necessarily the safest. Our guide on how to compare software development quotes shows how to put several proposals into one grid.

What you can do to get a reliable estimate

The quality of an estimate depends first on what you hand over. In rough order of impact:

Describe the problem before the solution

Explain how work happens today: who does what, with which tools, how often, where time is lost. Vendors estimate a real process far better than a feature wish list drafted in a meeting.

List the rules and their exceptions

"The manager approves orders" is not enough. Above what amount? What happens when the manager is away? Can an approved order be edited? Every exception known up front is a change request avoided. Our software development RFP template gives a structure for this.

Name the systems to connect and share sample data

The name and version of your ERP, whether it has an API, an anonymised export of the data to migrate: these turn a line priced on gut feel into a task that can actually be sized.

Separate must-haves from nice-to-haves

Label each feature as needed on day one, needed later, or comfort. Ask for an estimate per block. You can then trade scope without a full re-quote, and start with a shorter first release. Our article on what to build first in an MVP helps with that cut.

Show instead of describe

A screen is worth a page of text. A rough wireframe, or better a clickable prototype, surfaces misunderstandings before pricing: a missing field, a useless screen, a flow users will not follow. It is the quickest way down the cone of uncertainty. See prototype vs MVP vs POC for what each one proves.

Share your budget

Many buyers hide it, fearing the vendor will simply match it. That rarely pays off: without a budget, every vendor imagines a different solution and the quotes cannot be compared. With one, a good vendor tells you what fits and what does not.

How to read the estimate you receive

A serious estimate includes at least:

  • a range, or a firm price tied to a precise scope;
  • written assumptions;
  • explicit exclusions;
  • a breakdown by feature block, so you can make trade-offs;
  • the items beyond coding: design, QA, deployment, hosting, support;
  • what would move the price, and in which direction.

Always ask: "what would push this from the low end to the high end of the range?" The answer tells you where the risk sits, and often which decisions to make now to reduce it.

Common buyer mistakes

  • Demanding a fixed price on a vague brief. The vendor protects itself with a large buffer or a narrow scope, and you pay for one or the other.
  • Negotiating the number down without touching the scope. The work does not shrink; only the safety margin disappears.
  • Forgetting the years after launch. Hosting, maintenance and new features cost money every year.
  • Confusing effort with calendar time. Twenty days of effort do not ship in twenty calendar days once reviews, QA and your own availability are counted. Our article on how long it takes to build an app covers the gap.
  • Never re-estimating. The first-meeting number is obsolete once discovery is done.

When a precise estimate is the wrong goal

For some projects, chasing an exact number costs more than the error it avoids: a simple tool whose scope fits on one page, or a new product whose right features nobody, you included, knows yet. Two healthier approaches:

  • work to a fixed budget: set the money and the date, then build the best version that fits, prioritising ruthlessly;
  • move in short steps: ship a useful first release, learn from real users, then estimate the next step from what you learned.

You do not have to pay everything up front either. Development can also be funded through a monthly subscription, which shifts the question from "how much will it cost to build?" to "what does it deliver each month?".

Where to start

  1. Write one page on the problem, the users, the current tools and your budget.
  2. List the rules and exceptions you already know.
  3. Prepare sample data and the names of the systems to connect.
  4. Make the requirement visible before asking for a firm price.

For that last step, we build a free visual prototype, presented over video within 5 working days. You see the screens and flows before any pricing, and the estimate that follows covers what you approved rather than a written description.

Frequently asked questions

How accurate can an early software estimate be?

Not very. At the idea stage, an estimate can turn out several times too high or too low, and the range only narrows as decisions are made about screens, rules, integrations and exclusions. Ask for a range rather than a single figure, along with the assumptions that would move the project from the low end to the high end.

Why do software development quotes for the same project vary so much?

Because each vendor is really pricing a different project. Every gap in the brief gets filled with that vendor’s own assumptions about user roles, integrations, data migration, testing, deployment and support. Pricing model and risk buffer add further spread. Compare the written assumptions and exclusions first, and the totals only after that.

Should I pay for a discovery phase before getting a fixed price?

For a small project with a clear scope, a free estimate is usually enough. For complex business rules or several integrations, a paid discovery phase is worth it: it produces a scope you can take to any vendor. Check that the deliverables are yours to keep and are usable by another team.

Should I tell vendors my budget?

Usually, yes. Without a budget, each vendor imagines a different solution and the quotes become impossible to compare. With one, a good vendor tells you what fits inside it and what does not, and suggests what to cut or defer. Vendors who simply inflate their price to match your number are easy to spot when you compare scope.

Does AI-assisted coding make software projects cheaper to build?

It speeds up writing code, especially repetitive code, but not understanding the business, designing the product, reviewing, testing or running it in production. A credible estimate reflects those gains where they apply. The items that usually blow a budget, vague rules, integrations and data migration, are not solved by faster typing.