Budgeting
Fixed price vs time and materials: which contract to use
Both pricing models fail in predictable ways. How to tell which fits your work, and how to structure either so the incentives point the same direction.
Key takeaways
- Fixed price transfers risk to the supplier, and they price that risk into the number. You always pay for it — the question is whether you get the certainty you paid for.
- Time and materials is cheaper when scope is genuinely unknown and more expensive when it is used to avoid making decisions.
- The best structure for most work is a sequence of short fixed-price milestones, re-scoped between each.
- Watch the incentives: fixed price rewards doing less, time and materials rewards taking longer. Both are managed by short cycles and visible output.
- Any contract without a written non-goals list will produce a scope argument. This is the single highest-value clause you can add.
Comparing fixed price vs time and materials contracts, buyers want fixed price because it feels safe. Suppliers want time and materials because it feels fair. Both positions are rational, and both models fail in ways that are entirely predictable — which means you can plan around them.
What each model actually does
Fixed price transfers risk to the supplier. They agree to deliver a defined thing for a defined number, and they absorb the overrun if it takes longer.
That risk is not free. Any competent supplier prices in a buffer, so you are paying a premium for certainty. This is a legitimate trade — insurance is a reasonable thing to buy — but understand that you are buying it.
Time and materials keeps risk with you. You pay for effort. If it takes longer, you pay more. The supplier's margin does not depend on estimating well, so there is no buffer in the rate.
Neither is dishonest. They allocate risk differently, and the right choice depends on who is better placed to bear it.
The failure modes
Fixed price fails when scope was unknown at signing. The price was set when least was known, so both parties spend the project arguing about whether things are in scope. The relationship becomes adversarial at exactly the point it needs to be collaborative, and the supplier's rational move is to deliver the minimum defensible interpretation.
Time and materials fails when nobody is deciding. Without a forcing function, scope expands gently, everyone stays busy, and six months later there is a lot of work and no product. This is rarely malice — it is the absence of a decision point.
What works for most engagements
A sequence of short fixed-price milestones, re-scoped between each.
- Each milestone is three to six weeks
- Each has a written specification with non-goals and acceptance criteria
- Each ends with something deployed
- Price is fixed for the milestone, and only for the milestone
- Between milestones, either side can change direction or stop
This gets you the certainty of fixed price on a horizon short enough for the estimate to be real, and the flexibility of time and materials at the boundaries. It also creates a natural exit at every milestone, which is worth a great deal when a relationship is not working.
Fixing scope for four weeks is realistic. Fixing it for six months is fiction, and everyone signing knows it.
When to use each in its pure form
| Situation | Model |
|---|---|
| Well-defined project, stable requirements | Fixed price |
| Discovery or scoping work | Fixed price, small |
| Exploratory product development | Time and materials, capped |
| Ongoing team augmentation | Time and materials |
| Migration with a clear end state | Fixed price |
| Anything where you cannot describe "done" | Time and materials, or do discovery first |
That last row is the important one. If you cannot describe what done looks like, a fixed price is not protection — it is a guess with a signature on it, and the supplier will resolve the ambiguity in their favour because they have to.
A worked example: the same project priced both ways
Numbers make the trade-off concrete. Take a real shape of project — a customer portal with authentication, three core workflows and a basic admin view, roughly a ten-to-fourteen-week build.
Priced fixed. A supplier who has done a paid two-week discovery quotes £95,000 for the full scope, broken into four three-week milestones at roughly £24,000 each, each with its own written acceptance criteria. If a milestone's scope needs to grow mid-way, the change is priced and agreed before work continues — say, an unplanned integration adds £6,000 and one week, agreed explicitly rather than absorbed silently by either side.
Priced time and materials. The same supplier, same team, billing weekly at their day rate. No milestone commitment, so if the client's requirements clarify slowly — common on a first engagement — the same project might run twelve weeks instead of ten, landing at roughly £102,000: modestly more than the fixed quote, because the fixed quote's fourteen-week estimate already priced in a buffer for exactly that kind of drift, and this time the drift happened to be smaller than the buffer.
Priced time and materials, badly managed. Same team, same rate, but without weekly deployed increments or a phase ceiling. Requirements clarify slowly, nobody notices scope creeping because there is no milestone boundary forcing a review, and the project runs eighteen weeks at roughly £153,000 — sixty percent over the fixed quote, for a scope that in hindsight was not much larger than what was fixed-priced.
The pattern in that third scenario is the one worth internalising: time and materials is not inherently more expensive than fixed price. It is more expensive specifically when nothing forces a periodic, explicit scope review — which is exactly what fixed-price milestones build in structurally, and what an open-ended time and materials arrangement has to be deliberately designed to include.
Negotiating either model
A few tactics worth knowing regardless of which model you end up with.
Ask for the discovery phase to be priced separately and kept small. One to two weeks, a few thousand pounds, producing a specification you own regardless of who builds the rest. This is the single highest-leverage negotiation available, because it converts an unknowable six-month quote into a series of known four-week ones.
Push back on any fixed quote that arrived without questions. A supplier who quotes £80,000 after a single call has either padded heavily or has not understood the work closely enough to price it honestly. Either way, the number is not trustworthy, and asking what assumptions it rests on usually reveals which.
On time and materials, negotiate the ceiling, not the rate. Day rates within a market are usually similar across competent suppliers; the thing that actually controls your exposure is the phase ceiling and the review cadence, and that is the term worth spending negotiating energy on.
Ask what happens if either side wants to stop. A good milestone structure makes this cheap and undramatic — you pay for what was delivered and walk away. A contract that makes stopping expensive is optimised for the supplier's revenue, not for your ability to change course, and is worth resisting regardless of pricing model.
Structuring either well
Whichever you choose:
Write the non-goals down. The most valuable clause in the document. Most scope disputes are about unstated assumptions, not broken promises.
Require deployed increments. Not status reports. Working software every week or two is the only reliable signal of progress, under either model.
Define acceptance concretely. Specific enough that two people would independently agree on whether it had been met.
Agree how change is handled. A written change with a price attached, decided explicitly. Not "we'll be flexible" and not "the contract is the contract".
Cap time and materials by phase. A ceiling with a review at the boundary keeps flexibility without giving up control.
How agency pricing models compare beyond these two
Fixed price and time and materials are the two most common agency pricing models, but not the only ones, and knowing the alternatives clarifies why these two dominate.
Value-based pricing — charging based on the value delivered rather than the effort spent — is common in marketing and consulting and rare in software development, because the value of a piece of software is usually not known until well after it ships, which makes it hard to price against at the point of signing. It appears occasionally in the form of revenue-share arrangements for very early-stage work, but it is the exception rather than a real third option for most engagements.
Retainer pricing — a fixed monthly fee for ongoing capacity, rather than for a defined deliverable — suits long-term team augmentation where the relationship is closer to an extension of an internal team than a discrete project. It is really a variant of time and materials with the billing smoothed into equal monthly amounts, and it carries the same need for a review cadence to avoid drift.
Not-to-exceed contracts — time and materials billing with a hard cap, beyond which the supplier absorbs any further cost — attempt to combine the flexibility of hourly billing with the risk protection of a fixed price. They work reasonably well and are underused, mostly because suppliers are reluctant to offer them without the same paid discovery phase that makes an honest fixed price possible in the first place — the cap has to be set from real information, or it just becomes a fixed price with extra steps.
Across all of these, the pattern from earlier in this piece holds: the label on the contract matters less than whether scope was genuinely resolved before pricing, and whether there is a short, forced cycle of review built into however the work is billed.
What to actually optimise for
The pricing model is a smaller lever than founders assume. What determines whether an engagement goes well:
- Whether scope was genuinely resolved before building started
- Whether working software appears frequently enough to catch a wrong direction
- Whether both sides can walk away at a defined point without disaster
Get those right and either model works. Get them wrong and neither does.
How this connects to choosing a partner
The pricing model on offer is itself a useful signal when evaluating a potential development partner, alongside the factors covered in how to choose a software development partner. A supplier who insists on one model regardless of the shape of the work — always fixed price, or always open-ended hours — is often optimising for their own predictability rather than genuinely matching the contract to the risk profile of what is being built. The suppliers worth working with tend to ask about your scope certainty before proposing a model, not after.
This also connects directly to cost. A fixed-price quote is only as trustworthy as the specification behind it, and the format for a specification that supports honest fixed pricing — outcome, constraints, non-goals, acceptance criteria — is the same one described in how we scope a build. Any fixed quote produced without that groundwork is, in effect, time and materials with the uncertainty hidden inside a single number instead of made visible.
What a milestone actually looks like on an invoice
Concretely, so the abstraction lands: a well-structured fixed-price milestone invoice states the milestone name, the acceptance criteria it satisfied, a link to what was deployed, and the agreed price — nothing billed by the hour, nothing requiring you to trust that the hours claimed match the work done. Compare that to a time and materials invoice, which lists hours against a description of activity, and requires you to separately judge whether the hours were reasonable for what got built.
Neither format is inherently better administration — but the fixed-price version ties payment directly to a verifiable outcome, which is why buyers who value predictability over flexibility tend to prefer it once they have seen both in practice. The trade-off is that the fixed-price version only works when the acceptance criteria were genuinely knowable in advance, which loops back to the point this entire piece has been making: the contract format is downstream of how well the work was scoped, not a substitute for scoping it well.
What good looks like in practice
The engagements that go well under either pricing model share a visible pattern: working software appears on a predictable cadence, changes to scope are discussed and priced before they happen rather than discovered afterward, and either side can point to the specification when a disagreement arises rather than relying on memory of a conversation. None of that depends on which contract type is on the letterhead. It depends on whether the discipline behind good scoping — covered throughout this site — was actually followed, with the pricing model simply reflecting how that discipline gets billed.
In one sentence
The pricing model matters less than whether scope was genuinely resolved before it was priced — get that right and either contract type works.
A practical next step
Before your next engagement, write down what "done" looks like for the first milestone specifically, concretely enough that you and the supplier would independently agree on whether it happened. If you can write that sentence easily, fixed price for that milestone is realistic. If you cannot, that is the signal to run a short, capped discovery phase first — under either pricing model, the deciding factor is the same, and it is visible before any contract gets signed.
The contract is downstream of the relationship
However this piece's framework gets applied, it is worth remembering that no contract structure fully substitutes for a good working relationship between client and supplier. The best-structured fixed-price milestone agreement still depends on both sides acting in good faith when something ambiguous comes up, and the most flexible time-and-materials arrangement still works if both sides are honest about progress and problems. Choose the model that fits the work, then invest in the relationship regardless of which one you picked.
One more thing worth saying
The contract exists to serve the work, not the other way round. Choose whichever model lets the actual engineering happen with the least friction, and revisit that choice honestly if it stops working.
Getting this right consistently
Suppliers and clients who get this right, engagement after engagement, are the ones who treat the pricing conversation as downstream of the scoping conversation — never the other way round.
Frequently asked questions
Is fixed price or time and materials better for software development?
Fixed price suits well-understood work with stable requirements and a clear definition of done. Time and materials suits exploratory work where the requirement is discovered by building. Most real projects contain both, which is why a sequence of short fixed-price milestones — re-scoped between each — outperforms either pure model for the majority of engagements.
Why do fixed-price software projects go wrong?
Because the price is set when the least is known. The supplier prices in a risk buffer, and from that moment both sides are arguing about scope rather than solving the problem — every change becomes a negotiation. It works well when the scope is genuinely nailed down beforehand, which requires paid discovery, and poorly when it is used to avoid doing that discovery.
How do I stop a time-and-materials project from running away?
Cap it and review often. Set a budget ceiling per phase, require a deployed increment every week or two, and hold a go/no-go decision at each phase boundary. The risk in time and materials is not dishonesty; it is drift, and drift is only visible if you look at working software rather than status reports.
What is a discovery or scoping engagement?
A short paid piece of work — usually one to two weeks — that produces a specification, an architecture outline and a milestone plan. It is what makes an honest fixed price possible on the work that follows, and it should be structured so the output is useful even if you take it to a different supplier.
Should the specification be part of the contract?
Yes, along with an explicit non-goals list. Most scope disputes are not about what was promised but about what both sides assumed without saying. Writing down what is excluded converts those assumptions into decisions before anyone has spent money on them.
Which agency pricing model is most common?
A hybrid is now the most common in practice, even where it is not labelled as one: a fixed-price or capped estimate for an initial scoping or discovery phase, followed by either fixed-price milestones or time-and-materials billing for the build, with a phase ceiling and regular review. Pure fixed-price for an entire multi-month project, and pure open-ended time and materials with no checkpoints, are both less common among experienced suppliers than they were a decade ago, because both have well-known failure modes that milestone structures avoid.
How do I compare quotes that use different pricing models?
Convert both to an expected total and a worst-case total, then compare the worst cases — that is where the real risk sits. A fixed quote's worst case is the quoted price plus whatever change requests eventuate; a time and materials quote's worst case is the estimated hours at the day rate, multiplied by however much overrun is plausible given the supplier's track record. Asking each supplier directly what their worst-case scenario has looked like on comparable past projects is more informative than comparing the headline numbers.
References & further reading
- [1]Martin Fowler — Fixed Price Contracts and agile delivery ↗
martinfowler.com
- [2]
Related reading
How to choose a software development partner
The questions that predict a good outcome when hiring a development agency, the warning signs worth walking away from, and how to start small.
How much does it cost to build an MVP in 2026?
Real MVP cost ranges for 2026, the five things that move the number, the lines missing from cheap quotes, and how to spot an optimistic estimate.
How we scope a build so it does not run over
The two-page specification format we use before writing code: outcomes, constraints, non-goals and acceptance criteria — and why scoping is now the constraint.