UQ Consulting · Independent technical reference for IFRS, UK GAAP and US GAAP

Contract Assets and Contract Liabilities Under IFRS 15: Contract Asset vs Contract Liability vs Receivable

Reviewed by Usman Qureshi, ACCA · Published August 2026 · Last updated August 2026 · 12 units · Spoke of the IFRS 15 pillar

Executive summary

Revenue recognition gets the attention. The balance sheet consequence of that revenue gets the audit adjustment. Contract assets, contract liabilities and receivables are three different things under IFRS 15.105 to IFRS 15.109, they carry different risks, and the most common error in practice is not a measurement error at all. It is a presentation error.

Background

Before IFRS 15, the balance sheet residue of a revenue contract had no single home. IAS 11 produced gross amounts due from and due to customers for contract work. IAS 18 produced deferred income and accrued income by analogy. Sector practice filled the gaps, so a telecoms operator, a software vendor and a contractor could describe economically identical positions in three different ways. IFRS 15 replaced both standards for annual periods beginning on or after 1 January 2018 and, in doing so, replaced that patchwork with three defined balances: a receivable, a contract asset and a contract liability.

The design is deliberately simple. IFRS 15.105 says that once either party has performed, the contract sits on the balance sheet as either a contract asset or a contract liability, and any unconditional right to consideration is pulled out and shown separately as a receivable. Everything downstream follows from that one sentence: which impairment model applies, what has to be disclosed, and what a reader can infer about the entity's exposure. The difficulty is not the definitions. It is applying them contract by contract, on thousands of contracts, inside billing systems that were never built to answer the question IFRS 15.105 asks.

1. What is the difference between a contract asset, a contract liability and a receivable?

A receivable is an unconditional right to money. A contract asset is a conditional one. A contract liability is an obligation to deliver something the entity has already been paid for, or already has the right to be paid for. IFRS 15.105 puts the whole contract on the balance sheet as either an asset or a liability depending on how far performance has run relative to payment, then strips out any unconditional right and shows it separately as a receivable.

Start with the sentence that does the work. Everything else in this article is a consequence of it.

"When either party to a contract has performed, an entity shall present the contract in the statement of financial position as a contract asset or a contract liability, depending on the relationship between the entity's performance and the customer's payment. An entity shall present any unconditional rights to consideration separately as a receivable."

Three things are packed into that. First, nothing goes on the balance sheet until one party has performed. A signed contract with no performance and no payment produces no entry, which is why a large order book creates no contract liability. Second, the presentation is driven by a comparison, not by a document. It is the relationship between what the entity has done and what the customer has paid or owes. Third, receivables are carved out and presented on their own line. They are not a subset of contract assets and they are not netted into the contract position.

"If a customer pays consideration, or an entity has a right to an amount of consideration that is unconditional (ie a receivable), before the entity transfers a good or service to the customer, the entity shall present the contract as a contract liability when the payment is made or the payment is due (whichever is earlier). A contract liability is an entity's obligation to transfer goods or services to a customer for which the entity has received consideration (or an amount of consideration is due) from the customer."

Note the phrase "whichever is earlier". A contract liability does not wait for cash. An annual maintenance contract invoiced on 1 January, payable on 31 January, with the service running through the year, produces a receivable and a contract liability on 1 January. Cash is irrelevant to the timing. Many billing-driven systems only raise the contract liability when the cash lands, which understates both sides of the balance sheet in the gap.

"If an entity performs by transferring goods or services to a customer before the customer pays consideration or before payment is due, the entity shall present the contract as a contract asset, excluding any amounts presented as a receivable. A contract asset is an entity's right to consideration in exchange for goods or services that the entity has transferred to a customer. An entity shall assess a contract asset for impairment in accordance with IFRS 9. An impairment of a contract asset shall be measured, presented and disclosed on the same basis as a financial asset that is within the scope of IFRS 9 (see also paragraph 113(b))."

The words "excluding any amounts presented as a receivable" are the mechanical instruction. A contract asset is the residual after the unconditional slice has been removed. The last two sentences import IFRS 9 wholesale for impairment, which is covered in unit 6.

"A receivable is an entity's right to consideration that is unconditional. A right to consideration is unconditional if only the passage of time is required before payment of that consideration is due. For example, an entity would recognise a receivable if it has a present right to payment even though that amount may be subject to refund in the future. An entity shall account for a receivable in accordance with IFRS 9. Upon initial recognition of a receivable from a contract with a customer, any difference between the measurement of the receivable in accordance with IFRS 9 and the corresponding amount of revenue recognised shall be presented as an expense (for example, as an impairment loss)."

This is the decisive paragraph and it is worth reading twice. The test is not "have we invoiced". The test is whether anything other than the calendar stands between the entity and the payment. A right that is subject to refund is still unconditional, because the refund is a separate obligation and not a condition on the right itself. A right that depends on the entity finishing the remaining work is conditional, and stays a contract asset however aggressive the invoicing has been.

The final sentence of IFRS 15.108 is easy to miss and matters on day one credit losses. Where a receivable is recognised at an IFRS 9 measurement that differs from the revenue recognised, the difference goes to expense, not to revenue. Revenue is not grossed down for the credit risk. That preserves the top line and forces the credit loss into the impairment line where a reader can see it.

Where the Appendix A definition adds something

The body of the standard describes a contract asset by reference to what has happened. Appendix A describes it by reference to the condition, and the Appendix is an integral part of the standard, so it carries the same authority.

"contract asset: An entity's right to consideration in exchange for goods or services that the entity has transferred to a customer when that right is conditioned on something other than the passage of time (for example, the entity's future performance)."
"contract liability: An entity's obligation to transfer goods or services to a customer for which the entity has received consideration (or the amount is due) from the customer."

"Conditioned on something other than the passage of time" is the operative phrase, and the parenthetical makes clear that future performance is the usual condition but not the only one. Customer acceptance under IFRS 15.B83 to B86, certification by an independent engineer, achievement of a milestone that has not yet been reached, or a contractual right of set-off against other work are all conditions. Any one of them keeps the balance as a contract asset.

Decision tree separating a receivable, a contract asset and a contract liability A flow chart starting from IFRS 15.105. If the customer has paid or payment is due before transfer, the balance is a contract liability under IFRS 15.106. If the entity has transferred goods or services first, the question is whether only the passage of time is required before payment is due. If yes, the balance is a receivable under IFRS 15.108. If no, it is a contract asset under IFRS 15.107. Either party has performed IFRS 15.105 compares performance with payment Customer has paid, or payment is due, before the entity has transferred the good or service The entity has transferred the good or service before the customer pays or payment is due CONTRACT LIABILITY IFRS 15.106, earlier of cash and due date Is only the passage of time required before payment becomes due? IFRS 15.108 conditionality test NO YES CONTRACT ASSET IFRS 15.107, conditional right RECEIVABLE IFRS 15.108, present separately Run this test once for each contract. The contract asset and contract liability legs net against each other within that contract only. Receivables never net into the contract position. IFRS 15.105 and IFRS 15.107.
Separating the three balances on the conditionality test in IFRS 15.105 to IFRS 15.108. The question is never whether an invoice exists.

The same contract can produce all three at once

This surprises people. It should not. Take a construction contract measured over time under IFRS 15.35(b), where the customer has paid a mobilisation advance, the entity has certified work in excess of the amount it is entitled to bill this quarter, and one certificate has been signed and invoiced. That single contract produces revenue, a receivable for the invoiced certificate, and a net contract position which is the advance netted against the uncertified excess. Whether that net position is an asset or a liability depends on which is bigger. The receivable stands outside it either way.

How to run the test on a real ledger

In practice nobody applies IFRS 15.105 by reading contracts one at a time. The workable method is to build, per contract, two cumulative figures: cumulative revenue recognised to date, and cumulative amounts billed to date. The difference is the net contract position. If cumulative revenue exceeds cumulative billings, the contract carries a contract asset. If billings exceed revenue, it carries a contract liability. The unpaid portion of cumulative billings is the receivable, sitting outside that comparison. Two data points per contract, and the presentation falls out. The reason so many entities cannot produce it is that revenue is held in one system by performance obligation and billings in another by invoice, with no common contract key.

Local FAQs

Does raising an invoice convert a contract asset into a receivable? Only if the invoice creates an unconditional right. Where the entity can invoice on a payment schedule but the customer can withhold or set off against unfinished work, the right is still conditional and the balance stays a contract asset under IFRS 15.107, notwithstanding the invoice.

Is retention on a construction contract a receivable or a contract asset? It depends on the retention clause. Where the amount is only payable once the defects period expires with no defects, something other than time is required and the balance is a contract asset. Where the retention is released purely on a date, it is a receivable under IFRS 15.108.

Can a contract produce a contract asset before any revenue is recognised? No. A contract asset is a right to consideration in exchange for goods or services the entity has transferred (IFRS 15.107). No transfer, no contract asset. Costs incurred ahead of transfer are dealt with under IFRS 15.95 as a cost asset, which is a different balance entirely.

Potential risks

The recurring risk is a chart of accounts that predates 2018. Where "accrued income" and "amounts recoverable on contracts" survive as ledger codes and are mapped straight into trade receivables in the disclosure, the entity is presenting conditional rights as unconditional ones. That misstates the receivables note, misstates the credit risk disclosure under IFRS 7, and removes the contract asset line that IFRS 15.116(a) requires. It is a presentation error, but on a large contracting balance sheet it is a material one.

2. Why does the contract asset versus receivable distinction matter in practice?

Because the two balances carry different risks and the standard routes them differently. A receivable carries credit risk only. A contract asset carries credit risk plus the entity's own performance risk. That drives a different disclosure under IFRS 15.116, a different narrative under IFRS 15.117, and a different signal to anyone reading the balance sheet. Treating them as one line destroys information the IASB deliberately put there.

It is tempting to see this as cosmetic. Both are assets, both are recovered in cash, both are impaired under IFRS 9. So why does the standard force them apart? Three reasons, and each has an audit consequence.

Risk one: the entity might not finish

A receivable of 10 million says the entity has done everything and is waiting for money. A contract asset of 10 million says the entity has done the work, has recognised the revenue, and still has to complete something before it is even entitled to ask for the money. If the contract is terminated, if the customer rejects the work, or if a condition is not met, the contract asset may never become a receivable at all. That exposure is not credit risk. It is performance risk sitting on the asset side of the balance sheet, and it is invisible if the balance is buried in trade receivables.

This is why the distinction matters more in over-time recognition than anywhere else. Recognising revenue over time under IFRS 15.35 almost always creates a contract asset, because revenue accrues continuously and billing does not. Entities that move a lot of revenue into over-time recognition should expect a contract asset balance to appear and grow, and the absence of one is itself a review point.

Risk two: the impairment path is not identical

Both balances go into IFRS 9. But the amount exposed to credit loss differs. For a receivable, the gross carrying amount is the amount the customer owes. For a contract asset there is a prior question: what is the entity actually entitled to if things go wrong? IFRS 15.107 requires impairment "on the same basis as a financial asset that is within the scope of IFRS 9", which imports the expected credit loss mechanics but does not tell the entity to assume completion. Where completion is doubtful, the issue is not an expected credit loss at all. It is whether the revenue and the resulting contract asset should have been recognised at that amount in the first place, which loops back to the measure of progress and, where consideration is uncertain, to the constraint in IFRS 15.56 to IFRS 15.58 discussed in the variable consideration unit of this cluster.

Do not use the expected credit loss allowance to fix a performance problem. If an entity doubts it will complete, or doubts the customer will accept, the answer is to revisit the measure of progress and the transaction price, not to load a larger loss allowance onto the contract asset. An ECL allowance says the customer will not pay. It does not say the entity will not deliver, and using it that way misdescribes the position in the impairment disclosure required by IFRS 15.113(b).

Risk three: the disclosure requirements diverge

IFRS 15.116(a) requires the opening and closing balances of receivables, contract assets and contract liabilities to be disclosed separately if they are not separately presented. IFRS 15.117 then requires an explanation of how the timing of satisfaction of performance obligations relates to the typical timing of payment, and the effect that has on the contract asset and contract liability balances. That explanation is meaningless if the two balances have been merged. IFRS 15.113(b) separately requires impairment losses on receivables and contract assets from customer contracts to be disclosed apart from other impairment losses.

