Fixed Price vs Time & Materials — Which Contract Model Works Better for Backend Projects
by Eric Hanson, Backend Developer at Clean Systems Consulting
The fixed price project that cost twice as much
Your company engaged a contractor to build a REST API for a new product feature. Fixed price: €25,000. Scope: "a backend API supporting the product spec attached." Four months later, the work is delivered but the spec evolved three times during development. Each evolution triggered a change request. Change request #1: €4,000. Change request #2: €6,500. Change request #3: €8,000. Total cost: €43,500 — 74% over the original fixed price. The fixed price contract created an adversarial relationship over scope definitions and produced a lower-quality outcome than either party wanted.
This is the modal outcome for fixed price backend projects with requirements that are not genuinely frozen at contract signature. Understanding why requires understanding what each contract model actually incentivizes.
What fixed price contracts actually do
A fixed price contract is a risk transfer instrument. The client knows the cost upfront; the contractor absorbs the risk of scope uncertainty, estimation error, and implementation complexity. In exchange for absorbing that risk, the contractor prices in a risk premium — typically 20-40% above their honest estimate for a comparable T&M engagement.
For the contractor, fixed price creates a strong incentive to: interpret scope narrowly (every ambiguity resolves in their favor), minimize implementation quality where it is not visible in the acceptance criteria, and raise change requests for any work that was not explicitly specified. These are rational responses to the incentive structure, not ethical failures.
For the client, fixed price creates: cost certainty before project start, a formal change control process that creates friction for legitimate requirement evolution, and an adversarial dynamic on scope questions.
Fixed price works when: the scope is genuinely, completely specified before the contract is signed; the implementation is well-understood enough that estimation error is small; and the requirements will not evolve during the engagement. These conditions are met in a narrow class of backend projects.
# Fixed price is appropriate when you can answer YES to all of these:
□ Full technical specification exists before contract signing
□ Acceptance criteria are unambiguous and measurable
□ Requirements are frozen — no expected evolution
□ The work type is familiar enough that estimation variance is <20%
□ You have capacity to enforce scope formally (legal overhead)
Data migration from a well-specified source schema to a well-specified target schema with defined validation rules: this is a legitimate fixed price project. The scope is measurable, the acceptance criteria are binary (data matches within defined tolerance), and requirements do not evolve.
A new API for a product feature still being designed: this is not a legitimate fixed price project. You will pay the change request premium for every discovery during development.
What time and materials contracts actually do
T&M contracts pay the contractor for time worked, at an agreed daily or hourly rate, for actual deliverables. The client absorbs the risk of scope uncertainty — if requirements evolve or estimation was wrong, the client pays the additional hours. In exchange, the client gets: no risk premium baked into the rate, a contractor incentivized to do good work (their next engagement depends on reputation), and flexibility to change direction without formal change control.
The genuine risk for the client is unbounded cost and a contractor who lacks urgency. Without oversight, T&M can drift — a project estimated at 60 days takes 110 days, and the client is accountable for all of it. Active engagement management is required.
# T&M risk mitigation for clients
- Weekly timesheet review against delivered milestones
- Monthly budget checkpoints with forecasted completion
- Defined stopping conditions: "We will not exceed €X without a scope review"
- Milestone-based deliverables even within T&M (not just hours billed)
- Clear statement of work with expected outputs, even without fixed price
The T&M model incentivizes honest estimates. A contractor who chronically underestimates on fixed price to win work — then makes it up on change requests — has no incentive to do so on T&M. Their reputation is built on delivering what they scoped, not on winning contracts with low bids.
The hybrid model that handles most real situations
Time and materials with a not-to-exceed cap (T&M NTE) gives clients a cost ceiling while preserving the flexibility and honest incentives of T&M. The contractor bills actual time up to the cap; if the work takes less time, the client pays less; if it would take more, the contractor stops and renegotiates before exceeding the limit.
This is the model I recommend for most backend contractor engagements:
# T&M NTE structure example
Rate: €850/day
Estimated duration: 60 working days
Not-to-exceed cap: €55,250 (65 days at rate — 8% buffer over estimate)
Scope: Defined in Statement of Work v1.0
Change control: Any scope change exceeding 10% of estimated effort
requires a revised estimate and cap adjustment, signed by both parties
The cap protects the client. The T&M structure gives the contractor honest incentives. The change control threshold means minor pivots do not trigger adversarial renegotiations, while major scope changes do.
The indicator that tells you which model fits
One diagnostic: how many open questions remain about the technical implementation at the point of contract signing? If the answer is "fewer than five," fixed price may be viable. If the answer is "significant architecture decisions are still pending," you are not ready for fixed price — you will spend the engagement resolving those questions through change requests instead of through honest technical collaboration.
The fixed price model rewards preparation. If you invest the time to write a genuinely complete specification — with data models, API contracts, integration points, acceptance tests, and edge case handling documented — before engaging a contractor, fixed price is appropriate and protective. If you are engaging a contractor to figure out the specification with you, pay them for that time on T&M. Asking them to absorb that discovery risk in a fixed price is how you get narrowly scoped, change-request-laden implementations that satisfy the letter of the contract and fail the spirit of it.