Performance Obligations, a Below-Standard Contract Modification and Principal vs Agent
Kalpana Systems Ltd (KSL), a listed software vendor with a 31 March year-end, signs a contract on 1 April 20X4 covering three items: a perpetual on-premise licence of its analytics platform for ₹4 crore, delivered immediately; a 24-month customisation project for ₹2 crore that significantly modifies the platform's output for the customer's regulatory filings, although the customer could use the unmodified licence on its own; and post-contract support for three years at ₹1 crore a year, which KSL sells to other customers at the same price. KSL has never sold the customisation separately. On 1 January 20X5, with 15 months of customisation still to run, the parties add a data-migration module for ₹2 crore and extend support by two years at ₹1 crore a year; the module is regularly sold separately for ₹3 crore. Separately, KSL bills a customer ₹60 lakh for third-party cloud hosting that it resells; KSL sets the price, is responsible for the service and bears credit risk, and pays the hosting provider ₹52.8 lakh.
1. Identify the performance obligations in the 1 April 20X4 contract and allocate the ₹9 crore transaction price. When is revenue recognised for each obligation?
Read the worked answer
Step 2 - distinct goods and services
- Licence and customisation: the licence is capable of being distinct (the customer can use it unmodified), but it is not distinct within the context of the contract. Ind AS 115 para 29(c) treats a good or service as not distinct where another promise in the contract significantly modifies or customises it. The customisation significantly modifies the platform's output, so the two promises are a single combined performance obligation.
- Support: distinct - KSL routinely sells it separately and the customer benefits from it together with the platform (para 27).
Step 4 - allocation There is no observable standalone selling price (SSP) for the combined item, so KSL estimates it at expected cost plus a reasonable margin - say ₹7 crore. Support SSP is ₹3 crore (3 × ₹1 crore).
| Obligation | SSP | Allocation (₹ crore) |
|---|---|---|
| Licence + customisation | 7.00 | 9 × 7/10 = 6.30 |
| Support (36 months) | 3.00 | 9 × 3/10 = 2.70 |
| Total | 10.00 | 9.00 |
Step 5 - recognition
- Support: a stand-ready obligation satisfied over time; ₹2.70 crore straight-line over 36 months (₹7.5 lakh a month).
- Combined obligation: satisfied over time under para 35(c) only if the customised platform has no alternative use to KSL and KSL has an enforceable right to payment for performance completed to date (the contract must contain payment-on-termination terms). If both criteria are met, revenue follows progress measured on a cost-to-cost input basis (₹6.30 crore over 24 months if effort is even). If the right to payment test fails, revenue for the licence is recognised at a point in time on delivery and the customisation over time - the test, not habit, decides.
2. How should the 1 January 20X5 change be accounted for? Quantify the effect.
Read the worked answer
Does the modification add distinct goods? Yes - the module and the two extra support years are distinct from the licence/customisation already transferred.
Is the price at SSP? No. The module is priced at ₹2 crore against an SSP of ₹3 crore, so the added promises are not priced at their SSP. Para 21(a) therefore cannot be used; para 21(b) applies: terminate the old contract and create a new one on 1 January 20X5.
Unrecognised consideration carried into the new contract
- Remaining support: ₹2.70 crore × 27/36 = ₹2.025 crore
- New consideration: module ₹2 crore + two support years ₹2 crore = ₹4.000 crore
- Total = ₹6.025 crore
SSP of the remaining obligations
- Original support, 27 months: ₹2.25 crore
- Extended support, 24 months: ₹2.00 crore
- Module: ₹3.00 crore
- Total: ₹7.25 crore
Allocation
- Module: 6.025 × 3.00/7.25 = ₹2.49 crore, recognised when control of the module transfers (delivery/acceptance - a right to use software, point in time).
- Support: 6.025 × 4.25/7.25 = ₹3.53 crore, recognised over the 51 remaining months (₹6.93 lakh a month).
The combined licence/customisation obligation is untouched: its ₹3.9375 crore balance continues over the 15 remaining months. Note that the ₹3 crore SSP of the module is used even though KSL has never bundled the module with support - observable prices exist for both items separately.
3. How should the cloud hosting arrangement be reported - gross or net?
Read the worked answer
Control before transfer decides the answer (Ind AS 115 paras B34–B38), not who invoices whom.
The indicators point to KSL being the principal:
- KSL is primarily responsible for the service to the customer and for fulfilment;
- KSL sets the price with full discretion and is not reimbursed on a cost-plus basis;
- KSL bears the customer's credit risk and the inventory/utilisation risk on the capacity it has committed to buy;
- the customer contracts with KSL, not with the hosting provider.
KSL therefore obtains control of the hosting service before it is transferred to the customer and is a principal. It recognises revenue of ₹60 lakh and cost of services of ₹52.8 lakh, i.e. gross, with a ₹7.2 lakh margin. Netting to a ₹7.2 lakh commission would understate both revenue and expenses and misdescribe the credit risk KSL carries.