Impairment Testing for Right-of-Use Assets: IAS 36 vs ASC 360 in Python

Test right-of-use assets for impairment under IAS 36 (IFRS 16) and ASC 360 (ASC 842): recoverability, measuring the loss, and post-impairment amortization, with decimal-precision Python.

Problem Statement Link to this section

A right-of-use asset is a long-lived asset, and like any long-lived asset it can be impaired — a shuttered branch, an abandoned floor, a piece of equipment displaced by newer technology. When that happens, the right-of-use asset must be written down, and — critically — the impairment is booked against the asset, not the lease liability, which continues to unwind on its original schedule untouched. The two frameworks reach a written-down asset by different routes: IFRS 16 preparers apply IAS 36, a one-step test against a discounted recoverable amount, while ASC 842 preparers apply ASC 360, a two-step test that first screens with undiscounted cash flows. Getting the route wrong changes both whether a loss is recognized and how large it is. This page specifies both tests, shows how post-impairment amortization runs on the reduced carrying amount, and encodes the ASC 360 mechanics in a decimal-precision function ending in a terminal assertion.

Standard Anchor Link to this section

Neither ASC 842 nor IFRS 16 contains its own impairment model for the right-of-use asset; each defers to the entity's general long-lived-asset impairment standard.

  • IFRS 16.33 directs lessees to apply IAS 36 Impairment of Assets to determine whether a right-of-use asset is impaired and to account for any loss. IAS 36 is a single-step test: compare the carrying amount to the recoverable amount, defined as the higher of fair value less costs of disposal and value in use (the present value of future cash flows). If carrying amount exceeds recoverable amount, the excess is the impairment loss. IAS 36 also permits reversal of a previously recognized impairment if the recoverable amount later recovers (IAS 36.114).
  • ASC 842 leaves impairment to ASC 360-10-35, the long-lived-asset model, which is a two-step test. Step one is a recoverability screen: compare the carrying amount to the sum of undiscounted future cash flows from the asset's use and eventual disposal. Only if carrying amount exceeds those undiscounted cash flows does step two measure the loss as carrying amount less fair value. Under US GAAP, an impairment loss on a long-lived asset held and used cannot be reversed.

Under both frameworks, the loss reduces the carrying amount of the right-of-use asset only; the lease liability is unaffected and continues its effective-interest unwind. After impairment, amortization is recalculated on the new, lower carrying amount over the remaining lease term.

Formula / Algorithm Specification Link to this section

ASC 360 — step one, recoverability screen. Let be the carrying amount and the sum of undiscounted future cash flows. An impairment test is triggered only when:

where is the undiscounted cash flow in period over the remaining useful life . If , no loss is recognized regardless of how far fair value sits below carrying amount.

ASC 360 — step two, measure the loss. When the screen fails, the loss is carrying amount less fair value:

where is the asset's fair value. IAS 36 collapses these into one step against the recoverable amount:

where is the recoverable amount, is fair value less costs of disposal, and is value in use (a discounted present value of future cash flows). Post-impairment amortization runs straight-line on the reduced carrying amount over the remaining term :

where is the revised periodic amortization and is the written-down carrying amount. The lease liability keeps its own schedule; only the asset column changes.

ASC 360 two-step versus IAS 36 one-step impairment routes for a right-of-use asset Two routes start from the carrying amount of the right-of-use asset. The ASC 360 route first screens the carrying amount against undiscounted future cash flows; if the carrying amount is not greater, no loss is recognized, otherwise the loss equals carrying amount minus fair value. The IAS 36 route is a single step comparing the carrying amount to the discounted recoverable amount and taking any excess as the loss. Both routes converge on a reduced carrying amount that is then amortized straight-line over the remaining lease term, while the lease liability schedule is unchanged. Carrying amount CA of ROU asset ASC 360 screen CA > undiscounted CF? IAS 36 one step CA vs discounted RA No loss CA ≤ undisc. CF Loss = CA − fair value step two, measured Loss = CA − RA RA discounted Amortize reduced CA over remaining term no yes
ASC 360 screens with undiscounted cash flows before measuring the loss against fair value; IAS 36 goes straight to a discounted recoverable amount. Both write the asset down, and post-impairment amortization runs on the reduced carrying amount while the lease liability schedule is left unchanged.

Annotated Python Snippet Link to this section

The function implements the ASC 360 two-step test and the revised amortization. All money is Decimal; the recoverability screen runs first, the loss is measured only when the screen fails, and the terminal assertion proves the reduced asset amortizes to zero over the remaining term.

from decimal import Decimal, ROUND_HALF_UP, getcontext

getcontext().prec = 28
CENT = Decimal("0.01")


def q(x: Decimal) -> Decimal:
    return x.quantize(CENT, rounding=ROUND_HALF_UP)


