invoicing
Progress billing for service businesses: deposits, milestones and percentage of completion
How progress billing works for agencies: deposits, milestones, percentage of completion, retainers, and a worked example from quote to final invoice.
By SparkDesk team
Large projects create a cash flow problem. If you quote a three-month website rebuild and only invoice when it launches, you are funding the client’s project for three months: paying your team, your contractors and your software while the money sits on the other side of the table.
Progress billing solves that by invoicing a project in stages as the work happens. It is standard practice in construction, and it fits agencies, consultancies, studios and event planners just as well. This guide covers the common structures, how progress billing differs from a retainer, a worked example with real arithmetic, and how SparkDesk handles it.
What progress billing is
Progress billing means splitting the value of an agreed quote into several invoices, each sent when a defined portion of the work is done. The total of all the invoices equals the quote. Nothing extra is charged; you are only changing when the client pays.
Three ideas do most of the work:
- Deposit: an amount billed before work starts, to secure the slot and cover early costs.
- Progress invoices: invoices for a share of the work as it is completed.
- Final invoice: the balance, with any deposit deducted, when the project is done.
Four common structures
1. Deposit and balance
The simplest version: a deposit up front (often 25 to 50 percent) and the rest on completion. Good for short projects of a few weeks.
2. Milestone billing
Invoices are tied to named deliverables: discovery complete, designs approved, site launched. The client knows exactly what triggers each invoice, which makes approval easy. The risk is a milestone that stalls because the client is slow to approve, which stalls your cash flow with it.
3. Percentage of completion
You invoice a percentage of the whole quote based on how far along the work is: 30 percent done, 30 percent billed. This works well when a project has many line items progressing in parallel, and it avoids arguments about whether a single milestone is “really” finished.
4. Time-based stages
Fixed dates (for example, the end of each month) with an agreed percentage at each. Predictable for both sides, and easy to plan around.
Many agencies combine them: a deposit, then percentage-of-completion invoices at month-end, then a final invoice.
Retainers versus progress billing
These are often confused. They solve different problems.
| Progress billing | Retainer | |
|---|---|---|
| What is being bought | One defined project with a fixed total | Ongoing access to time or services |
| Total amount | Fixed by the quote | Open-ended, renews each period |
| Invoice trigger | Work completed or milestones reached | Calendar (usually monthly) |
| Ends when | The project is delivered | Either side ends the arrangement |
| Typical example | A website rebuild | Monthly content and SEO support |
If the scope is defined and the work ends, use progress billing. If the relationship is ongoing and the scope renews each month, use a retainer, often as a recurring invoice. If you bill retainers by hours used, see our guide on how to invoice from timesheets.
A worked example
This is a fictional example to show the arithmetic. A design studio quotes a fictional client 40,000 (in the studio’s billing currency, before tax) for a website rebuild. The contract sets this billing schedule:
- 25 percent deposit on signing.
- Progress invoices at the end of each month, based on the share of work completed.
- Final invoice on launch.
Here is how it plays out:
| Invoice | What it bills | Amount |
|---|---|---|
| Deposit | 25 percent of the quote total | 10,000 |
| Progress 1 (end of month one) | 30 percent of each quote line | 12,000 |
| Progress 2 (end of month two) | 40 percent of each quote line | 16,000 |
| Final (on launch) | Remaining 30 percent of each line (12,000), less the 10,000 deposit | 2,000 |
| Total billed | 40,000 |
Two details are worth noticing:
- The deposit is deducted once, at the end. In this structure, progress invoices bill their share of the work in full, and the final invoice subtracts the deposit. Some businesses prefer to subtract a portion of the deposit from each progress invoice instead. Either works if the contract says which.
- The client pays the quote’s value exactly once. Deposit plus progress plus final equals 40,000, no more and no less.
If the scope changes mid-project, issue a change order and quote it separately rather than adjusting the percentages on the original quote. It keeps the arithmetic clean and the audit trail clear.
Write the schedule into the contract
Progress billing only works smoothly if the client agreed to it before work started. Your contract or statement of work should state:
- The deposit amount or percentage, and when it is due.
- What triggers each progress invoice (dates, milestones or completion percentage).
- How the deposit is applied (at the end, or spread across invoices).
- Payment terms for each invoice.
- What happens if the client delays a milestone approval.
How SparkDesk handles progress billing
In SparkDesk, the quote is the source of truth for billing. Once a quote is accepted, its Billing card lets you invoice it in stages without retyping a single line.
- Create deposit invoice: bill a percentage of the quote total or a fixed amount. It is saved as a draft for you to review and send.
- Create progress invoice: bill a percentage of every quote line for the work done so far. SparkDesk shows how much of the quote is left to bill and will not let you bill more than 100 percent.
- Create final invoice: bill everything not billed yet. Each deposit already invoiced is deducted as a separate “Less deposit” line with its own tax, so the client pays the quote’s value once. The quote then becomes Converted.
The Billing card shows the quote total, deposits and the amount invoiced so far, with a progress bar of how much of the quote has been billed, and a list of every invoice created from it. This matches the worked example above exactly.
Because quotes, contracts and projects live on the same account, the schedule you agreed in a contract with built-in e-signature sits next to the invoices that follow it. You can read more on the quotes and invoicing features page and the contracts and e-signature page.
Recording payments
When a client pays, you record the payment against the invoice with its amount, date and method, such as bank transfer, check or card. The amount due updates automatically, and partial payments are fine. SparkDesk records payments; it does not collect them online, so clients pay you the way they already do. If you connect an AI assistant over MCP, it can record payments too with the invoice_record_payment tool, under your own permissions.
Invoices themselves go out by email with a PDF attached, and clients can view and download them in the client portal. The invoices documentation lists everything an invoice supports.
Common mistakes
- No deposit on a long project. You are financing the client.
- Vague triggers. “When phase one is done” invites disagreement. Name the deliverable or the date.
- Forgetting to deduct the deposit. Overbilling a client at the end of a project is an awkward conversation. A system that deducts it for you removes the risk.
- Mixing retainer and project billing on one invoice. Keep them separate so each is easy to approve.
Try it on your next quote
Build a quote, accept it, and create a deposit invoice in a few clicks. Start a 14-day free trial, no card needed.