What each balance tells a reader
QuestionReceivable (IFRS 15.108)Contract asset (IFRS 15.107)Contract liability (IFRS 15.106)
Has revenue been recognised?YesYesNot yet, or not in full
Is further performance required to earn the cash?NoUsually yesYes
What can still go wrong?The customer does not payThe customer does not pay, or the entity does not completeThe entity does not deliver, or refunds
Impairment or remeasurement modelIFRS 9 expected credit lossIFRS 9 expected credit loss (IFRS 15.107)Not impaired; released as performance occurs
Movement disclosureIFRS 15.116(a)IFRS 15.116(a), 117, 118IFRS 15.116(a), 116(b), 117, 118
Typical causeInvoiced, unpaidPerformance ahead of billing rightsBilling ahead of performance

Vodafone: bundled handset contracts create the textbook contract asset

Vodafone's consumer contracts bundle a handset with an airtime service over a fixed term. Under IFRS 15 the transaction price is allocated between the handset and the airtime by relative stand-alone selling price, which usually pushes more revenue onto the handset at inception than the customer pays at that point, because the customer pays through monthly airtime instalments. The excess of revenue recognised over amounts billed is a contract asset, and it unwinds across the contract term as monthly billing catches up. Vodafone presents contract assets and contract liabilities as separate captions and explains the mechanism in its revenue accounting policy.

Vodafone Group Plc, Annual Report 2024, revenue accounting policy and contract-related balances note.

The signal a growing contract asset sends

My view: a contract asset balance that grows faster than revenue is one of the more useful early warning indicators available to an auditor, and it is under-used. It means the gap between what the entity says it has earned and what it is contractually entitled to bill is widening. Sometimes that is benign, a shift in mix towards contracts with back-loaded milestones. Sometimes it means the measure of progress is running ahead of what the customer accepts, and the first evidence of that appears as an ageing contract asset that will not convert. Ageing a contract asset by the date the work was performed, rather than by an invoice date that does not exist, is the analysis that finds it.

Local FAQs

Can an entity choose to present contract assets within trade receivables? Not without disclosure. IFRS 15.109 allows an alternative description but requires sufficient information for a user to distinguish between receivables and contract assets. Merging them with no split does not meet that.

Does the distinction affect the IFRS 7 credit risk disclosures? Yes. Contract assets are in the scope of the IFRS 7 credit risk disclosures because IFRS 15.107 requires impairment measured, presented and disclosed on the same basis as an IFRS 9 financial asset. They belong in the credit risk analysis, shown apart from trade receivables.

Potential risks

Two failure modes recur. The first is the entity that has no contract asset at all despite recognising material revenue over time, which usually means unbilled amounts have been swept into receivables. The second is the entity that has a contract asset but ages it by invoice date, which produces an ageing profile in which everything is current, because none of it has been invoiced. Neither position survives a focused review.

3. Is a contract liability the same as deferred revenue, and does IFRS 15 mandate the caption?

Economically they describe the same thing, but "deferred revenue" is the pre-IFRS 15 label and it is imprecise. IFRS 15.106 defines a contract liability by reference to an obligation to transfer goods or services, not by reference to revenue that has been postponed. IFRS 15.109 permits an entity to keep an alternative caption such as deferred income or unearned revenue, provided users can still tell receivables and contract assets apart. The substance is mandated. The wording is not.

"This Standard uses the terms 'contract asset' and 'contract liability' but does not prohibit an entity from using alternative descriptions in the statement of financial position for those items. If an entity uses an alternative description for a contract asset, the entity shall provide sufficient information for a user of the financial statements to distinguish between receivables and contract assets."

Read the second sentence carefully. The obligation to provide distinguishing information is attached to alternative descriptions of the contract asset, not the contract liability. The IASB was more worried about a contract asset disappearing into receivables than about a contract liability being called deferred income. That is a fair reading of the drafting and it explains why so many filers keep "deferred revenue" on the liability side while using "contract asset" on the asset side. That combination is compliant.

Why the old label is imprecise

Deferred revenue implies that revenue exists and has been pushed into a later period. A contract liability makes no such claim. It says the entity owes goods or services. The distinction bites in three situations.

First, where the transaction price will change. A contract liability is remeasured as the transaction price is reassessed, and IFRS 15.118(b) explicitly lists cumulative catch-up adjustments to revenue that affect the corresponding contract asset or contract liability as a change requiring explanation. Deferred revenue, as historically understood, was a fixed pot to be released. Second, where consideration is received under an arrangement that fails the IFRS 15.9 contract criteria. Third, where the amount received will never be revenue at all.

"An entity shall recognise the consideration received from a customer as a liability until one of the events in paragraph 15 occurs or until the criteria in paragraph 9 are subsequently met (see paragraph 14). Depending on the facts and circumstances relating to the contract, the liability recognised represents the entity's obligation to either transfer goods or services in the future or refund the consideration received. In either case, the liability shall be measured at the amount of consideration received from the customer."

A deposit taken on an arrangement that does not yet meet IFRS 15.9, typically because collectability is not probable, is a liability under IFRS 15.16 and is measured at cash received. It is not a contract liability in the IFRS 15.106 sense, because there may be no qualifying contract. Labelling it deferred revenue implies revenue is coming, which is exactly the assertion IFRS 15.15 says the entity cannot yet make. IFRS 15.15 releases it to revenue only when the entity has no remaining obligations and substantially all of the non-refundable consideration has been received, or the contract has been terminated and the consideration received is non-refundable.

Contract liability, refund liability and customer deposit are three different balances

"An entity shall recognise a refund liability if the entity receives consideration from a customer and expects to refund some or all of that consideration to the customer. A refund liability is measured at the amount of consideration received (or receivable) for which the entity does not expect to be entitled (ie amounts not included in the transaction price). The refund liability (and corresponding change in the transaction price and, therefore, the contract liability) shall be updated at the end of each reporting period for changes in circumstances."

A refund liability is an obligation to return cash. A contract liability is an obligation to deliver goods or services. The parenthetical in IFRS 15.55 confirms they interact: a change in the refund liability changes the transaction price and therefore the contract liability. They are still separate balances and combining them into a single "deferred revenue" caption hides the difference between an obligation to perform and an obligation to repay.

Three liabilities that are often merged under one caption
BalanceReferenceWhat the entity owesHow it is released
Contract liabilityIFRS 15.106Goods or servicesTo revenue as the performance obligation is satisfied
Refund liabilityIFRS 15.55CashTo cash on refund, or to revenue if the entity becomes entitled
Liability for consideration received on a non-qualifying arrangementIFRS 15.16Goods or services, or cashOnly on an IFRS 15.15 event, or when IFRS 15.9 is met

Breakage: the part of a contract liability that becomes revenue without any delivery

Prepaid balances, gift cards, unused data allowances and unredeemed loyalty points all sit in a contract liability. Some of it will never be redeemed.

"If an entity expects to be entitled to a breakage amount in a contract liability, the entity shall recognise the expected breakage amount as revenue in proportion to the pattern of rights exercised by the customer. If an entity does not expect to be entitled to a breakage amount, the entity shall recognise the expected breakage amount as revenue when the likelihood of the customer exercising its remaining rights becomes remote."

Two different patterns, and which one applies depends on whether the entity expects to be entitled to breakage at all. Where it does, revenue comes through in proportion to redemptions, so the contract liability runs down faster than redemption value alone would suggest. Where it does not, nothing is released until the remaining rights become remote. IFRS 15.B46 also directs the entity to the constraint in IFRS 15.56 to IFRS 15.58 when deciding whether it expects to be entitled, so a breakage estimate is a constrained variable consideration estimate, not a free assumption.

IFRS 15.B47 adds the exception that matters in jurisdictions with unclaimed property laws: consideration attributable to unexercised rights that the entity must remit to another party, such as a government body, is a liability and never revenue.

Microsoft: the alternative caption in practice

Microsoft presents its contract liability balance under the caption "unearned revenue" in the consolidated balance sheet, splitting it between current and long-term, and explains in the revenue note that it comprises payments received in advance of performance under enterprise agreements, cloud services and support arrangements, released as those obligations are satisfied. The caption is not the IFRS 15 term, and under IFRS 15.109 it would not need to be, because the paragraph attaches the distinguishing-information obligation to alternative descriptions of contract assets. The policy description is what carries the compliance.

Microsoft Corporation, Form 10-K for the fiscal year ended 30 June 2024, revenue recognition note and consolidated balance sheets. Microsoft reports under US GAAP; ASC 606 and IFRS 15 are converged on this presentation requirement.

Adobe and Sage: subscription billing as the driver of the balance

Adobe describes deferred revenue arising principally from subscription and maintenance arrangements billed in advance, recognised over the subscription term, and discloses the portion of the opening balance recognised as revenue in the period. The Sage Group discloses deferred income arising from software subscription contracts invoiced ahead of the service period, released across the subscription term. In both cases the balance is a barometer of the subscription base rather than a residual, which is why it is watched as closely as revenue itself in software reporting. The same mechanics are worked through in the SaaS and subscription revenue unit of this cluster.

Adobe Inc., Form 10-K for the fiscal year ended 29 November 2024, revenue recognition and deferred revenue disclosures. The Sage Group plc, Annual Report and Accounts 2024, revenue accounting policy and deferred income note.

Local FAQs

Must a contract liability be split between current and non-current? IFRS 15 is silent. IAS 1.69 governs, so the split depends on whether the entity expects to settle the obligation within twelve months or its normal operating cycle. IFRS 18 replaces IAS 1 for annual periods beginning on or after 1 January 2027 and carries the classification requirements forward.

Is a non-refundable upfront fee a contract liability? Usually. Where the fee does not transfer a good or service to the customer, IFRS 15.B49 treats it as an advance payment for future goods or services, so it is recognised as a contract liability and released as those future goods or services transfer.

Does a contract liability arise before cash is received? Yes, if an unconditional right to consideration arises first. IFRS 15.106 uses the earlier of payment made and payment due, so an invoice raised in advance of performance creates a receivable and a contract liability simultaneously.

Potential risks

The commercial risk of the deferred revenue label is that it invites management to talk about the balance as future revenue with a level of certainty the standard does not support. Refund rights, termination rights and variable elements all sit inside it. A user reading "deferred revenue: 400 million" reasonably infers 400 million of revenue is contracted and coming. If part of that is a refund liability under IFRS 15.55, or a liability under IFRS 15.16 on an arrangement that has not yet met IFRS 15.9, the inference is wrong and the entity has not corrected it.

4. At what level do you net contract assets and contract liabilities?

At the level of the individual contract. Not the customer, not the master service agreement, not the portfolio, not the segment. IFRS 15.105 requires an entity to present the contract as a contract asset or a contract liability, singular. The only way two contracts get netted is if they are combined into one contract under IFRS 15.17 in the first place, which is a recognition decision made at inception and not a presentation shortcut taken at year end.

This is the single most common presentation error in this area and it is almost always in the same direction. An entity with a thousand contracts running for the same customer nets the whole relationship down to one number, reports a small net contract liability, and removes a large contract asset and a large contract liability from the balance sheet at the same time. Both totals are understated. Gearing, working capital ratios and the IFRS 15.116 movement disclosure are all affected.

"When either party to a contract has performed, an entity shall present the contract in the statement of financial position as a contract asset or a contract liability, depending on the relationship between the entity's performance and the customer's payment."

The unit of account is "a contract". IFRS 15 defines a contract in Appendix A as "an agreement between two or more parties that creates enforceable rights and obligations". So the netting boundary is the boundary of enforceable rights and obligations, which is a legal question before it is an accounting one. If the entity cannot legally set the shortfall on contract A against the advance on contract B, the balance sheet should not do so either.

The only legitimate route to a wider netting boundary

"An entity shall combine two or more contracts entered into at or near the same time with the same customer (or related parties of the customer) and account for the contracts as a single contract if one or more of the following criteria are met: (a) the contracts are negotiated as a package with a single commercial objective; (b) the amount of consideration to be paid in one contract depends on the price or performance of the other contract; or (c) the goods or services promised in the contracts (or some goods or services promised in each of the contracts) are a single performance obligation in accordance with paragraphs 22-30."