def asc360_impairment(carrying: Decimal, undiscounted_cf: list[Decimal],
                      fair_value: Decimal, remaining_periods: int) -> dict:
    """ASC 360-10-35 two-step test + post-impairment amortization.
    Step 1: recoverability screen on UNDISCOUNTED cash flows.
    Step 2: loss = carrying - fair value, only if the screen fails."""
    ucf = sum(undiscounted_cf, Decimal("0"))
    if carrying <= ucf:                      # step 1 passes -> no loss
        loss, new_carrying = Decimal("0.00"), carrying
    else:                                    # step 1 fails -> measure step 2
        loss = q(carrying - fair_value)
        new_carrying = fair_value
    # Post-impairment straight-line amortization on the reduced carrying amount
    charge = q(new_carrying / remaining_periods)
    balance, rows = new_carrying, []
    for t in range(1, remaining_periods + 1):
        if t == remaining_periods:
            charge = balance                 # absorb rounding into the last period
        balance = q(balance - charge)
        rows.append({"period": t, "amortization": q(charge), "closing": balance})
    return {"loss": loss, "new_carrying": new_carrying, "schedule": rows}


# CA 90,000 exceeds undiscounted CF 84,000 -> impaired down to FV 70,000
result = asc360_impairment(
    carrying=Decimal("90000.00"),
    undiscounted_cf=[Decimal("21000.00")] * 4,   # sums to 84,000 < carrying
    fair_value=Decimal("70000.00"),
    remaining_periods=40)

assert result["loss"] == Decimal("20000.00")           # 90,000 - 70,000
assert result["schedule"][-1]["closing"] == Decimal("0.00")  # reduced CA -> 0

The screen fails (90,000 > 84,000), so step two books a 20,000 loss and resets the carrying amount to fair value; the revised schedule then amortizes 70,000 to zero over the forty remaining periods. Flip a single input — raise undiscounted cash flows above 90,000 — and step one passes, the loss is zero, and no write-down occurs even though fair value is below carrying amount. That asymmetry is the whole point of the two-step model.

Comparison: IAS 36 vs ASC 360 Link to this section

The two models differ in structure, in the cash flows they use, and in reversibility. The table is the side-by-side an IFRS-and-US-GAAP team needs; the deeper measurement contrasts continue in IFRS 16 vs ASC 842 ROU asset differences explained.

Dimension IAS 36 (IFRS 16) ASC 360 (ASC 842)
Steps One step Two steps
Recoverability screen None Undiscounted cash flows
Cash flows in the test Discounted (value in use) Undiscounted in step one
Compare carrying amount to Recoverable amount (higher of FVLCD, VIU) Fair value (only after screen fails)
Reversal of prior loss Permitted Prohibited (held and used)
Effect on lease liability None None

Gotcha / Failure Mode: Impairing the Liability Instead of the Asset Link to this section

The most damaging error is writing down the lease liability alongside the asset. Impairment touches the asset only; the liability keeps its original effective-interest schedule.

Before (WRONG — the loss is applied to both sides):

impairment = carrying - fair_value
rou_asset -= impairment
lease_liability -= impairment          # WRONG: liability is never impaired

After (correct — only the asset is written down):

impairment = carrying - fair_value
rou_asset = fair_value                  # asset reduced to fair value / RA
# lease_liability is untouched; it keeps its effective-interest unwind
new_amortization = fair_value / remaining_periods

Debug checklist when an impairment looks wrong:

  1. Screen before you measure (ASC 360). Undiscounted cash flows gate the test; skipping the screen over-impairs assets that are still recoverable.
  2. Use discounted cash flows for IAS 36 value in use, undiscounted for the ASC 360 screen. Mixing the two is a common cross-framework slip.
  3. Leave the liability alone. It continues its original schedule; only the asset column changes.
  4. Recompute amortization on the reduced carrying amount over the remaining term, not the original one.

Frequently Asked Questions Link to this section

Does impairing a right-of-use asset also reduce the lease liability?

No. Impairment writes down the right-of-use asset only. The lease liability is a contractual obligation that continues its effective-interest unwind on the original schedule regardless of the asset's carrying amount. After the write-down, only the asset's amortization is recalculated — on the reduced carrying amount over the remaining lease term — while the liability's interest and principal columns are unchanged.

What is the difference between the IAS 36 and ASC 360 impairment tests?

IAS 36, applied by IFRS 16 preparers, is a single step: compare the carrying amount to the recoverable amount (the higher of fair value less costs of disposal and the discounted value in use), and any excess is the loss. ASC 360, applied by ASC 842 preparers, is two steps: first screen the carrying amount against undiscounted future cash flows, and only if that screen fails measure the loss as carrying amount less fair value. IAS 36 also permits reversal of a prior loss; ASC 360 does not for a held-and-used asset.

How does amortization change after a right-of-use asset is impaired?

It resets to the reduced carrying amount. After the write-down, straight-line amortization is recomputed as the new, lower carrying amount divided by the remaining lease term, so each subsequent period's charge is smaller. Under IAS 36 a later recovery can reverse part of the loss and lift the carrying amount back up (capped at what it would have been absent impairment); under ASC 360 the reduced basis is permanent.

Up: ROU Asset Calculation Frameworks