What drifting milestones look like
A remodeling contractor signs a kitchen-and-bath job with a deposit, two progress payments, and a final payment. The deposit comes in, rough-in passes, and the crew moves straight into cabinets and tile. Three weeks later the owner realizes the first progress invoice never went out, because the person who usually sends it was out the week rough-in passed. Meanwhile, the customer approved a shower layout change by text, and nobody knows which invoice it belongs on.
The payment schedule is written in the contract, but the job runs on a schedule board, a group chat, and the crew lead's phone. This article is about tying each payment milestone to a job phase, so that finishing the phase is what starts the invoice.
This is an operations article, not legal or contract advice. Deposit amounts, payment terms, retainage, lien rights, and what your contract must say are questions for your attorney and your contract templates. TwoQM has written about the front end of the job, estimate requests and job photos, and the cost side, job costing and change-order tracking. This piece covers the billing side of that same job record.
Here is an original example, not a TwoQM client and not a measured result. A contractor runs six to eight remodels at a time. Each contract lists its payment schedule in a paragraph near the end. The office keeps a spreadsheet of who has paid what, crew leads mark phases done on a whiteboard, and change orders are approved on paper, by text, or by phone.
When it doesn't work, the symptoms are familiar: a progress invoice goes out late, a final invoice arrives before the punch list is finished, a change order is billed twice or not at all, and the customer asks why the balance differs from what they expected. Nobody is careless. The payment schedule simply lives in a different place than the work.
Write each milestone as part of the job
Start by turning the payment paragraph in each contract into milestone records on the job itself. Each milestone holds:
Name and job phase. For example, "Deposit at signing," "Progress 1: rough-in inspection passed," "Progress 2: cabinets and countertops installed," "Final: completion walkthrough signed."
Amount. A fixed amount or a percentage of the contract total, exactly as your contract states it.
The "done" condition. What has to be true before the invoice is due: an inspection result, photos of the finished phase, or a signed walkthrough. Use the same condition your contract uses.
Who confirms it. Usually the crew lead or project manager marks the phase complete, and the office confirms before billing.
Status. Upcoming, ready to invoice, invoiced, paid, or on hold, with the date of each change.
Your contract sets the numbers and the conditions. The system only holds them where the crew and the office both look.
Let the phase trigger the invoice
When the crew lead marks a phase complete and attaches the photos or inspection result, the milestone moves to "ready to invoice." Each morning the office sees which jobs reached a milestone, the evidence attached, and the amount due under the contract. Someone reviews it and sends the invoice.
The rule works in reverse, too: a final milestone should not move to "ready" while punch-list items are still open.
Change orders update the schedule, not just the total
Decide, as a written company rule, how approved change orders are billed. Some contractors add a separate milestone for each change order. Others spread the amount across the remaining milestones. Either way, the change order record should show what changed, the approved price, who approved it and how, and which milestone it lands on.
When a change order is approved, the remaining schedule and balance update in one place, and the customer's next invoice matches what they approved.
Give the customer the same schedule you see
Customers are more comfortable paying when they can see where they stand. A simple payment schedule, on a shared page or as a short statement with each invoice, lists each milestone, its amount, its status, and any approved change orders. If you serve customers in English and Spanish, show it in each customer's preferred language, with the same amounts.
Connect the job tool and the invoicing tool
Many contractors use one tool for the field and another for invoices, and someone retypes job details between them. Connected systems can pass the milestone, amount, and job reference from the job record to a draft invoice in your accounting tool, and pass the payment status back, so the crew lead and the office see the same balance.
Automation first, then AI drafts a person reviews
Ordinary automation covers most of this: create a draft invoice when a milestone is marked ready, send payment reminders on the schedule your company sets, and flag phases marked complete with no invoice after a set number of days.
AI can help with drafting. It can turn an approved change order into a plain-language note for the customer, or draft the Spanish version of a payment schedule summary for a bilingual staff member to check. A person reviews and approves every draft. AI does not set amounts, decide when a phase is complete, or send invoices.
Where to start this week
Pick five open jobs. For each, write down the contract milestones, which phases are actually complete, what has been invoiced, and what has been paid. Then list every approved change order and where it was billed. The gaps show you where to start.
TwoQM builds connected systems and custom software for contractors. If your payment schedule lives in the contract while the work lives somewhere else, TwoQM can scope a milestone workflow around the job and accounting tools you already use. Pricing explains how business apps, systems, and custom software are scoped.
Describe Your Job and Invoicing Workflow · Explore TwoQM connected systems

