Hiring guide
Milestone billing: connect delivery, acceptance, invoices and cash
By CFO Index · Published
A project can be on schedule while its cash receipts fall behind. Before chasing a customer, check whether the milestone was accepted, the invoice could be raised and the document reached the right place. A fractional CFO can make those hand-offs visible without taking over the project manager's delivery responsibilities.
Start from the actual billing condition
For each milestone, record the contract reference, amount, delivery requirement and evidence needed to invoice. Identify who can confirm acceptance and whether a purchase order, customer portal or other submission step is required. Ask the commercial owner to resolve unclear terms with appropriate advice. An internal 'complete' status is not proof that the customer's acceptance condition has been met. This workflow does not determine legal entitlement to payment or accounting revenue recognition.
Give each stage its own status and date
Keep delivery complete, acceptance confirmed, ready to invoice, invoice issued and cash received distinct. Microsoft's Project Operations documentation separates the project manager's billing backlog review from the accountant's posting of the customer invoice, with a proforma stage between them. That is product-specific context, not a requirement to adopt that software. Your register should reflect your actual process while retaining evidence of each transition.
| Record | Evidence or date | Responsible owner |
|---|---|---|
| Delivery | Output completed and completion date | Project manager |
| Acceptance | Required customer confirmation or other agreed evidence | Commercial or project owner |
| Invoice readiness | Billing condition met; required references available | Billing owner |
| Invoice issued | Invoice ID, amount, issue date and submission evidence | Accounts receivable |
| Expected and actual cash | Contractual due date, forecast receipt date and matched receipt | Finance, with customer owner input |
A ten-day acceptance delay can cross a payroll date
Hypothetical example: a €24,000 milestone is delivered on 1 October. The assumed contract permits invoicing after written acceptance and provides fourteen calendar days from invoice date to payment. In the original plan, acceptance and invoicing occur on 3 October, with payment expected on 17 October. Acceptance instead arrives on 13 October and the invoice is issued that day, moving the assumed payment date to 27 October. If all other movements are unchanged, cash on 20 October is €24,000 below the original forecast. Total October receipts may still be unchanged. These invented dates exclude dispute, tax and settlement complications; they are not standard payment terms.
Do not count one receipt at several stages
Give the milestone a stable ID and link the eventual invoice to it. When an invoice is issued, replace the pre-invoice cash assumption with the invoice-based assumption instead of adding another receipt. Match partial invoices, credits and receipts against the same event. Keep the remaining unbilled amount explicit. A project dashboard, invoice ledger and cash forecast may all refer to one commercial event, but they should not create three separate sources of money.
Review the oldest blocked stage, not only overdue invoices
A delivered milestone awaiting acceptance is not yet an overdue invoice under the example's terms. Track days awaiting evidence and days from invoice readiness to issue separately from overdue days. Record the next action, its owner and a review date. The project manager may need to complete a missing deliverable; the account lead may need to obtain acceptance; finance may need to correct an invoice reference. More reminders from accounts receivable cannot fix every upstream blocker.
Define the first CFO deliverable narrowly
Ask for a reconciled register covering active milestones, the associated invoice IDs and the forecast receipts. Select one completed milestone and trace it from contract condition to bank receipt. Then test one delayed milestone and explain which cash date changes. Agree who keeps the register current and who resolves commercial exceptions. The useful result is a billing process your team can run, not a promise that every milestone will be accepted or paid on time.