Clients often ask for a fixed price because it feels like the safe option: one number, no surprises, the risk sits with the agency. Sometimes that is exactly right. Often it is not, and the reason is worth understanding before you decide.
Fixed price does not remove risk, it prices it
When we quote a project fixed, we have to cover the case where it goes badly. That means the number includes a buffer for the unknowns — and if the project then goes well, you have paid for a risk that never happened.
On time-and-materials, you carry the uncertainty directly: if it goes well you pay less, if it goes badly you pay more, and you can see it happening week by week. Neither model is cheaper on average. They just put the variance in different places.
Fixed price rewards the wrong things
Once a number is fixed, every change becomes a negotiation. That is not anyone being difficult — it is the structure. We are now incentivised to interpret the scope narrowly, and you are incentivised to argue that your new request was "obviously implied". Both sides spend energy on the boundary instead of on the product.
It also discourages the small course corrections that make software good. If changing a screen after seeing it used is a change request, it often just doesn't happen, and you ship the thing that was drawn on a whiteboard in month one.
When we do quote fixed
We are happy to quote fixed when the work is genuinely well understood: a defined integration, a rebuild of something that already exists, a project where we have done something very close before. There the buffer is small, the scope boundary is clear, and a fixed number gives you a clean thing to plan around.
We push back on fixed price when the project has real discovery in it — a new product, an unclear integration, anything where the right answer depends on what we learn while building. Fixing the price there just means fixing it wrong and sorting out the difference later.
The middle option we usually suggest
Scope and fix the part that is understood. Run the uncertain part on time-and-materials with a cap and a weekly burn-down you can see. You get a firm number for most of the budget and honest billing on the part where a firm number would have been fiction anyway.