Back to site

Milestone billing

Milestone billing lets you bill a single job in stages instead of one deposit and one final invoice. You lay out a payment schedule on the quote, the client sees and signs it, and each stage is billed as the work reaches it. It is a good fit for larger jobs where the client expects to pay in steps.

Set up the schedule on the quote

In the quote composer, open the Billing card and pick Milestone schedule. A stage builder appears, pre-filled with two starter stages. For each stage you set:

  • A name the client will see, like "Deposit", "Rough-in complete", or "Final walkthrough".
  • A percent of the quote total.

The percentages must add up to 100%. As you type, the card shows a running total and the dollar amount each stage will bill, so you can see the split before you send. Add or remove stages as needed. You cannot send the quote until the stages total 100%.

The first stage is the upfront share of the one-time price. It is invoiced by the acceptance workflow after any required signatures, so put the amount you want up front in stage one. Issuing the invoice does not mean it has been paid.

What the client sees

The client opens the quote and sees the full payment schedule: every stage, what percent and dollar amount it is, and when it is billed. The first stage is marked "due when you accept" and the rest are marked "billed as the work reaches this stage." When they accept and sign, they are agreeing to the whole schedule, and the first stage's invoice goes out right away.

The schedule is part of the offer the client reviews. Changed terms require a fresh review; the acceptance flow rejects a stale version rather than silently accepting new prices. The sent line-item editor is not a general schedule editor. Use the supported replacement workflow if the payment structure needs to change, and do not edit an already-signed schedule.

Milestone quotes cannot include optional add-ons. Business-billed recurring rows have their own first-period billing, while provider-direct costs remain outside your invoices; neither changes the one-time stage percentages. See Billing modes.

Bill the later stages

Open the contract from your contracts list. For a milestone quote you get a Payment schedule card with every stage, its amount, and its status. When a stage's work is done, you have three ways to bill it:

  • Bill this stage sends that stage's invoice right now.
  • Mark complete records that the stage's work is finished. If you have turned on auto-bill for that stage, marking it complete also sends its invoice.
  • Auto-bill is a per-stage switch. With it on, you never have to remember to bill: the invoice goes out the moment you mark the stage complete.

Stage allocation accounts for rounding so the amounts add up to the one-time quote total. The last allocation absorbs the rounding remainder; it is not a new charge for any invoice the client has not yet paid.

The billing controls track each stage's invoice to support safe retries. Check the existing invoice and stage status after a failed or delayed response before attempting another billing action.

Where it shows up

  • On the client's billing page, the client sees the whole plan, including stages that have not been billed yet, so they always know what is coming.
  • On the Codex job page, the schedule appears alongside the job's costs and margin, so you can see how the billing is progressing while you look at the numbers.
  • Each stage's invoice reaches the client the same way every other invoice does, with a secure pay link, and its payment status updates automatically once they pay.
Deposit modes vs milestone billing

If you just want a deposit now and the rest billed loosely as you go, the Deposit + progress payments mode is simpler. Reach for milestone billing when you want a fixed, named schedule the client agrees to up front.