Hiring & Outsourcing

Fixed price vs time and materials: choosing a pricing model for a software project

The pricing model does not change how much work your product needs. It changes who pays when the estimate turns out to be wrong, how easily you can change your mind, and what each side is motivated to do. Choose it based on how well the scope can be written down.

Hiring & OutsourcingUpdated September 21, 2026By the BBR engineering team

Short answer: use a fixed price when the scope can be written down with testable acceptance criteria, which covers most first releases after a short discovery. Use time and materials when the work is exploratory, depends on systems nobody has inspected yet, or is an ongoing product where priorities change monthly. Most projects that go well use a hybrid: a small paid discovery, a fixed-price first release, then a monthly arrangement for iteration.

How each model works

Fixed price

The vendor quotes one price for a written scope, usually paid in milestones. If the work takes longer than estimated, the vendor absorbs the difference. If it takes less, the vendor keeps it. Because the vendor is carrying that risk, the price contains a margin for it, and because the price is tied to the scope, anything outside the scope needs a change request.

The model depends entirely on the quality of the scope document. "User management" is not a scope. "An admin can invite a user by email, assign one of three roles, and deactivate the account; deactivated users cannot log in" is.

Time and materials

You pay for time actually worked at agreed rates, usually invoiced every two weeks or monthly, plus any agreed pass-through costs. The vendor provides an estimate, not a promise. You can reprioritize at any point without paperwork, and you stop paying when you stop the work. The cost of that freedom is that the total is open-ended unless you add controls: a budget cap, timesheets you can inspect, and a regular report of budget used against progress.

A monthly retainer or dedicated team is a form of time and materials: a fixed amount of capacity per month instead of hours counted individually. That model is compared with the other two in the guide to how outsourcing a build works in practice.

Who carries which risk

RiskFixed priceTime and materials
The work was underestimatedVendorClient
The scope was incomplete or ambiguousDisputed: the vendor reads it narrowly, the client broadlyClient, but without dispute: the missing work is simply done and billed
Requirements change after learning somethingClient, through change requestsClient, through a longer engagement
A third-party API or legacy system behaves badlyVendor, unless listed as an assumptionClient
The team is slow or inefficientVendorClient, unless monitored
Quality is cut to protect marginClient, unless acceptance criteria and review catch itLower: no incentive to rush
Work expands to fill the budgetLower: no incentive to add hoursClient, unless capped and reported
Client is slow to give feedbackVendor bears the idle cost, so contracts add response deadlinesClient pays for the waiting or the context switching

Neither column is safe by default. Fixed price moves the estimating risk to the vendor and creates a quality and rigidity risk for you. Time and materials removes the incentive to cut corners and creates a budget risk for you. The controls you add should match the column you chose.

Side-by-side comparison

Fixed priceTime and materials
What you need before startingA detailed scope with acceptance criteriaA goal, a prioritized backlog and a budget
Budget predictabilityHigh for the agreed scopeLow unless capped
FlexibilityLow; changes are priced one by oneHigh; reprioritize whenever you like
Price for identical workSlightly higher; includes a risk marginSlightly lower; you carry the risk yourself
Time to startSlower: the scope must be written and agreed firstFaster
Your involvementHeavy before the build, lighter during itContinuous: you steer every week
Administrative overheadChange requests, milestone acceptanceTimesheets, burn reports, invoice review
Typical payment patternMilestones tied to accepted deliverablesPeriodic invoices for time worked
How it failsArguments over what the scope meant; vendor resists every changeThe budget runs out before the product is usable

Hybrid models

Paid discovery, then fixed price

A short engagement at a fixed fee produces the things a reliable fixed price depends on: a feature list with acceptance criteria, core user flows or a clickable prototype, a technical plan and a list of assumptions. The build is then quoted against that document. You own the output and can take it to any vendor. This is the most reliable way to get a fixed price that does not collapse into disputes, and it lets both sides test the working relationship cheaply. A clear project brief with ranked features shortens the discovery and sometimes removes the need for it.

Fixed-price first release, then a retainer

Version one has a definable finish line, so it suits a fixed price. After launch the work becomes a stream of fixes, small improvements and experiments driven by user feedback, and pricing each one separately wastes everyone's time. A monthly engagement with agreed capacity fits better. At BBR that ongoing arrangement is the product engineering service, and ongoing support is scoped separately from the initial build.

Capped time and materials

You pay for actual time up to a ceiling, also called a not-to-exceed estimate. If the work finishes early you keep the saving. The cap needs three supporting terms to mean anything: the scope the cap applies to, a written warning when a set share of it is used, and a rule that changes to the scope adjust the cap in writing.

Fixed price per phase or per sprint

Large or uncertain projects can be cut into phases of four to eight weeks, each with its own scope and price, agreed shortly before it starts. You get predictability within each phase and a natural point to change direction or stop between them. The risk is that nobody commits to a total, so ask for a non-binding estimate of the whole at the start and track against it.

Shared-risk variants

Some contracts set a target cost and split any overrun or saving between the parties, or discount the rate for hours above the estimate. They align incentives well and are harder to administer. They make sense on larger engagements where both sides have the patience to track them.

Decision rules by project type

ProjectUsually the better fitWhy
MVP with a written feature listFixed price, after a brief or short discoveryThe finish line is definable and the founder's budget is usually hard
Idea that is still vaguePaid discovery firstNothing can be priced honestly yet
Product in the market with a changing roadmapMonthly engagement or T&MPriorities shift with user feedback; change requests would dominate
Taking over or rescuing an existing codebaseFixed-fee audit, then T&M or phased fixed priceNobody can estimate code they have not read
Research-heavy work such as a new AI featureTime-boxed T&M with a capThe outcome is uncertain; you are buying learning, not a deliverable
Integration with an undocumented or legacy systemT&M for the integration, fixed for the restThe unknown sits in one place; isolate it
Small, well-defined addition to an existing productFixed priceCheap to specify, easy to accept
Maintenance and supportMonthly retainerVolume is unpredictable per week and steady per quarter

