Milestone & Progress Billing

Invoice completed project milestones from actual billable work

CrmLeaf milestone billing generates a client invoice directly from a completed milestone, rolling up every approved timelog and material requisition into one accurate bill - with built-in guards against double billing.

  • Free trial
  • No credit card
  • Free onboarding
step flow from milestone to invoice
5
step flow from milestone to invoice
work types rolled up: timelogs and requisitions
2
work types rolled up: timelogs and requisitions
guards checked before an invoice is allowed
3
guards checked before an invoice is allowed
layers of double-billing protection
2
layers of double-billing protection

Milestone billing flow

From defined milestone to client invoice

Milestones are both planning checkpoints and billing boundaries, so project and finance work from one structure.

  1. Step 01

    Define milestones

    Title, cost, currency and dates

  2. Step 02

    Complete work

    Log time and requisition materials

  3. Step 03

    Mark complete

    Set the milestone status to complete

  4. Step 04

    Preview billable items

    Review timelogs, requisitions and BOQ

  5. Step 05

    Generate invoice

    One-click client invoice creation

In detail

How each capability works

01 / 06

Milestone Definition

A milestone groups tasks inside a project and carries its own title, estimated cost with currency, and start and end dates. Milestones can be marked complete or incomplete, and a completed milestone with a client assigned becomes eligible for direct invoicing - no separate billing configuration needed.

Every milestone acts as both a project planning checkpoint and a billing boundary, so project managers and finance teams work from the same structure without reconciling separate systems.

Built in

  • Create milestones inside any project and assign tasks to them
  • Set an estimated cost and currency for budget tracking
  • Mark a milestone complete when its work is done - this unlocks the invoice action
  • Milestone status is independent of individual task status, giving project managers explicit control
  • Title, cost & currency
  • Start & end dates
  • Complete / incomplete status
  • Groups tasks
02 / 06

Billable Work Rollup

When you invoice a milestone, CrmLeaf gathers every approved-but-unbilled billable timelog and every approved-but-unbilled material requisition tied to that milestone's tasks. The result is a preview showing exactly what will appear on the client invoice, line by line.

Invoice amounts come from the underlying billable work: timelog earnings (hours multiplied by the billable rate) plus requisition line totals. This is not a flat milestone price - the invoice reflects the actual cost of work performed.

Built in

  • All tasks assigned to the milestone are scanned for billable timelogs and material requisitions
  • Only approved records that have not yet been invoiced are included
  • Timelog earnings and requisition line totals are calculated and shown in a preview
  • Review the preview before confirming - nothing is invoiced until you approve
  • Approved-but-unbilled timelogs
  • Approved-but-unbilled requisitions
  • Line-item preview
  • Actual cost, not flat price
03 / 06

BOQ Utilization Preview

When the Manufacturing / BOQ module is enabled, the milestone billing preview adds a Bill of Quantities utilization view. This shows planned quantities alongside what has actually been consumed and what remains, giving project managers and clients a clear picture of material usage before the invoice is generated.

BOQ utilization is especially valuable for construction, solar installation and manufacturing projects, where material variance directly affects project profitability and client trust.

Built in

  • BOQ utilization appears automatically when the Manufacturing module is active on the project
  • Planned quantities from the Bill of Quantities are compared against actual consumption from requisitions
  • Remaining quantities are calculated so you can see overruns or savings before invoicing
  • The utilization data sits alongside the billable preview for a single review before invoice generation
  • Planned vs. used vs. remaining
  • Manufacturing module integration
  • Material variance visibility
04 / 06

Auto-Invoice Generation

Once you have reviewed the billable preview, generating the client invoice is a single action. CrmLeaf creates the invoice record, populates it with every approved timelog and requisition line from the preview, and marks the milestone as invoiced - all in one step.

The invoice type is set to milestone, linking it directly to the project milestone. From there, the invoice follows CrmLeaf's standard invoicing workflow: send to client, track payment, and record receipt.

Built in

  • Confirm the billable preview and click Generate Invoice
  • A client invoice is created with all approved timelog and requisition lines
  • The milestone is automatically marked as invoiced to prevent re-invoicing
  • The invoice enters the standard invoicing pipeline for sending, payment tracking and receipts
  • One-click invoice creation
  • Milestone invoice type
  • Milestone marked invoiced
  • Standard invoice workflow after
05 / 06

Double-Billing Prevention

Every timelog and material requisition included in a milestone invoice gets stamped with the generated invoice ID at the moment the invoice is created. Any future billing action - whether milestone, task or project level - skips records that already carry an invoice ID.

This stamp-and-exclude mechanism operates at the record level, not the milestone level, so even if tasks are reassigned between milestones, the underlying work is never billed twice. The milestone itself is also flagged as invoiced, providing a second layer of protection.

Built in

  • On invoice generation, every source timelog and requisition is stamped with the invoice ID
  • Stamped records are excluded from all future billing previews across all invoice types
  • The milestone itself is marked invoiced, preventing a second invoice attempt on the same milestone
  • Guards run before the invoice action is available: the milestone must be complete, the project must have a client, and the milestone must not already be invoiced
  • Invoice ID stamp on source records
  • Record-level exclusion
  • Milestone-level invoiced flag
  • Two layers of protection
06 / 06

Construction & Solar Workflows

Construction and solar installation teams structure projects around physical phases - foundation, framing, rough-in, panel installation, commissioning. Each phase maps naturally to a CrmLeaf milestone, collecting its own labor timelogs and material requisitions as work progresses.

When a phase is complete, the project manager marks the milestone done and invoices the client for exactly the labor and materials consumed during that phase. With BOQ utilization visible at each milestone, both the contractor and the client see material usage against the original Bill of Quantities before any money changes hands.

Built in

  • Create milestones for Foundation, Framing, Electrical, Panel Installation and Commissioning
  • Assign tasks, log time and submit material requisitions under each milestone
  • When a phase completes, mark the milestone done and preview the billable work
  • Generate the phase invoice with full BOQ utilization data for client transparency
  • Phase-based project structure
  • Labor + materials per phase
  • BOQ visibility per milestone
  • Progress billing

Connected modules

Milestone billing pulls from four CrmLeaf modules

Milestones, timelogs, requisitions and invoices all live inside the same platform - no exports, no reconciliation, no sync lag.

See Invoicing
  • ProjectsMilestones, tasks and the project-client relationship
  • InvoicingInvoice generation, sending, payment tracking and receipts
  • Manufacturing / BOQBill of Quantities utilization: planned vs. used vs. remaining
  • Time TrackingBillable timelogs with approval workflow

FAQ

Common questions about milestone billing in CrmLeaf

  • A milestone invoice rolls up every approved-but-unbilled billable timelog and every approved-but-unbilled material requisition attached to that milestone's tasks. The amounts come from the underlying billable work - timelog earnings plus requisition line totals - not a flat milestone price.

Invoice milestones from actual billable work

Set up your first project milestone and generate a client invoice from real timelogs and material requisitions - no flat-rate guesswork.