Define what the price includes before comparing numbers
Comparing web-development quotes is fundamentally unlike comparing quotes for a physical product or a standard service. Two suppliers can return wildly different figures for what appears to be the same brief, and neither figure may be wrong. The difference usually lies in what each supplier assumed was included, excluded, or left for later.
The headline price is the least informative part of any quote. A lower number often means a narrower interpretation of your requirements, fewer included activities, or a pricing model that shifts risk back to you later. A higher number may reflect a more thorough discovery phase, clearer acceptance criteria, or a support period the other supplier omitted entirely.
| Cost area | What to quantify | Budget control |
|---|---|---|
| What a quote should actually contain | A quote that is useful for comparison needs to state more than a total. | A named owner, current-state evidence, unresolved questions and a dated decision record. |
| Fixed price versus estimates | A fixed-price quote looks reassuring but only protects you if the scope is locked down with precise acceptance criteria. | Documented assumptions, exclusions, ranges, approval limits and actual-versus-plan reporting. |
| Building a comparison framework | Rather than lining up totals, build a table that maps each quote against the same set of categories. | A named owner, current-state evidence, unresolved questions and a dated decision record. |
| Normalising different pricing models | When one quote is fixed price and another is day-rate based, direct comparison requires converting them to a common basis. | A named owner, current-state evidence, unresolved questions and a dated decision record. |
What a quote should actually contain
A quote that is useful for comparison needs to state more than a total. Look for:
- Scope definition: which features, processes and integrations are included and, critically, which are explicitly excluded.
- Assumptions: what the supplier took as given — for example, that your team will provide content, that existing APIs are documented, or that a third-party service will be available.
- Deliverables: what you receive at the end — source code, documentation, access credentials, training materials, data-migration scripts.
- Acceptance criteria: how you and the supplier will agree the work is complete. Without this, "finished" means different things to each party.
- Pricing model: fixed price, time and materials, or a hybrid. Each allocates risk differently.
- Post-delivery terms: what support, bug fixes or warranty period is included, and what triggers additional charges.
- Ownership and IP: who owns the source code, design assets and any reusable components.
If a quote arrives as a single figure with a brief description, it is not yet comparable. You need enough detail to understand what is behind the number before you can place it next to another.
Fixed price versus estimates
A fixed-price quote looks reassuring but only protects you if the scope is locked down with precise acceptance criteria. If the quote is fixed but the scope is vague, you will still face change requests — the fixed price simply moves the negotiation to a later, more pressured stage.
A time-and-materials estimate, or a quote broken into phases with variable elements, can be more honest about uncertainty. The trade-off is that your total cost is not capped. Some suppliers offer a hybrid: a fixed price for discovery, then fixed prices for subsequent phases once the scope is clearer.
Building a comparison framework
Rather than lining up totals, build a table that maps each quote against the same set of categories. For each supplier, note what is included under headings such as discovery, design, development, testing, data migration, deployment, documentation, training and post-launch support. Leave cells blank where a quote is silent — silence is itself information, because it usually means the item is excluded.
Once the table is complete, you can see where the real differences lie. One supplier may have included user-acceptance testing support while another left it to your team. One may have allowed for data-migration work that the other assumed you would handle internally.
Normalising different pricing models
When one quote is fixed price and another is day-rate based, direct comparison requires converting them to a common basis. For the day-rate quote, multiply the proposed rate by the estimated number of days, then add any stated buffers or contingency allowances. Check whether the day-rate quote includes project management, QA and deployment time, or whether those are separate line items that would need to be added.
For fixed-price quotes, check whether the price is genuinely fixed or subject to revision if the discovery phase reveals additional requirements. A "fixed price" that can be revised after phase one is, in practice, not fixed.
Checking quotes against your requirements
Take each quote and go through your requirements document line by line. Mark every requirement that the quote explicitly addresses, every one that is ambiguous, and every one that appears to be missing. If you have not yet written a requirements document or specification, the quotes you receive will be based on each supplier's interpretation of a conversation — and those interpretations will differ.
This is also the stage to check integration scope. If your system needs to connect to an existing CRM, accounting package or internal database, verify that each quote covers the integration work, the data mapping, and any middleware or API development required — not just a line saying "integration with X" without further detail.
Questions to send back to suppliers
After your initial comparison, send the same set of clarification questions to each supplier. Consistent questions produce comparable answers. Useful questions include:
- What specific items are excluded from this quote that you would expect to be required?
- How do you handle changes to scope after the quote is accepted?
- What does your acceptance process look like — who decides the work is complete?
- What support is included after go-live, and for how long?
- Who owns the source code, and will we receive full repository access?
- What documentation will be provided at handover?
- What access will we have to the hosting infrastructure, databases and monitoring tools?
How a supplier responds to these questions tells you as much as the answers themselves. Evasive or vague responses about ownership, access or support terms are a meaningful signal.
Where the work usually goes wrong
Comparing only the headline number. This is the most frequent error. A quote that is 30% lower but excludes data migration, user testing, documentation and post-launch support will almost certainly cost more in practice — and the additional spend will happen at a point where you have less leverage to negotiate.
Assuming silence means inclusion. If a quote does not mention security testing, performance testing, or accessibility compliance, those activities are almost certainly not included. Suppliers are not going to volunteer unpaid work.
Ignoring the change-control process. Every project changes. The question is what happens when it does. A quote with no stated change-control process leaves the mechanism entirely to the supplier's discretion. A quote that describes a clear process — even a simple one — gives you a basis for managing variations fairly.
Overlooking ownership and exit terms. The quote is your first opportunity to see how the supplier views your relationship. If the quote states that source code is licensed rather than assigned, or that proprietary frameworks will be used without disclosure, those terms will affect your ability to move to another supplier later. These are not minor details to resolve after signing.
Limitations of quote comparison
Quote comparison can only be as reliable as the brief you provided. If your requirements are vague, each supplier will fill the gaps with their own assumptions, and you will be comparing different projects rather than different prices for the same project. Investing in a clear specification or a paid discovery phase before requesting quotes significantly improves the comparability of what comes back.
There is also a limit to what a quote can tell you about execution quality. Two suppliers may quote the same scope for similar figures, yet deliver very different results in terms of code quality, system reliability and long-term maintainability. Quote comparison should be one input alongside reference checks, technical assessment and evaluation of the proposed team.
Key checks before accepting a quote
- Exclusions list: Is there one? If not, ask for one. A supplier who cannot articulate what is out of scope has not thought through the boundary carefully.
- Assumptions document: Are the assumptions reasonable and aligned with your actual situation? An assumption that your existing API is stable and well-documented may not hold, and the cost of working around a fragile API should be surfaced, not hidden.
- Acceptance criteria: Are they specific enough that a neutral third party could determine whether they have been met? Vague criteria such as "system works as expected" provide no protection.
- Source-code ownership: Does the quote confirm full assignment, or does it reference a licence? If proprietary components are included, are they identified and are the licence terms disclosed?
- Infrastructure and access: Will you have direct access to servers, databases, domains, SSL certificates and monitoring dashboards, or will everything be mediated through the supplier?
- Support and maintenance: Is there a defined period, a clear scope of what is covered, and a stated mechanism for ongoing support after that period?
- Data migration: If you are moving from an existing system, is migration scoped, costed and accepted as the supplier's responsibility, or is it assumed to happen separately?
Separate approved scope from contingency
Once you have worked through these checks, the relative value of each quote becomes considerably clearer. The decision may still not be straightforward — a higher quote from a supplier with stronger answers on ownership, access and support may represent better long-term value than a lower quote that leaves those questions unanswered. The aim of comparison is not to find the cheapest option, but to understand what each price actually buys.