Comparison · Costs & timelines
Fixed price vs time and materials: which contract a founder should pick, and when
Fixed price vs time and materials for software: who carries the risk, what each costs, the hybrids that work, and how to estimate development time first.
Short answer
Fixed price puts the overrun risk on the builder, so it suits work you can describe in writing, like an MVP after scoping. Time and materials puts the risk on you, so it suits work nobody can scope yet: rescues, research, ongoing product work. The best default for founders is a short scoping phase, then a fixed price per phase.
Founders usually ask "fixed price or hourly?" as if it were a question about price. It's a question about risk: if the work takes longer than planned, who pays? Get that right and the rest of the contract follows. I quote fixed prices after scoping, and I'll explain why, but also when I'd tell you not to accept one.
What is the difference between fixed price and time and materials?
A fixed-price contract sets the price for a defined scope up front; if the work takes longer, the builder absorbs it. Time and materials (T&M) bills for the hours or days actually worked, plus expenses; if the work takes longer, you pay more. The difference is who carries the overrun.
The US government's procurement rules state it clearly. A firm-fixed-price contract "places upon the contractor maximum risk and full responsibility for all costs and resulting profit or loss" (FAR 16.202-1). A time-and-materials contract "provides no positive profit incentive to the contractor for cost control or labor efficiency", and should be used only when it isn't possible to estimate accurately at the time of contracting (FAR 16.601).
Fixed price vs time and materials: side by side
| Fixed price | Time and materials | |
|---|---|---|
| Who pays for overruns | The builder | You |
| What you need first | A written scope with acceptance criteria | A trusted builder and a way to see progress |
| Changing your mind | Through change requests, priced before work starts | Easy; you just pay for the time |
| Builder's incentive | Finish efficiently; watch they don't cut corners | More hours means more revenue; watch the pace |
| Price premium | Includes a buffer for risk; smaller when scope is clear | None up front; the risk is yours instead |
| Your admin | Review milestones against criteria | Review hours and progress every week |
| Best for | An MVP or a phase you can describe in writing | Rescues of unknown code, research spikes, continuous product work |
| Not for | Work nobody can scope yet | A defined build where you can't watch the hours |
When is a fixed price contract the right choice?
When the scope can be written down and tested. For a founder building a first version, that's most of the time, as long as the scoping happens before the price. A fixed price on a written scope gives you three things T&M can't: a number you can raise money against, a builder whose incentive is to finish, and a natural conversation every time scope grows.
The research on estimation says when a fixed number becomes meaningful. Steve McConnell's Cone of Uncertainty white paper (Construx) notes that a commitment made at the initial-concept stage carries a 2x–4x error, and that meaningful commitments become possible once the project has done the work to narrow the cone, about 30% of the way in. That's the argument for a scoping step: it moves the commitment from the wide end of the cone to the narrow end.
It's why my own MVPs are quoted this way: a fixed quote after scoping, a written design doc, and working software every week so you can see the price turning into product.
When is time and materials better?
When nobody can honestly describe the work yet. A fixed price on unknown work is a guess with a contract attached, and one side loses: the builder, who then cuts corners, or you, when the builder pads the price to cover the unknown.
- Rescuing an existing codebase. Until someone has read the code, the size of the job is unknown. Pay for a short assessment by the hour or day, then fix the price of the repair.
- Research and prototypes. "Can an AI model do this reliably on our data?" is a question, not a scope. Time-box it.
- Continuous product work after launch. When priorities change weekly, fixing each change is overhead. A monthly retainer (a form of T&M) fits better; mine for fractional CTO work starts at $6,000 a month.
- Very small, frequent tasks. Fixing the price of a two-hour job costs more in paperwork than it saves.
What are the risks of each?
Both models fail in predictable ways. Knowing how is most of the protection.
| Model | How it fails | The defence |
|---|---|---|
| Fixed price | The builder underestimated and quietly cuts testing, handover or quality to protect their margin | Written acceptance criteria per milestone; handover as a deliverable |
| Fixed price | Every small change becomes a negotiation | A change process that allows equal-size swaps at no cost |
| Fixed price | A high price, padded for a vague scope | A clearer scope; a short PRD shrinks the padding |
| T&M | Hours grow with no product to show for them | A cap, a weekly hours report, and a working demo every week |
| T&M | Nobody decides what "done" means | Milestones and acceptance criteria anyway |
Hourly billing on an unclear scope is one of the structural causes I go through in why founders waste $50K on agencies.
What are the hybrid options?
Most good contracts are hybrids. The four I'd consider, in order of how often I'd recommend them to a founder:
- Scoping first, then a fixed price per phase. A short scoping step produces the PRD and design doc; each phase after that has a fixed price. You can stop after any phase. This is closest to how I work.
- Capped time and materials (not-to-exceed). Hourly, with a ceiling the builder can't pass without written approval. Good when the scope is mostly clear but one part is uncertain.
- Time-boxed fixed fee. A fixed fee for a fixed number of weeks, with a prioritised backlog. Scope flexes; price and date don't. Useful for prototypes.
- Retainer. A monthly fee for ongoing work and availability, after launch.
Does a fixed price mean a fixed scope and a fixed date?
A fixed price fixes the cost of a written scope. It doesn't freeze the scope, and it only fixes the date if the contract says so. Project managers talk about the iron triangle: scope, cost and time. You can pin two; the third has to give. A fixed-price contract pins cost and scope, so when something changes, either the date moves or the scope does.
That's why the change process matters more than the price. The healthiest version, in my experience of quoting builds, lets you swap a feature for one of similar size at no cost, and prices anything bigger before work starts. The founder stays in control of what gets built; the builder stays accountable for the number.
A fixed date is a separate promise. If a launch date really matters (an event, a funding deadline, a season), say so before the quote, and expect the builder to protect it by agreeing up front which features drop first if time runs short. That list belongs in the statement of work.
What should you ask a builder before signing either kind of contract?
- "What exactly does this price include, and what isn't included?" Look for testing, deployment and handover, and an explicit out-of-scope list.
- "How did you get to this number?" A real estimate can be broken into pieces. A number that can't be explained hasn't been estimated.
- "What happens when I change something?" You want a written process, not "we'll figure it out".
- "How will I see progress?" Working software on a schedule, not status reports.
- "For hourly work, what's the cap, and how will I see hours against it?" Weekly, in writing.
- "Whose accounts does it run on?" Yours, from day one, on both models.
How do you estimate software development time before agreeing a price?
Bottom-up. Break the scope into pieces small enough to reason about, a few days each, estimate each piece, add them, then give a range that skews upward, because forgotten items are always additions. The industry name is bottom-up estimation over a work breakdown structure, and the honest output is a range, not a number.
You can do a first pass yourself. My free app cost calculator does exactly this with every weight shown, and the method behind it explains each assumption. Then write a PRD, so the builder's estimate starts from the narrow end of the cone, not the wide one.
Which should a founder choose?
For a new MVP: scoping first, then a fixed price. For a rescue: a paid assessment, then a fixed price for the repair. For anything after launch: a retainer or capped T&M, with a demo every week.
Whichever you pick, the contract only works if three things are written down: the scope (and what's out), how a milestone is accepted, and how changes are handled. My plain-English SOW template has all three, and the MVP cost breakdown shows what a fixed MVP quote should contain.
If you have a written scope and want a fixed quote against it, here's how I work.
Questions founders ask
Is a fixed price contract more expensive?
Often slightly, because the builder prices in a buffer for the risk they're carrying. That buffer is smaller when the scope is clearer. On a well-scoped MVP the difference is usually worth paying, because a time-and-materials overrun on an unclear scope can cost far more than any buffer.
What is a not-to-exceed (capped) time and materials contract?
Hourly or daily billing with a ceiling the builder can't pass without your written approval. It keeps the flexibility of time and materials while limiting your downside. Ask for a weekly report of hours against the cap, so you see the overrun coming instead of at the end.
What happens if I change my mind on a fixed price project?
You raise a change request. The builder prices it before doing it, and you approve, swap it for an in-scope item of similar size, or defer it. A good fixed-price contract makes changes cheap to discuss and explicit to approve. A bad one makes them a fight.
Can an agency refuse to give a fixed price?
Yes, and sometimes that's honest: if they can't see the code you want rescued, a fixed price would be a guess. But for a new MVP with a written PRD, a builder who won't fix or cap the price is telling you they don't want the estimation risk. Ask for a capped phase instead.
How do you estimate software development time for a fixed quote?
Break the scope into pieces of a few days each, estimate each, add them up, then add a margin for what's still unknown. The estimate is only as good as the written scope behind it, which is why a fixed quote should come after a scoping step, not from a first call.