Note the constraints. Combination is mandatory when a criterion is met, not optional, so this is not a policy lever. It requires the contracts to have been entered into at or near the same time. And it requires the same customer or related parties of that customer. A framework agreement signed three years ago and a call-off order signed last month are not entered into at or near the same time, so they do not combine on that basis, whatever the commercial relationship looks like.

Where IFRS 15.17 does apply, the combined arrangement is a single contract for every purpose in the standard, including IFRS 15.105. Its net position is one contract asset or one contract liability. That is combination producing netting, not netting justified after the event.

Netting worked through: four contracts with one customer, all at the same reporting date (example figures)
ContractCumulative revenueCumulative billingsNet positionPresented as
C1 Design1,400,000900,000+500,000Contract asset 500,000
C2 Build3,200,0004,100,000(900,000)Contract liability 900,000
C3 Maintenance240,000600,000(360,000)Contract liability 360,000
C4 Spares supply780,000310,000+470,000Contract asset 470,000
Correct presentation5,620,0005,910,000Contract assets 970,000; contract liabilities 1,260,000
Common error(290,000)Contract liability 290,000, both balances gone

Check the arithmetic. Contract assets 500,000 plus 470,000 is 970,000. Contract liabilities 900,000 plus 360,000 is 1,260,000. The error nets to 290,000, which is the difference between the two, and it removes 970,000 of assets and 970,000 of liabilities from the balance sheet. On a small set of contracts that is a rounding issue. Scale it to a contractor with four thousand live contracts and it is a headline number.

Netting is not the same as offsetting under IAS 1. IAS 1.32 prohibits offsetting assets and liabilities unless required or permitted by an IFRS. Presenting a single net contract position per contract is not offsetting, because IFRS 15.105 defines the unit of account as the contract, so there is only ever one balance to present. Netting across contracts is offsetting, it is not required or permitted by IFRS 15, and IAS 1.32 therefore prohibits it. That is the cleanest way to explain the point to a client who wants to net by customer.

The question that settles it in a meeting

Ask what happens if the customer becomes insolvent tomorrow. If the entity would have to prove for the contract asset on C1 as an unsecured creditor while still owing performance on C2 and C3, with no right of set-off, then the balance sheet that shows a single net liability of 290,000 has described a legal position that does not exist. Almost every netting argument collapses at that question, because the enforceable right of set-off usually is not there. Where it genuinely is there, in a master agreement with a contractual set-off clause covering all call-offs, that is a strong indicator the contracts should have been combined under IFRS 15.17 anyway.

Portfolio practical expedient does not change the answer

IFRS 15.4 permits the standard to be applied to a portfolio of contracts with similar characteristics where the entity reasonably expects the effect would not differ materially from applying it to individual contracts. Entities sometimes read that as authority to present portfolio-level net balances. It is not. The expedient is about applying the recognition and measurement requirements efficiently, and it is conditioned on the outcome not differing materially. Where portfolio netting eliminates material gross balances, the outcome differs materially by definition, so the expedient is unavailable on its own terms.

Local FAQs

Can contract assets be netted against contract liabilities for different performance obligations in the same contract? Yes. The unit of account for presentation is the contract, not the performance obligation. A contract with three performance obligations, two ahead of billing and one behind, produces one net contract asset or one net contract liability.

Should a receivable be netted into the contract position? Never. IFRS 15.105 requires unconditional rights to be presented separately, and IFRS 15.107 requires the contract asset to be stated excluding any amounts presented as a receivable.

What if the contracts were entered into at the same time but with different subsidiaries of the same group customer? IFRS 15.17 covers the same customer or related parties of the customer, so group companies are within scope. The other criteria in IFRS 15.17(a) to (c) still have to be met.

Potential risks

The practical risk is that netting level is a system setting, not a judgement anyone revisits. Enterprise resource planning systems default to customer-level aggregation because that is how credit control works. Once that default has been carried into the consolidation for a few years, unwinding it means rebuilding the contract key across billing and revenue sub-ledgers, which is a project rather than an adjustment. Identify it in the first year of a new engagement, not the fifth.

5. Worked example: how does one contract move from contract liability to contract asset and back?

Because revenue accrues on the pattern of performance while billing follows the payment schedule, and the two are set by different people for different reasons. Where the payment schedule is front-loaded, the contract starts as a liability. As performance overtakes cumulative billings, the balance crosses zero and becomes a contract asset. It returns to nil at completion. The net contract position is always cumulative revenue less cumulative billings, whatever the label.

The facts

These are constructed figures for an illustrative example, not a company's reported numbers.

An engineering entity contracts to design, build and commission a bespoke processing line for a customer. The transaction price is fixed at CU 3,000,000 with no variable element. The entity concludes there is a single performance obligation satisfied over time, because the asset created has no alternative use to the entity and the entity has an enforceable right to payment for performance completed to date, which is the criterion in IFRS 15.35(c). Progress is measured on a cost-to-cost input method, which IFRS 15.B18 identifies as an input method based on costs incurred relative to total expected costs. Total expected costs are CU 2,400,000 and do not change.

The payment schedule agreed by the commercial team is: CU 900,000 payable on signature at the start of year 1; CU 600,000 payable on completion of the build phase at the end of year 2; CU 1,500,000 payable on customer acceptance at the end of year 3. Each invoice, once raised, is payable within 30 days and is not subject to withholding, so the invoiced amount is an unconditional right and a receivable under IFRS 15.108.

Measure of progress and revenue (illustrative example)
YearCosts incurred in yearCumulative costsProgressCumulative revenueRevenue in year
1480,000480,00020%600,000600,000
21,200,0001,680,00070%2,100,0001,500,000
3720,0002,400,000100%3,000,000900,000

Check: 480,000 divided by 2,400,000 is 20%, and 20% of 3,000,000 is 600,000. 1,680,000 divided by 2,400,000 is 70%, and 70% of 3,000,000 is 2,100,000, so year 2 revenue is 2,100,000 less 600,000, which is 1,500,000. Year 3 completes the contract, so cumulative revenue is 3,000,000 and revenue in the year is 900,000. The three years sum to 3,000,000.

Year 1 journals

Year 1 (illustrative example, CU)
#EntryAccountDrCr
1Invoice raised on signature, IFRS 15.106Trade receivable900,000
Contract liability900,000
2Cash received on that invoiceCash900,000
Trade receivable900,000
3Revenue for 20% progress, IFRS 15.35(c)Contract liability600,000
Revenue600,000

Entry 1 is the point most systems get wrong. The contract liability arises on the earlier of payment and payment becoming due (IFRS 15.106), so it is recognised when the invoice is raised, with a receivable on the other side, not when the cash arrives. Closing position at the end of year 1: cumulative revenue 600,000 less cumulative billings 900,000, giving a contract liability of 300,000. Receivable nil, cash 900,000.

Year 2 journals

Year 2 (illustrative example, CU)
#EntryAccountDrCr
4Revenue for the year, clearing the opening liability firstContract liability300,000
Contract asset1,200,000
Revenue1,500,000
5Build phase invoice raised, right becomes unconditional, IFRS 15.108Trade receivable600,000
Contract asset600,000

Entry 4 is where the flip happens. Revenue of 1,500,000 first extinguishes the 300,000 contract liability carried forward, then creates a contract asset of 1,200,000. Entry 5 recognises no revenue at all. It simply reclassifies 600,000 from a conditional right to an unconditional one. That is the single most useful thing to remember about contract assets: converting one to a receivable is a balance sheet reclassification, never a revenue event.

Closing position at the end of year 2, assuming the invoice is unpaid at the reporting date: cumulative revenue 2,100,000 less cumulative billings 1,500,000, giving a contract asset of 600,000. Plus a receivable of 600,000. Check against entry 4 and 5: contract asset 1,200,000 less 600,000 reclassified is 600,000. The two agree.

Year 3 journals

Year 3 (illustrative example, CU)
#EntryAccountDrCr
6Revenue for the final 30% of progressContract asset900,000
Revenue900,000
7Cash received on the year 2 invoiceCash600,000
Trade receivable600,000
8Final invoice on customer acceptanceTrade receivable1,500,000
Contract asset1,500,000
9Cash received on the final invoiceCash1,500,000
Trade receivable1,500,000

Contract asset before entry 8 is 600,000 brought forward plus 900,000, which is 1,500,000, exactly the amount the final invoice makes unconditional. All three balances close at nil. Total cash received is 900,000 plus 600,000 plus 1,500,000, which is 3,000,000, equal to total revenue.

The net contract position across the three years (illustrative example, CU)
Reporting dateCumulative revenueCumulative billingsNet contract positionPresented asReceivable
End year 1600,000900,000(300,000)Contract liability 300,000Nil
End year 22,100,0001,500,000600,000Contract asset 600,000600,000
End year 33,000,0003,000,000NilNilNil
Timeline of cumulative revenue against cumulative billings and the resulting contract balance A chart over three years. Cumulative billings rise in steps from 900,000 at the start of year 1 to 1,500,000 at the end of year 2 and 3,000,000 at the end of year 3. Cumulative revenue rises smoothly from zero to 600,000, then 2,100,000, then 3,000,000. Billings exceed revenue in year 1, producing a contract liability. Revenue exceeds billings during year 2, producing a contract asset. The two meet at nil at the end of year 3. 3.0m 2.0m 1.0m 0 Year 1 Year 2 Year 3 Contract liability 300,000 Contract asset 600,000 Balance crosses zero and flips Cumulative billings (payment schedule) Cumulative revenue (measure of progress) The vertical gap between the two lines is the net contract position at any date. Above the revenue line is a liability, below it is an asset.
Billing versus performance on the illustrative three year contract. The contract balance is the gap between the two lines and flips sign when they cross.

What management should be asked when the balance flips

A flip from contract liability to contract asset is not a red flag on its own. It is the expected shape of any contract with a front-loaded advance and a back-loaded final payment. What matters is whether the flip happened when the contract said it would. Compare the actual crossover point against the schedule modelled at inception. If the balance flipped a year early, either progress is running ahead of plan, which should be visible in cash and headcount, or the measure of progress is overstating performance. In my experience the second explanation is more common than the first, particularly where the cost-to-cost method is being applied to a contract whose costs are heavily front-loaded with materials, which is precisely the situation IFRS 15.B19 addresses.

Local FAQs

Does the entity present a contract asset and a contract liability for the same contract at the same date? No. Each contract has one net position. Where a contract has multiple performance obligations at different stages, they aggregate to a single figure.

Why does the year 2 entry debit the contract liability first? Because the contract liability represents an obligation that is discharged as the entity performs. Revenue in the year first settles that obligation, then creates a new conditional right. Presenting it as two separate entries is acceptable and arguably clearer, but the net effect must be the same.

What if the year 2 invoice had been payable only after acceptance of the whole contract? Then it would not be an unconditional right and would not be a receivable under IFRS 15.108. The 600,000 would stay inside the contract asset and the closing contract asset would be 1,200,000, with no receivable.

Potential risks

Where a contract runs across a reporting date with an invoice raised just before year end, the ordering of entries 4 and 5 determines whether a contract asset or a receivable is reported. Systems that post the invoice first and the revenue accrual second can leave a negative contract asset for a few days, which then gets reclassified to a contract liability in the reporting pack. Reviewing the sequence of postings in the last week of the year is a small procedure that catches a real presentation error.

6. How are contract assets impaired under IFRS 9, and what does a provision matrix look like?

IFRS 15.107 hands contract assets to IFRS 9 and requires the impairment to be measured, presented and disclosed on the same basis as a financial asset in the scope of IFRS 9. That means the expected credit loss model. IFRS 9.5.5.15 allows, and in some cases requires, the simplified approach, under which the loss allowance is always measured at lifetime expected credit losses with no stage assessment and no significant-increase-in-credit-risk test. In practice that is delivered through a provision matrix built from historical loss experience and adjusted for forward-looking information.

"An entity shall assess a contract asset for impairment in accordance with IFRS 9. An impairment of a contract asset shall be measured, presented and disclosed on the same basis as a financial asset that is within the scope of IFRS 9 (see also paragraph 113(b))."