Three questions settle most cases:

  1. Can you write acceptance criteria for at least 80% of the work today? If yes, fixed price is available to you. If not, either run a discovery or accept T&M.
  2. Is your budget a hard ceiling? If yes, you need a fixed price or a cap, and you need to be ready to cut scope instead of adding money.
  3. Do you have time to steer weekly? T&M without an engaged client drifts. If you cannot give it a few hours every week, a fixed scope with milestone reviews suits you better.

How change requests work under each model

Under fixed price

A change is anything not covered by the agreed scope, including a feature you now understand differently. The usual procedure:

  1. You describe the change in writing.
  2. The vendor replies with the effect on price and schedule, and sometimes a cheaper alternative.
  3. You approve or decline in writing before any work starts.
  4. The approved change is appended to the scope, so acceptance still has a single reference document.

Two practices keep this from becoming adversarial. First, hold back a contingency of 10–15% of the budget for changes, because some are certain to come. Second, agree that changes can be swaps: adding something of similar size while removing something not yet built, with no price change. The contract should also state whether estimating a change is free. The contract clause checklist covers the wording to look for.

Under time and materials

There is no formal change request: you move the item up the backlog and the team does it next. The discipline that replaces it is visibility. Every new item should get a rough estimate before work starts, and the regular report should show what was added, what it displaced, and the revised forecast for reaching the goal. Without that, a T&M project absorbs twenty reasonable additions and misses its launch date with nobody having decided to miss it.

Bugs are not changes

Under either model, behavior that contradicts the agreed acceptance criteria is a defect and is fixed at the vendor's cost during the build and the warranty period. Behavior that matches the criteria but that you now want to be different is a change. Most disputes about change requests are disputes about this line, which is one more reason to write criteria that can be tested.

Warning signs in a quote

In a fixed-price quote

  • A price delivered without questions. Nobody can fix a price for software they have not discussed. The number is either padded heavily or will be recovered through change requests.
  • Scope described in one paragraph or as a list of nouns. "Admin panel, messaging, payments" is not something either side can accept against.
  • No exclusions and no assumptions. Every honest estimate has both. If they are not written down, they will appear later as disagreements.
  • A total far below the others. Compare the scopes line by line. Usually something is missing: testing, the admin area, store submission, deployment.
  • Large payment up front, the rest on dates. Payments should follow deliverables you can inspect, not the calendar.
  • No change procedure, or a punitive one. Either the vendor has not planned for change or plans to profit from it.
  • No acceptance procedure or warranty period. "Done" is then whatever the vendor says it is.

In a time and materials quote

  • Rates with no estimate at all. An estimate is not a promise, but refusing to give one means nobody has thought about the size of the work.
  • No reporting commitment. You should receive time by person and task, and budget used against progress, at least every two weeks.
  • Unnamed team or a single blended rate that hides seniority. You should know who is working and at what level.
  • Minimum monthly hours with a long notice period. Reasonable in moderation; a way of locking you in when it is not.
  • Resistance to a cap or to a time-boxed first phase. A team confident in its estimate will usually accept one.
  • Billing for fixing their own defects without any distinction between rework and new work. Ask how rework is handled.

When you have proposals in hand, the list of questions to put to an agency includes what good answers on pricing and assumptions sound like. For a sense of whether the totals themselves are plausible, see how to work out an MVP budget from effort and rates, and for the broader service these models apply to, custom software development at BBR.

Questions

Frequently asked
questions.

Is fixed price always cheaper than time and materials?

No. A fixed price includes a margin for the risk the vendor is taking, so for the same work delivered without surprises, time and materials is usually slightly cheaper. Fixed price is cheaper only in the cases where the estimate was too low and the vendor absorbs the overrun. What you buy with a fixed price is predictability, and for a founder with a hard budget that is often worth the premium.

Can agile development work with a fixed price?

Yes, within limits. The common approach is to fix the price and the list of outcomes, and stay flexible about how each outcome is implemented. Work still runs in one or two week iterations with demos. What does not work is a fixed price with a scope that is rediscovered every sprint; that is time and materials in practice and should be priced as such.

What is a reasonable cap on a time and materials contract?

A cap is normally set from the vendor's own estimate plus a contingency, often 15–25% for a reasonably understood scope. The more useful part of the clause is the early warning: the vendor must notify you in writing when, for example, 70–80% of the cap is used and say what remains. A cap without that reporting only tells you about the problem when the money is gone.

What is a not-to-exceed estimate?

It is time and materials with a ceiling: you pay for actual hours, but never more than the stated maximum for the agreed scope. If the work takes less, you pay less. Because the vendor carries the overrun risk above the ceiling, expect the ceiling to sit above a plain estimate, and expect scope changes to adjust it through a written change request.

Which pricing model does BBR use?

It depends on the project. BBR works with paid discovery for ideas that are not yet specified, fixed scope with milestone payments for MVPs and well-defined projects, and monthly engagements for ongoing product development and maintenance. The how we work page describes each.

Your next move

Not sure which model fits?
Show us the scope.

Send a short brief. BBR will tell you whether it can be priced as a fixed scope now, needs a discovery phase first, or suits a monthly engagement.

Discuss your project