Charge for discovery before you quote the whole project
The claim When a client asks for a fixed price on a software project they have described in a paragraph, the honest answer is that nobody can price it yet, because the paragraph do...
The claim
When a client asks for a fixed price on a software project they have described in a paragraph, the honest answer is that nobody can price it yet, because the paragraph does not contain enough information to know what the work is. The way to serve the client well is not to guess at a number and pad it heavily, nor to refuse — it is to sell a small, paid discovery phase whose deliverable is the very thing needed to quote the project accurately. This protects the client from a wrong estimate and protects you from committing to work you have not yet understood.
Why the up-front fixed quote fails both sides
A fixed price quoted from a vague description forces the provider to price the unknown, and there are only two ways to do that, both bad for the client. Either you pad the estimate heavily to cover the risk of everything the description did not mention — so the client overpays for the work as it actually turns out — or you quote optimistically to win the work, hit the undiscovered complexity partway through, and now the project is over budget, the relationship is strained, and someone is arguing about scope. Neither outcome is the client being served well, and both flow from the same root: a price was committed before the work was understood.
The provider is not being dishonest in either case. They genuinely cannot know what a paragraph-sized description will require, because most of the work in software is discovered during the work, not visible at the start. The fixed quote asks them to certify a number they have no way to know, and the client pays for that impossibility one way or the other.
What a discovery phase produces
A discovery phase is a short, bounded, separately-priced engagement whose entire purpose is to replace the vague description with a concrete specification detailed enough to quote against. Its deliverables are tangible and belong to the client regardless of who builds the project:
- A written specification of what the system must do, at a level of detail where the ambiguities have been resolved into decisions.
- The technical approach — the major components, the integrations, the constraints that will shape the build.
- The real risks, named: the parts that are genuinely uncertain and why, so the client knows where the project could grow.
- A reliable estimate for the full build, grounded in the specification rather than the paragraph.
At the end of discovery, the client has something they did not have before and can use anywhere: a real specification and a real number. If they take that document to a different builder, it still has value — which is part of what makes the phase honest.
Why the client comes out ahead
The discovery fee looks like an extra cost, but it is cheaper than either failure mode of the up-front quote. Compare the paths: a padded fixed quote means paying a large risk premium on the whole project; an optimistic fixed quote means a mid-project budget overrun and a strained relationship. A discovery phase costs a small, fixed amount, and in exchange the client learns what the project actually is before committing the large sum, retains the option to stop if discovery reveals the project is bigger or less valuable than they thought, and gets a build estimate they can actually trust. The client is buying down uncertainty on the largest financial decision of the project, for a fraction of the project's cost.
Structure it so the client keeps control
The phase should be structured to reassure the client that it is genuinely in their interest, not a way to bill for a sales process:
Discovery engagement:
- fixed price, fixed duration (e.g. one to two weeks)
- deliverable: written spec + technical approach + build estimate
- the deliverable is the client's, to use with any builder
- no obligation to proceed with the build afterward
The last two points are what make it fair. Because the specification is the client's to take anywhere and there is no obligation to continue, the discovery phase cannot be a trap — the provider has to earn the build by producing a specification and estimate good enough that the client wants to proceed with them. That alignment is the point: the provider is paid to reduce the client's uncertainty honestly, and is rewarded for doing it well by winning a project both sides now understand.
When discovery is not necessary
Not every project needs a formal discovery phase, and pretending otherwise would be its own kind of dishonesty. Small, well-understood work with a narrow range of outcomes can be quoted directly — if the provider has built the same thing several times and the client's description is precise, a fixed quote is reasonable and adding a discovery phase would be padding the process. Discovery earns its place when the project is large, the description is vague, or the range of possible cost is wide, which is precisely the situation where a naked fixed quote does the most damage. Match the phase to the uncertainty: no uncertainty, no discovery; substantial uncertainty, discovery first.
How to propose it
When a client asks for a fixed price on something too vague to price, the honest and client-serving response is to explain why an accurate number is not yet possible and to offer the discovery phase as the way to get one. Framed correctly, this reads not as a provider dodging commitment but as one refusing to commit the client to a number that would be wrong — which is exactly the provider a careful client wants. The discovery phase is how you say "I will not guess with your money" and turn that integrity into the first, small, low-risk step of a project both of you can then price with confidence.