The short answer: a six-week job with a deposit and a final bill is a loan you are making to your client. Break it into milestones tied to visible, verifiable progress rather than to dates, so each payment has an obvious trigger neither side argues about. Weight the schedule so your money arrives slightly ahead of your spending, not behind it.
Week five of a six-week renovation. The job is going fine. The client is happy, the schedule is holding, the work is good.
And you are $9,000 out of pocket.
The deposit covered the first material order and not much more. Since then you have bought cabinets, paid your drywaller, covered three weeks of your own labor, and floated a plumbing rough-in. All of it is against a single final invoice that does not exist yet and will not be paid for another two or three weeks after it does. Nothing is wrong with the job. Everything is wrong with how the money is structured.
This is the specific failure of running a long job on a short job's payment structure. A deposit up front and a bill at the end works for a two-day job. Stretch it across six weeks and you are not a contractor anymore; you are an unlicensed lender making an interest-free loan to someone who owns a nicer house than you do.
The fix is a payment schedule: three, four, or five payments tied to points in the job, agreed before the job starts. You already know you should have one. The part nobody explains is how to design one that works: which milestones to pick, how to split the percentages, and how big the last payment should be. That is what this article is about.
What should trigger each payment?
The single most important design decision is what triggers each payment. Get this wrong and every payment becomes a small negotiation. Get it right and each one feels obvious.
The wrong trigger is a date. "Payment 2 due March 15" sounds tidy in a contract, but jobs slip. The moment the schedule slips, a date-based payment lands while the client is staring at a room that looks the same as it did last week. Now you are asking for money that does not feel earned yet, and even a reasonable client hesitates. Worse, if you are ahead of schedule, you are financing your own speed.
The right trigger is a state of the job the client can verify by standing in the room:
- Demolition complete. The old kitchen is gone. Unmistakable.
- Rough-in passed inspection. Plumbing and electrical are in the walls and an inspector signed off. This one is powerful precisely because a third party confirms it.
- Drywall up. The space reads as rooms again. Clients feel this one more than any other; it is the moment the project turns a corner emotionally.
- Cabinets and fixtures installed. The kitchen looks like a kitchen.
- Completion. Done, walked through, signed off.
Notice what these have in common: none of them require the client to trust your assessment of percentage complete. "We're about 60% through" is an argument waiting to happen. "The drywall is up" is a fact. When a payment triggers on a fact, the invoice is a formality. When it triggers on an opinion, the invoice is an opening bid.
A useful test when you draft a schedule: could the client's spouse, who has never met you, walk through the site and confirm the milestone happened? If yes, it is a good milestone. If it takes your explanation, pick a different one.
The job profitability calculator shows whether a finished job made the profit you priced it to make.
The percentages: a worked example
Take a $28,000 kitchen renovation running six weeks. Here is a five-payment schedule that works:
- $5,600 (20%) on signing. This is your deposit. It books the dates and covers the first material order.
- $5,600 (20%) when demolition is complete and rough-in has started. Usually end of week one. You have now collected 40% while roughly 25% of the work is done, and that is correct, because you have already committed to most of the materials.
- $7,000 (25%) when rough-in passes inspection. Mid-job. The expensive invisible work is done and independently verified.
- $7,000 (25%) when cabinets are installed and counters templated. The job is visibly nearly there.
- $2,800 (10%) on completion. After the final walkthrough.
Two design principles are doing the work in that split.
Money runs slightly ahead of cost, never behind it. At every point in that schedule, the cash you have collected covers the materials you have bought and the labor you have paid, with a modest margin. That is the entire purpose of the schedule. You are not trying to get paid before you earn it; you are trying to stop paying for the privilege of working. If you plot your projected costs week by week against the payment schedule and the cost line ever crosses above the payment line, move a milestone earlier or shift a few points of percentage toward the front.
Front-load for materials without gouging. A 20% deposit plus a 20% first milestone is defensible because you can point at what it bought: the cabinets are ordered, the lumber is on site. What you cannot defend is 50% on signing for a job where nothing has been purchased yet. Clients are rightly wary of heavy up-front demands. It is the classic pattern of contractors in financial trouble, and sophisticated clients know it. In some provinces and states there are also legal caps on deposits for home-improvement contracts. If your job is genuinely materials-heavy (a $12,000 cabinet package on a $28,000 job), the honest structure is to tie a payment explicitly to that order: "second payment due when cabinets are ordered," and say what it covers.
For shorter or simpler splits: a three-week job does fine with thirds (start, midpoint milestone, completion). A $100,000 addition over four months might want six or seven payments. The rhythm to aim for is a payment every one to two weeks of active work. Longer gaps than that and the float builds up again; shorter and you are invoicing more than you are building.
How big should the final payment be?
The final payment deserves its own paragraph in your thinking, because it is doing two jobs at once and they pull in opposite directions.
It has to be small enough that a stall doesn't sink you. Whatever is outstanding at the end of the job is the money most likely to arrive late, get argued about, or be held hostage to a backordered part. If that number is 25% of the contract, a slow final payment on one job can eat the profit of the whole thing and stress your next job's materials. If it is 10%, an argument at the end is annoying instead of dangerous. On our $28,000 example, the difference between a 25% final and a 10% final is $4,200 of exposure: most of the job's risk, moved off the table by arithmetic.
It also has to be big enough that finishing matters, to both of you. A client holding $2,800 has a real, legitimate lever to make sure the last details get done, and you have a real reason to schedule the punch-out work promptly instead of letting it drift behind the next job's start. That alignment is healthy. A final payment of $500 on a $28,000 job protects nobody and invites you to leave loose ends.
Ten to fifteen percent hits both marks on most residential work. On commercial jobs, a formal holdback or retainage regime may dictate this number for you. That is its own subject, with its own rules that vary by province and state, and it is covered separately.
Invoice each milestone the day it lands
A schedule on paper does nothing if the invoicing lags it. The discipline that makes the whole structure work: the day a milestone completes, the invoice for it goes out. Not at the end of the week, not batched with something else. Same day.
There are two reasons, and only one of them is cash flow.
The first is that speed keeps the link between work and money visible. An invoice that arrives the afternoon the inspector passed your rough-in is self-explanatory; the client just watched the milestone happen. The same invoice ten days later arrives as a cold request for $7,000 and makes the client reconstruct why they owe it.
The second is that it protects the schedule's honesty. If you let two milestones stack up and invoice them together, you have silently rebuilt the big-final-bill problem you designed the schedule to kill: one large number, arriving late, covering work the client has partly forgotten.
Each milestone invoice should name its milestone in plain language ("Payment 3 of 5: rough-in passed inspection March 12") and show the running position: contract total, paid to date, this payment, remaining. That last line matters more than it looks. A client who can always see the remaining balance never gets surprised, and clients who are never surprised pay on time.

