Fixed price has a bad reputation among engineers, and the reputation is earned. Done badly it means the supplier pads the estimate, then defends the padding by arguing about what counts as in scope, and the client ends up paying more for a worse relationship than they would have on time and materials.
Done properly it is the only way we know to make “ownership of the outcome” mean something. Here is the mechanism.
The fee is split by milestone, not by month
A monthly invoice measures elapsed time. A milestone invoice measures accepted work. The difference shows up the first time something takes longer than expected: on a monthly cycle that is the client’s problem, on a milestone cycle it is ours.
A twelve-week engagement typically splits into five milestones. Each one carries a share of the total fee, each has a named owner, and each has an acceptance condition specific enough to argue about. “Order capture complete” is not one. “Order entry, customer pricing rules and approval thresholds, running in parallel with your current process for two weeks” is.
The shares are not even, because the work is not even. The first milestone, mapping the workflow, is the smallest share and the highest leverage.
The exclusions list is the honest part
Every fixed-price plan we write has a section headed Not in scope, and it is specific:
- the warehouse scanner hardware and the trade counter terminals
- order history older than four years, which stays in the archive, read-only
- support beyond the thirty days after handover, which is a separate retainer
- training beyond two sessions
A plan without that section is not a fixed price, it is an opening position. The exclusions are where a project actually goes wrong, so writing them down early is a favour to both sides. It converts an argument in month three into a conversation in week one, when it is still cheap.
It also gives the client something to push back on. Twice now, an exclusion has come back as “actually that one matters”, and it got priced into the plan before anything was signed. That is the system working.
What we do when we are wrong
Sometimes the estimate is wrong and the milestone takes longer. On a fixed fee that cost lands on us, which is the point. It is the incentive that makes us careful during the two weeks of mapping rather than optimistic.
What must not happen is the quiet version, where the supplier absorbs the overrun by cutting the parts nobody will notice for six months: the tests, the migration edge cases, the access review. That is the failure mode fixed price is accused of, and it is real. The defence is a plan whose deliverables are specific enough that quietly dropping one is visible.
Where fixed price is the wrong instrument
It does not suit open-ended work. Fractional CTO engagements are a monthly retainer for exactly that reason. The value is availability and judgement over time, and pretending that decomposes into milestones would be a worse fiction than the one fixed price is meant to prevent.
It also does not suit a project whose scope genuinely cannot be known before some of it is built. When that is the case, the honest answer is a short, separately-priced discovery phase that ends in a plan, which is what our first milestone is, and why it can be bought on its own.