Milestone billing and acceptance gates in software delivery
In this article
In fixed-scope software delivery, payment is often tied to acceptance. The client agrees to pay for a milestone only once they have reviewed the deliverable against the agreed acceptance criteria and signed it off. Discovery, a design phase, a working module, a finished integration: each becomes a gate, and the invoice for that gate cannot go out until the gate is passed.
On paper that feels fair to everyone. In practice it pushes timing risk onto you, because you have already paid the developers, designers and testers who built the milestone weeks before the client gets round to accepting it. This guide explains how acceptance gates create a cash-flow gap, why an upfront deposit only partly covers it, and how to keep your team paid while you wait for sign-off.
A business account built for IT services firms
Open your account
How acceptance gates work
An acceptance-gated contract breaks the engagement into deliverables, each with its own criteria for what counts as done. You build the milestone, submit it, and the client tests it against those criteria. Only once they confirm it meets the bar can you raise the invoice, and only then does the payment clock start, often with net terms layered on top.
The mental shift is the same one that catches firms out elsewhere: the milestone fee is not money you have, it is money you are scheduled to receive if and when the client signs off. Until acceptance is formal, that payment is not yours, and nothing obliges the client to release it early because your payroll run is due.
Where the cash gap opens
The danger lives between finishing the work and getting it accepted. Sign-off slips for reasons that have nothing to do with cash: the client stakeholder is on leave, a reviewer raises subjective objections, the acceptance criteria were written loosely and now invite debate, or the milestone genuinely needs rework. Every one of those delays your invoice.
Meanwhile your costs do not pause. You have paid salaries, contractors and tooling to produce the deliverable, and those went out the door while you were building, not when you got paid. A single contested gate can open a gap of weeks, and a firm running close to the line has no buffer to absorb it. Tight, testable acceptance criteria in the contract are your best defence, because they leave less room for a payment to stall on opinion.
Why the deposit only partly covers it
The usual cushion is an upfront deposit or a paid discovery phase. It helps, but it rarely closes the gap on its own. A deposit is sized to commit the client and fund the early work, not to pre-fund every team cost across the whole project. By the time you are deep into the second or third milestone, the deposit is long spent and you are once again carrying weeks of cost against an invoice you cannot yet raise.
It also matters how you treat the deposit. Spending it as general operating cash early on feels efficient, but it removes the very buffer you will need when a later gate slips. The deposit is most useful when it stays earmarked, drawn down deliberately against the work it was meant to cover rather than blended into one balance and quietly consumed.
Reserving team cost against each milestone
The practical defence is to plan around acceptance dates, not the headline contract value. Map the team cost of each milestone, the people-weeks you will spend to build it, and set that against when you realistically expect sign-off plus payment terms. The months where a delayed gate would leave you unable to make payroll are the ones to protect with a reserve.
Keeping each milestone's money logically separate helps you see the position clearly. When you know exactly how much of a milestone fee remains and what it is reserved for, you make better calls about committing to a new subcontractor or starting the next phase early. Pooling everything in one account blurs that picture and tempts you to spend cash that is already promised to a cost you have incurred.
How Altery fits
Acceptance-gated billing is a timing and discipline problem, and that is where Altery's accounts can help. You can ring-fence the cost of each milestone in a dedicated pot, separate from your general balance, so the cash to cover the team building that deliverable is set aside before the gate is passed rather than spent and missed. You can hold an upfront deposit in its own pot too, drawing it down deliberately as the work is earned instead of blending it into operating cash.
If a client pays in USD, EUR or GBP, a multi-currency account lets a foreign-client milestone land cleanly in the currency it was billed in, so you convert on your own timeline rather than at the moment it arrives. Real-time balances show where you actually stand against an upcoming payroll run, and mass payouts let you pay your team from a controlled balance once a gate is secure. Altery is not a bank and provides general information, not advice; how you structure deposits, milestones and acceptance criteria is something to confirm with your own adviser and your client contract.
Frequently asked questions
This guide is general information to help IT services businesses and is not financial, tax or legal advice. Altery is not a bank. Check your own circumstances before acting.
Run your consulting and delivery finances from one account
Open your account
Keep reading
Matching your billing model to your cash flow
Time-and-materials, fixed-price and milestone billing each load your working capital in a different rhythm. Choosing the wrong one for your firm can starve cash even on a profitable project.
Ring-fencing client and project funds for clear profitability
When prepaid budgets, reimbursements and licence pass-throughs mix with operating cash, per-client profitability becomes guesswork. Here is how to separate it.
How FX moves erode margin on fixed-price builds
A fixed price quoted in the client's currency can lose its margin as the rate drifts over a long build. Here is how currency risk compounds and how to hedge it.