Construction accounting is different from trading. One project runs for months, is billed in progress payments, has down payments and retention deducted, and its revenue is recognised by progress, not by billing. So every transaction is recorded per project, and the monthly reports always start from the position of each project.
The reports to prepare every month
| Report | Contents | What it is for |
|---|---|---|
| Job cost report | Material, labour, subcontract, equipment and site overhead costs per work item code, against the budget | Seeing which project overspends, and on what |
| WIP report (contract position) | Contract value, estimated total cost, cost to date, percent complete, revenue earned, amount billed | Getting revenue right, and finding over or under billing |
| Profit and loss | Revenue earned minus costs, per project and for the company | Knowing the real profit, not just the cash received |
| Balance sheet | Cash, receivables, contract assets, retention, payables, down payments received, contract liabilities | What the company owns and owes at the cut-off date |
| Cash flow | Money in and out by payment date | Making sure there is enough cash |
| Receivables and payables ageing | Bills by how long they are overdue | Deciding who to chase or pay first |
Accounts typical of a construction company
| Account | Type | What it holds |
|---|---|---|
| Progress billing receivable | Asset | Payments billed and not yet paid |
| Retention receivable | Asset | Retention the client holds until the maintenance period ends |
| Contract asset (underbilling) | Asset | Work done but not yet billed |
| Down payment received | Liability | The client’s down payment not yet deducted from payments |
| Contract liability (overbilling) | Liability | Billing ahead of the work done |
| Supplier and subcontractor payables | Liability | Supplier and subcontractor bills not yet paid |
| Retention payable to subcontractors | Liability | Retention you hold from subcontractors |
| Contract revenue | Revenue | Revenue recognised by progress |
| Project costs | Expense | Split per project and per work item: material, labour, subcontract, equipment, site overhead |
| Final income tax on construction services | Expense | The final tax the client withholds from each payment |
Recognising revenue by progress
Under PSAK 72 (numbered PSAK 115 since 2024, the Indonesian version of IFRS 15), construction contract revenue is recognised over time when the client controls the building while it is built, which is usual for construction contracts. Percent complete can be measured by cost (cost to date divided by estimated total cost) or by physical progress from site measurements. An example using cost:
| Item | Amount |
|---|---|
| Contract value | Rp1,000,000,000 |
| Estimated total cost | Rp800,000,000 |
| Cost to date | Rp400,000,000 |
| Percent complete | 400 ÷ 800 = 50% |
| Revenue earned | 50% × Rp1,000,000,000 = Rp500,000,000 |
| Gross profit earned | Rp500,000,000 minus Rp400,000,000 = Rp100,000,000 |
| Billed to date | Rp450,000,000 |
| Underbilled (contract asset) | Rp500,000,000 minus Rp450,000,000 = Rp50,000,000 |
If billing is ahead of revenue earned, the difference is overbilling and is recorded as a contract liability. Overbilling helps cash now, but means the rest of the work is funded by smaller bills later. Update the estimated total cost every month: if you do not, percent complete and profit are wrong too.
The WIP report: one row per project
| Column | How it is worked out |
|---|---|
| Contract value | The contract plus approved addenda |
| Estimated total cost | Cost to date plus the estimated cost to finish |
| Cost to date | From the job cost report, including costs incurred but not yet billed by suppliers |
| Percent complete | Cost to date ÷ estimated total cost |
| Revenue earned | Percent complete × contract value |
| Billed to date | Progress payments billed so far |
| Over or under billing | Billed to date minus revenue earned |
| Estimated final profit | Contract value minus estimated total cost. If it is a loss, the whole loss is recognised at once |
Example journal entries for one progress payment
A Rp200 million payment (before VAT) with a Rp40 million down payment deduction, 5% retention of Rp10 million and 2.65% final tax of Rp5.3 million, as in the project cash flow article. VAT is recorded separately in the output VAT account.
| When | Debit | Credit |
|---|---|---|
| Payment billed | Progress billing receivable Rp200,000,000 | Contract revenue Rp200,000,000 |
| Payment received | Bank Rp144,700,000; Down payment received Rp40,000,000; Retention receivable Rp10,000,000; Final tax expense Rp5,300,000 | Progress billing receivable Rp200,000,000 |
| Month-end adjustment from the WIP report (underbilled) | Contract asset | Contract revenue |
| Month-end adjustment from the WIP report (overbilled) | Contract revenue | Contract liability |
Monthly closing steps
- Use one cut-off date for cost, progress and cash.
- Reconcile every bank account with its statement.
- Match receivables with the payment history, and payables with supplier bills and POs.
- Record costs incurred but not yet billed (goods received, subcontract work from site measurements).
- Update every project’s estimated total cost with the site team.
- Prepare the WIP report, then the contract asset or contract liability adjustments.
- Prepare profit and loss per project and for the company, the balance sheet and the cash flow.
A note for property developers
Selling houses to buyers often does not meet the conditions for recognising revenue over time, so revenue is recognised when the unit is handed over. Until handover, buyers’ down payments and instalments are a contract liability, and the cost of building the unit is inventory. Confirm the treatment with your accountant.
Common mistakes
- Revenue recorded at the billed amount, so profit follows the billing schedule rather than the work.
- Costs not split per project, so a losing project hides behind others.
- Estimated total cost never updated after the tender.
- Down payments recorded as revenue when received.
- Retention not recorded as a receivable, so it is forgotten when the maintenance period ends.
- Final tax withheld by the client but not recorded, so the receivable is never cleared in the books.
The full guide is in How to create a construction finance report in Google Sheets. It has a free template (Excel or Google Sheets) and a checker that reads your own workbook.
Ready to use the Komander agents on your projects?
When your workbook is complete, apply for a pilot: we help connect your project data to the Finance, Cost and Scheduler agents and review the first reports with you.
Send to melwani@komander.ai. Your workbook check result is included when there is one; the workbook itself is not sent.
Common questions
What is a construction WIP report?
A report of every running contract: contract value, estimated cost, cost to date, percent complete, revenue earned, amount billed, and the over or under billing.
When is construction revenue recognised?
Under PSAK 72 (PSAK 115) and IFRS 15, usually over time by percent complete, when the client controls the building while it is built.
What is the difference between a contract asset and a receivable?
A receivable is a bill already sent. A contract asset is work done that cannot be billed, or has not been billed, yet.
How do I record a down payment from the client?
As a liability (down payment received), reduced each time a progress payment has the down payment instalment deducted.
References
- Jurnal.id: PSAK 72 (Indonesian): revenue from contracts with customers
- EisnerAmper: Construction WIP Report and over and underbilling: why WIP matters to banks and sureties
- Projul: Construction WIP report guide: WIP columns and formulas
- DDTCNews: final income tax rates for construction (Indonesian): rates under PP 9/2022