How to Invoice Construction Milestones and Change Orders

How to invoice contractor milestones and change orders: one line per milestone, one per approved change order with its CO number. Worked $9,050 example.

By Sam Whitfield November 2026 7 min read

Sam Whitfield writes about invoicing and getting paid for Voice Invoice, the iOS app that turns spoken job notes into PDF invoices.

A contractor progress invoice made by voice: Milestone 2 rough framing $8,400 and change order CO-2 recessed lights $650, totaling $9,050

How should contractors invoice milestones and change orders?

Put one line item per milestone and one per approved change order. Name the milestone exactly as your contract does, attach the CO number and approval date to each change, and state the terms on every invoice. Record it by voice in Voice Invoice the day the milestone wraps, review the PDF, and send it. A good progress invoice makes two things obvious: which milestone you're billing for, and what changed since the original scope. That means fewer "what is this charge?" calls and fewer payments held up by unclear scope.

New to invoicing in general? The basics (numbering, terms, what every invoice needs) are in how to write an invoice. This guide covers the part that is specific to contractors: billing a long job in stages.

When to use this

  • You bill in phases (deposit, rough-in, drywall, trim, final)
  • You handle change orders and want them approved and billed cleanly
  • Your client wants invoices that match an estimate, contract, or schedule of values
  • You've had payment delays because the invoice didn't explain what was completed

Painters run into the same scope problem on a smaller scale. Here's how painters name the prep and coats behind the price so the client can see what each line covers.

Steps

  1. Decide your standard milestone labels (keep them consistent across every job).
  2. Before you record, open the job estimate/contract so you can match names and amounts.
  3. Start a new recording and say the client name and the project/job label.
  4. Add one line item for the milestone you're billing (include the phase name and the completion window).
  5. Add one line item per change order that's been approved (use "Change Order #" plus a short description).
  6. Say amounts clearly and include units ("quantity one, one thousand two hundred dollars").
  7. Add a short note that reduces disputes: approval date, PO/reference, and what's included/excluded.
  8. Generate the invoice, then review: names, phase labels, and totals first.
  9. Edit wording so it reads cleanly on a phone, then export/share the PDF and send it.

30-second progress invoice checklist

  • Milestone name matches your contract/estimate wording
  • Each change order has a number (CO-1, CO-2) and an approval reference
  • Amounts are listed as flat dollar values (or hours + rate) with no ambiguity
  • Service dates/phase dates are present
  • Notes include the job label and any "included/excluded" boundary that prevents confusion
  • Due date/terms are stated (due on receipt, net 7, net 14)

Examples

Example voice script (milestone + change order)

Say this

"Create an invoice for Daniel Chen, project: Kitchen remodel, dated October 30, 2026.

Line item: Milestone 2, rough framing complete, October 19 through October 30, quantity one, eight thousand four hundred dollars.
Line item: Change Order CO-2, add three recessed lights in kitchen, approved October 27, quantity one, six hundred fifty dollars.

Notes: Progress invoice number 2. Change order includes labor and materials; patch and paint not included.
Due date: net 7."

That script produces a two-line invoice: Milestone 2 at $8,400 plus CO-2 at $650, for a total of $9,050, due net 7 (November 6, 2026). The change order stays visible as its own line instead of disappearing into the milestone amount.

The whole job, invoice by invoice

Same kitchen remodel, $21,000 contract billed in four milestones (30% / 40% / 20% / 10%), with two approved change orders billed on the invoice for the milestone they were done in:

Invoice Line items Invoice total
Progress invoice 1 Milestone 1 · Deposit (30%) · $6,300 $6,300
Progress invoice 2 Milestone 2 · Rough framing complete · $8,400
CO-2 · Add three recessed lights (approved Oct 27) · $650
$9,050
Progress invoice 3 Milestone 3 · Drywall + paint complete · $4,200
CO-1 · Upgrade faucet package (approved) · $325
$4,525
Final invoice Milestone 4 · Trim + punch list · $2,100 $2,100

Across the four invoices the client pays $21,975: the $21,000 contract plus $975 in approved changes. Anyone reading the invoices can trace each dollar back to a milestone or a signed change order.

Milestone-to-line-item cheat sheet (progress billing)

Not sure how a phase or change lands on the invoice? Use these as a starting point and match your contract's wording.

Billing stage How to bill it Tip
Deposit Its own milestone line: "Milestone 1, deposit (30%), $6,300" Numbering deposits as milestones keeps the payment schedule in one place.
Completed phase Contract wording plus the completion window: "Milestone 2, rough framing complete, Oct 19–30, $8,400" If the client can point to what's finished, they approve faster.
Approved change order Separate line with number and date: "CO-2, add three recessed lights, approved Oct 27, $650" Never bundle a change into a milestone total; the approval trail is what gets it paid.
Allowance item Boundary note in the line or notes: "includes labor and materials; patch and paint not included" Say what's excluded on the invoice, not in a follow-up conversation.
Final payment Last milestone line, with a note listing what earlier invoices billed: "Milestone 4, trim + punch list, $2,100" A note like "Invoices 1–3 billed $19,875" shows the client the final invoice closes out the job.

Next milestone you hit, try the script above. Voice Invoice turns it into a client-ready PDF before you leave the site.

Download Voice Invoice on the App Store

Common mistakes

Mistake: "Progress payment" is the only description

Fast fix: name the phase. Use a milestone label that matches your contract: "Milestone 2, rough framing complete" or "Milestone 4, trim + punch list." If the client can point to what's finished, they pay faster.

Mistake: Change orders are bundled into a milestone total

Fast fix: separate them. Add one line item per change order with a CO number and approval date. It keeps your base scope clean and makes approvals easier to track.

Mistake: The invoice doesn't match the estimate wording

Fast fix: reuse the same labels every time. If your estimate says "rough framing," don't invoice "carpentry work." Matching language prevents "is this extra?" conversations.

FAQ

How do I invoice a change order?

Give it its own line item: the change order number, a short description, the approval date, and the amount, for example “CO-2, add three recessed lights, approved Oct 27, $650.” Don't fold it into a milestone total. The separate line is what lets the client match it to the change they signed.

What should a progress invoice include?

The job name, the milestone you're billing with the same wording as your contract, the dates that phase covered, one line per approved change order, the progress invoice number, and the payment terms. On the final invoice, also restate what earlier invoices already billed so the balance is clear.

What is progress billing?

Invoicing a long job in stages instead of one bill at the end: each invoice covers a completed milestone (deposit, rough-in, drywall, final) plus any approved change orders, so your cash flow tracks the work actually done and the client pays for finished scope, not promises.

What if the app mishears a number or a change order code?

Review the draft and edit the one line item that's off. For best results, say numbers clearly and include units (“six hundred fifty dollars” and “CO-2”) instead of rushing through a sentence.

Will a voice-generated invoice look professional to a homeowner or GC?

Yes. You'll export a clean PDF invoice, and you can edit the wording before you send it. Consistent branding (your logo, no watermark) is part of the Professional plan.

Do you store my invoices or voice recordings?

Invoices are stored locally on your device by default, and the app doesn't require an account. Your recording is sent over an encrypted connection to generate structured invoice data, and the app is designed so we don't store voice recordings on our servers. See the Privacy Policy for details.

Will it work on a job site with weak signal?

Yes. You can record with no signal. The recording waits on your phone and the invoice is generated automatically once you're back online, so you can say the milestone while you're still on site.

Is it worth switching if I already have an invoice template?

Keep your structure, just change the input method. If you already invoice with milestones and change orders, this workflow helps you produce the same clarity faster on your phone, with less typing and fewer missed details.

How much does the app cost?

The free tier covers 3 invoices per month, with watermarked PDFs. Professional is $7.99/month or $59.99/year and adds unlimited invoices, no watermark, custom branding, and CSV export. Plans and platform details are on the About page.

Next step

Next time you finish a milestone, record the invoice right away: one line for the milestone, then one line per approved change order. If you can read it and understand it in 10 seconds, your client can too.

Want a faster first run-through? Read Create Your First Invoice by Voice on iPhone, or see what voice invoicing is if it's new to you. For accuracy tips, see FAQ: Accuracy.

Download Voice Invoice on the App Store