How to Invoice for Milestone-Based Projects
Invoice milestone-based projects with clear gates, contract-backed percentages, acceptance rules and a running schedule, so you get paid as work progresses.
Milestone billing means you invoice when defined pieces of work are complete, not just at the end. Done well, it improves cash flow and keeps the client's attention on your delivery rhythm. Done poorly, you argue over whether a "milestone" was met.
The US federal government pays many fixed-price contracts this way, and its rules are a useful model. Under FAR 32.1004, performance-based payments may be tied to specifically described events such as milestones, signing the contract or the passage of time does not count as an event, and total payments may not exceed 90% of the contract price. Private contracts are not bound by the FAR, but the lesson carries over: tie each payment to something delivered, and keep a meaningful final payment so both sides have a reason to finish.
Define milestones in the contract
Each milestone should list:
- Deliverable: what the client receives (document, build, phase sign-off)
- Acceptance criteria: how they confirm it is done, including what happens if they say nothing
- Invoice amount: a fixed fee or a percentage of the total contract value
- Payment terms: how many days after the invoice the client has to pay
Without this, "50% on design approval" becomes subjective.
Typical milestone structures
Percentage of total fee
Common in agencies and software, for example 30% at kickoff, 40% mid-project and 30% at launch. Each invoice references the contract value and the cumulative amount billed.
Fixed fees per phase
Good when phases take very different effort. Clients can compare each phase's value to its price.
Deposit plus milestones
Combine deposit invoicing with later milestones so you cover early risk without front-loading everything. A first milestone billed at signing works like a deposit, so say whether it is refundable. Some trades limit it: California home improvement contracts cap the down payment at $1,000 or 10% of the contract price, whichever is less, according to the Contractors State License Board.
What to put on the milestone invoice
- Milestone name, its deliverable and the acceptance date or evidence
- Reference to the SOW (statement of work) clause that sets the amount
- Approved change orders as separate lines, never folded into the milestone line
- Running schedule: contract value, prior invoices and payments, this invoice and the balance still to bill. On long jobs, see progress billing for related patterns
- Next milestone preview, so the next bill is expected
Follow the structural basics in how to write an invoice, and keep an audit trail of approvals and versions. The milestone invoice template has these fields laid out.
Worked example: a $20,000 website project
A studio agrees a $20,000 fixed price with three milestones: 30% when the designs are approved, 40% when the site is feature-complete on staging, and 30% at launch. That is $6,000 + $8,000 + $6,000 = $20,000. Mid-project the client approves change order CO-1, a booking integration priced at $1,200.
| Invoice | Lines | Amount |
|---|---|---|
| INV-0041 | Milestone 1 of 3, designs approved 4 August, 30% of $20,000 | $6,000.00 |
| INV-0049 | Milestone 2 of 3, feature-complete on staging, accepted 22 September, 40% of $20,000 | $8,000.00 |
| INV-0055 | Milestone 3 of 3, site launched 20 October, 30% of $20,000; CO-1 booking integration, approved 9 September | $6,000.00 + $1,200.00 = $7,200.00 |
Running schedule on INV-0055: contract $20,000 plus CO-1 $1,200 = $21,200; billed before this invoice $14,000; this invoice $7,200; remaining $0. The change order sits on its own line, so the original price stays visibly unchanged.
When the client delays acceptance
If a milestone is done but approval stalls:
- Document delivery (email, link, read receipt).
- Invoke the contract's deemed acceptance or review window clause if you have one, for example "accepted in writing, or no written objection within 5 business days of delivery".
- Send the invoice as the contract allows, quoting the delivery date and the clause.
For tense situations, handling disputed invoices offers de-escalation language you can adapt.
Milestones vs hourly
Not sure which model fits? Read hourly vs fixed-price invoicing. Milestones usually pair with fixed fees, but you can bill out-of-scope work at an hourly rate as separate change-order lines.
Putting it into practice
Before kickoff, put a milestone table in the contract with invoice amounts, deliverables and review windows. During delivery, keep evidence of completion with your invoice records: design files, staging links or signed acceptance forms. If a client wants to combine milestones for cash-flow reasons, use a single invoice with one line per milestone rather than skipping documentation for earlier gates. For long programs, reconcile cumulative billing against the contract each month so you never bill past the agreed total. When a milestone slips, update the expected invoice date and tell the client's accounts payable contact early.
Client communication around milestones
Tell the project sponsor shortly before each milestone invoice goes out, so accounts payable is not surprised. Include a plain-language status line in the email: what shipped, what is next and the invoice number. If the client's process requires a formal sign-off, quote the approval date and approver on the invoice and keep the approval email on file. When you combine milestones for administrative ease, still itemize each gate so sponsors see their budget impact. If the next phase needs fresh funding before you start, use a deposit invoice.
Step by step: structure a milestone-billed engagement
- Define each milestone as a deliverable, not a date. "Design phase complete" should mean specific artifacts delivered (wireframes, design system, signed-off mockups), not "by March 15".
- Tie the payment share to value delivered. Keep the final share large enough that you both stay engaged through closeout.
- Write acceptance criteria into the SOW. Say exactly what the client must do or sign to trigger the next invoice.
- Invoice the day a milestone is accepted, not at month end.
- Add a stalled-milestone clause. For example, if the client gives no written objection within a set number of days after delivery, the milestone is deemed accepted and you may invoice it.
How to bill milestones in InvoiceQuickly
InvoiceQuickly has no milestone, payment-schedule or project-tracking feature, so each milestone is an ordinary invoice:
- One line for the milestone, such as "Milestone 2 of 3, 40% of $20,000", quantity 1, and one line per approved change order.
- The running schedule goes in the notes, which print on the PDF.
- On Pro ($9/month) you can send the full price as an estimate that the client accepts in their portal, then convert it to an invoice.
- Keep the schedule itself in your contract or project tool and copy it onto each invoice. Free covers 5 invoices in total; Pro is unlimited.
Frequently asked questions
How many milestones should a project have?
Enough that you are never far ahead of what you have been paid, and few enough that each one is a real, checkable deliverable. Three to five is common for a project of a few months: an initial payment at signing, one or two delivery stages and a final acceptance stage.
What if a milestone is "almost" done?
It isn't done. Half-complete milestones invite half-paid invoices and disputes. Either agree a smaller milestone, or report the progress without invoicing it.
Should I require a deposit as well as milestones?
For new clients it is common to bill the first milestone at signing, which works as a deposit. Say whether it is refundable, apply it against the contract total, and check any legal cap for your trade, such as California's limit on home improvement down payments.
How do I handle scope changes mid-project?
Issue a change order with its own price and, if needed, a revised milestone schedule. Bill it as a separate line with the change order number and approval date. Don't fold extra scope into existing milestones.
What happens if the client pauses the project?
Your contract should include a pause clause: for example, if the client suspends work for more than a set number of days, the most recently completed milestone becomes payable and resumption needs a new schedule. Without one, a pause can leave finished work unbilled.
What is the difference between milestone and progress billing?
Milestone billing is triggered by an event, such as an approved prototype, and bills a fixed share of the contract. Progress billing bills at regular intervals for the share of work completed so far, usually against a schedule of values, and is common in construction with retainage.
Send each milestone as its own invoice with the schedule in the notes. Get started with InvoiceQuickly.
Last reviewed 28 October 2026.
Practical guidance for freelancers and small businesses creating and managing invoices.
Create your next invoice from one prompt
Describe the client, work, prices, and payment terms. Review every field before you send.
Create a Free InvoiceRelated guides
Subcontractor Invoicing: How to Bill and Get Billed Properly
Subcontractor invoicing for primes and subs: flow-down terms, backup, pay-when-paid risk, W-9 and 1099-NEC rules, and clean pass-through lines.
Scope Creep Prevention: Set Boundaries That Stick
Stop unpaid extra work with a scope that lists exclusions, a change order for every addition, and invoices that show each approved change on its own line.
Invoicing for Retainer Agreements: Billing Models and Templates
Invoice retainers well: prepaid vs postpaid, hours banks, overage and rollover, with a worked monthly invoice and the tax and trust-account rules to know.
Client Contract Templates: Clauses That Get You Paid
The contract clauses your invoices depend on: payment terms, late fees, kill fees and IP transfer on payment, with sample wording and NY and IL rules.
Useful, occasional notes
Get invoicing tips that actually help
Join the InvoiceQuickly update list for practical invoicing advice and product news.
No spam, ever. Unsubscribe anytime.