How to Invoice a Completed Project Milestone in CrmLeaf
All editions. Core feature - no add-on required. The BOQ utilisation figures shown in the preview require the Manufacture add-on module to be enabled for your account.
Availability: All editions. Core feature - no add-on required. The BOQ utilisation figures shown in the preview require the Manufacture add-on module to be enabled for your account.
Overview
Milestone invoicing bills a completed project milestone from the work that was actually done on it, rather than from a flat milestone price. CrmLeaf gathers the milestone's approved but unbilled material requisitions and approved but unbilled billable time logs, shows them in a preview, and creates a client invoice from them. Source records are stamped so nothing is ever billed twice.
How It Works
You complete the milestone, review the gathered billable work in a preview, and create the invoice. CrmLeaf then marks the sources and the milestone as invoiced.
Complete milestone → Review preview → Create invoice → Sources stamped → Milestone invoiced
- The invoice is created with
invoice_type = milestone. - The preview gathers two things: the milestone's approved but unbilled Material Requisitions, and approved but unbilled billable time logs on the milestone's tasks.
- Where the Manufacture module is enabled, the preview also shows BOQ utilisation: planned against used against remaining.
- Amounts come from the underlying billable work - requisition line totals plus time log earnings - not from a flat milestone price.
- On creation, every source record is stamped with the
invoice_idso it cannot be billed again, and the milestone is marked as invoiced. - Three guards must all pass: the milestone status must be
complete, the project must have a client, and the milestone must not already be invoiced.
Who Can Use This Feature?
User
- Mark a milestone complete once its work is finished.
- Review the billable work gathered in the milestone invoice preview.
- Create the client invoice from the milestone.
- Send the invoice and record payment against it.
Access depends on the modules and role assigned by your Administrator. Project, milestone and invoice visibility follow the ownership-based permission scope set for your role.
Prerequisites
- The project must have a client attached.
- The milestone status must be
complete. - The milestone must not already have been invoiced.
- Material requisitions to be billed must be approved and not yet billed.
- Time logs to be billed must be approved, marked billable, and not yet billed.
For Users
Step 1: Complete the milestone
What to do: Open the milestone and mark it complete once all its tasks are finished. Milestone invoicing is only available for a milestone whose status is complete.
What to verify: The milestone status reads complete.
Step 2: Confirm the billable work is ready
What to do: Confirm that the time logs on the milestone's tasks are approved and marked billable, and that the milestone's material requisitions are approved. Only approved and unbilled records are gathered.
What to verify: The time logs and requisitions you expect to bill are approved and not already stamped as invoiced.
Step 3: Open the milestone invoice preview
What to do: From the completed milestone, open the milestone invoicing preview. CrmLeaf gathers the approved but unbilled material requisitions and the approved but unbilled billable time logs into the preview and shows the amounts derived from them.
What to verify: The preview lists the requisitions and time logs you expected. Where the Manufacture module is enabled, check the BOQ utilisation figures for planned, used and remaining quantities.
Step 4: Create the invoice
What to do: Create the client invoice from the preview. CrmLeaf creates an invoice with invoice_type = milestone, stamps each source record with the invoice reference, and marks the milestone as invoiced.
What to verify: The invoice appears in Sales → Invoices, the milestone is marked invoiced, and the source requisitions and time logs are no longer available to bill.
Step 5: Send and collect
What to do: Send the invoice to the client and record payment as you would for any invoice.
What to verify: The invoice status moves to partial or paid as payment is recorded.
Field and Option Reference
| Field / Option | Description | Required |
|---|---|---|
| Milestone status | Must be complete before the milestone can be invoiced. | Yes |
| Project client | The client the milestone invoice is raised for. The project must have one. | Yes |
| Material requisitions | Approved but unbilled requisitions on the milestone; their line totals feed the invoice amount. | No |
| Billable time logs | Approved but unbilled billable time logs on the milestone's tasks; their earnings feed the invoice amount. | No |
| BOQ utilisation | Planned against used against remaining quantities, shown when the Manufacture module is enabled. | No |
Expected Result
A client invoice with invoice_type = milestone is created from the milestone's billable work. Every source requisition and time log is stamped with the invoice reference, and the milestone is marked as invoiced so it cannot be billed a second time.
Why This Matters for Service Organisations
Deliverable-based billing is how most substantial engagements are contracted: the client pays when a phase or a defined deliverable is finished. Run from spreadsheets, it leaks in two directions — approved work is missed from the bill, and work already billed on an earlier stage is billed twice, which costs more in client trust than it recovers. Milestone invoicing builds the invoice from the milestone's own approved, unbilled work and stamps every record it consumes.
How It Supports Professional Services
- The invoice is assembled from the milestone's approved-but-unbilled billable timelogs on its tasks and its approved-but-unbilled material requisitions, so the bill is a statement of what was actually delivered on that stage.
- Amounts are derived from the underlying work — timelog earnings plus requisition line totals — not from a flat milestone price, so the figure can be defended line by line in a client review.
- Every source record is stamped with the invoice reference and the milestone is marked invoiced, which makes double billing across consecutive stages structurally impossible rather than a matter of care.
- Three guards must all pass: the milestone status must be
complete, the project must have a client, and the milestone must not already be invoiced. The delivery decision, not the finance calendar, releases the invoice. - Only approved records are gathered, so timesheet and requisition approval sit directly on the path to cash — anything unapproved when the invoice is raised is absent from the bill.
- Where the Manufacture module is enabled, BOQ utilisation is shown as planned against used against remaining, giving a delivery lead the consumption picture at the moment they bill the stage.
Typical Service Workflow
Milestone → Delivery → Approvals → Complete → Milestone invoice → Payment
This is the deliverable-based route through the bill step. Gathering, stamping and marking the milestone invoiced are performed by the product once the guards pass; getting timelogs and requisitions approved beforehand is the practice that determines how complete the invoice is.
Other Product-Type Use Cases
The same mechanism bills construction stages and solar installation phases, where material issued against a stage matters as much as labour. A milestone with no requisitions bills labour alone, which is the usual shape in consulting and software services.
Related PSA Capabilities
- How to Create and Complete Project Milestones — the completion step that unlocks invoicing.
- How to Submit and Approve Weekly Timesheets — approval is what makes billable hours available to the milestone invoice.
- How to Bill Tracked Time on an Invoice — the period-based alternative for time-and-materials engagements.
- How to Read Budget vs Actual and EVM Analytics — where invoiced value appears among a project's derived actuals.
- How to Bill Construction Milestones — the same billing route in a construction context.
Important Notes
- Menu names and their position can differ between product editions and can be customised for your account, so your sidebar may not match these paths exactly. Use Search or your Quick Access items if you cannot find a screen.
- The invoice amount is derived from the underlying billable work, not from the milestone's cost value. A milestone cost is a plan figure; the invoice is what was actually consumed and worked.
- Anything not approved at the moment you generate the invoice is not gathered. Approve first, then invoice.
- Because source records are stamped with the invoice reference, work billed on a milestone invoice cannot be billed again on another invoice.
- BOQ utilisation figures depend on the Manufacture add-on module. Confirm with your Administrator that it is enabled and included in your plan.
Common Scenarios
Example: billing a build phase. A construction milestone is finished. The material issued to it was requisitioned and approved, and the site team's hours were approved as billable. You mark the milestone complete and invoice it, and the client receives one invoice covering exactly that material and labour.
Example: a milestone with only labour. No material was requisitioned. The preview gathers only the approved billable time logs, and the invoice covers labour alone.
Troubleshooting
| Issue | Possible Cause | Resolution |
|---|---|---|
| The milestone cannot be invoiced | The milestone status is not complete | Finish the milestone's work and mark the milestone complete, then try again. |
| The milestone cannot be invoiced and the project looks internal | The project has no client attached, so there is nobody to invoice | Attach the client to the project, then invoice the milestone. |
| The milestone offers no invoicing option at all | The milestone has already been invoiced | Open the existing milestone invoice. Raise a separate invoice for any work that came later. |
| The preview is empty or the amount is lower than expected | The material requisitions or time logs are not approved, are not billable, or have already been stamped with an invoice reference | Approve the outstanding records, confirm the time logs are marked billable, and check whether the missing records were billed on an earlier invoice. |
| No BOQ utilisation figures appear | The Manufacture module is not enabled for the account | Ask your Administrator to confirm whether the module is enabled and included in your plan. |
Frequently Asked Questions
Does the milestone's cost value become the invoice amount?
No. The amount is derived from the requisition line totals and the time log earnings gathered for the milestone.
Can the same work be billed twice?
No. Each source record is stamped with the invoice reference when the milestone invoice is created.
Can I invoice a milestone that is not complete?
No. The milestone status must be complete.
What if work is approved after the milestone was invoiced?
The milestone is already marked invoiced, so bill the later work on a separate invoice.
Related Articles
Our support team answers on business days. Reference QTC-08 so we can jump straight in.