Sample milestone line items
Invoice title: “Milestone 2 — Design system handoff.” Lines: “UI kit + component library (as accepted 6/12) — $3,200,” “Design QA pass — $400,” “Sales tax (if applicable).” Notes: “Covers SOW §3.2. Next phase (build) starts after this invoice is paid.” Mirror the proposal wording so reviewers are not translating your invoice into their SOW.
Sample milestone payment request email
Subject: “INV-3302 — Milestone 2 Design system ($3,600) due June 20.” Body: “Hi Casey — Milestone 2 (design system handoff) is ready for acceptance as outlined in SOW §3.2. Invoice INV-3302 ($3,600) is attached and due June 20. Pay by card: [pay-now link]. Per our agreement, build (Milestone 3) starts after this invoice is paid. Reply if AP needs a PO or a billing-name change.” Tie start-of-next-phase language to the contract you already have.
When not to use milestones
Skip milestone invoices for tiny fixed jobs that are done in one send, pure retainers with a monthly capacity fee, or deposits that only unlock kickoff. Those fit deposit or retainer patterns better. Milestones shine when phases have acceptance criteria and you need payment status per phase—not when you are really collecting a single project balance in disguise.
Edge cases in progress billing
Partial acceptance: invoice only the accepted portion, or revise line items before sending pay-now. Change order mid-phase: add a separate line (or invoice) so the milestone total stays reconcilable. Shared milestone across vendors: make clear which deliverables you own. Client wants one monthly statement: you can still keep internal milestone invoices and summarize—do not merge unpaid phases into one opaque total without line clarity.
Failure modes that stall the project
One rolling invoice for every phase (status becomes unclear), starting the next phase while the prior milestone is unpaid when terms forbid it, vague line items (“Phase 2 work — $5,000”), and reminders that omit which milestone is open. Also: using retainer language on a milestone invoice (or the reverse), which confuses AP about what they are approving.
Keep the next phase unblocked
If your contract requires payment before the next phase, say so on the PDF and in the email. Do not start unpaid work and then surprise the client with a firmer tone. Use status on the same invoice record—not a new spreadsheet—to see which milestone is still open. For polite reminder cadence on an unpaid milestone, use the invoice reminder guide.