Milestone billing spreads a fixed price across checkpoints: for example 30% on signing, 40% on the first delivered stage, 30% on final acceptance. The alternative — the whole fee on delivery — means the vendor finances the entire build while payroll leaves the account monthly; milestones keep cash roughly tracking effort, and give the client natural stop points.
Design rules that keep the schedule out of dispute:
- Tie milestones to demonstrable deliverables with acceptance criteria, not to calendar dates alone. "Payment 2 in month 2" invites paying-for-time arguments; "payment 2 on the accepted staging release" doesn't. (An up-front deposit is the legitimate exception.)
- Agree an acceptance window with a default. "Accepted unless substantive objections within N business days" — otherwise silence can stall payment indefinitely.
- Invoice on the acceptance day, not at month-end; the milestone's momentum is the collection leverage.
- Watch receivables per milestone. A late milestone payment is an earlier, louder signal than a late T&M invoice — the next stage's work is the leverage, and building on top of an unpaid milestone converts leverage into risk.
The milestone schedule belongs in the Statement of Work, including what happens to the plan when a milestone slips for client-side reasons.
In Helia, project billing models cover time and materials, retainer and fixed price; a per-milestone schedule isn't modeled yet — a fixed-price project bills its amount as one flat line, deliberately excluded from the bulk monthly run, so the operator issues it when a stage actually completes, and the receivables view then tracks each invoice through to payment.