| Discovery and scoping | Billed hourly, often weeks of workshops | A paid blueprint with a stated price and deliverable | Same work, bounded. You know what it costs and you own the document whether or not you proceed. |
| The estimate you receive | A range with contingency built in | One number for a defined scope | Contingency exists because scope is unknown. Settle the scope and the contingency stops being your problem. |
| Changing your mind mid build | A variation, quoted hourly, timeline slips | A written change with a price, agreed or declined | Changes are normal and should be priced, not punished. What matters is that both sides can see them coming. |
| Project management overhead | A billable line of its own, commonly around 10 percent or more | Included in the fixed number | On a small team the person managing the work is the person doing it, so it is not a separate cost centre. |
| Testing and rework | Billed as it happens | Our risk, not yours | This is the single biggest reason fixed price changes behaviour. Rework costs us, so we scope carefully. |
| Data migration from spreadsheets | Frequently excluded from the quote entirely | Scoped and priced from a real export | Ask any bidder to look at your actual data before quoting. If they will not, that cost is coming later. |
| Training and go live | Optional add on package | Part of the build | A system nobody has been shown how to use is not delivered, whatever the invoice says. |
| Ongoing hosting and support | Monthly retainer, often open ended | Stated figure before you commit | Small, but it is never zero. Any proposal that omits it is deferring a conversation you will have anyway. |