PIPFA Intermediate study materials
PIPFA Intermediate study resources

Revenue progress when materials sit in your own warehouse

PIPFA Intermediate · Put your knowledge to work in context.

All case studies

Revenue progress when materials sit in your own warehouse

Rehmat Systems (Pvt) Ltd is a Karachi-based software house. On 1 July 2024 it signed a fixed-price contract with a commercial bank to design, build and install a core banking system over 24 months for Rs 96,000,000. The original estimated total cost was Rs 72,000,000, giving a 25% margin. At 30 June 2025 the project manager reports costs incurred of Rs 27,000,000. Of this, Rs 3,000,000 relates to servers bought and stored in Rehmat's own warehouse; they will be installed in month 18. Progress is measured using costs incurred. In May 2025 the bank asked for an additional fraud-analytics module. Rehmat will charge Rs 12,000,000 for incremental costs of Rs 8,000,000; the module can be used with other systems and is priced close to standalone market rates. The contract also promises a Rs 5,000,000 bonus if go-live happens by 31 March 2026. The project director puts the chance at 60%, but the bank has rejected two previous milestone dates.

1. Compute revenue, contract cost and gross profit for the year ended 30 June 2025 under IFRS 15, and justify your treatment of the servers.

Read the worked answer

Progress measure. IFRS 15 requires progress to reflect transfer of goods or services to the customer. Costs that do not depict that transfer are excluded from the input measure. The Rs 3,000,000 of servers sit in Rehmat's own warehouse and the bank does not control them, so they are not yet a cost of satisfying the performance obligation; they remain inventory, a separate asset.

Eligible cost = 27,000,000 - 3,000,000 = 24,000,000. Progress = 24,000,000 / 72,000,000 = 33.33%. Revenue = 96,000,000 x 33.33% = Rs 32,000,000. Contract cost expensed = Rs 24,000,000. Gross profit = Rs 8,000,000.

Presentation. No billing details are given, so the net position is a contract asset of Rs 32,000,000 (costs plus profit recognised, less billings). The servers stay in inventory until installed; when installed their cost enters the progress measure and revenue catches up. Do not simply use 27,000,000 as the numerator: that would overstate progress to 37.5% and revenue to Rs 36,000,000, pulling forward Rs 4,000,000 of revenue that has not been earned.

2. How should the fraud-analytics module be accounted for, and what evidence is needed before you accept that treatment?

Read the worked answer

First decide whether the module is distinct. It is separate functionality that the bank can benefit from with other systems, and Rehmat does not need to integrate it into the core system to deliver it. IFRS 15 then treats the change as a separate contract from the modification date, provided the Rs 12,000,000 price reflects standalone selling price plus any appropriate adjustment for the circumstances.

A 50% margin on the Rs 8,000,000 incremental cost looks high against the original 25%, so evidence of standalone pricing is needed: price lists, comparable module sales, or a market quote. If Rs 12,000,000 is below standalone selling price, part of the original contract price is effectively being shifted to the new work and the allocation must be revisited rather than accepted at face value.

If the module is not distinct, it is a modification of the existing contract: remeasure the transaction price (96 + 12 = Rs 108 million), revise the cost estimate (72 + 8 = Rs 80 million), and recognise a cumulative catch-up at the modification date so revenue reflects the new progress percentage.

In either case, no revenue arises merely because the module was ordered. Revenue follows work performed. If work started before 30 June 2025, only the portion performed by year end enters FY2025.

3. Should the Rs 5,000,000 bonus be included in the transaction price at 30 June 2025? Show the effect if it were included.

Read the worked answer

Treat the bonus as variable consideration. Because the outcome is binary (met or not met), the most likely amount is the appropriate estimate: Rs 5,000,000 at 60% probability, nil at 40%. The most likely amount is therefore Rs 5,000,000, but the constraint then applies: it is included only to the extent it is highly probable that a significant reversal will not occur when the uncertainty is resolved.

At 60% it is not highly probable. The bank has already rejected two milestone dates, which increases reversal risk. Excluding it is the defensible treatment; the 60% estimate supports disclosure of the judgement, not recognition. If it were included, it would enter the transaction price and be recognised by progress: 5,000,000 x 33.33% = Rs 1,666,667 in FY2025, with the rest recognised later.

Reassess at each reporting date. If by December 2025 go-live is near-certain with a signed acceptance plan, include it then. Do not recognise a separate contingent asset for the bonus; it is part of the contract's transaction price and is tested through the constraint, not through IAS 37.