Clients rarely dispute a price. They dispute a price they cannot interrogate. So every proposal I send breaks the work into phases, with hours and assumptions attached to each, and the assumptions written plainly enough to argue with.
Estimate the unknowns separately
Work I have done many times gets a tight estimate. Work that depends on a third-party API I have not touched gets a range and a spike: a short, timeboxed investigation priced on its own, before the rest of the number is committed.
Mixing the two into a single confident figure is how projects go wrong quietly.
Price the certain work tightly. Price the unknown work as a question.
When I am wrong
If I underestimate my own work, that is my cost to carry, and I carry it. If the scope genuinely changed, we talk before the hours are spent, not after.
That distinction is the whole basis of the relationship. Getting it wrong once, honestly and early, costs far less than a surprise invoice.
Working on something where this applies? I take on three or four substantial engagements a year. Start a conversation. It costs nothing and usually clarifies more than it takes.