A contract asset is not itself a financial asset, because the right is conditional on future performance rather than being a contractual right to receive cash. The IASB solved that by directing entities to apply IFRS 9's impairment requirements to it anyway. The cross-reference to IFRS 15.113(b) closes the loop on disclosure: impairment losses on receivables and contract assets from customer contracts must be shown separately from other impairment losses.

Which approach applies

IFRS 9.5.5.15 sets out where the simplified approach applies. For contract assets that do not contain a significant financing component, or that do contain one where the entity applies the practical expedient in IFRS 15.63, the entity is required to measure the loss allowance at lifetime expected credit losses. For contract assets that do contain a significant financing component, the entity may choose the simplified approach as an accounting policy, applied consistently, or run the general three stage model in IFRS 9.5.5.3 and IFRS 9.5.5.5. The policy choice for contract assets is made separately from the choice for trade receivables and separately from the choice for lease receivables.

The simplified approach is not a shortcut on measurement. It removes the staging assessment, not the requirement to measure a probability-weighted, unbiased estimate that reflects the time value of money and reasonable and supportable forward-looking information, which is what IFRS 9.5.5.17 requires. An allowance built from a three year historical average with no forward-looking adjustment and no reasoning is not a lifetime expected credit loss. It is a historical loss rate wearing the label.

Building the provision matrix

A provision matrix groups exposures into buckets that share credit risk characteristics, applies a lifetime loss rate to each bucket, and sums the result. For trade receivables the buckets are almost always days past due. For contract assets there is no due date, because nothing has been invoiced, so days past due does not exist as a field. The workable substitute is time elapsed since the performance that gave rise to the balance, or expected time to billing. Ageing a contract asset by invoice date produces an ageing in which every balance is current, which tells you nothing.

Contract assets and trade receivables from the same customers also usually share credit risk characteristics, so a common approach is to derive the loss rates from the receivables history and then apply them to the contract asset buckets on the basis that a contract asset will convert into a receivable of that age profile. That is defensible provided the entity documents why the risk characteristics are shared and adjusts for anything specific to the unbilled position.

Worked example: deriving a lifetime loss rate for one bucket

Illustrative figures, constructed for this example.

The entity examines exposures that sat in the "current" bucket at each historical measurement date over the last three years. The total of those exposures was CU 62,500,000. Of that, CU 200,000 was ultimately never recovered. The historical lifetime loss rate for the bucket is 200,000 divided by 62,500,000, which is 0.32%.

The entity then applies forward-looking information as IFRS 9.5.5.17(c) requires. Its principal customers sit in a sector where the forecast default rate for the next twelve months is materially above the average of the three year observation window, and the entity's credit team quantifies the uplift at 25%. The adjusted lifetime loss rate is 0.32% multiplied by 1.25, which is 0.40%. That uplift, and the evidence supporting it, is the part of the exercise that a reviewer should spend time on, because it is the only part that is a judgement rather than arithmetic.

Provision matrix applied to a portfolio of contract assets (illustrative example, CU)
Bucket, by time since the work was performedGross contract assetHistorical loss rateForward-looking upliftLifetime loss rateExpected credit loss
0 to 30 days4,200,0000.32%1.250.40%16,800
31 to 60 days1,800,0000.72%1.250.90%16,200
61 to 90 days900,0002.00%1.252.50%22,500
91 to 180 days500,0005.60%1.257.00%35,000
Over 180 days200,00017.60%1.2522.00%44,000
Total7,600,0001.77%134,500

Check each line. 4,200,000 at 0.40% is 16,800. 1,800,000 at 0.90% is 16,200. 900,000 at 2.50% is 22,500. 500,000 at 7.00% is 35,000. 200,000 at 22.00% is 44,000. The gross balances sum to 7,600,000 and the allowances sum to 134,500, which is a blended rate of 1.77%.

Journal and movement in the allowance (illustrative example, CU)
#EntryAccountDrCr
1Increase in the loss allowance for the year, 134,500 closing less 96,000 openingImpairment loss on contract assets (IFRS 15.113(b))38,500
Loss allowance, contract assets38,500

The contract asset is presented net of the allowance, at 7,600,000 less 134,500, which is 7,465,500. The charge for the year of 38,500 is the movement in the allowance, not the closing allowance, and it is disclosed separately from impairment losses on other assets because IFRS 15.113(b) requires it.

Two things reviewers should test on a contract asset matrix

First, test whether the loss rates were derived from an exposure population that resembles the current one. Loss rates lifted from a receivables ledger dominated by small customers and applied to a contract asset population dominated by three public sector counterparties are not a reasonable and supportable estimate under IFRS 9.5.5.17. Concentration should drive either separate buckets or a specific assessment.

Second, test the direction of the forward-looking adjustment against the entity's own forecasts elsewhere in the reporting pack. If the going concern assessment assumes an improving market while the ECL overlay assumes a deteriorating one, one of them is wrong and the inconsistency is visible without any specialist work.

An expected credit loss on a contract asset does not fix an over-recognised contract asset. If the reason the balance will not convert is that the customer disputes the work, the correct response is to revisit the transaction price and the constraint in IFRS 15.56 to IFRS 15.58, and to reassess the measure of progress. Booking the exposure as a credit loss puts the charge in the wrong line and tells the reader the customer is a bad credit rather than that the entity has a delivery dispute.

Local FAQs

Do contract assets ever get written off entirely? Yes. IFRS 9.5.4.4 requires a gross carrying amount to be written off directly where there is no reasonable expectation of recovery. For a contract asset that usually coincides with the contract being cancelled or the claim being abandoned.

Are contract assets included in the IFRS 7.35M credit risk table? Yes, on the same basis as trade receivables, because IFRS 15.107 requires disclosure on the same basis as an IFRS 9 financial asset. They should be shown as a separate class, not merged with trade receivables, since their risk profile differs.

Does the loss allowance affect revenue? No. The allowance and its movement are an impairment charge in the expense lines. The final sentence of IFRS 15.108 makes the same point about the day one difference on a receivable: it goes to expense, not against revenue.

Potential risks

The risk that produces the largest adjustments is not the loss rate. It is the population. Where contract assets sit in a sub-ledger that finance treats as a work in progress balance rather than a customer exposure, they frequently never enter the ECL calculation at all. The symptom is easy to spot: a credit risk note that gives a loss allowance for trade receivables and reports contract assets with no allowance and no explanation of why none is required.

7. Which contract costs are capitalised, and what is the one year practical expedient?

IFRS 15 creates two separate cost assets. Incremental costs of obtaining a contract are capitalised under IFRS 15.91 if the entity expects to recover them. Costs to fulfil a contract are capitalised under IFRS 15.95 only if they fall outside every other standard and meet three criteria. IFRS 15.94 lets an entity expense costs of obtaining a contract as incurred where the amortisation period would have been one year or less, which is an election, not a default.

Costs of obtaining a contract

"An entity shall recognise as an asset the incremental costs of obtaining a contract with a customer if the entity expects to recover those costs."
"The incremental costs of obtaining a contract are those costs that an entity incurs to obtain a contract with a customer that it would not have incurred if the contract had not been obtained (for example, a sales commission)."

"Shall recognise" removes the choice. Where the cost is incremental and recoverable, capitalisation is mandatory, subject only to the IFRS 15.94 expedient. The test in IFRS 15.92 is counterfactual: would the cost have been incurred if the contract had not been won? A commission payable only on signature passes. A bonus paid on a mix of contract wins, retention and customer satisfaction does not pass in full, because part of it would have been paid anyway.

"Costs to obtain a contract that would have been incurred regardless of whether the contract was obtained shall be recognised as an expense when incurred, unless those costs are explicitly chargeable to the customer regardless of whether the contract is obtained."

This catches the bulk of what a sales function spends. Salaries of the bid team, travel to pitch meetings, legal fees on drafting, marketing costs, and the cost of tenders that were lost are all expensed, because they were incurred whether or not the contract was won. The exception is narrow: costs explicitly chargeable to the customer regardless of the outcome, such as a due diligence fee the customer pays whether or not it proceeds.

"As a practical expedient, an entity may recognise the incremental costs of obtaining a contract as an expense when incurred if the amortisation period of the asset that the entity otherwise would have recognised is one year or less."

Three points on this. It applies only to costs of obtaining, never to costs to fulfil. It refers to the amortisation period, not the contract term, which matters because IFRS 15.99 can push the amortisation period beyond the contract term where anticipated renewals are in play. And if the entity elects it, IFRS 15.129 requires the entity to disclose that fact, which many do not.

Costs to fulfil a contract

"If the costs incurred in fulfilling a contract with a customer are not within the scope of another Standard (for example, IAS 2 Inventories, IAS 16 Property, Plant and Equipment or IAS 38 Intangible Assets), an entity shall recognise an asset from the costs incurred to fulfil a contract only if those costs meet all of the following criteria: (a) the costs relate directly to a contract or to an anticipated contract that the entity can specifically identify (for example, costs relating to services to be provided under renewal of an existing contract or costs of designing an asset to be transferred under a specific contract that has not yet been approved); (b) the costs generate or enhance resources of the entity that will be used in satisfying (or in continuing to satisfy) performance obligations in the future; and (c) the costs are expected to be recovered."

The opening words are a hierarchy, not an introduction. IFRS 15.95 is the residual. If the cost is inventory, it is IAS 2. If it creates an item of property, plant and equipment, it is IAS 16. If it creates an intangible asset, it is IAS 38. Only what is left over is tested against the three criteria. Getting the hierarchy the wrong way round, and pulling costs into IFRS 15.95 that belong in IAS 16, changes the impairment model applied to them and changes the order in which they are written down, as unit 9 explains.

Criterion (a) is worth noting for a different reason. It expressly contemplates costs relating to an anticipated contract, including a renewal of an existing contract. That is the hook IFRS 15.99 later uses to extend amortisation periods beyond the current contract term.

"An entity shall recognise the following costs as expenses when incurred: (a) general and administrative costs (unless those costs are explicitly chargeable to the customer under the contract, in which case an entity shall evaluate those costs in accordance with paragraph 97); (b) costs of wasted materials, labour or other resources to fulfil the contract that were not reflected in the price of the contract; (c) costs that relate to satisfied performance obligations (or partially satisfied performance obligations) in the contract (ie costs that relate to past performance); and (d) costs for which an entity cannot distinguish whether the costs relate to unsatisfied performance obligations or to satisfied performance obligations (or partially satisfied performance obligations)."

IFRS 15.98(b) is the rework paragraph and it is a genuine change from IAS 11 practice, where cost overruns often stayed in the contract balance. Under IFRS 15 waste that was not priced into the contract goes straight to expense. IFRS 15.98(d) is stricter still: where the entity cannot tell whether costs relate to past or future performance, the default is expense. That is a deliberate anti-abuse rule and it removes the argument that unallocated costs should sit on the balance sheet until someone works out where they belong.

Common costs and where they land
CostTreatmentReference
Sales commission payable only on contract signatureCapitalise as a cost of obtaining, unless the IFRS 15.94 expedient is electedIFRS 15.91, 15.92
Sales team base salaryExpense as incurredIFRS 15.93
Bid and tender costs, including on lost bidsExpense as incurredIFRS 15.93
Legal fees on drafting the contract, payable regardless of awardExpense as incurredIFRS 15.93
Employer payroll taxes on a capitalised commissionCapitalise, on the basis they are incremental on the same testIFRS 15.92
Set-up and migration costs on a service contract, no transfer to the customerCapitalise if the IFRS 15.95 criteria are metIFRS 15.95, B51
Dedicated tooling used to fulfil the contractIAS 16, not IFRS 15IFRS 15.95 opening words, 15.96
Materials held for the contractIAS 2, not IFRS 15IFRS 15.95 opening words, 15.96
Rework caused by the entity's own error, not priced inExpense as incurredIFRS 15.98(b)
Unallocable overhead that may relate to past or future performanceExpense as incurredIFRS 15.98(d)

The full mechanics of commission arrangements, including partial incrementality and multi-tier plans, are covered in the contract costs and commissions unit of this cluster, and the five step model that sits above all of it is set out in the IFRS 15 complete guide.

Local FAQs

Is the IFRS 15.94 expedient an accounting policy choice? Yes, and IFRS 15.129 requires the entity to disclose that it has applied it. It should be applied consistently to costs of obtaining contracts with the relevant characteristics rather than picked contract by contract.

