Ind AS 115

Revenue from Contracts with Customers

Revenue & TaxationFive-step model
Objective & scope

Recognise revenue as performance obligations are satisfied

Ind AS 115 replaced the old transaction-based revenue rules with a single five-step model: identify the contract, identify the separate performance obligations, determine the transaction price, allocate that price to each obligation, and recognise revenue as each obligation is satisfied — at a point in time or over time.

Key recognition & measurement points
  • Performance obligations must be distinct — separately identifiable goods or services within a bundled contract.
  • Variable consideration (discounts, rebates, bonuses, penalties) is estimated and included in the transaction price only to the extent it's highly probable not to reverse.
  • Revenue is recognised over time only if specific criteria are met (e.g. the customer controls the asset as it's created, or the entity has no alternative use and an enforceable right to payment).
  • Contract costs — costs to obtain and costs to fulfil a contract — are capitalised and amortised if they meet the recognition criteria.
What must be disclosed
  • Disaggregation of revenue into categories that show how economic factors affect timing and uncertainty of cash flows.
  • Contract balances — contract assets, contract liabilities, and significant changes during the period.
  • Remaining performance obligations and when revenue from them is expected to be recognised.
  • Significant judgements made in determining the timing of satisfaction of performance obligations and the transaction price.
Where teams get it wrong

Common pitfalls

Teams most often misjudge whether obligations are distinct (bundling things that should be separated, or vice versa), misapply the over-time vs point-in-time test, and under-estimate variable consideration constraints — recognising revenue that later has to be reversed.

See the Revenue module

IndASBridge drafts the Ind AS 115 working from your existing data — your team reviews and signs off.

Open the module