Fixed price versus time and materials for software
Fixed price moves risk to the builder; time and materials moves it to you. When each fits, the hybrid we use, and the clauses that make either fair.
The short answer
A fixed price moves the risk of the unknown to the builder and rewards a tight, written scope. Time and materials moves that risk to you and rewards trust and visibility. Neither is right for a whole software project, because a project has two kinds of work: the part where you are finding out what to build, which cannot be fixed-priced honestly, and the part where you know, which can. The hybrid worth using is discovery and technical spikes on time and materials with a cap, then a fixed price per stage for the build, with changes priced individually. Either model is fair with four clauses in place: a written scope or goal, a cap or stage price, a demonstrable release per stage, and an exit at stage boundaries.
Side by side
| Fixed price | Time and materials | |
|---|---|---|
| Risk of the unknown | Builder | You |
| Requires | Clear written scope, spikes done | Trust, visibility, a cap |
| Rewards | Discipline about scope | Honesty about uncertainty |
| Fails when | Scope is discovered during the build; every discovery is a dispute | No cap, no cadence, hours with nothing to show |
| Changes | Priced and traded through a process | Absorbed into hours; scope drifts |
| Best for | Build stages after discovery | Discovery, spikes, exploratory work, ongoing improvement |
| Price includes | A risk premium | No premium; you carry the variance |
The hybrid, step by step
- Discovery on time and materials with a cap: a few weeks producing a written scope, a not-included list, risks and spikes.
- Spikes included in discovery: the risky integrations and data questions answered before any price is fixed.
- Stage one priced fixed from the discovery output, with a working release defined.
- Each subsequent stage priced at the boundary, with what was learned.
- Changes priced individually and traded against scope or schedule.
- Exit at any boundary, with everything delivered so far usable and documented.
The four clauses that make either fair
A written scope for fixed price, or a written goal and cap for time and materials. A stage price or a cap, never an open account. A demonstrable working release at the end of each stage, so payment follows evidence. And the right to stop at a stage boundary with what exists delivered and documented. With those four, the pricing model matters less than most negotiations assume; without them, neither model protects you.
What this means for you
Do not choose between fixed price and time and materials for a whole project. Use time and materials with a cap for finding out, fixed price per stage for building, and a change process for everything that arrives in between. Insist on the four clauses. The result is predictability where it is possible and honesty where it is not, which is the most a software contract can offer.
Frequently asked questions
Is fixed price always cheaper for us?
No. A fixed price includes the builder's premium for carrying the risk, and if the scope was unclear the premium is large or the disputes are. For well-defined work after discovery, fixed price per stage is usually the best deal. For discovery itself and for genuinely exploratory work, a capped time-and-materials arrangement is cheaper and more honest.
How do we keep time and materials from running away?
A cap per stage, a weekly cadence where you see what was done, demonstrable software at short intervals, and the right to stop at any stage boundary. Time and materials without those is an open account; with them it is a series of small fixed decisions you make with evidence.
What happens to changes under a fixed price?
They are priced individually and traded: added to a later stage, swapped for something in the current one, or scheduled with a date and cost. The change process is what keeps a fixed price fixed. Without it, either the builder absorbs changes until quality suffers or every conversation becomes a negotiation.