Can costs be capitalised on a contract that has not been signed? Under IFRS 15.95(a), yes, where the costs relate to a specifically identifiable anticipated contract. That is the fulfilment limb only. Costs of obtaining a contract under IFRS 15.91 must relate to a contract actually obtained, because IFRS 15.92 defines them by reference to a contract that was won.

Where does the cost asset sit on the balance sheet? It is not a contract asset. It is a separate asset arising from costs, disclosed under IFRS 15.128(a) by main category, such as costs to obtain contracts, pre-contract costs and setup costs. Presenting it within contract assets confuses two different balances with two different impairment tests.

Potential risks

The recurring risk on the obtaining side is a commission plan that mixes drivers. Where a plan pays on new contract value, renewal value, gross margin and a discretionary modifier, only the element that is genuinely incremental to a won contract is capitalised, and separating that requires the plan documentation rather than the payroll total. Where the entity capitalises the whole payment, the asset is overstated and the error compounds every year the plan runs.

8. Over what period is a capitalised commission amortised, and how is the cost asset impaired?

IFRS 15.99 requires amortisation on a systematic basis consistent with the transfer of the goods or services to which the asset relates, and expressly says the asset may relate to goods or services under a specific anticipated contract. Where the entity pays a much smaller commission on renewal than on the initial sale, the initial commission is partly compensating for those anticipated renewals, so the amortisation period runs beyond the initial contract term. Impairment is tested under IFRS 15.101, using an entity-specific comparison of remaining consideration against remaining direct costs, and IFRS 15.103 fixes the order relative to other standards.

"An asset recognised in accordance with paragraph 91 or 95 shall be amortised on a systematic basis that is consistent with the transfer to the customer of the goods or services to which the asset relates. The asset may relate to goods or services to be transferred under a specific anticipated contract (as described in paragraph 95(a))."
"An entity shall update the amortisation to reflect a significant change in the entity's expected timing of transfer to the customer of the goods or services to which the asset relates. Such a change shall be accounted for as a change in accounting estimate in accordance with IAS 8."

The second sentence of IFRS 15.99 is the whole argument for extending the period past the initial term. If the salesperson is paid 60,000 to win a two year subscription and 12,000 to renew it, the 60,000 is buying more than two years of revenue. Part of it is buying the customer relationship that produces the renewals. On that reading the asset relates to goods or services under an anticipated contract within IFRS 15.95(a), and IFRS 15.99 requires amortisation consistent with the transfer of all of them.

Practitioners describe this as the "commensurate" test: is the renewal commission commensurate with the initial commission? That phrase does not appear in IFRS 15 and should not be presented as if it does. It is a useful shorthand for the analysis IFRS 15.99 requires, nothing more. Where the renewal commission is commensurate, the initial commission relates only to the initial term and the amortisation period is the initial term.

IFRS 15.100 is the paragraph nobody applies. An entity that concluded on a five year benefit period in 2019 and has not revisited it since is not applying IFRS 15.100, which requires the amortisation to be updated for significant changes in the expected timing of transfer. Churn data moves. When it moves significantly, the period changes prospectively as an IAS 8 change in estimate.

Worked example: a capitalised sales commission across five years

Constructed figures, labelled as an example.

An entity signs a two year subscription contract with a new customer for CU 200,000 in total, invoiced annually in advance and recognised evenly over the term as a series of distinct services under IFRS 15.22(b). It pays the salesperson a commission of CU 60,000, payable only if the contract is signed, and pays a fixed salary of CU 5,000 for the month regardless. Its renewal commission on this class of contract is CU 12,000 for a further two year term. Historical evidence shows the average customer relationship lasts five years.

Step one: is the 60,000 incremental? Yes. It would not have been incurred if the contract had not been obtained, which is the IFRS 15.92 test, and the entity expects to recover it out of the subscription margin, which is the IFRS 15.91 test. The 5,000 salary fails IFRS 15.93 and is expensed.

Step two: what is the amortisation period? The renewal commission of 12,000 is 20% of the initial commission for a contract of similar value. It is not commensurate. The initial commission therefore relates in part to the anticipated renewal contracts described in IFRS 15.95(a), and under IFRS 15.99 the amortisation period is the expected customer relationship of five years, not the two year initial term. Because revenue is recognised evenly, straight line amortisation is consistent with the transfer of the services.

Step three: the renewal commission itself. When the customer renews for a further two years, the 12,000 is commensurate with the renewal it obtains, so it is amortised over the two year renewal term at 6,000 a year.

Right answer against the common error (illustrative example, CU)
PeriodCorrect: 60,000 over five yearsError: 60,000 over the two year termDifference in expense
Year 112,00030,00018,000 overstated
Year 212,00030,00018,000 overstated
Year 312,000Nil12,000 understated
Year 412,000Nil12,000 understated
Year 512,000Nil12,000 understated
Total60,00060,000Nil

The total is the same either way, which is why the error survives so long. What differs is the phasing and the asset carried on the balance sheet. At the end of year 2 the correct carrying amount is 60,000 less 24,000, which is 36,000. Under the error it is nil. For a fast-growing subscription business signing new contracts every month, the error suppresses both the asset and reported profit throughout the growth phase, then flatters it later.

Journals, years 0 to 4 (illustrative example, CU)
#EntryAccountDrCr
1Commission capitalised on signature, IFRS 15.91Contract cost asset, costs to obtain60,000
Accrued payroll60,000
2Salesperson salary for the month, IFRS 15.93Selling expense5,000
Accrued payroll5,000
3Amortisation, each of years 1 to 3, IFRS 15.99Amortisation of contract cost assets12,000
Contract cost asset12,000
4Impairment at the end of year 3, IFRS 15.101 (see below)Impairment of contract cost assets12,000
Contract cost asset12,000
5Amortisation, year 4, revised over the remaining termAmortisation of contract cost assets12,000
Contract cost asset12,000

The impairment test in IFRS 15.101

"An entity shall recognise an impairment loss in profit or loss to the extent that the carrying amount of an asset recognised in accordance with paragraph 91 or 95 exceeds: (a) the remaining amount of consideration that the entity expects to receive in exchange for the goods or services to which the asset relates; less (b) the costs that relate directly to providing those goods or services and that have not been recognised as expenses (see paragraph 97)."
"For the purposes of applying paragraph 101 to determine the amount of consideration that an entity expects to receive, an entity shall use the principles for determining the transaction price (except for the requirements in paragraphs 56-58 on constraining estimates of variable consideration) and adjust that amount to reflect the effects of the customer's credit risk."

This is not a value in use calculation. There is no discounting requirement, no cash-generating unit at this stage, and no fair value. It is remaining consideration less remaining direct costs, compared against carrying amount. IFRS 15.102 makes two specific adjustments to the transaction price used: the constraint in IFRS 15.56 to IFRS 15.58 is switched off, which increases the amount, and the customer's credit risk is deducted, which reduces it. Applying the constraint here is a common error and it understates the recoverable amount.

Continuing the example. At the end of year 3, the customer has told the entity it will not renew when the current term expires at the end of year 4. Carrying amount of the commission asset is 60,000 less three years of amortisation at 12,000, which is 24,000. Remaining contractual consideration for year 4 is CU 102,000. Applying IFRS 15.102, the entity does not apply the constraint but does adjust for the customer's credit risk, which it assesses at CU 2,000, giving expected consideration of CU 100,000. Costs relating directly to providing that year of service, not yet expensed, are CU 88,000 of hosting, support and third party licence costs.

IFRS 15.101 impairment test at the end of year 3 (illustrative example, CU)
StepReferenceAmount
Remaining contractual considerationIFRS 15.102102,000
Adjustment for the customer's credit riskIFRS 15.102(2,000)
(a) Remaining consideration expectedIFRS 15.101(a)100,000
(b) Direct costs of providing those services, not yet expensedIFRS 15.101(b), 15.97(88,000)
Recoverable amount for the purposes of IFRS 15.10112,000
Carrying amount of the cost asset24,000
Impairment lossIFRS 15.10112,000

The remaining carrying amount of 12,000 is amortised over the final year of service, so total expense across the five years is 12,000 in each of years 1 to 3, 12,000 of impairment at the end of year 3, and 12,000 of amortisation in year 4, which is 60,000 in total. The impairment did not change the total charge. It changed when the charge was taken, and it is disclosed separately from amortisation because IFRS 15.128(b) requires the amortisation and any impairment losses to be given separately.

"Before an entity recognises an impairment loss for an asset recognised in accordance with paragraph 91 or 95, the entity shall recognise any impairment loss for assets related to the contract that are recognised in accordance with another Standard (for example, IAS 2, IAS 16 and IAS 38). After applying the impairment test in paragraph 101, an entity shall include the resulting carrying amount of the asset recognised in accordance with paragraph 91 or 95 in the carrying amount of the cash-generating unit to which it belongs for the purpose of applying IAS 36 Impairment of Assets to that cash-generating unit."

Two instructions, in sequence. Other standards first, IFRS 15 second, IAS 36 at the cash-generating unit level third. The reason for the ordering is that assets under other standards are usually more specific to the contract and would otherwise be sheltered by an IFRS 15 write-down. Get the order wrong and the aggregate write-down is the same only by coincidence.

"An entity shall recognise in profit or loss a reversal of some or all of an impairment loss previously recognised in accordance with paragraph 101 when the impairment conditions no longer exist or have improved. The increased carrying amount of the asset shall not exceed the amount that would have been determined (net of amortisation) if no impairment loss had been recognised previously."

Reversal is required, not permitted, when conditions improve, subject to the depreciated historical cost ceiling. That is a meaningful difference from goodwill under IAS 36.124, where reversal is prohibited, and it is why the ordering in IFRS 15.103 matters so much on a contract that recovers.

Salesforce and Microsoft: capitalised commissions in practice

Salesforce capitalises incremental costs of obtaining a contract, principally sales commissions and related payroll taxes, and amortises them over a period of benefit determined by reference to the expected customer relationship rather than the initial subscription term, with commissions on renewals amortised over the renewal term. Microsoft defers incremental sales commissions and amortises them over the period of benefit, which it explains takes into account the estimated life of the customer relationship and the technology. Both disclose the closing balance of the deferred commission asset and the amortisation for the period, which is what IFRS 15.128 requires of an IFRS reporter and what ASC 340-40 requires of these filers.

Salesforce, Inc., Form 10-K for the fiscal year ended 31 January 2025, revenue recognition and deferred commissions notes. Microsoft Corporation, Form 10-K for the fiscal year ended 30 June 2024, revenue recognition note.

Where the amortisation period actually gets decided

My view: the amortisation period on capitalised commissions is the single largest soft judgement in this area and it is usually made once, by a project team, at transition, and then never revisited. IFRS 15.100 requires it to be updated for significant changes in expected timing of transfer, and the input that drives it, customer churn, is a number the business measures monthly for entirely different reasons. Ask for the churn series and compare it against the period supporting the asset. If churn has doubled and the benefit period has not moved, the entity is not applying IFRS 15.100 and there is an unrecognised impairment or a shortened period sitting there.

Local FAQs

Can the IFRS 15.101 test be performed on a portfolio of contracts? The paragraph is written contract by contract, referring to the goods or services to which the asset relates. Where a portfolio approach is used under IFRS 15.4, the entity has to be able to demonstrate the result would not differ materially, which is hard where individual contracts are loss-making within a profitable portfolio.

Does the constraint on variable consideration apply to the impairment test? No. IFRS 15.102 expressly excludes IFRS 15.56 to IFRS 15.58 from the calculation of the remaining consideration expected. Credit risk is deducted, but the constraint is not applied.

Is the reversal in IFRS 15.104 optional? No. It is required when the impairment conditions no longer exist or have improved, capped at what the carrying amount net of amortisation would have been.

Potential risks

Stale amortisation periods are the most common finding and the hardest to argue away, because the contradicting evidence sits in the entity's own management information. A close second is capitalising the commission at gross payroll cost while amortising it against a benefit period supported only by an assertion. The evidence for the period should be a churn or retention analysis with a date on it, refreshed at least annually.

9. IFRS 15 has no onerous contract provision, so how is a loss-making contract accounted for?