Put the schedule in the quote, not in a later conversation
The schedule belongs in the original quote, presented at the same moment as the price. There is a version of this conversation that happens before signing, when it is easy, and a version that happens in week two, when it reads as a contractor improvising because money is tight. Same words, completely different reception.
Presenting it is short:
"The total is $28,000, and here's how the payments work: twenty percent when you sign, which covers booking the dates and the first material order. Then it follows the job: a payment when demo's done, one when the rough-in passes inspection, one when the cabinets go in, and the last ten percent after we do the final walkthrough together. So you're never paying for anything you can't walk in and see."
That last sentence is the whole pitch, and it is true. A milestone schedule is not a concession you are asking for; it is protection running both directions. The client's exposure is capped too. At no point have they paid meaningfully ahead of what exists in their house. Most clients, hearing it laid out, prefer it to a giant bill at the end. The predictability helps them plan their own finances, especially on jobs paid from a line of credit that draws in stages.
Two things to nail down in writing at the same time. Payment terms per invoice: milestone invoices should be due on receipt or net 7. The client knew each payment was coming since the day they signed, so there is nothing to review for thirty days. What happens when a milestone slips for a client-side reason: if the tile the client is supplying is three weeks late, the schedule should let you invoice the milestones that are done and pause fairly, not silently absorb the float. A sentence in the contract covers it.
And then the schedule needs to be enforced by the calendar, not by your mood. The first time you keep working past an unpaid milestone "because things are busy and they're good people," you have converted the schedule back into decoration. The polite, non-dramatic version of enforcement is built into the structure itself: the next phase starts when the current milestone is settled. You rarely have to say it twice.
Keeping the schedule where you can see it
The failure mode of milestone schedules is not design; it is administration. The schedule gets agreed in a quote, the job gets busy, and by week four nobody is quite sure which payment was invoiced, which was paid, and what is left. The contractor who was disciplined on paper drifts back into float.
This is a bookkeeping problem, so give it a bookkeeping fix. In Zeus, a payment schedule lives on the job. You set the stages once at the start, each with its own label and either a fixed amount or a percentage of the job price, and the client can sign the schedule the same way they sign a quote. Then as each milestone lands, record the payment against its stage from your phone on site. The remaining balance is always current, every partial payment has a home, and the question "did they pay the rough-in?" has an answer in the truck instead of in a shoebox. However you track it, the requirements are the same: the schedule written down, each payment recorded against its milestone the day it arrives, and the outstanding balance visible without an evening of spreadsheet archaeology.
A long job run on a well-designed schedule feels different from the inside. Materials are bought with money that has already arrived. A slow payer surfaces in week two, when the outstanding amount is $5,600 and you still have something to hold, instead of in week seven, when it is $14,000 and you have nothing. And week five stops being the week you check your line of credit before ordering fixtures.
The job was never the problem. The structure was.
Where Zeus fits
A milestone schedule stops being a schedule in the week nobody looks at it, and week five is exactly the week nobody looks at it. The stages and their amounts go into the quote before the job starts, and the client signs that on your phone or through a signing link, so the shape of the money is agreed in the same document as the work. When a milestone lands you invoice it off the job that day, from lines that are already there, and the tax is frozen on the document as it is issued. Payments are recorded against the job as they arrive, so it shows the total, what has come in and which stage is next. Costs are counted on the job that caused them, which is the half that tells you whether your money is running ahead of your spending or behind it. The aged report shows any stage invoice that has gone past its date. Invoices, payments and job costing in one place is where that side lives, and what the app actually carries is listed in full. It costs nothing to start, there is no card, and it does not expire; the pricing page lists what the paid sizes add. Put it on your phone and design the next schedule inside the quote.
Week five, the job going fine, the client happy, and $9,000 of yours sitting in someone else's kitchen. Nothing was wrong with the work. The schedule that would have fixed it had to be written six weeks earlier, in the quote, where both of you could still see it every time the job came up.
Frequently asked questions
How many milestones is too many?
If you are invoicing more than about once a week, the overhead starts to annoy both sides and the payments get small enough to feel like nagging. A payment roughly every one to two weeks of active work is the comfortable rhythm: three payments on a three-week job, five or so on a six-to-eight-week job, and for multi-month projects consider monthly progress billing tied to completed phases rather than a dozen micro-milestones.
What if the client wants to hold a milestone payment because of a defect in earlier work?
Fix real defects promptly regardless. That is not a payment question. But the schedule should not let one contested item freeze the whole cash flow. A fair mechanism, written into the contract, is that the client may hold back a reasonable value attributable to the specific item in question, not the entire payment. A $400 paint touch-up does not justify holding $7,000.
Do payment schedules work on cost-plus or time-and-materials jobs?
Yes, with one change. Since there is no fixed contract price to split into percentages, bill on a fixed cycle instead: weekly or biweekly invoices for the labor and materials actually consumed, with the paper trail attached. The principle is identical: the gap between doing the work and billing the work stays small enough that you are never financing the job.
Should the deposit be bigger on a job with expensive special-order materials?
Structure it rather than inflating it. Instead of a 35% deposit that looks alarming, keep the deposit normal and add an explicit early milestone tied to the order itself, such as "payment due when cabinetry is ordered: $6,000." The client can see exactly what the money is for, and you are not carrying the special order. If your province or state caps deposit sizes on home-improvement contracts, a payment tied to delivered value stands on firmer ground than an outsized deposit. Check the rules where you work.




