Time and Materials vs. Fixed Price: Which Risk Each Contract Moves
A fixed price does not make the estimate more accurate. It moves the cost of a wrong estimate from the buyer to the vendor, and the vendor prices that risk into the quote and protects itself with a tight definition of scope. Time and materials leaves the estimate risk with the buyer and, in exchange, lets the buyer change direction without renegotiating. The time and materials vs fixed price decision for software comes down to which risks you are better placed to carry, and that depends mostly on how well the requirements are understood when the contract is signed.
Use fixed price when the work can be specified and tested before it starts, and the vendor can identify and price what might go wrong. Use time and materials when the team has to discover the right solution as it builds. In both cases, change control decides whether the contract holds up once real requirements arrive.
What Is the Difference Between Time and Materials and Fixed Price?
Under a time and materials contract, the buyer pays for the hours worked at agreed rates, plus the actual cost of materials. Federal acquisition rules describe it as direct labor hours at specified fixed hourly rates that include wages, overhead, general and administrative expenses, and profit, plus the actual cost of materials. For software, “materials” usually means pass-through items such as cloud services, paid APIs or test devices, and many buyers own those accounts directly.
Source: Federal Acquisition Regulation, 48 CFR 16.601, Time-and-Materials Contracts
A fixed-price contract sets one price for a defined deliverable. The vendor is paid that amount when the work meets the agreed acceptance criteria, whatever it actually cost to produce. Anything outside the definition becomes a change, which is priced separately.
Which Risks Does Each Contract Move?
Each contract assigns a set of risks to one side or the other. Reading the contract as a risk allocation, rather than a pricing choice, makes the trade-off clearer.
| Risk | Time and Materials | Fixed Price |
|---|---|---|
| The estimate is wrong | Buyer pays for the extra hours | Vendor absorbs it, and prices that risk into the quote |
| Requirements change | Buyer reprioritizes within the budget | Each change becomes a priced change order |
| The specification was misunderstood | Buyer pays to correct it | Disputed: depends on how acceptance criteria were written |
| Vendor works inefficiently | Buyer pays for it unless oversight catches it | Vendor absorbs it |
| Budget pressure on quality | Lower, since hours are paid | Higher near the end of the budget, when testing and documentation are easiest to cut |
| Oversight load | Higher: buyer reviews hours against progress | Lower day to day, higher at acceptance |
The oversight row deserves attention. The federal rules say it directly: a time-and-materials contract provides no positive profit incentive to the contractor for cost control or labor efficiency, so appropriate surveillance of performance is required. A private buyer’s equivalent is reviewing hours against delivered work every week and keeping a technical person close enough to judge whether progress is real.
Fixed price has its own blind spot. The vendor carries the overrun risk only for the scope as written, so ambiguity in the specification is where disputes happen. A feature both sides read differently becomes either unpaid work for the vendor or a change order for the buyer, and neither side is happy with the result.
When Are Requirements Stable Enough for Fixed Price?
Requirements are stable enough for fixed price when you could write the acceptance tests today, the systems involved are known, and the vendor has done this kind of work before. The federal rules frame it in a similar way: a firm fixed price suits work with reasonably definite functional or detailed specifications when fair and reasonable prices can be set at the outset, for example when performance uncertainties can be identified, their cost impact can be reasonably estimated, and the contractor is willing to accept those risks.
Source: Federal Acquisition Regulation, 48 CFR 16.202-2, Firm-Fixed-Price Contracts: Application
Four questions test whether a piece of software work meets that bar:
- Can you describe every input, output and edge case well enough for someone else to test against it?
- Are the external systems known, documented and under someone’s control for the duration?
- Is the data understood, or will its condition only become clear once engineers start working with it?
- Would a second vendor reading the same specification build roughly the same thing?
A Salesforce integration shows the difference the third question makes. A company wants closed opportunities in Salesforce to create orders in its billing system, with an agreed field mapping, one direction of sync and a defined error queue. That can be a reasonable fixed-price project. The same integration in an org with years of custom fields, overlapping validation rules and duplicate account records is a different job, because nobody knows how much cleanup the data needs until someone looks. The usual answer is to separate the two: a short, fixed-scope discovery phase that audits the org and the data, followed by a build contract written against what discovery found. An independent technical due diligence review serves a similar purpose when the unknowns sit in an existing system you are inheriting.
When Does Time and Materials Fit Better?
Hourly billing fits when the right solution is not yet known and the team will learn its way to it. Fixing a price on that kind of work forces the vendor either to pad the quote heavily or to define the scope so narrowly that the useful discoveries fall outside it.
A geospatial research tool is a clear case. A research group’s software matches satellite observations against flight tracks, and its visualization takes many seconds to load a single view. Nobody can say at the start whether the fix is a new tile format, a rewrite of a computational engine, a change to the database schema or all three. Each finding changes the next step. Gun.io’s brief on a geospatial research system’s architectural pivot describes work like this, where a codebase built for a PhD thesis needed custom vector tiles and an optimized C++ advection engine before flight track filtering reached sub-second latency.
The same reasoning applies to early product work. An MVP exists to find out what users need, so a contract that locks the feature list in advance works against its purpose. Time and materials gives up cost certainty to keep that flexibility, which is why it needs a ceiling, regular reforecasting and a buyer who reviews progress closely.
How Should Change Control Work Under Each Contract?
Change control is the written process for deciding what happens when the work needs to differ from the plan. Both contracts need it, and each needs it for a different reason.
Under fixed price, change control protects both sides from scope disputes. The contract should say what counts as a defect (the delivered work does not meet the agreed criteria, so the vendor fixes it at no cost) and what counts as a change (the buyer wants something different from what was agreed, so it is priced). Without that line, every disagreement turns into an argument about which one it is.
Under time and materials, a change does not trigger a new price, so the risk is that scope grows without anyone deciding it should. Change control here means making the trade-off visible: what was added, what moved down the backlog to make room, and whether the projected total still fits within the ceiling.
A change request that works under either contract records the same fields:
| Field | What It Captures |
|---|---|
| Description | What is changing and why, in terms of behavior a user or system will see |
| Requested by and approved by | Named decision-makers on both sides |
| Effort and schedule impact | Estimated hours or price, and the effect on delivery dates |
| Trade-off | What is removed, deferred or added to the budget to make room |
| Acceptance | How the changed work will be tested and signed off |
How Do Staff Augmentation and Scoped Delivery Relate to These Contracts?
Engagement model and billing structure answer different questions. The engagement model decides who directs the work and owns the outcome; the billing structure decides how the work is paid for. The two are connected, because a contract can only move a risk to a party that controls it.
In staff augmentation, engineers work within your team and your leads direct them. Because you control the plan, you also carry the outcome risk, and this kind of engagement is commonly billed for engineering time. A fixed price would ask the provider to absorb the risk of decisions it does not make, so it rarely fits. Our comparison of staff augmentation vs. managed services covers how direction and accountability split in more detail.
In scoped project delivery, a partner takes a larger role in organizing and delivering a defined initiative. Here the billing structure should follow the stability test above. A scoped initiative with a firm specification can support a fixed price; one that still depends on discovery fits time and materials with a ceiling, or a phased structure. Either way, scope, completion and handoff need explicit agreement, since finishing development can come before deployment, third-party approval or business readiness.
What About Capped and Phased Contracts?
Several structures combine features of both contracts, and each shifts risk in a specific way.
- Capped time and materials. Billing is hourly up to a not-to-exceed amount. The contract should state what happens at the cap: work stops, the parties re-plan, or the vendor completes defined remaining items at its own cost. Federal time-and-materials contracts must include a ceiling price that the contractor exceeds at its own risk, a useful model for private agreements.
- Phased contracts. A fixed-price discovery phase produces a specification, then the build is contracted as fixed price or time and materials depending on what discovery found. This splits the unknown part from the known part.
- Milestone payments. Payment is released when each defined deliverable passes acceptance. This works with either contract and gives both sides regular points to check the work and the relationship.
This is general information, not legal advice.
How Gun.io Thinks About Contract Structure
We start by understanding the scope and complexity of the problem, because that determines how much is known and who is in a position to carry which risk. The Salesforce team with a clean org and a defined mapping is asking a different question from the research group that cannot yet say where its latency comes from, and the engagement should reflect that.
Gun.io works through staff augmentation, where your team directs the day-to-day work and we provide lighter delivery and management support, and scoped project delivery, where we take a more extensive role. There is no minimum commitment. You can see the areas we work in across our engineering solutions.
Let the Stability of the Requirements Pick the Contract
Fix the price on the parts of the work you can specify and test, pay for time on the parts you still have to discover, and write change control into both. If you are deciding how to structure a build, walk us through the build, what you already know about it, and where the unknowns sit.
Frequently Asked Questions
Is Time and Materials More Expensive Than Fixed Price?
Not inherently, because a fixed price includes the vendor’s allowance for risk while hourly billing charges only for the effort spent. Hourly billing can cost more when scope grows without control, and fixed price can cost more when the risk allowance turns out larger than the risks that materialized.
Can a Fixed-Price Software Contract Change After Signing?
Yes, through change orders, which is why the contract needs a written change process before work begins. Each change should be described, estimated, approved by a named person and tested against its own acceptance criteria.
What Is a Not-to-Exceed Clause in a Time and Materials Contract?
A not-to-exceed clause sets the maximum the buyer will pay under the contract. It should say what happens when spending approaches the limit, such as a required reforecast or written approval to continue, and what happens if the limit is reached before the work is done.
Who Pays to Fix Defects Found After a Fixed-Price Delivery?
The vendor usually does, if the defect means the work fails the agreed acceptance criteria and it is reported within the agreed warranty or review period. Behavior that was never specified is treated as a change, so precise acceptance criteria protect both sides.
How Detailed Does a Specification Need to Be for Fixed Price?
Detailed enough that two different engineering teams would build roughly the same thing and test it the same way. That means documented inputs and outputs, known integrations, an understood data set and acceptance tests both sides agree on before signing.
Can You Switch From Time and Materials to Fixed Price Mid-Project?
Yes, once the remaining work is understood well enough to specify. A common pattern is to run discovery and early development on time and materials, then fix the price for a later phase whose scope the earlier work has made clear.