Through IAS 37, and only after the asset write-downs have been taken. The sequence is IFRS 15.103 first, which requires assets under IAS 2, IAS 16 and IAS 38 to be impaired before the IFRS 15 cost asset. Then IFRS 15.101 on the cost asset. Then IAS 37.69, which requires impairment of assets dedicated to the contract before a separate provision is set up. Only the residual expected loss becomes an IAS 37.66 provision. Running these in the wrong order, or including the amortisation of an already-impaired asset in the unavoidable costs, recognises the same loss twice.

The IASB removed the onerous contract requirement that IAS 11.36 contained and did not replace it. That was deliberate. IAS 37 already had a general onerous contract requirement, and the Board saw no reason for a revenue-specific one. The practical consequence is that a contract accountant who works only in IFRS 15 will not find the answer, and a contract that is losing money will sit unprovided until someone reaches for IAS 37.

IAS 37.66 requires that where an entity has a contract that is onerous, the present obligation under the contract is recognised and measured as a provision. IAS 37.68 measures the unavoidable costs under a contract as the least net cost of exiting from it, being the lower of the cost of fulfilling it and any compensation or penalties arising from failure to fulfil it. IAS 37.68A, added by the Onerous Contracts, Cost of Fulfilling a Contract amendments and effective for annual periods beginning on or after 1 January 2022, specifies that the cost of fulfilling a contract comprises the costs that relate directly to the contract, consisting of both the incremental costs of fulfilling it and an allocation of other costs that relate directly to fulfilling contracts.

IFRS 15 does not contain any of this. These paragraphs are quoted by reference to IAS 37 because the wording is not in the IFRS 15 text, and they are the operative requirements for a loss-making revenue contract. The full analysis, including the least net cost of exiting comparison and the pre-2022 divergence in practice that IAS 37.68A resolved, is set out in the IAS 37 onerous contracts article.

IAS 37.69 requires that before a separate provision for an onerous contract is established, an entity recognises any impairment loss that has occurred on assets dedicated to that contract, applying IAS 36.

Read together with IFRS 15.103, this produces one sequence rather than two competing ones. IFRS 15.103 orders the IFRS 15 cost asset relative to other standards. IAS 37.69 orders all dedicated asset impairments relative to the provision. Neither contradicts the other, and following both gives a single defensible order of operations.

The order of operations on a loss-making contract
StepWhat is testedReference
1Assets related to the contract recognised under other standards: inventory (IAS 2), plant (IAS 16), intangibles (IAS 38)IFRS 15.103, IAS 37.69
2The IFRS 15 contract cost asset, costs to obtain and costs to fulfilIFRS 15.101, 15.102
3The residual expected loss on the contract, recognised as a provisionIAS 37.66, 68, 68A
4The remaining carrying amount of the IFRS 15 cost asset is included in the cash-generating unit for the IAS 36 testIFRS 15.103

Worked example: the double count

Constructed figures, labelled as an example.

A contract has remaining consideration the entity expects to receive of CU 800,000 and remaining cash costs to complete of CU 1,000,000. Dedicated to the contract are: an item of plant carried under IAS 16 at CU 120,000 with a recoverable amount of CU 90,000, and a contract set-up cost asset capitalised under IFRS 15.95 with a carrying amount of CU 50,000. Assume no penalty for exiting is lower than the cost of fulfilling, so IAS 37.68 points to fulfilment cost.

Correct sequence (illustrative example, CU)
StepCalculationCharge
1. IAS 16 plant, IFRS 15.103 and IAS 37.69Carrying amount 120,000 less recoverable amount 90,00030,000
2. IFRS 15 cost asset, IFRS 15.101Remaining consideration 800,000 less remaining direct costs 1,000,000 is negative, so the asset is not recoverable and is written off in full50,000
3. IAS 37.66 provisionUnavoidable cash costs to complete 1,000,000 less expected consideration 800,000200,000
Total loss recognised280,000
The double count, and where it comes from (illustrative example, CU)
StepCalculationCharge
1. IAS 16 plantSame as above30,000
2. IFRS 15 cost assetSame as above50,000
3. IAS 37.66 provision, computed with the 50,000 amortisation of the set-up asset included in the cost of fulfillingCosts 1,000,000 plus 50,000 amortisation, less consideration 800,000250,000
Total loss recognised330,000
Overstatement330,000 less 280,00050,000

The overstatement is exactly the carrying amount of the set-up asset. It was written off in step 2 and then charged again through the provision in step 3 as an amortisation cost the entity will never actually incur, because the asset no longer exists. The rule that prevents it is simple: once an asset has been written down under step 1 or step 2, its future amortisation or depreciation cannot form part of the unavoidable costs used to size the IAS 37 provision. The provision measures the shortfall in cash and other resources still to be given up, not accounting charges already taken.

Journals for the correct sequence (illustrative example, CU)
#EntryAccountDrCr
1Impairment of dedicated plant, IAS 36 via IFRS 15.103Impairment of property, plant and equipment30,000
Property, plant and equipment30,000
2Impairment of the contract cost asset, IFRS 15.101Impairment of contract cost assets50,000
Contract cost asset50,000
3Onerous contract provision, IAS 37.66Cost of sales, onerous contract charge200,000
Provision for onerous contracts200,000

An onerous contract provision is not a contract liability. It is an IAS 37 provision. It does not belong in the contract balance disclosure required by IFRS 15.116, it does not net against contract assets, and it is disclosed under IAS 37.84 with its own movement table. Presenting it inside contract liabilities corrupts the IFRS 15.116(b) figure for revenue recognised from the opening contract liability, because the provision will never become revenue.

Why the ordering rule exists at all

It is easy to read IFRS 15.103 as procedural. It is not. Suppose the entity took the IAS 37 provision first, sizing it as the excess of remaining costs over remaining consideration. The dedicated plant would then look recoverable, because the provision has absorbed the contract loss, and no IAS 16 impairment would be recognised. The entity ends up carrying an asset with no recoverable service potential and a provision covering the same economic loss. IFRS 15.103 and IAS 37.69 both close that door by insisting the assets go first. My view is that this is the single most useful ordering rule in the revenue standards, and it is the one most often reversed in practice because the provision is the number management is discussing.

Local FAQs

Does IFRS 15 anywhere require a loss on a contract to be recognised immediately? No. IFRS 15 contains no onerous contract requirement. IFRS 15.101 will often produce an immediate write-down of the cost asset on a loss-making contract, but that is an impairment test, not a loss provision, and it stops at the carrying amount of the asset.

Is the onerous contract assessment made at contract level or performance obligation level? IAS 37 applies to the contract. The performance obligation is an IFRS 15 unit of account for revenue recognition and it does not carry over into IAS 37, so a contract with one loss-making obligation and one profitable obligation is assessed on the contract as a whole.

What if the contract is loss-making only because of a variable consideration constraint? Then examine the constraint first. IFRS 15.102 switches the constraint off for the IFRS 15.101 test, and IAS 37.68 measures the cost of fulfilment against the economic benefits expected, which is not the same as the constrained transaction price. A contract can be loss-making for accounting purposes and profitable in cash terms purely because of the constraint, and that should be understood before a provision is recognised.

Potential risks

The risk that produces restatements is a provision sized from a management contract review that mixes cash costs with accounting allocations. Depreciation on shared plant, allocated head office recharges that would continue regardless, and amortisation of assets already impaired all find their way into "cost to complete" schedules because that is how the operational forecast is built. Sizing the provision from the operational forecast without stripping those out is the most common way an onerous contract charge ends up overstated.

10. How do significant financing components interact with contract assets and contract liabilities?

A significant financing component changes the size of the balance and adds a second line to the income statement. IFRS 15.60 requires the consideration to be adjusted for the time value of money where the payment timing gives either party a significant financing benefit. IFRS 15.65 then requires the interest to be presented separately from revenue, and states that interest is recognised only to the extent a contract asset, receivable or contract liability is recognised. So the contract balance is what carries the financing.

"In determining the transaction price, an entity shall adjust the promised amount of consideration for the effects of the time value of money if the timing of payments agreed to by the parties to the contract (either explicitly or implicitly) provides the customer or the entity with a significant benefit of financing the transfer of goods or services to the customer. In those circumstances, the contract contains a significant financing component. A significant financing component may exist regardless of whether the promise of financing is explicitly stated in the contract or implied by the payment terms agreed to by the parties to the contract."

The financing can run in either direction. Where the customer pays late, the entity is financing the customer and the contract asset or receivable accretes interest income. Where the customer pays early, the customer is financing the entity and the contract liability accretes interest expense, which increases revenue when it is eventually recognised. The second case is counter-intuitive and is the one that gets missed, because paying in advance does not feel like lending.

"An entity shall present the effects of financing (interest revenue or interest expense) separately from revenue from contracts with customers in the statement of comprehensive income. Interest revenue or interest expense is recognised only to the extent that a contract asset (or receivable) or a contract liability is recognised in accounting for a contract with a customer."

The second sentence sets a hard limit. No contract balance, no interest. That prevents an entity recognising financing income on a contract where nothing has been performed and nothing has been paid, which is exactly the situation IFRS 15.105 says produces no balance at all.

The exceptions and the expedient

IFRS 15.62 removes three situations from the analysis. IFRS 15.62(a) covers advance payment where the timing of transfer is at the customer's discretion, which takes most gift cards and prepaid balances out of scope. IFRS 15.62(b) covers consideration that is substantially variable on an event outside either party's control, using a sales-based royalty as the example. IFRS 15.62(c) covers a difference between promised consideration and cash selling price that arises for reasons other than finance and is proportional to that reason, with performance protection given as the example, which is the paragraph that deals with retentions on construction contracts.

IFRS 15.63 then provides the practical expedient: where the entity expects at contract inception that the period between transfer and payment will be one year or less, it need not adjust for the financing component. IFRS 15.129 requires disclosure of the fact that the expedient has been applied. IFRS 15.64 requires the discount rate to be the rate in a separate financing transaction between the entity and its customer at contract inception, reflecting credit characteristics and any collateral, and prohibits updating that rate afterwards for changes in interest rates or in the assessment of credit risk.

Worked example: a contract liability that accretes

Constructed figures, labelled as an example.

A customer pays CU 1,000,000 in advance for a bespoke asset that will transfer at the end of year 3. The timing of transfer is fixed by the contract and is not at the customer's discretion, so IFRS 15.62(a) does not apply. The period exceeds one year, so IFRS 15.63 is unavailable. The rate in a separate financing transaction between the entity and this customer at inception, determined under IFRS 15.64, is 5%.

Accretion of the contract liability (illustrative example, CU)
PeriodOpening contract liabilityInterest expense at 5%Closing contract liability
Year 11,000,00050,0001,050,000
Year 21,050,00052,5001,102,500
Year 31,102,50055,1251,157,625
Total interest157,625

Check: 1,000,000 compounded at 5% for three years is 1,157,625, and the total interest of 50,000 plus 52,500 plus 55,125 is 157,625, which reconciles.

Journals (illustrative example, CU)
#EntryAccountDrCr
1Advance received at inception, IFRS 15.106Cash1,000,000
Contract liability1,000,000
2Interest accreted in year 1, IFRS 15.65Interest expense50,000
Contract liability50,000
3Interest accreted in year 2Interest expense52,500
Contract liability52,500
4Interest accreted in year 3Interest expense55,125
Contract liability55,125
5Control transfers at the end of year 3Contract liability1,157,625
Revenue1,157,625

Revenue is 1,157,625 against cash of 1,000,000. The entity recognises more revenue than it received because it also incurred 157,625 of interest expense in getting there, and IFRS 15.65 requires those two effects to appear on separate lines. Netting them into a single revenue figure of 1,000,000 misstates both revenue and finance costs, and is a common error where the entity's treasury system has no visibility of the contract balance.

Watch the direction of the interest on prepaid multi-year services. A three year support contract paid entirely up front looks like a straightforward contract liability released evenly. If the transfer timing is fixed by the contract rather than at the customer's discretion, IFRS 15.62(a) does not exempt it, and the entity is being financed by its customer. Ignoring the financing understates revenue and understates finance costs by the same amount, which leaves profit unchanged and both key ratios wrong.

