The materialiser walks the change order's divisions and, per routing, appends a line to a draft invoice, appends a new scheduled payment to the project's plan, or creates a standalone invoice. It is idempotent, refuses to run on an already-invoiced change order, and only flips the change order to 'invoiced' when every division succeeded.
Also called: bill the change order · generate the invoice from the extra · change order to invoice
- 1Divisions already materialised or paid are skipped and reported as-is.
- 2Merge is only allowed into a draft target; a sent or paid target falls back to appending a new scheduled payment, and a missing target falls back to a standalone invoice.
- 3Schedule-dependent routings with no project fall back to standalone.
- 4A new scheduled payment takes the next stage index and bumps every sibling's stage count, so the plan reads 'Payment 4 of 4'.
- 5A division is only stamped done when its invoice or line was actually created — a transient failure leaves it pending so it can be retried.
A draw that has been sent already has its payment amount fixed and may already sit in the builder's accounting package, so it cannot quietly grow by the value of a change order. A merge only ever lands on a draw that has not gone out, falling back to the next available one when the intended target has already been sent. If one bucket fails to land it stays pending and retryable rather than being marked done, because silently dropping a bucket means the customer is never billed for work that was carried out.
- Re-running billing creating a second set of invoices.
- Adding a line to an invoice that has already been sent or pushed to accounting.
- A failed bucket silently disappearing and underbilling the customer.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →