Big jobs rarely get paid in one shot. A payment schedule splits an estimate into a deposit and progress payments — each milestone becomes its own invoice with its own pay link, so you collect as the work moves instead of chasing one big bill at the end.

Think 30% deposit / 50% at rough-in / 20% at completion on an install.

Adding a schedule to an estimate

It works the same in the office and in the field app:

  1. Build the estimate as usual (options and line items).
  2. In the Payment schedule card below the line items, click Add. The How do they pay? window opens.
  3. Start from a preset, or build your own:
    • Half up front, half at the end — The usual split on a replacement. (Deposit 50%, Completion 50%)
    • Deposit, then mid-job, then the rest — For longer installs where you pay for equipment up front. (Deposit 30%, Rough-in 50%, Completion 20%)
    • Set my own stages — start from scratch.
  4. Adjust the names and amounts. Use the arrows to reorder, Add milestone to add a row, and × to remove one.
  5. Leave Send the deposit invoice when the customer approves. ticked, or untick it (see below).
  6. Click Save schedule, then save the estimate.

Edit how they pay window with Percent or Fixed $, three milestones, Add milestone, Start over and the deposit checkbox

Note

A schedule with one payment for the whole amount isn't needed. When you set one up, in the office or in the field app, the window tells you: One payment for the full amount works the same as invoicing the job. Skip the payment plan and the invoice will carry every line on the job. You can still save it. If you do, its invoice is named after the option the customer approved. See Invoicing milestone payments.

Changed your mind mid-edit? Start over clears the rows and brings the presets back. To remove a schedule, open it with Edit, delete every row and click Remove schedule.

Adding a schedule after the estimate is already a job

Sometimes the customer approves first and asks to pay in stages later. You can still add a schedule, as long as the job hasn't been invoiced yet.

Open the approved estimate

The Payment schedule card says No schedule yet. Split JOB-2458 into a deposit and progress payments. You'll pick which job lines the schedule covers. Click Add payment schedule.

Set the milestones

The How do they pay? window works as above: pick a preset or set your own stages.

Tick the job lines the schedule pays for

Under Lines on JOB-2458, the window lists the job's line items: These lines will be billed through the payment schedule. Anything you leave unticked is billed on its own invoice.

The lines that match what the customer signed for are ticked for you. Untick anything that should be billed separately, such as extra work added to the job after approval.

The line picker in the How do they pay window, with ticked job lines and the Ticked lines and Schedule bills (before tax) totals

Under the list:

  • Ticked lines — the total of the lines you ticked.
  • Schedule bills (before tax) — what the schedule bills, which is the signed total before tax.
  • Left for its own invoice — anything unticked.

The ticked lines have to add up to what the schedule bills, to the cent. Until they do, the window says The ticked lines have to add up to what the schedule bills before you can save.

Save the schedule

Click Save schedule. You then invoice each milestone from the job, and the ticked lines never show up on a regular job invoice, so nothing is billed twice. Unticked lines are billed on their own job invoice. See Invoicing milestone payments.

You need permission to edit invoices to add a schedule to a job. You can't add one when:

  • The job already has an invoice. The card says so and links to it. A schedule would bill the full amount again. To collect part of the money now, open that invoice and choose Part of it.
  • Part of the job is already billed through another payment schedule.
  • The job has no line items yet. Add the work to the job first.

Removing a schedule you added this way: open it with Edit, delete every row and click Remove schedule. The lines it covered go back to being billed on the job's own invoice. This only works while none of its milestones has been invoiced.

Percent or fixed amounts

TypeHow it works
PercentEach milestone is a share of the signed total. Percentages must add up to 100. Scales automatically if the customer picks a different option or adds an add-on.
Fixed $Each milestone is a dollar amount, before tax — each milestone's invoice adds its share of tax on top. The amounts must add up to the option total.
Tip

Use percent unless you have a reason not to. Fixed schedules must match the option total exactly — if the customer's add-on picks change the total at approval, they'll be asked to call you to finalize the plan.

The builder previews the split against the option you're viewing. Exact dollar amounts lock in when the customer approves — the final payment always absorbs any rounding, so the milestones add up to the signed total to the cent.

The deposit

The first milestone is the deposit. When the customer approves the estimate:

  • The deposit invoice is generated automatically, due on receipt.
  • By default it's also sent to the customer right away, with the pay link. Untick Send the deposit invoice when the customer approves. in the builder if you'd rather review it first. It stays a draft, and the customer can still pay it from their customer project page.

This also happens when a tech gets an on-site approval and converts the estimate to a job — the deposit generates at conversion.

What the customer sees

Before signing, the approval page shows the payment plan under the total — the customer knows the split before they commit. After approval, the same link becomes their project page, with the plan at the top and a Pay button on whatever's due. See The customer project page.

Editing after approval

  • Milestones that haven't been invoiced yet can be renamed or re-split — as long as the schedule still adds up.
  • Invoiced milestones are locked. Void the milestone's invoice first if you need to change it.