Local FAQs

Does the significant financing component change whether the balance is a contract asset or a contract liability? No. It changes the measurement, not the classification. The conditionality test in IFRS 15.107 and IFRS 15.108 is unaffected.

Can the discount rate be updated if the customer's credit deteriorates? No. IFRS 15.64 prohibits updating the rate after contract inception for changes in interest rates or other circumstances, and expressly names a change in the assessment of the customer's credit risk. Credit deterioration is dealt with through the IFRS 9 loss allowance instead.

Is retention money a significant financing component? Generally no. IFRS 15.62(c) covers a difference arising for reasons other than finance and proportional to that reason, and retention exists to protect the customer against non-performance rather than to provide finance.

Potential risks

The risk is asymmetry in application. Entities are quick to identify financing components where they are financing the customer, because the interest income is welcome, and slow to identify them where the customer is financing them, because the interest expense is not. A quick test is to list every contract where cash is collected more than twelve months before performance and check how many carry an accreted contract liability. If the answer is none, the assessment has not been performed evenly.

11. What does IFRS 15 require to be disclosed about contract balances?

Three things, in IFRS 15.116: the opening and closing balances of receivables, contract assets and contract liabilities; the revenue recognised in the period that was sitting in the opening contract liability; and revenue recognised from performance obligations satisfied in previous periods. IFRS 15.117 requires an explanation linking the timing of performance to the timing of payment. IFRS 15.118 requires an explanation of significant changes in the balances, with a list of examples. Separately, IFRS 15.120 requires disclosure of the transaction price allocated to remaining performance obligations, subject to the expedients in IFRS 15.121.

"An entity shall disclose all of the following: (a) the opening and closing balances of receivables, contract assets and contract liabilities from contracts with customers, if not otherwise separately presented or disclosed; (b) revenue recognised in the reporting period that was included in the contract liability balance at the beginning of the period; and (c) revenue recognised in the reporting period from performance obligations satisfied (or partially satisfied) in previous periods (for example, changes in transaction price)."

IFRS 15.116(b) is the most analytically useful number in the whole revenue note and the one most often omitted. It tells a reader how much of the year's revenue was already contracted and paid for at the start of the year, which is a direct measure of revenue visibility. For a subscription business it should be a large proportion. For a contractor it should be small. Where the number is inconsistent with the business model described elsewhere in the annual report, something in the contract balance analysis is wrong.

IFRS 15.116(c) captures catch-up revenue. Changes in the transaction price on contracts where performance already happened, settlement of variable consideration that was previously constrained, and claims resolved in the entity's favour all land here. A large figure is not itself a problem, but a large figure with no accompanying explanation of what changed is a disclosure deficiency and a useful signal about estimation quality in prior periods.

"An entity shall explain how the timing of satisfaction of its performance obligations (see paragraph 119(a)) relates to the typical timing of payment (see paragraph 119(b)) and the effect that those factors have on the contract asset and the contract liability balances. The explanation provided may use qualitative information."
"An entity shall provide an explanation of the significant changes in the contract asset and the contract liability balances during the reporting period. The explanation shall include qualitative and quantitative information. Examples of changes in the entity's balances of contract assets and contract liabilities include any of the following: (a) changes due to business combinations; (b) cumulative catch-up adjustments to revenue that affect the corresponding contract asset or contract liability, including adjustments arising from a change in the measure of progress, a change in an estimate of the transaction price (including any changes in the assessment of whether an estimate of variable consideration is constrained) or a contract modification; (c) impairment of a contract asset; (d) a change in the time frame for a right to consideration to become unconditional (ie for a contract asset to be reclassified to a receivable); and (e) a change in the time frame for a performance obligation to be satisfied (ie for the recognition of revenue arising from a contract liability)."

IFRS 15.118 says the explanation shall include qualitative and quantitative information. A narrative sentence saying the movement is due to normal trading does not meet it. The five examples are a checklist worth running against the movement schedule: business combinations, catch-up adjustments, contract asset impairment, a change in how long it takes a contract asset to become a receivable, and a change in how long it takes a contract liability to become revenue. The last two are timing indicators and they are almost never disclosed, even by entities where they moved materially.

A contract balance movement table that answers IFRS 15.116 to IFRS 15.118 (illustrative example, CU 000)
MovementContract assetsContract liabilities
Opening balance7,200(12,400)
Revenue recognised that was in the opening contract liability, IFRS 15.116(b)9,100
Revenue recognised in excess of amounts billed in the year11,600
Amounts billed in excess of revenue recognised in the year(10,300)
Transfers to receivables on rights becoming unconditional, IFRS 15.118(d)(10,900)
Cumulative catch-up on a change in the measure of progress, IFRS 15.118(b)560
Impairment of contract assets, IFRS 15.118(c) and 15.113(b)(135)
Acquired in a business combination, IFRS 15.118(a)340(820)
Closing balance8,665(14,420)

Check the contract asset column: 7,200 plus 11,600 less 10,900 plus 560 less 135 plus 340 is 8,665. Contract liabilities: 12,400 less 9,100 plus 10,300 plus 820 is 14,420. A table of this shape delivers IFRS 15.116(a), IFRS 15.116(b) and the quantitative half of IFRS 15.118 in one place, which is why it is the format that surfaces most often in better annual reports.

Remaining performance obligations

"An entity shall disclose the following information about its remaining performance obligations: (a) the aggregate amount of the transaction price allocated to the performance obligations that are unsatisfied (or partially unsatisfied) as of the end of the reporting period; and (b) an explanation of when the entity expects to recognise as revenue the amount disclosed in accordance with paragraph 120(a), which the entity shall disclose in either of the following ways: (i) on a quantitative basis using the time bands that would be most appropriate for the duration of the remaining performance obligations; or (ii) by using qualitative information."
"As a practical expedient, an entity need not disclose the information in paragraph 120 for a performance obligation if either of the following conditions is met: (a) the performance obligation is part of a contract that has an original expected duration of one year or less; or (b) the entity recognises revenue from the satisfaction of the performance obligation in accordance with paragraph B16."

This is the disclosure that gives a reader a forward view, and it is much wider than the contract liability. A contract liability only exists where the customer has paid or payment is due. The IFRS 15.120(a) figure covers the whole unsatisfied transaction price, billed or not. For a business with long contracts and back-loaded billing, the remaining performance obligation figure can be many multiples of the contract liability, and the gap between the two is itself informative.

The IFRS 15.121(b) expedient refers to IFRS 15.B16, which is the right-to-invoice practical expedient, where an entity recognises revenue at the amount it has the right to invoice because that corresponds directly with the value transferred. IFRS 15.122 then requires the entity to explain qualitatively whether it is applying the IFRS 15.121 expedient and whether any consideration is excluded from the transaction price and therefore excluded from the IFRS 15.120 figure, giving constrained variable consideration as the example. An entity that discloses a remaining performance obligation figure without saying what has been left out of it has not applied IFRS 15.122.

Cost asset disclosures

IFRS 15.127 requires the entity to describe the judgements made in determining the amount of costs incurred to obtain or fulfil a contract and the method used to determine amortisation for each period. IFRS 15.128 requires the closing balances by main category of asset, giving costs to obtain contracts, pre-contract costs and setup costs as the examples, and the amount of amortisation and any impairment losses recognised in the period. IFRS 15.129 requires disclosure where the IFRS 15.63 or IFRS 15.94 practical expedients have been used. Those three paragraphs are frequently reduced to a single sentence about commissions and the balance, which does not deliver the category split IFRS 15.128(a) asks for.

BT Group: separate presentation of the full set of balances

BT Group presents contract assets, trade and other receivables, contract liabilities and contract costs as distinct items, with a note setting out the movement in contract balances and the revenue recognised in the year that was included in the opening contract liability. Its policy explanation links the timing of billing on fixed and mobile contracts to the timing of revenue recognition, which is the explanation IFRS 15.117 asks for. Presenting contract costs apart from contract assets, as BT does, is the presentation that keeps the two impairment tests visibly separate.

BT Group plc, Annual Report 2024, revenue accounting policy, contract-related balances and contract costs notes.

Reading the disclosure as an analyst rather than a preparer

Three ratios make this note useful. First, revenue from the opening contract liability divided by opening contract liability, which measures how quickly the balance converts. Second, contract assets divided by revenue, tracked over three years, which shows whether the gap between performance and billing rights is widening. Third, remaining performance obligations divided by the next twelve months' consensus revenue, which shows how much of the forecast is already contracted. My view is that these three, taken together, tell you more about the durability of a revenue line than the revenue recognition policy note ever will, and they are computable from IFRS 15.116 and IFRS 15.120 alone.

Local FAQs

Is the IFRS 15.116(a) disclosure required if the balances are on the face of the balance sheet? No. The paragraph applies "if not otherwise separately presented or disclosed". Presenting all three on the face satisfies it, but IFRS 15.117 and IFRS 15.118 still require the explanations.

Do the practical expedients in IFRS 15.121 remove the need to say anything? No. IFRS 15.122 requires the entity to explain qualitatively whether it is applying the expedient and what consideration has been excluded from the transaction price.

Does the remaining performance obligation disclosure include constrained variable consideration? No, because constrained amounts are not in the transaction price. IFRS 15.122 requires that exclusion to be explained rather than left for the reader to infer.

Potential risks

The disclosure risk in this area is not omission of the table. It is an explanation that repeats the numbers. IFRS 15.117 asks for the relationship between the timing of performance and the timing of payment. IFRS 15.118 asks why the balances moved. A sentence saying contract liabilities increased because more was billed in advance restates the arithmetic and answers neither question.

12. Where does the audit challenge on contract balances actually land?

In four places, and none of them is the revenue number. Netting applied at the wrong level. Contract assets classified inside trade receivables. No expected credit loss assessment on contract assets. Stale amortisation periods on capitalised commissions. All four are presentation or process failures that survive because they do not change profit, which is exactly why they persist for years.

One: netting at the wrong level

Test it directly. Take the contract asset and contract liability totals from the balance sheet and ask for the underlying schedule showing the net position by contract. If the schedule is by customer, the netting level is wrong. If the schedule exists by contract but the reported totals do not agree to the sum of the positive and negative positions separately, netting has happened somewhere in the consolidation. A useful reconciling test is that the sum of all positive contract positions must equal reported contract assets, and the sum of all negative positions must equal reported contract liabilities, with no relationship between the two. Where a client cannot produce that reconciliation, they have not applied IFRS 15.105 by contract.

Two: contract assets sitting inside trade receivables

The population to look at is anything described as accrued income, unbilled revenue, amounts recoverable on contracts, work in progress on service contracts, or unbilled receivables. For each, ask what has to happen before the customer is obliged to pay. If the answer is anything other than "time passes", it is a contract asset under IFRS 15.107 and it does not belong in trade receivables. This test takes an hour and it finds real misclassification on most contracting and outsourcing balance sheets.

The consequence is not just a wrong caption. Trade receivables is a class for IFRS 7 credit risk purposes, contract assets is a separate class with a different risk profile, and the IFRS 15.116(a) opening and closing balance disclosure requires the two to be split. One misclassification breaks three disclosures.

Three: no expected credit loss on contract assets

Look for the loss allowance on contract assets in the credit risk note. If there is no allowance and no statement that none is required, IFRS 15.107 has not been applied. The usual root cause is organisational rather than technical: contract assets are owned by project accounting, the ECL model is owned by treasury or credit, and neither believes the balance is theirs.

Where an allowance does exist, the second test is whether the loss rates came from a population with comparable credit characteristics and whether the forward-looking adjustment required by IFRS 9.5.5.17(c) has been made and evidenced. A matrix that has used the same five rates since 2019 has not been updated for anything.

Four: stale amortisation periods on capitalised commissions

Ask for the analysis supporting the benefit period and check the date on it. Then ask for the current churn or retention statistics from the commercial team and compare. IFRS 15.100 requires the amortisation to be updated for a significant change in the expected timing of transfer, treated as an IAS 8 change in estimate. Where churn has moved materially and the period has not, there is either an unrecognised change in estimate or an impairment under IFRS 15.101 that has not been tested.

