Spaciora

Blog · 29 April 2026

IFRS 16 lease accounting: a practical guide for facility managers

The right-of-use asset, lease liability, and monthly journal pattern explained — plus two real bugs we caught in property tests and fixed.

By Spaciora Team8 min read
  • IFRS 16
  • Lease Accounting
  • Ind AS 116
  • Finance
  • Facility Management

If you are a facility manager, IFRS 16 is the standard your finance team blames you for not understanding, and you blame them for not explaining. The reality is that the math is not difficult — it is just unforgiving. Get the inputs wrong and the closing balance will not zero out. Get the precision wrong and you will be ₹4 off on a ₹1.2 crore lease. Both have happened in production at customers. Both are now caught by property-based tests. This post explains the standard in operational terms and walks through the two bugs we fixed.

What IFRS 16 actually requires

Under IFRS 16 (and its Indian equivalent, Ind AS 116), almost every lease above 12 months and above a low-value threshold must come on the balance sheet. Two new items appear:

  • Right-of-use (ROU) asset — the lessee's right to use the underlying asset, depreciated straight-line over the lease term.
  • Lease liability — the present value of future lease payments, discounted at the incremental borrowing rate (IBR), amortised using the effective interest method.

The monthly journal entry pattern is:

  • Dr Interest expense (interest portion of payment)
  • Dr Lease liability (principal portion of payment)
  • Cr Bank/Cash (total monthly payment)

And separately:

  • Dr Depreciation expense (ROU asset / lease term in months)
  • Cr Accumulated depreciation

The principal portion grows over time, the interest portion shrinks, and at month N the lease liability hits zero. That is the theory. In practice, two things go wrong.

Worked example: 5-year office lease

Consider a real Indian commercial lease:

  • Monthly rent: ₹2,00,000
  • Term: 60 months (5 years)
  • IBR: 7% per annum, 0.5833% per month
  • Escalation: 5% from start of Year 3

First, project the cash flows. Months 1-24 are ₹2,00,000. Months 25-60 are ₹2,10,000 (₹2,00,000 × 1.05).

Discount each month's payment at 0.5833% per month and sum to get the opening lease liability. The result, computed with paisa precision, is approximately ₹1,02,87,419.

The ROU asset opens at the same value (assuming no initial direct costs or prepaid rent), and depreciates ₹1,71,457 per month straight-line.

Amortisation table — first 6 months

MonthOpening LiabilityInterest @ 0.5833%PaymentPrincipalClosing Liability
11,02,87,41960,0102,00,0001,39,9901,01,47,429
21,01,47,42959,1942,00,0001,40,8061,00,06,623
31,00,06,62358,3722,00,0001,41,62898,64,995
498,64,99557,5462,00,0001,42,45497,22,541
597,22,54156,7152,00,0001,43,28595,79,256
695,79,25655,8792,00,0001,44,12194,35,135

Notice that the interest portion drops by roughly ₹800 each month and the principal portion grows by the same amount. By month 60 the closing liability should be ₹0.00. If it is not, you have a bug.

Bug #1: Closing balance going negative on short-term leases

We caught this with property-based tests using Hypothesis. The test generated random lease parameters — term between 12 and 360 months, rent between ₹10,000 and ₹50,00,000, IBR between 4% and 14% — and asserted that the closing liability after the final payment was exactly zero (within ₹1 tolerance).

The test failed on a 14-month lease at ₹47,000/month, IBR 11.5%. The closing balance came out as -₹2,847.66. The customer would have under-recognised the liability by that amount and the auditor would have flagged it.

The root cause was a rounding shortcut. The original code computed the monthly interest as liability * rate rounded to 2 decimals, then derived principal as payment - interest_rounded. On short-term leases with high IBR, the rounding accumulated in one direction and the final payment over-amortised the remaining principal, pushing the balance below zero.

The fix: compute interest at full decimal precision, derive principal at full decimal precision, and round only at the journal-entry presentation layer. The internal ledger maintains paisa-level precision throughout.

Bug #2: Principal sum drift on long horizons

The second property test asserted that the sum of all monthly principal payments equalled the opening lease liability. On 240-month leases (20-year leases — common for warehouse and industrial space), the sum drifted from the opening balance by ₹3 to ₹40, depending on parameters.

Root cause: floating-point accumulation. The original implementation used Python float for intermediate calculations. Across 240 multiplications and subtractions, the binary-decimal mismatch on amounts like ₹2,00,000 (which is not exactly representable in binary floating point) accumulated.

The fix: switch to Decimal end-to-end with a precision of 28 significant digits. The same property test now passes for terms up to 600 months and amounts up to ₹100 crore monthly.

Both bugs were customer-money-impacting. Both were caught before production by tests that ran tens of thousands of generated scenarios. This is the kind of testing every IWMS lease module should have, and most do not.

Critical-date tracking

The lease accounting math is half the job. The other half is critical dates:

  • Renewal notice deadline — typically 90 days before expiry. Miss it and the lease auto-renews on the landlord's terms or auto-terminates, depending on the clause. Both are bad outcomes.
  • Escalation reminder — fire 30 days before the escalation kicks in so the finance team can re-run the amortisation. Under IFRS 16, a known escalation built into the lease is part of the original schedule, but a CPI-linked or market-rent-reset escalation triggers a remeasurement.
  • Market rent review — usually at year 3 or year 5. Triggers a remeasurement of the lease liability with a new discount rate.
  • Security deposit refund window — track the timeline post-exit so the deposit is recovered.

A good IWMS surfaces these as a calendar with email and WhatsApp reminders to the named lease owner, not as a buried report.

Checklist: what to ask your finance team

If your finance team is implementing IFRS 16 in your IWMS, ask:

  • What precision are monetary amounts stored at? (Answer should be Decimal, not float.)
  • Does the closing liability after the final payment equal zero, exactly, for every test case?
  • Does the sum of monthly principal payments equal the opening liability, exactly?
  • How does the system handle a 5% escalation in Year 3? Is it baked into the original schedule or treated as a remeasurement?
  • How is the IBR sourced and updated? Per-lease or portfolio-wide?
  • How is the ROU asset depreciated — straight-line, or matched to the liability amortisation curve?
  • What happens on early termination — gain/loss recognition, or write-off?
  • How are critical dates surfaced, and to whom?

If the answers are vague on any of these, you have a problem before you have a problem.

IFRS 16 is not difficult. It is unforgiving. Build with that in mind.