Testing contract assets and contract liabilities reconciliation means building and reperforming the full rollforward of both balances — opening balance, plus revenue recognised in the period, less amounts billed to the customer, plus or minus any reclassification between the two, equals closing balance — contract by contract or at least by homogeneous group of contracts, rather than accepting a single net movement figure. A contract asset exists where the entity has recognised revenue ahead of billing (unbilled revenue, sometimes subject to more than the passage of time before billing); a contract liability exists where it has billed or collected ahead of performance (deferred or advance revenue).
Why a single net movement figure is not enough
Contract assets and contract liabilities move for different reasons — one for revenue outpacing billing, the other for billing outpacing revenue — and a working paper that shows only the net change in a combined balance conceals which driver is actually at work. It also conceals whether revenue recognised in the rollforward agrees to the revenue recognised per the income statement, which is the actual tie-out that matters.
The testing sequence
- 01Obtain the full rollforward schedule by contract or contract groupOpening balance, revenue recognised, amounts billed or invoiced, cash collected where relevant, reclassifications, and closing balance, for both contract assets and contract liabilities separately.
- 02Agree the opening balance to the prior year's closing audited balanceA rollforward that starts from a different opening figure than what was signed off last year needs to be understood and reconciled before anything else is tested.
- 03Agree revenue recognised in the rollforward to the revenue recognised in the income statement for the same contractsThis is the single most important tie-out in the schedule — if it does not agree, the rollforward and the income statement are not describing the same population of transactions.
- 04Agree amounts billed to the sales invoices actually raised in the periodTrace a sample of the billed amounts to invoices and to the billing schedule in the underlying contract, particularly for milestone or percentage-of-completion billing arrangements where billing and performance are not expected to move together.
- 05Test any reclassification between contract asset and contract liability on the same contractA contract can genuinely move from one to the other as performance and billing overtake each other across the contract's life; confirm the reclassification is tied to an actual change in the relationship between performance and billing, not used as a plug to balance the schedule.
- 06Test whether contract assets and contract liabilities have been presented gross, by contract, as requiredContract assets and liabilities relating to different contracts are not netted against each other on the balance sheet; only balances within the same contract, where the standard permits, are shown net.
- 07Test the collectability and recoverability of significant contract assetsAn unbilled revenue balance is still subject to an expected credit loss assessment like any other receivable-like asset, and a large unbilled balance against a customer with deteriorating credit should be flagged for that testing specifically.
- 08Test ageing of contract assets expected to convert to billed receivables outside the normal cycleA contract asset that has sat unbilled well beyond the contract's normal billing cycle is worth investigating for whether a billing milestone was actually met, or whether revenue was recognised ahead of a milestone that has not yet occurred.
| Line | Basis |
|---|---|
| Opening balance | Prior year audited closing balance |
| Add: revenue recognised in the period | Agreed to the income statement for the same contract population |
| Less: amounts billed in the period | Agreed to sales invoices and the contract billing schedule |
| Reclassification between contract asset and liability | Tied to a specific change in the performance-versus-billing relationship on the contract |
| Closing balance | No unexplained residue; agreed to the balance sheet |
An unbilled revenue balance that keeps growing across several reporting periods without converting to billed receivables, with no corresponding change in the contract's billing terms, is a pattern worth investigating on its own — it is one of the more common signals of revenue recognised ahead of the point the contract actually entitles the entity to bill for it.
How we think about this
The rollforward arithmetic and the tie-out to the income statement are deterministic and should reconcile exactly, every contract, every period. Judging whether a specific unbilled balance genuinely reflects performance ahead of billing, rather than revenue recognised too early, depends on understanding the contract's actual milestones, and that is not something the reconciliation alone can settle.
This is practical guidance written for audit teams, not an authoritative statement of any standard or statute. Standards, forms and timelines change. Check the current text issued by the ICAI and the relevant authority before relying on anything here in an audit file.
Related resources
- Revenue, receivables & cut-offAuditing Ind AS 115 — testing the five-step revenue recognition modelInd AS 115 doesn't ask when revenue is earned — it asks when control of a distinct good or service transfers, and each of the five steps changes that answer.
- Revenue, receivables & cut-offSaaS company audit: deferred revenue and multi-element arrangementsThe invoice amount and the revenue amount are rarely the same number in a SaaS contract. The gap between them is deferred revenue, and getting it wrong is the whole audit.
- Revenue, receivables & cut-offConstruction contract audit: retention money, WIP and claimsRetention held back for years, work-in-progress built on a cost-to-complete forecast, and claims revenue nobody has actually agreed to pay — the three places a construction audit actually earns its fee.
- Revenue, receivables & cut-offMatching dispatch, invoice and ledger for revenue testingThe sales-side mirror of the purchase three-way match: what breaks it in practice, and why the unmatched population should be sized by value, not count.
Free tools, no signup
Each one reads a file entirely in your browser — or, for two of them, just answers a few questions — and nothing is ever uploaded.
- Purchase register checkDuplicate payments, round-sum amounts, weekend-dated invoices, incomplete records.
- GSTR-2B reconcilerMatches your purchase register against GSTR-2B — missing invoices either side, amount mismatches.
- Bank reconciliation checkerMatches your cash book against a bank statement — what's outstanding on each side.
- Fixed asset register checkDuplicate asset codes, missing location or useful life, negative net book value.
- Payroll red-flag scannerBank accounts shared across employees, and records missing an ID, PAN or salary.
- CARO applicability checkerAnswer a few questions about the company and see which CARO 2020 clauses likely apply.
- MSME payment delay checkerMSME-flagged invoices paid — or still unpaid — beyond the 45-day Section 22 limit.
- Related-party transaction screenerTransactions above a threshold you set with no approval reference, grouped by counterparty.
- Depreciation useful life checkerCompares a useful life in use against the Schedule II, Part C indicative figure.
- Materiality calculatorOverall and performance materiality against PBT, revenue, assets or equity, with reasoning shown.
- Sample size calculatorStatistical sample size for a test of controls or a substantive test of detail.