A quote with no discovery and a round number is not a quote. It’s a hope.
A quote with no discovery, no named limitations, no ownership clause and a suspiciously round number is not a quote — it’s a hope. These are the nine things we look for when clients ask us to sanity-check someone else’s proposal.
No discovery, no quote
If nobody asked how your work actually moves — who touches what, where it stalls, what the exceptions are — then the number was produced from a template and a guess.
A quote written without discovery is priced for the average business. You are not the average business, and the variance shows up as change requests.
Discovery does not have to be long. Twenty minutes of the right questions beats a two-hour workshop that never leaves the boardroom — ours is twenty minutes and free. What matters is that someone asked, and that the answers changed the number.
Missing ownership and code clauses
Search the document for the word "own". If it is not there, you are renting. Ask directly: who owns the code at the end, and at what point does that transfer.
A vendor who cannot answer that in one sentence has either not thought about it or would rather you did not. Ours is on the ownership page, in the wording we actually use.
No named limitations anywhere
Every real system has limits. A proposal that names none has either not been thought through or is hiding them until after signature.
Ask what it will not do. A good answer is specific and slightly uncomfortable. A bad answer is reassurance.
Push once more after the first answer. The first limitation anyone names is the safe one. The second is usually the real one, and it is the one that will affect you.
Fixed price on unfixed scope
A fixed price is only meaningful against fixed scope. Fixed price on vague scope means one of you is going to be unhappy, and the contract decides which.
Either the scope tightens or the pricing becomes incremental. Both are fine. The combination of firm number and loose scope is not.
Hosting left vague
"Cloud-hosted" is not an answer. Which provider, which region, whose account, and what happens to it if the relationship ends.
If it runs on an account in the vendor’s name that you cannot access, you do not have a system — you have a dependency.
Ask who pays the hosting bill and what happens if it lapses. More small systems die from an unpaid card on a forgotten account than from any technical fault, and it is entirely preventable by knowing the answer in advance.
"Cloud-hosted" is not an answer. Which provider, which region, whose account.
No handover defined
What do you actually receive at the end? Code, credentials, documentation, a runbook, an architecture note? If the proposal does not itemise it, assume you get a login.
Handover is the cheapest thing to promise and the easiest to skip, which is exactly why it should be written down before you pay anything.
A useful framing: if the vendor vanished the week after go-live, could a competent developer you hired pick it up from what you hold? If the honest answer is no, the handover is not a handover. Ours is itemised, and repository access starts at the first commit rather than the last invoice.
Timeline with no increments
A twelve-week project with one delivery date is a twelve-week bet. The same project in six two-week increments is six decisions, and you can stop after any of them.
Ask what you will be able to use at week two. If the answer is nothing, the risk is all yours.
Increments also change the conversation when something goes wrong, which it will. A missed date inside a two-week increment is a conversation. A missed date on a twelve-week single delivery is a dispute, because by then both sides have too much sunk in to be reasonable.
No exit path
What happens if you want to leave in month three? If nobody has written it down, it will be negotiated at the worst possible moment, by whichever of you has less to lose.
A fair proposal says what you keep, what it costs to stop, and how the handover works. Ours is on how we charge.
The round number problem
Fifteen thousand dollars exactly. Not $14,600, not $15,400. A round number usually means the figure was chosen rather than calculated.
That is not automatically dishonest — sometimes it is a genuine package price. But ask how it was arrived at. A calculated number has a story behind it, and the story is where you learn whether they understood the job.
Taken together, these nine are less a scoring system than a conversation. Work through them with the vendor in the room. A firm that engages with all nine and fails two is a better bet than one that sails through by being vague — and how the conversation feels is itself the most useful signal you will get.
Objections
What if their quote is much cheaper?
It might genuinely be, and you should take it if the nine above check out. Cheaper quotes usually differ on scope, on who owns the result, or on what happens when it breaks. Compare those three lines before comparing the totals.
Should we always get three quotes?
Two well-scoped quotes beat three vague ones. What matters is that each was written after real discovery, because otherwise you are comparing three guesses about different jobs.
Book a free Leak Check
20 minutes. We find where the money's going. No pitch.