How to track project costs and see an overrun before month-end


At the monthly steering meeting, the project manager of an office fit-out in Jakarta reports good news: 60% of the work is done, and 59% of the Rp 1.2 billion budget has been spent. Finance’s report says much the same, although it only covers the month before last.
Nobody in the room has added up the purchase orders already sent to subcontractors. Nobody knows that the generator rental was billed to another project, or that the flights for three site visits were coded to general travel, although the contract says the client pays for them. Six weeks later the subcontractor invoices arrive, the contingency is gone and the project is heading for at least Rp 48 million over budget.
The overrun was there at the meeting. It just wasn’t in the numbers anyone was looking at. Project cost tracking is how you put it there. This guide covers what to track, the numbers that matter, a worked example of a budget that looks on track and isn’t, why tracking breaks down and how to set it up so the project manager and finance see the same number.
What is project cost tracking?
Project cost tracking is recording every cost against the project it belongs to, when it’s committed rather than when it’s paid, and comparing it with the project’s budget as you go. It covers purchases from vendors, employees’ expense claims, subcontractors and a fair share of costs that several projects use.
It rests on four numbers, for the project and for each phase or category of cost:
- Budget: the amount approved for the project, ideally split by phase and category.
- Actual: costs already incurred, from approved invoices and expense claims.
- Committed: costs you’ve agreed to but haven’t been invoiced for yet, such as open purchase orders and signed subcontracts.
- Remaining: the budget minus actual minus committed. This, not the budget minus actual, is what’s really left to spend.
From these comes the most useful number of all: the forecast at completion, which is actual plus committed plus the cost of the work not yet ordered. It tells you where the project will end up, not just where it is.
What every project cost needs
- A project code at the point of entry. The project, phase or job number is filled in when the cost is raised, on the purchase request, the expense claim or the invoice, not worked out later by finance.
- A category. Materials, subcontractors, equipment, travel. Without one, you can see that a project is over but not why.
- A billable flag. Whether the client pays for the cost under the contract. Set it when the cost is raised, because nobody remembers at invoicing time.
- An allocation for shared costs. A vehicle, a software licence or a team working on three projects should be split by a rule, such as a percentage or hours, not landed on whichever project the requester thought of first.
- The project owner’s approval. The person accountable for the budget should see a cost before it’s committed, not in a report afterwards.
A worked example: on track, until you count the commitments
Here is the fit-out from the opening, two months in. Finance’s report shows the first two columns. The third comes from the open purchase orders and subcontracts:
| Rp million | Budget | Actual | Committed | Left |
|---|---|---|---|---|
| Materials | 480 | 310 | 150 | 20 |
| Subcontractors | 420 | 260 | 190 | −30 |
| Equipment rental | 120 | 85 | 20 | 15 |
| Travel and site visits | 60 | 48 | 0 | 12 |
| Contingency | 120 | 0 | 0 | 120 |
| Total | 1,200 | 703 | 360 | 137 |
Read without the commitments, the project looks fine: Rp 703 million spent, 59% of the budget, with 60% of the work done. With them, it doesn’t:
- 89% of the budget is already spoken for. Actual plus committed is Rp 1,063 million, leaving Rp 137 million for the last 40% of the work.
- Subcontractors are already over. Rp 450 million is spent or contracted against a budget of Rp 420 million, so Rp 30 million of the contingency is gone before any more work is ordered.
- The rest of the work still has to be bought. The project manager estimates Rp 185 million for work not yet ordered: Rp 60 million of materials, Rp 80 million of subcontracting, Rp 25 million of rental and Rp 20 million of travel.
The forecast at completion is Rp 703 million + Rp 360 million + Rp 185 million = Rp 1,248 million. That’s Rp 48 million, or 4%, over a budget that already included Rp 120 million of contingency. At the steering meeting, that was still a conversation about scope with the client. Six weeks later, it’s a write-off.
And the table still flatters the project. The flights for the site visits were coded to general travel, so they’re missing from this project and from the client’s invoice. And the generator rental that should be in equipment rental is sitting on another project, making that one look worse and this one better than it is.
Why project cost tracking goes wrong
- No project code when the cost is raised. Engineers, consultants and site staff don’t write down which project a purchase was for, so finance guesses or leaves it unallocated.
- Counting only what’s been paid. The budget is compared with actuals from the ledger, and the purchase orders and subcontracts already signed are invisible until they’re invoiced.
- Reports that arrive after the money has gone. Actuals reach the project report weeks after month-end, by which time the vendor has been paid.
- Billable costs lost on the way. A rebillable cost coded to a general account never makes it onto the client’s invoice, and the margin quietly shrinks.
- Shared costs split by guesswork. One project carries the whole vehicle and another looks cheaper than it is.
- Two sets of numbers. The project manager keeps a spreadsheet because the finance report is late, and every status meeting starts by reconciling the two.
- Projects that never close. A subcontractor invoice that arrives three months after handover is posted to the closed project, or to whichever one is open.
Project costs in Indonesia
- Progress billing. Construction and many service contracts are billed in stages (termin), each tied to a level of progress. Tracking costs by phase shows whether each stage is profitable, and whether the next one is ready to bill.
- Input VAT isn’t a project cost. If your company can credit input VAT, track project costs before VAT. Including it makes every project look more expensive than it is, and the VAT is recovered through the tax return, not by the project.
- Withholding tax doesn’t make a cost cheaper. When you withhold income tax from a subcontractor’s payment, the project cost is still the full invoice amount: part goes to the vendor and part to the state. Recording the net payment understates the project.
- Cash on remote sites. Projects outside the big cities often run on cash advances (kasbon) and handwritten receipts for local purchases. Give the advance a project code when it’s issued, so the costs land in the right place when it’s settled.
- Late invoices after handover. Subcontractors and suppliers on long projects often invoice weeks or months late. Decide in advance who approves a cost that arrives after a project has closed, and where it goes.
Signs your project cost tracking needs work
You probably need to look at how you track project costs if any of these sound familiar:
- Finance has an “unallocated” or “miscellaneous” account that grows every month.
- Project managers keep their own spreadsheets, and they don’t agree with finance’s.
- The project report shows actuals only, with no column for purchase orders and subcontracts.
- The first sign of an overrun is the month-end report.
- Rebillable costs are found after the client has already been invoiced, or not at all.
- Shared costs sit on whichever project was coded first.
- Costs keep arriving on projects that were handed over months ago.
By the time a cost has been paid, it’s too late to decide whether to spend it.
How to set up project cost tracking
- Make the project code mandatory, at the source. Put it on purchase requests, expense claims and invoices, chosen from a list of active projects so it can’t be mistyped.
- Load the budget by phase and category. A single budget line for the whole project will only tell you it’s over at the end.
- Count commitments. Report actual, committed and remaining side by side, and treat an open purchase order as money already spent.
- Forecast to completion every month. Ask the project manager to estimate the cost of the work not yet ordered, and add it to actual and committed. Compare the total with the budget, not just the spend so far.
- Check the budget before money is committed. When a purchase request would take a budget line over, the requester and the approver should see it before it’s approved, and the project owner should be in the approval chain.
- Flag billable costs when they’re raised. Set the flag by rule from the contract and category, and keep the receipt with the cost, so the client invoice has its backup ready.
- Allocate shared costs by rule. Agree the rule once, such as fixed percentages or hours, and keep a record of how each split was calculated.
- Close projects properly. A closed project stops accepting costs, and anything that arrives late is reviewed before it’s posted.
How Procapy helps
In Capy Expense and Proca to Pay, the project, WBS element or job number is a required field on expense claims, purchase requests and invoices, chosen from your active project list. ProcAI suggests the code from the vendor, the purchase order or the requester’s recent history, so most of the time people only confirm it, and nothing reaches the ledger unallocated. Each line carries a billable or non-billable flag, set by rule from the project, category and client contract, and rebillable costs export with their receipts attached.
One invoice or claim can be split across projects by percentage or amount, each line with its own GL account, cost centre and project code. Recurring shared costs, such as licences, vehicles and pooled staff, are allocated by a rule you set once, which leaves a record of how each split was calculated. Budgets are loaded by project, phase and category, and Procapy tracks committed spend from open purchase orders, actuals from approved invoices and claims, and what remains. The project manager and finance see the same number.
When a request would take a project past its budget line, the requester is warned before submitting and the approver sees the shortfall next to the approve button; you decide per project whether that’s a warning, a required justification or a hard block. ProcApprove adds the project owner to the approval chain for anything coded to their project. Approved transactions post to your accounting system with the GL account, cost centre and project code intact, and a closed project stops accepting new costs. The project expenses page covers the rest. Book a 30-minute walkthrough, bring your project list and one live budget, and we’ll set up the project codes, splits and budget alerts live.
