Contract Assets and Contract Liabilities
A contract asset is an entity's right to consideration for goods or services it has already transferred, where that right depends on something more than time passing — ordinarily the entity satisfying the rest of what it promised. A contract liability is the opposite position: an obligation to transfer goods or services to a customer who has already paid, or from whom consideration has already fallen due.
Revenue recognition and payment rarely happen at the same moment. A customer may pay before the entity has performed, or the entity may perform months before it can demand payment. IFRS 15 presents that position in the statement of financial position as a contract asset or a contract liability, determined by the relationship between the entity's performance and the customer's payment.
Which of the three balances arises follows from what the entity has performed and what the customer has paid.
| Balance | Arises when |
|---|---|
| Contract asset | The entity has transferred goods or services, but payment depends on it satisfying a further performance obligation in the same contract |
| Receivable | The entity has transferred goods or services and holds an unconditional right to the consideration |
| Contract liability | The customer has paid, or consideration has fallen due, before the entity transfers the goods or services |
The first two are both rights to consideration for performance already completed, and the difference between them is the one most often collapsed. A receivable is unconditional. A contract asset is not, and that is why the standard keeps them apart. Our complete guide to IFRS 15 sets out the five-step model these balances arise from.
Unconditional does not mean paid
A receivable is unconditional because the entity has already done everything it needs to do to earn the consideration. An overdue invoice is still a receivable. A completed milestone that cannot be billed until a later milestone is delivered is a contract asset, because the entity has more to perform before it can demand payment.
The Contract Asset
A contract asset is recognised where an entity has transferred goods or services to a customer before the customer has paid, and before payment has become due, and where the right to that payment depends on something beyond the passage of time.
The condition is almost always contractual rather than commercial. A contract priced as a single package but delivered in stages often provides that nothing is payable until the last stage is complete. The entity satisfies the first performance obligation, recognises revenue for it, and has a genuine asset — but not one it can invoice, because the contract entitles the customer to withhold payment until the rest arrives. Retentions held back until final certification behave the same way.
Two consequences follow from that conditionality.
The asset carries performance risk as well as credit risk. A receivable can only fail because the customer does not pay. A contract asset can also fail because the entity does not complete the remaining obligation, in which case the right to consideration never crystallises at all.
It is not a financial asset. A contract asset sits outside IFRS 9 for classification and measurement purposes, because the right is conditional. It is nevertheless assessed for impairment under IFRS 9, which is dealt with below.
When the remaining condition is met, the contract asset is reclassified to a receivable. That transfer recognises no revenue, because the revenue was recognised when the goods or services transferred; it simply reflects that the right has become unconditional.
The Contract Liability
A contract liability is an obligation to transfer goods or services to a customer for which the entity has already received consideration, or for which consideration has become due. It is released to revenue as the related performance obligations are satisfied.
Three points determine the balance.
The trigger is payment made or due, whichever is earlier. Cash is not required. An unconditional right to consideration arising before transfer creates the liability just as a receipt does.
Not every release is driven by performance. Where a customer holds a non-refundable prepayment and does not exercise all the rights it has bought, the unexercised portion is described as breakage. Where the entity expects to be entitled to a breakage amount, it is recognised as revenue in proportion to the pattern of rights the customer does exercise. Where the entity does not expect to be entitled to it, the amount is recognised only when the likelihood of the customer exercising the remaining rights becomes remote.
The caption is not fixed but the disclosure term is. Many entities continue to present the balance as deferred income or income received in advance on the face of the statement of financial position. That is acceptable, provided the contract balance disclosure uses the IFRS 15 term so the note can be identified and compared.
Recognising and Transferring the Balances
Two short contracts, one on each side of the position.
A Contract Asset Arising and Transferring
An entity agrees to supply a conveyor and a control unit for a single price of 180,000. The stand-alone selling prices are 80,000 and 120,000, a total of 200,000, so the 10 per cent discount is allocated proportionately: 72,000 to the conveyor and 108,000 to the control unit. The contract provides that nothing is payable until both units have been delivered and commissioned.
The conveyor transfers on 15 March. The performance obligation is satisfied and revenue is recognised, but the entity cannot demand payment until the control unit is delivered, so the debit is a contract asset.
| 15 March | Debit | Credit |
|---|---|---|
| Contract asset | 72,000 | |
| Revenue | 72,000 |
The control unit transfers on 20 August. Revenue is recognised for that obligation, and the right to the whole 180,000 becomes unconditional, so the contract asset is cleared to a receivable in the same entry.
| 20 August | Debit | Credit |
|---|---|---|
| Receivable | 180,000 | |
| Contract asset | 72,000 | |
| Revenue | 108,000 |
Only 108,000 of the 180,000 debited to the receivable is revenue of the period; the other 72,000 was recognised in March and is merely moving between balances.
A Contract Liability Arising Before Any Cash
An entity sells a twelve-month support subscription for 96,000, covering the year from 1 April. It invoices on 1 March with payment due on 31 March. The right to consideration becomes unconditional on 31 March, which is earlier than any transfer of service, so a receivable and a contract liability are recognised on that date and no revenue is taken.
| Date | Entry | Amount |
|---|---|---|
| 31 March | Debit receivable, credit contract liability | 96,000 |
| On settlement | Debit bank, credit receivable | 96,000 |
| Each month from April | Debit contract liability, credit revenue | 8,000 |
At a 30 June reporting date the entity has delivered three months of support. Revenue for the period is 24,000 and the contract liability is 72,000. Had the same contract been invoiced on 1 April with payment due 30 April, no balance at all would have been recognised on 1 March, because neither payment nor an unconditional right to it existed.
Presentation at Contract Level
Presentation is determined for the contract as a whole, not for each performance obligation within it. An entity that has performed on one obligation and been paid in advance on another presents a single net contract asset or contract liability for that contract, rather than grossing up the two positions.
Three boundaries govern how far that netting goes.
- Receivables stand outside it. Unconditional rights are presented separately, so the netting operates only between the conditional rights and the unsatisfied obligations.
- Separate contracts are not offset. Two contracts with the same customer are presented independently unless they meet the criteria for combining contracts, which require them to be entered into at or near the same time and to be negotiated as a package, priced interdependently, or to contain a single performance obligation between them.
- The split between current and non-current follows the normal liquidity test, so a contract liability releasing over a period longer than the operating cycle is split accordingly.
The practical consequence is that a contract-by-contract analysis is needed before the balances can be presented. An entity that nets across its whole customer book, or that reports each obligation separately, will arrive at a different figure from the one the standard requires.
Significant Financing Components
Where the timing of payment gives either party a significant financing benefit, the transaction price is adjusted for the time value of money. The objective of that adjustment fixes what it has to produce: revenue is recognised at the price the customer would have paid had it paid cash at the point the goods or services transfer, which is the cash selling price at the date of transfer. The rate used is the one reflecting the credit characteristics of the party receiving the financing.
That objective also settles whether an amount is discounted or compounded, which depends on which side of the transfer date the cash sits.
Where the customer pays in arrears, the promised consideration is a future amount. It is discounted back to the transfer date to give the transaction price, revenue is recognised at that discounted amount, and interest then accrues on the contract asset or receivable as finance income until the customer settles.
Where the customer pays in advance, there is nothing to discount. The cash received is an amount paid at the prices of that date, so it is already a present value. Interest accrues on the contract liability as a finance cost, and the balance reached at the transfer date is the cash selling price at that date, which is the revenue recognised.
| Customer pays in arrears | Customer pays in advance | |
|---|---|---|
| Party receiving the financing | The customer | The entity |
| Amount known at the outset | The future payment | The cash already received |
| Adjustment to reach the transfer date | Discount the future payment back | Accrue interest forward on the receipt |
| Interest recognised as | Finance income | Finance cost |
| Balance carrying the interest | Contract asset or receivable | Contract liability |
The two directions are mirror images, which the same figures make plain.
Payment in Advance
A customer pays 200,000 on 1 January 2026 for equipment to be delivered on 31 December 2027. The rate reflecting the entity's credit characteristics is 6 per cent. The 200,000 is not discounted, because it is cash paid on day one; interest is added to it until delivery.
| Date | Entry | Amount | Contract liability |
|---|---|---|---|
| 1 January 2026 | Debit bank, credit contract liability | 200,000 | 200,000 |
| 31 December 2026 | Debit finance cost, credit contract liability | 12,000 | 212,000 |
| 31 December 2027 | Debit finance cost, credit contract liability | 12,720 | 224,720 |
| 31 December 2027 | Debit contract liability, credit revenue | 224,720 | 0 |
Revenue of 224,720 is recognised against cash of 200,000, with the 24,720 difference charged to finance costs across the two years.
Payment in Arrears
The same contract with the payment at the other end: the equipment is delivered on 1 January 2026 and the customer pays 224,720 on 31 December 2027. The 224,720 is a future amount, so it is discounted at 6 per cent to 200,000, and that discounted figure is the revenue recognised on delivery. Because delivery is complete the right is unconditional, so the balance is a receivable; where payment also depended on a further obligation, the identical interest would accrue on a contract asset.
| Date | Entry | Amount | Receivable |
|---|---|---|---|
| 1 January 2026 | Debit receivable, credit revenue | 200,000 | 200,000 |
| 31 December 2026 | Debit receivable, credit finance income | 12,000 | 212,000 |
| 31 December 2027 | Debit receivable, credit finance income | 12,720 | 224,720 |
| 31 December 2027 | Debit bank, credit receivable | 224,720 | 0 |
In both cases revenue is measured at the cash selling price on the date of transfer, and the same 24,720 of interest is recognised separately from revenue. Only its direction changes: a finance cost where the entity holds the customer's money, finance income where the customer holds the entity's.
Where the obligation is satisfied over a period rather than at a point, the same mechanics apply monthly: interest is added to the liability and the revenue for the month is the resulting balance divided by the number of months remaining at the start of it.
Exception: Contract liability, transfer at customer discretion
No significant financing component arises where the customer has paid in advance but the timing of the transfer is at the customer's discretion, because the entity is not obtaining a financing benefit it can rely on. A prepaid service the customer may call on whenever it chooses is the common case: the contract liability stays at the amount received and no interest is accrued. A practical expedient also removes the adjustment where the gap between transfer and payment is expected to be one year or less.
Amounts Collected on Behalf of Third Parties
Amounts an entity collects on behalf of someone else — sales taxes, or a fee due to a subcontractor or agent — are excluded from the transaction price and therefore never become revenue. They are nevertheless part of the contract price the customer pays, so they have to sit somewhere until they are handed over.
The workable treatment is to keep them within the contract liability under a separate caption, such as contract liability for sales taxes or contract liability for agent fees. When the obligation to the third party becomes due, the amount is transferred out to payables.
The same logic applies on the asset side where revenue is recognised before the tax is invoiced. The tax element of the consideration is credited to a suspense account rather than to revenue, and transferred to output tax when the customer is invoiced or pays. An entity that transfers goods for a total consideration of 46,000, of which 6,000 is sales tax not yet invoiced, recognises a contract asset of 46,000 against revenue of 40,000 and a tax suspense balance of 6,000. On invoicing, the contract asset becomes a receivable and the suspense balance becomes an output tax liability.
Presenting the third-party element inside revenue is the error this guards against: it inflates the top line by an amount the entity never had a right to, and it distorts every margin calculated from it.
Balances That Are Not Contract Balances
Several balances arise from customer contracts without being contract assets or contract liabilities. Presenting them within the contract balances misstates the disclosure note and, in the case of the refund liability, the revenue figure itself.
| Balance | Why it is different |
|---|---|
| Refund liability | An obligation to return consideration, not to transfer goods or services; presented separately and remeasured each reporting date |
| Right of return asset | The right to recover products from the customer, measured by reference to the former carrying amount of the inventory; presented separately from the refund liability and not offset against it |
| Assets from contract costs | Capitalised costs of obtaining or fulfilling a contract, such as incremental commissions; a separate category with its own amortisation and impairment requirements |
| Trade receivable | An unconditional right, presented separately from contract assets even though both arise from performance |
The refund liability is the one most often absorbed into the contract liability. In a sale with a right of return the consideration received is split: revenue is recognised only for the products the entity does not expect to be returned, and the remainder is a refund liability. Those two amounts answer different questions, and combining them overstates the obligation to perform while understating the obligation to repay.
Impairment of Contract Assets
A contract asset is assessed for impairment under IFRS 9, and the resulting loss is measured, presented and disclosed on the same basis as a financial asset within the scope of IFRS 9. The expected credit loss model therefore applies, and in practice a contract asset is usually included in the same provision matrix as trade receivables, with its own loss rate where the risk profile differs.
A separate and frequently confused test applies to assets recognised from contract costs. Those are impaired to the extent their carrying amount exceeds the remaining consideration the entity expects to receive for the related goods or services, less the costs that relate directly to providing them and have not yet been recognised as expenses.
The order in which the two run is prescribed, and it matters because each test feeds the next. Before recognising an impairment loss on an asset arising from contract costs, the entity first recognises any impairment on assets related to the contract under other standards — inventories under IAS 2, property, plant and equipment under IAS 16, intangibles under IAS 38, and the contract asset itself under IFRS 9. Only then is the contract cost asset tested against what is left.
Impairment losses on contract cost assets are reversed where the conditions causing them improve or cease, limited to the carrying amount that would have existed had no impairment been recognised.
The Contract Balance Disclosure
IFRS 15 requires the opening and closing balances of receivables, contract assets and contract liabilities to be disclosed, together with the revenue recognised in the period that was included in the contract liability balance at the beginning of it, and the revenue recognised from performance obligations satisfied in previous periods. Significant changes in the balances must be explained, in both qualitative and quantitative terms.
A movement table satisfies the quantitative half and is the clearest way to present it.
| Movement in contract balances | Contract assets | Contract liabilities |
|---|---|---|
| Opening balance | 180,000 | 295,000 |
| Revenue recognised in advance of the right to consideration becoming unconditional | 674,000 | |
| Transfers to receivables on becoming unconditional | (622,000) | |
| Impairment loss recognised | (6,000) | |
| Consideration received or due in advance of performance | 244,000 | |
| Revenue recognised that was included in the opening balance | (271,000) | |
| Closing balance | 226,000 | 268,000 |
The narrative half explains how the timing of satisfaction relates to typical payment terms and the effect that has on the balances, and identifies what drove any significant change. Business combinations, cumulative catch-up adjustments to revenue, impairment, and changes in the period over which a right becomes unconditional are the drivers the standard specifically names.
Receivables are disclosed alongside the two contract balances even though they are presented separately, so the note gives the full set of three. Where the balances appear on the face under another caption, the note is what ties them back to the standard's terminology. The wider IFRS 15 disclosure requirements, including disaggregation of revenue and remaining performance obligations, sit alongside this one.
Contract Balances in the Cash Flow Statement
Contract assets and contract liabilities are working capital. Under the indirect method their movements are adjusted for between profit and cash generated from operations, in exactly the way inventories, trade receivables and trade payables are.
They are omitted more often than the other working capital lines, because they are presented apart from trade receivables and trade payables on the face of the statement of financial position and are easy to overlook when the movements are assembled. The consequence is a reconciliation that fails by precisely the movement that was missed. Our guide to the indirect method sets out where they belong in the operating section, and the common reasons a cash flow statement does not balance covers how to isolate a difference of this kind.
Two refinements are worth applying before the movement is used. The impairment loss on a contract asset is a non-cash item and is reversed in the adjustment layer rather than left inside the working capital movement. Interest accrued on a contract liability under a significant financing component is likewise non-cash, and belongs with the finance cost adjustment rather than in the movement on the balance.
Splitting lease and service balances in Excel?
Leash automates lease schedules, journal entries, and IFRS 16 and ASC 842 compliance, so you're not rebuilding this in Excel every month-end.
Conclusion
The three balances separate cleanly once the question is put in the right order. Has the entity performed? If not, and payment has been made or has fallen due, the balance is a contract liability. If it has, is the right to consideration conditional on anything beyond the passage of time? If it is, the balance is a contract asset; if it is not, the balance is a receivable.
Everything else follows from that. Presentation is at contract level, so the positions within one contract net to a single figure while receivables stay outside the netting. A significant financing component makes the contract liability grow rather than sit still. Refund liabilities and contract cost assets arise from customer contracts without being contract balances at all, and keeping them out preserves both the disclosure note and the revenue figure.
Where a contract spans both revenue and lease elements, the two standards divide the arrangement before any of this applies. Our guide to separating lease and non-lease components covers that split, and manufacturer and dealer lessors deals with the case where a single transaction produces both revenue and a lease.
For clarification, guidance, or feedback on our article, please reach out to us at insight@leash.co.za.