Four tests and what each one finds
TestEvidence requestedWhat a failure looks likeReference
Netting levelNet position by contract, reconciled to reported gross totalsSchedule is by customer, or totals do not reconcileIFRS 15.105, 15.17, IAS 1.32
ClassificationAnalysis of every unbilled balance against the conditionality testConditional balances reported in trade receivablesIFRS 15.107, 15.108, 15.109
Impairment of contract assetsLoss allowance and provision matrix covering contract assetsNo allowance and no explanationIFRS 15.107, 15.113(b), IFRS 9.5.5.15
Cost asset amortisationDated benefit period analysis, compared to current churn dataPeriod unchanged since transitionIFRS 15.99, 15.100, 15.101

Why these four survive year after year

My view: they survive because none of them moves profit. A misclassified contract asset, an unnetted balance and a stale commission period all leave the income statement broadly where it was, so they never reach a materiality threshold expressed in profit terms. But they are not profit errors, they are presentation and disclosure errors, and the relevant measure is the balance affected, not the profit effect. Once that framing is applied, a 900,000 contract asset misclassified into a receivables balance of 4 million is plainly material to the receivables disclosure. Framing the materiality question correctly is most of the work in getting these corrected.

Local FAQs

Which of the four is most likely to require a prior year restatement? Netting, because it usually affects both totals in every comparative period presented and is not correctable prospectively.

Is a missing contract asset ECL always an error? Not necessarily. Where the balance is immaterial or the counterparties carry negligible credit risk, no allowance may be needed. What is required is evidence that the assessment was made, and a statement to that effect. Silence is the problem, not a nil allowance.

Potential risks

The systemic risk is that all four originate in systems, not in judgement, so they are found late and fixed slowly. The contract key that links revenue to billing, the ageing field on unbilled balances, and the feed of contract assets into the ECL engine are all IT deliverables. Raising them in the year end file gives a client no time to act. Raising them at planning gives them a year.

What have regulators found on contract balances?

Regulators have consistently found the disclosure around contract balances weaker than the recognition. The Financial Reporting Council's thematic work on IFRS 15 and its annual reviews of corporate reporting have repeatedly identified revenue as an area of challenge, with contract balance explanations and disaggregation among the specific points raised. ESMA has included IFRS 15 application in its European Common Enforcement Priorities.

The FRC published a thematic review of IFRS 15 disclosures in October 2018, covering the first year of application. Its findings pointed at the quality of explanation rather than the arithmetic: companies were asked to explain more clearly how the timing of performance relates to the timing of payment, to describe the nature of contract balances rather than simply present them, and to make the significant judgements disclosure specific to the company rather than generic. Those are the IFRS 15.117, IFRS 15.118 and IFRS 15.123 requirements respectively, and the criticism has recurred in subsequent FRC annual reviews of corporate reporting, in which revenue has remained among the most frequently raised topics in the FRC's correspondence with companies.

ESMA included IFRS 15 in its European Common Enforcement Priorities for the 2018 financial statements and returned to revenue-related matters in later years, focusing among other things on the specificity of disclosure about significant judgements and on the consistency between the revenue note and the narrative reporting elsewhere in the annual report. The consistent thread across both regulators is that boilerplate fails. A note that restates the words of IFRS 15.117 without describing the entity's own billing pattern has not made the disclosure.

The recurring regulator point is specificity, not compliance in form. Most entities have the table. Fewer have the explanation. IFRS 15.118 requires qualitative and quantitative information about significant changes, and a movement table with no narrative meets only half of it. If the contract asset balance grew 40% and the note says the increase reflects higher activity levels, that is the sentence a regulator will write to the company about.

Under US GAAP, SEC staff comment letters on ASC 606 have raised similar themes, particularly around the remaining performance obligation disclosure and the use of the practical expedients, asking registrants to explain which expedients they applied and what consideration was excluded. That is the ASC 606 equivalent of IFRS 15.122, and the point is the same on either side. A comparison of the two standards across the whole model is set out in the IFRS 15 versus ASC 606 deep dive.

Five ways entities get contract balances wrong

  • Netting by customer instead of by contract. IFRS 15.105 presents "the contract" as a contract asset or a contract liability. Aggregating positions across separate contracts with the same customer is offsetting, prohibited by IAS 1.32 unless another standard requires or permits it, and IFRS 15 does not. The only route to a wider boundary is combination under IFRS 15.17, which is mandatory when its criteria are met and is decided at inception.
  • Treating an invoice as the trigger for a receivable. The test in IFRS 15.108 is whether only the passage of time stands between the entity and payment. An invoice the customer can withhold against unfinished work, or that is subject to certification, does not create an unconditional right. Balances invoiced under a payment schedule that runs ahead of the entitlement remain contract assets.
  • Leaving contract assets out of the expected credit loss model. IFRS 15.107 requires impairment measured, presented and disclosed on the same basis as an IFRS 9 financial asset, and IFRS 15.113(b) requires the resulting loss to be disclosed separately from other impairment losses. Contract assets held in a project ledger rather than a receivables ledger routinely never reach the ECL calculation at all.
  • Amortising a capitalised commission over the initial contract term by default. IFRS 15.99 points the amortisation at the goods or services the asset relates to, and confirms those may be under a specific anticipated contract as described in IFRS 15.95(a). Where the renewal commission is far smaller than the initial one, the initial commission is partly buying the renewal and the period extends. IFRS 15.100 then requires the period to be updated for significant changes.
  • Sizing an onerous contract provision before writing down the dedicated assets. IFRS 15.103 requires assets under other standards to be impaired first, then the IFRS 15 cost asset, and IAS 37.69 requires impairment of assets dedicated to the contract before a separate provision is established. Reversing that order leaves recoverable-looking assets on the balance sheet, and including the amortisation of an already-impaired asset in the unavoidable costs double counts the loss.

Frequently asked questions on contract assets and contract liabilities

What is the difference between a contract asset and a receivable under IFRS 15?

A receivable is an unconditional right to consideration, meaning only the passage of time is required before payment is due (IFRS 15.108). A contract asset is a right to consideration that is conditioned on something other than the passage of time, usually the entity's own future performance (IFRS 15.107 and Appendix A). The test is conditionality, not whether an invoice has been raised.

Is a contract liability the same as deferred revenue?

In substance yes, but deferred revenue is the pre-IFRS 15 label. IFRS 15.106 defines a contract liability as the entity's obligation to transfer goods or services for which it has received consideration, or for which consideration is due. IFRS 15.109 permits an alternative caption such as deferred income, so long as users can still distinguish receivables from contract assets.

Do you net contract assets and contract liabilities on the balance sheet?

Netting happens at the level of the individual contract, not the customer and not the portfolio. IFRS 15.105 requires an entity to present the contract as a contract asset or a contract liability. Two separate contracts with the same customer are presented gross unless they are combined into a single contract under IFRS 15.17.

How are contract assets impaired under IFRS 9?

IFRS 15.107 requires a contract asset to be assessed for impairment under IFRS 9, measured, presented and disclosed on the same basis as a financial asset in the scope of IFRS 9. In practice that means the expected credit loss model, and the simplified approach in IFRS 9.5.5.15 gives a lifetime expected credit loss without any stage assessment.

What is the contract asset journal entry?

When performance runs ahead of billing, the entry is Dr Contract asset, Cr Revenue. When the right to consideration later becomes unconditional because an invoice is raised or a milestone certificate is signed, the entry is Dr Trade receivable, Cr Contract asset. No revenue is recognised on that second entry (IFRS 15.105 and IFRS 15.108).

When can you capitalise a sales commission under IFRS 15?

IFRS 15.91 requires an entity to recognise as an asset the incremental costs of obtaining a contract if it expects to recover them. IFRS 15.92 defines incremental as costs that would not have been incurred if the contract had not been obtained, with a sales commission as the example. IFRS 15.94 offers a practical expedient to expense them when the amortisation period would be one year or less.

Over what period is a capitalised sales commission amortised?

IFRS 15.99 requires amortisation on a systematic basis consistent with the transfer of the goods or services to which the asset relates, and states that the asset may relate to goods or services to be transferred under a specific anticipated contract. Where the renewal commission is much smaller than the initial commission, the initial commission is partly compensating for the anticipated renewal, so the period extends beyond the initial term.

Does IFRS 15 have an onerous contract provision?

No. IFRS 15 contains no onerous contract requirement. A loss-making contract is tested under IAS 37.66 to IAS 37.68A. IAS 37.69 requires any impairment loss on assets dedicated to the contract to be recognised before a separate provision is set up, and IFRS 15.103 requires assets under other standards to be impaired before the contract cost asset.

What contract balance disclosures does IFRS 15 require?

IFRS 15.116 requires the opening and closing balances of receivables, contract assets and contract liabilities, the revenue recognised in the period that was in the opening contract liability, and revenue from performance obligations satisfied in previous periods. IFRS 15.117 requires an explanation of how the timing of performance relates to the timing of payment, and IFRS 15.118 requires an explanation of significant changes in the balances.

Are contract assets and contract liabilities current or non-current?

IFRS 15 does not say. Classification follows IAS 1.66 for assets and IAS 1.69 for liabilities. The operating cycle test in IAS 1.66(a) is what allows a contract asset on a multi-year construction contract to sit in current assets. IFRS 18 replaces IAS 1 for annual periods beginning on or after 1 January 2027 and carries the classification requirements forward.

Key takeaways

  • Conditionality decides the classification. IFRS 15.108 makes a right unconditional only where the passage of time is the sole remaining requirement, and everything else earned but conditional is a contract asset under IFRS 15.107.
  • The unit of account for presentation is the contract. IFRS 15.105 nets within a contract and never across contracts, and the only route to a wider boundary is combination under IFRS 15.17.
  • Deferred revenue is a permitted caption under IFRS 15.109 but an imprecise concept. A contract liability is an obligation to deliver, and it sits alongside, not instead of, refund liabilities under IFRS 15.55 and liabilities under IFRS 15.16.
  • Contract assets are inside the IFRS 9 expected credit loss model by virtue of IFRS 15.107, usually through the simplified approach in IFRS 9.5.5.15, and they should be aged by the date the work was performed rather than by an invoice date that does not exist.
  • Capitalised costs under IFRS 15.91 and IFRS 15.95 are a separate asset with a separate impairment test in IFRS 15.101, run in the order IFRS 15.103 sets, and amortised over a period that IFRS 15.99 and IFRS 15.100 require to be evidenced and refreshed.
  • A loss-making contract is an IAS 37.66 question, not an IFRS 15 one, and the assets go down before the provision goes up.
Usman Qureshi, ACCA

About the Author

Usman is an ACCA-qualified member and an audit and financial reporting professional with a decade of Big 4 experience across Deloitte UK, PwC and BDO, currently an Assistant Manager in Deloitte UK's AI-enabled audit practice. He leads statutory and group audit engagements for multinational clients, with a portfolio in the £20m to £30m fee range and teams of 15 to 25 people across multiple jurisdictions. His technical work concentrates on the judgemental end of the accounting and audit standards. Sector exposure spans banking and financial services, automotive, technology, media and telecom, pharmaceuticals and healthcare, and private equity. Alongside audit delivery he advises CFOs and audit committees on adoption and disclosure decisions, and supports audit partners in forming audit opinions. He has coached more than 150 audit professionals to date, and delivers technical training on accounting and audit standards as well as on new AI tools. He also serves as an AI accelerator at Deloitte, testing new audit technology on live engagements, and built the AI platform behind this site. He writes here on the technical judgements that do not have a straightforward answer in the standards, adding an expert view formed in Big 4 practice.

About UQ Consulting

UQ Consulting is an independent technical reference for accounting and audit practitioners, covering IFRS, UK GAAP and US GAAP. Every technical assertion on this site carries a paragraph reference to the standard, and only currently effective guidance is presented as the accounting treatment; superseded standards appear as history or comparison only.

Alongside the technical library, UQ Consulting's AI tools put the same judgement to work interactively: a Meeting Room panel of AI specialists for testing a technical position, GAAP Compare for IFRS-versus-US-GAAP questions, and free tools for CV scoring, knowledge testing and financial statement review. Seven tools, no sign-up wall.

Reviewed by Usman Qureshi, ACCA, a Chartered Certified Accountant with a Big 4 audit and advisory background, and founder of UQ Consulting.