Why not pay at the start, or at the end?
A software project is weeks or months of work by several people before anything is finished. If the client pays it all at the start, they carry the whole risk that the work is late, wrong or never delivered. If they pay it all at the end, the studio carries the whole risk of months of salaries for a project that may be cancelled, changed out of recognition or simply not paid for.
Neither is a good basis for working together. The point of a payment schedule is that at every moment the money paid and the work delivered are close to each other, so a disagreement at any stage costs either side a little, not everything.
How our schedule works
Every fixed-price project we take on is paid in four parts.
- 01
A deposit, before work starts
It reserves the team and pays for discovery and design. It is a larger share of a small project and a smaller share of a large one, as in the table below.
- 02
Milestone payments
What is left, less the holdback, is split across milestones that suit the kind of project: a web app's are not a bot's or a blockchain's. Each is paid when the milestone is delivered and accepted.
- 03
A holdback, after launch
The last 10% is due 30 days after launch, once the warranty period has ended with no open defects. It is the client's leverage that anything found in the first month gets fixed.
- 04
Third-party costs, at cost
Hardware, GPU time for training a model, external audits and licences are billed up front at what they cost us, outside the milestones, because we pay for them before the work that uses them.
| Build price, CAD | Deposit |
|---|---|
| Under 15,000 | 50% |
| 15,000 to 100,000 | 30% |
| Over 100,000 | 20% |
The deposit falls as the project grows for a simple reason: on a small project, discovery and design are a large share of the whole, and the deposit pays for them. On a large one, a fifth already covers the first weeks, and asking for more would only tie up the client's money.
Two schedules, worked out now
The two examples below are priced by our estimator from the rate card in force when you open this page, so the amounts are current. The milestones are the ones the engine assigns to each kind of project.
Worked example, priced now
A web app with payments and an admin
Fourteen screens, sign-in, card payments, email notifications and a staff side.
- Build
- ≈ US$47,100 to US$72,100, delivered within 15 weeksCAD 67,100 to 102,600
Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.
How it is paid
- Deposit 30%
- CAD 20,130 to 30,780
- Discovery 6.6%
- CAD 4,428.60 to 6,771.60
- Design approved 6.6%
- CAD 4,428.60 to 6,771.60
- Core features 20%
- CAD 13,420 to 20,520
- Full build 13.3%
- CAD 8,924.30 to 13,645.80
- Testing and fixes 6.6%
- CAD 4,428.60 to 6,771.60
- Launch 6.9%
- CAD 4,629.90 to 7,079.40
- Holdback, 30 days after launch (10%)
- CAD 6,710 to 10,260
Worked example, priced now
A regulated web and mobile platform with an AI assistant
A web app and iOS and Android apps, an assistant grounded in the client's documents on a frontier model, and regulated data.
- Build
- ≈ US$200,000 to US$306,000, delivered within 39 weeksCAD 284,500 to 435,100
Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.
How it is paid
- Deposit 20%
- CAD 56,900 to 87,020
- Discovery 4.8%
- CAD 13,656.00 to 20,884.80
- Specification and evaluation plan 6.6%
- CAD 18,777.00 to 28,716.60
- Design approved 4.8%
- CAD 13,656.00 to 20,884.80
- Core features 4%
- CAD 11,380 to 17,404
- Full build 2.6%
- CAD 7,397.00 to 11,312.60
- First build on devices 10.6%
- CAD 30,157.00 to 46,120.60
- Working pilot 19.8%
- CAD 56,331.00 to 86,149.80
- Testing and fixes 1.3%
- CAD 3,698.50 to 5,656.30
- Store submission 3.5%
- CAD 9,957.50 to 15,228.50
- Launch 4.8%
- CAD 13,656.00 to 20,884.80
- Production 7.2%
- CAD 20,484.00 to 31,327.20
- Holdback, 30 days after launch (10%)
- CAD 28,450 to 43,510
Running it
- Hosting
- ≈ US$874 a monthCAD 1,245 a month
- Support
- ≈ US$2,500 a monthCAD 3,565 a month
- Model running cost
- ≈ US$383 a monthCAD 545 a month
What it protects you from
- Paying for work you have not seen. After the deposit, money follows delivered, accepted milestones.
- A launch that goes quiet. The holdback is only due once the first 30 days are through with no open defects.
- Surprises in the price. Each milestone's amount is set at the start; a change you ask for is quoted as a change order before any work on it starts.
- Being locked in. The code, designs and accounts are yours once paid for, so at any milestone you could take the work elsewhere.
What it protects us from
- Starting work that is never paid for. The deposit covers the first stage.
- A milestone that is never signed off. A milestone counts as accepted after a set number of business days with no response, stated in the contract.
- Scope that grows without a price. Changes go through a change order, part paid before the work starts.
- Paying suppliers out of our own pocket. Hardware and other third-party costs are billed before we buy them.
When the project changes
Almost every project learns something in its first weeks that changes the plan: a screen nobody thought of, an integration that turns out to matter, a feature that can wait. A fixed price only works if changes have a way in that does not quietly move it.
That way in is a change order. We write down what the change is, what it adds or removes, and what it does to the price and the timeline, and you approve it before any work on it starts. Part of a change order is paid up front and the rest with the milestone it belongs to, so a change is paid for the same way as the work around it. Something that comes out of the scope comes off the price the same way.
The alternative, changes absorbed without a word until the end, is how fixed-price projects end in arguments. A change order is a small piece of paper that saves a large conversation.
When something goes wrong
If a milestone is late on our side, you do not pay for it until it is delivered. If you find a defect in accepted work, the warranty covers it, and the holdback keeps our attention, rather than a promise you have to chase. If a payment is late on your side, we tell you, then pause work after a period set out in the contract, rather than carrying on and hoping. Both sides know in advance what happens, which is most of what makes it rare.
What to ask any studio about payment
- 01
What exactly does each milestone deliver?
A milestone should be something you can see and test, not a share of the calendar. "Core features working on staging" is a milestone; "month two" is not.
- 02
How is a milestone accepted?
Who signs it off, how long you have to test it, and what happens if you find a problem.
- 03
What is held back, and for how long?
A holdback with a warranty period gives you leverage after launch. No holdback means none.
- 04
How are changes priced?
Ask to see how a change order is quoted before you need one.
- 05
When do you own the code?
It should be yours when it is paid for, not when the relationship ends.