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.

Milestone register — one row per billable event
RecordEvidence or dateResponsible owner
DeliveryOutput completed and completion dateProject manager
AcceptanceRequired customer confirmation or other agreed evidenceCommercial or project owner
Invoice readinessBilling condition met; required references availableBilling owner
Invoice issuedInvoice ID, amount, issue date and submission evidenceAccounts receivable
Expected and actual cashContractual due date, forecast receipt date and matched receiptFinance, 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.

Sources and further reading

Find relevant CFO support