The choice between fixed price and time and materials is usually presented as a question about risk appetite. It is really a question about who absorbs the cost of not knowing, and both answers create an incentive that will shape the project more than anyone's good intentions.
Neither model is dishonest. Both fail in predictable and opposite ways, and knowing which failure you are buying is more useful than picking a side.
What a fixed price actually protects you from
A real benefit, and worth stating properly before criticising it.
You get a number you can take to whoever approves spending. Your exposure is capped. The risk of a bad estimate sits with the people who made it, which is arguably where it belongs. And it protects you from the genuine failure at the other end, where an hourly arrangement drifts for months with no urgency and no obvious moment to stop.
If you cannot assess the supplier, a fixed price is a rational defence against a risk you have no other way to manage. That is a legitimate reason to choose it and it is rarely stated out loud.
What it quietly costs
- You pay the contingency whether or not it is needed. An honest supplier adds a margin for being wrong. If the project goes well, that margin is still in the price and nobody itemises money set aside for problems that did not occur.
- Quality goes where it cannot be seen. When an estimate turns out low, the pressure lands on tests, error handling, accessibility, documentation and the tidying that keeps future changes cheap. None of it is visible at handover. All of it is visible in year two.
- Changing your mind becomes a transaction. The specification is the contract, so improvements sound like invoices and the supplier stops suggesting better ideas because they would absorb the cost.
- Both sides defend a document written when you knew least. The truth about fixed-price quotes covers this mechanism in detail.
What time and materials protects you from
The mirror image, and equally real.
You pay for what is actually done. There is no contingency to fund. Changing direction is a conversation rather than a negotiation, so the project can respond to what you learn, which is the whole point of building software iteratively. And the supplier has no reason to cut corners, because doing the job properly is what they are paid for.
What that quietly costs
- Your exposure is unbounded unless you impose a limit, and by the time a project feels too long you have usually spent enough that stopping feels wasteful.
- There is no natural moment to stop. Fixed price has a finish line. Hourly work has a rhythm, and rhythms continue.
- It rewards thoroughness indistinguishably from slowness. A supplier taking care and a supplier taking their time produce the same invoice, and you frequently cannot tell which you have.
- It requires you to be able to judge progress, which means turning up, looking at working software, and asking questions. If nobody on your side can do that, this model is not protecting you.
Fixed price vs time and materials, side by side
| Fixed price | Time and materials | |
|---|---|---|
| You are protected from | Cost overruns | Paying for padding, and for work you decided against |
| You are exposed to | Paying contingency you did not need, and invisible corner-cutting | Drift, and unbounded spend |
| Changing your mind | A change request and a negotiation | A conversation |
| Supplier's incentive | Finish quickly within scope | Do it properly, at whatever pace |
| Works when | The work is genuinely well understood | You can judge progress and will engage weekly |
| Fails when | There are real unknowns | Nobody on your side is paying attention |
Notice the bottom row. The failure conditions are about you as much as about the supplier, which is the part usually missing from this discussion.
The hybrid that fits most projects
There is a middle, and it is what we use for anything with genuine unknowns. It keeps the budget control that makes fixed prices attractive without pretending the unknowns are known.
- Fix a small piece first. A paid discovery: a fortnight, a modest fixed price, producing a real plan, the technical approach and a properly informed estimate. You own that work whether or not you continue with the same supplier, which is the point.
- Fix the price on what is genuinely known. Plenty of any project is well understood and should be fixed. Nobody needs an open-ended arrangement for a settled set of screens.
- Cap the uncertain part rather than fixing it. A ceiling that will not be exceeded without a conversation, billed on what is used. You get exposure control and the supplier does not need to pad.
- Work in short blocks with a real stop. Two weeks, something working at the end, and a genuine option to end it. This is the strongest protection any buyer has, and it is stronger than a contract clause.
- Agree how changes are handled before you need to. Not a price list. A named decision-maker on each side, and a default that small trades within a block are swapped rather than invoiced.
Point four is the one to insist on. A supplier comfortable with you stopping after two weeks is telling you something about their confidence that no reference call can.
What to put in the contract either way
Most of the pain in both models comes from things nobody wrote down, and the same handful of clauses prevents it regardless of which you choose.
- How a disagreement about bug or change is settled. Everyone hits this. A good contract names who decides rather than pretending it will not arise. Without it, every ambiguity becomes a negotiation at the worst moment.
- What happens to work in progress if either side stops. Not pessimism. The thing you will be grateful for in the one case in ten where it matters, and it should say you keep what has been paid for, in a usable state.
- Who owns the code, the accounts and the domain, in plain words, on final payment. Silence here is the most consequential omission in any software contract.
- The rate for anything outside scope, so that a change request is arithmetic rather than an opportunity.
- How often you see working software, written down as an obligation rather than an intention. On time and materials this is your only real control, and on fixed price it is how you find out early that scope is being trimmed.
- Who the named people are, and what happens if they change. The pitch team and the delivery team diverging is a common and quiet disappointment.
None of these is adversarial and any experienced supplier will find them ordinary. Discomfort with putting them in writing is the most reliable warning sign available to you, and it costs nothing to test.
Which to choose
- A small, fully specified job. Fixed price. Take the certainty, and do not make it complicated.
- A defined system where you know what it must do. Mostly fixed, with the integrations capped, because integrations are where estimates break.
- Something genuinely new. Discovery fixed, then capped blocks. Anything else is a bet by one side or the other.
- Ongoing improvement to something that exists. Time and materials, with a monthly ceiling. Fixed pricing a stream of small changes creates administration that costs more than the changes.
- You cannot assess the supplier. Fixed price, and spend the difference on finding out how to assess them, because that is the actual problem. Twenty questions to ask a development agency is where to start.
A word about day rates
Whichever model you choose, a rate is usually quoted somewhere, and comparing rates between suppliers is close to meaningless without two other numbers.
A higher rate from a smaller, more experienced team frequently produces a lower total than a lower rate from a larger one, because fewer people take fewer hours and make fewer wrong turns. The number that matters is the cost of the outcome, not the cost of an hour. Ask how many people would be on it and for how long, and multiply, before drawing any conclusion from the rate itself.
The second missing number is who you are actually paying for. A blended rate can conceal a team of mostly junior people supervised occasionally, which is a perfectly legitimate model and a different purchase from what you may think you are making. Ask for the names and the split, and ask who will be there in month four.
Not for you if
The question that reveals most about a supplier: ask what they would price this at both ways, and what the difference represents. A clear answer tells you they understand their own risk. An evasive one tells you the number was arrived at some other way.
