All articles Baca dalam bahasa Indonesia A project manager and a finance officer match the work schedule against milestone invoices

How to Track Milestone Billing on Projects Without Losing the Trail

Record milestones, proof of progress, invoices, payments and the contract balance so the project team and finance work from the same numbers.

· Updated

Say an agency signs a Rp120 million contract (Indonesian rupiah) paid in three stages: a Rp30 million down payment, Rp45 million once the design is approved, and the final Rp45 million after handover. At month end the project manager reports the work as 70 percent done. Finance sees Rp30 million received. The owner sees one unpaid invoice. All three are right, and all three are talking about different things: progress on the work, invoices issued, and cash that actually arrived.

A milestone billing record has to connect those three without treating any one of them as the other. A milestone is an event or a deliverable that triggers a payment stage. An invoice is a request for payment. A payment is money you have actually received. Keep the statuses apart and your project report will stop showing billed revenue as cash in the bank.

Agree on what triggers each payment before work starts

Write down the contract value, the order of the stages, the trigger for each one, the evidence required, who checks it, when the invoice should go out and the payment terms in the signed agreement. Vague triggers like "enough progress" cause arguments later. Name an output someone can check: the design approved in writing, equipment installed on site, or a handover report signed by both sides.

When a payment depends on several conditions, list all of them. One stage might wait on finished work, a client review and a supporting document at the same time. A stage is "ready to bill" only after the agreed conditions are met and the proof is saved. Point the team back to the contract here. Nobody should quietly move a due date or change what goes on an invoice because the work ran late.

Stage Trigger in the contract Amount Evidence Who checks Status
Down payment Contract takes effect Rp30 million Contract and invoice Finance Paid
Design Design approved Rp45 million Written approval Project manager Awaiting review
Handover Final work accepted Rp45 million Handover report Project manager and client Not started

The table is a made-up example, not a real transaction or a statement of tax treatment. Use the amounts and conditions from your actual project agreement. If one stage covers several deliverables, spell out whether all of them must be finished or whether the contract allows partial acceptance.

Log progress with evidence someone can find later

A project coordinator records stage progress and proof of work after a site check

Keep one record per stage, not one progress percentage for the whole project. Each record holds the project ID, stage name, deliverable, target date, actual date, evidence, reviewer, review result, requested corrections and the date the status changed. If your team keeps files in a shared folder, link the file name or location the same way every time and check that the right people can open it.

Physical progress is not the same as the share of the contract you can bill. A contract may tie payment to deliverables, dates or a specific acceptance step. So the project manager reads the contract before asking finance to raise an invoice. If the evidence falls short, mark the stage "needs more proof" and write down exactly what is missing. Bumping a status so the monthly target looks met only moves the problem to next month.

When someone reviews the work, record who did it and when. Approvals that happen in a chat thread should be linked to the project record or filed according to your company's document rules. If the client asks for changes, note what the changes cover and who owns them. The stage stays open until the acceptance criteria in the agreement are met.

Tie invoices and payments to the same stage

Once a trigger is verified, finance raises the invoice with a number, date, amount, project reference, stage, supporting documents, due date and recipient. Track its status on its own: not created, sent, queried, due, partly paid, paid or cancelled. A transfer slip that has not been matched to the invoice does not make the invoice "paid" yet.

Reference Stage value Invoice Billed Payment recorded Invoice balance
PRJ-26 / S1 Rp30 million INV-026 Rp30 million Rp30 million Rp0
PRJ-26 / S2 Rp45 million INV-041 Rp45 million Rp20 million Rp25 million
PRJ-26 / S3 Rp45 million Not created Rp0 Rp0 Rp0

These figures are illustrative too. "Invoice balance" and "remaining contract value" are different numbers. The first is the unpaid part of invoices already sent. The second is worked out against the full contract value and whatever has been billed under your company's accounting rules. Deductions, retention, tax, partial payments and contract changes each get their own line, matched to the original documents.

A finance manager matches stage invoices, incoming payments and the remaining contract value

Tax rules shape how stage payments are documented, and they differ by country and by transaction. In Indonesia, for example, a Directorate General of Taxes article on down payment and settlement tax invoices in Coretax, published on 12 September 2025, explains that under regulation PER-11/PJ/2025 a VAT-registered business must issue a tax invoice when it receives a down payment or a stage payment before full delivery, and must label the item as a down payment, stage payment or settlement. If you bill in another country, check the local equivalent with your tax team or an adviser before you design the record.

Reconcile when the numbers do not match

Pick a period and line up the contract, the stage records, the invoices issued, the bank movements, any withholding slips and the approved changes to contract value. In the Rp120 million example, Rp30 million has arrived and the second invoice of Rp45 million has been paid Rp20 million, so cash received across the two stages is Rp50 million. The second invoice still has Rp25 million open. The final stage may not be billable at all until its conditions are met.

Do not reduce the contract balance with a payment you have not identified. Match the date, amount, sender name and invoice number or payment reference, and flag anything that needs a question to the client's finance team. If one payment covers several invoices, record how it was split so each stage still shows what is left.

Keep a short exceptions list: overdue invoices, payments with no reference, proof of acceptance not yet approved, scope changes without paperwork and milestones finished but never reviewed. Give each item one owner and a follow-up date. Confirm the amount, the recipient and your agreed communication process before anyone sends a reminder to the client.

End the project meeting with decisions and owners

A weekly review does not need every row. Start with stages due soon, evidence waiting for review, invoices waiting to go out and payments that do not match yet. For each, answer four things: what the latest fact is, which document is missing, who takes the next step and when it gets checked again.

Keep project blockers apart from paperwork blockers. Work may be stuck because the client asked for corrections, while a different invoice is already out and just waiting to be matched to a payment. Those need different owners and different actions. A report that splits milestone status, invoice status and cash lets the owner pick the right follow-up instead of reading one as a stand-in for another.

The mistakes that show up most often are easy to recognise: moving a stage forward on a percentage guess, copying a due date without reading the contract, logging payments in a general sheet with no invoice reference, and calculating the remaining contract value while ignoring approved changes. Review a handful of real records with the project lead and finance together, then fix whichever rule people keep misreading.

When the spreadsheet and the chat threads drift apart

If your team struggles to see who reviewed a milestone or which invoice is still waiting, sort out the data structure first. The Agency & Studio app page says the template tracks client projects, hours and their hourly value, invoices and payment history; the owner enters invoice totals, and tracked time does not automatically become billed time. Read that page to see whether it fits how your team bills. The Sora homepage explains that you can describe your workflow or upload a spreadsheet and Sora builds the app with roles, approvals, branches and reports. That is a way to keep the records, not a promise that projects finish faster or clients pay sooner.

If a stage needs sign-off from more than one person, the guide on setting purchase approval limits by amount shows how to lay out who reviews what. To keep money in and money out apart, see daily cash flow records for teams. Take only the parts that match your process and check them against your internal rules.

Today, pick one active project and match the contract value to each stage. For every stage, fill in the trigger, evidence, reviewer, invoice, amount received and any balance that does not reconcile. Then sit the project manager and finance down with one row and agree who updates it after the next step.