Contractor payment schedule template for homeowners in Excel
A payment schedule turns a contract into a list of dates and amounts you can plan cash around. Here is a milestone table with formulas for the next 30 and 60 days of cash needed, using a $24,000 example.
Free: Contingency & Change Order Tracker, one Excel tab. Confirm your email and the file arrives right away, plus an occasional note (at most one a week) on keeping a renovation on budget. Unsubscribe in one click. Privacy.
General information only, not financial, construction or legal advice. Contingency, holdback and payment-split percentages are your own inputs, and payment and deposit rules vary by contract and by state or province; check yours. Figures cited from other sources are dated where they appear.
The answer
A payment schedule for a homeowner is a short table: each milestone, its percentage of the contract, the amount, an estimated due date and a Paid? flag. With that in one place, two numbers tell you how much cash to have ready: what falls due in the next 30 days and in the next 60. For a $24,000 contract split 20/30/30/20, the payments are $4,800, $7,200, $7,200 and $4,800.
Where the percentages come from
From your contract, not from this page. For context, as of 2026-10-05 one contractor payment guide describes a typical remodeling schedule as following "project milestones rather than calendar dates", with approximately 10-20% at contract signing and 10-15% of the contract price withheld until the punch list is resolved (CheckLicensed). The same page says deposit limits differ by state. Those are one source's ranges, not a recommendation, and the 20/30/30/20 split below is only a worked example.
Worked example: $24,000 at 20/30/30/20
Inputs: contract amount in B1, as-of date in B2 (2026-10-05, or =TODAY()). The table has headings in row 4 and milestones in rows 5 to 8. Due dates are estimates; milestone work moves, so you update them.
| A: Milestone | B: % of contract | C: Amount | D: Due (estimate) | E: Paid? | F: Days out |
|---|---|---|---|---|---|
| Deposit at signing | 20% | $4,800 | 2026-10-12 | No | 7 |
| Rough-in complete | 30% | $7,200 | 2026-10-30 | No | 25 |
| Cabinets installed | 30% | $7,200 | 2026-11-20 | No | 46 |
| Final completion | 20% | $4,800 | 2026-12-11 | No | 67 |
| Total | 100% | $24,000 |
Thirty days from 2026-10-05 is 2026-11-04, so the first two milestones fall inside the window: 4,800 + 7,200 = $12,000 of 30-day cash need. Sixty days is 2026-12-04, which adds the third: 12,000 + 7,200 = $19,200. The final $4,800 is 67 days out. If the deposit were already paid, the 30-day need would drop to $7,200.
The formulas
C5 Amount =B5*$B$1
E5 Paid? =IF(SUMIFS(Payments!$C$2:$C$200,Payments!$E$2:$E$200,A5)>=C5,"Yes","No")
F5 Days out =D5-$B$2
(fill C5:F5 down to row 8)
Summary cells in H (labels in G):
H1 Splits check =SUM(B5:B8) 100%
H2 Amount check =SUM(C5:C8)-B1 0
H3 Next 30 days =SUMIFS($C$5:$C$8,$D$5:$D$8,"<="&$B$2+30,$E$5:$E$8,"No") 12,000
H4 Next 60 days =SUMIFS($C$5:$C$8,$D$5:$D$8,"<="&$B$2+60,$E$5:$E$8,"No") 19,200
H5 Still to pay =SUMIFS($C$5:$C$8,$E$5:$E$8,"No") 24,000
H6 Due within 7 days =COUNTIFS($D$5:$D$8,">="&$B$2,$D$5:$D$8,"<="&$B$2+7,$E$5:$E$8,"No") 1
Paid? adds up the amounts (column C) on the Payments tab whose milestone column (E) matches the milestone name in A, and reads Yes when they cover the full amount, so give each milestone a unique name. Because the cash-need formulas test the unpaid flag, a milestone drops out of the 30- and 60-day totals the moment its payment is logged. If an installment falls a month after another, =EDATE(D5,1) gives the same day next month.
The 30- and 60-day formulas also count milestones whose due date has already passed but are still unpaid, which is what you want: overdue is still cash you owe. If you hire several trades, keep their milestones in one table with a contractor column; the same formulas then add up everything due across all of them, which is how three payments landing in one week shows up in advance.
Compare the 30-day number with your cash
The 30-day figure is cash you need available, not the project's cost. Type what you have set aside for it in B10 and subtract. With $9,000 available against the $12,000 need, the gap is $3,000:
B10 Cash available 9000 (typed)
B11 30-day gap =MAX(0,H3-B10) 3,000
Check that you are not paid ahead
A schedule says when money is due; it does not say whether the work is there. Add your own estimate of percent complete and compare it with the share you have paid. Suppose the first two milestones are paid ($12,000, or 50% of the contract) and you judge the job 35% complete:
B13 Paid so far =SUMIFS($C$5:$C$8,$E$5:$E$8,"Yes") 12,000
B14 % complete 35% (typed, your judgment)
B15 Paid ahead =(B13/B1-B14)*B1 3,600
A positive B15 means you have paid $3,600 more than the progress you see. Whether and how to act on that depends on your contract. If your contract holds back part of the final payment, the holdback percentage is another input: 10% of $24,000 would be $2,400 (=0.1*B1).
Mistakes
- Treating estimated dates as fixed. Milestones are triggered by work, so edit the due date when the work slips and the 30- and 60-day totals follow.
- Forgetting approved changes. A change order adds money. Give it a row and a milestone of its own, or the Amount check will no longer match the contract you owe. See the change order tracker guide.
- Percentages that do not add to 100%. The Splits check catches it.
- Splitting the schedule from the ledger. Payments logged on the Payments tab should also appear in the budget; see committed vs paid.
Related
To compare what each bidder would charge before you set a schedule, see the bid comparison guide. The Hexloom Renovation Budget Tracker keeps the schedule, payments and per-contractor balances in one workbook.
What this does not do
This is a planning tool, not financial, construction or legal advice. The deposit, the milestone splits and the holdback are your inputs, never recommendations. Payment-schedule and deposit rules vary by state or province and by contract, so check yours and read your contract. The sheet tracks what you decide to pay; it does not tell you what you are allowed or required to pay.
Sources
More renovation budget guides
- Renovation cost overrun percentage calculator: the formula and a worked example
- Renovation contingency tracker: how much contingency is left
- Renovation change order tracker: a spreadsheet for homeowners
- Renovation budget spreadsheet: track committed vs paid
- Renovation budget by room spreadsheet: SUMIFS per room, with an overrun flag
- Kitchen remodel budget spreadsheet in Excel, built line by line
- DIY renovation expense tracker spreadsheet: receipts by room and category
- Contractor bid comparison spreadsheet for homeowners
- Bathroom remodel budget spreadsheet in Excel: how much is really left
Already built
The Cash Schedule tab of the Hexloom Renovation Budget Tracker lists milestones, amounts, trigger or date and whether each is paid, matched from the Payments tab, with the cash needed in the next 30 and 60 days. The Contractors tab shows each contractor's contract, approved COs, paid, balance due, holdback, percent complete and a paid-ahead flag. Percentages, holdback and dates are inputs you set. It is one Excel file, $29 one time, with no bank link and no account.