DPD buckets and impairment stages
A loan that's overdue isn't impaired yet. But every day matters.
By Solomon Ajayi · Free to read, no signup
You disbursed a ₦100,000 loan with a 30-day repayment. Day 30 passes, the user hasn't paid. Day 31, day 45, day 60, day 91. Each milestone moves the loan into a new DPD (Days Past Due) bucket and triggers a different impairment treatment. Under IFRS 9 (and CBN's prudential guidelines), a 30-day-overdue loan is Stage 2 (significant deterioration, lifetime ECL); a 90-day-overdue loan is Stage 3 (default, full ECL with interest unwinding). The classification drives the provision your CFO has to book. This lesson posts a single loan through the DPD lifecycle so you see why your loan-book report needs a `bucket_at_close` column that auto-recomputes nightly.
A loan does not flip from good to written off in a single step. IFRS 9 forces a graded cascade based on how late the borrower is, measured in Days Past Due, and each rung demands a larger provision against the loss you now expect. Day 31 is not the same as day 91, and the accounting has to register the difference the moment each threshold is crossed.
The mechanism is a provision you carry against the loan: a contra-asset called ECL Provision that nets against the Gross Loan Receivable to give the loan's true book value. When the borrower deteriorates, you top up that provision, and the top-up flows straight to your P&L as an Impairment Charge. The borrower has not actually defaulted yet, but your reported profit takes the hit today, because the expected loss is now larger.
Because provisioning is driven by elapsed time, it cannot wait for a human or a payment event to trigger it. Every active loan silently moves toward the next bucket every single night, so you need a job that walks the whole book, recomputes today's DPD for each loan, and posts the impairment delta. The contra-asset and the P&L charge are the easy part; the nightly recompute is the part teams skip and regret.
Worked example, step by step
Day 0: disburse ₦100,000 loan
Loan goes out. Gross Loan Receivable on your books. The user owes you ₦100,000 plus interest.
| Account | Debit | Credit |
|---|---|---|
| Gross Loan Receivable (1500) | ₦100,000.00 | |
| ECL Provision (contra-asset) (1510) | ₦100,000.00 |
Gross Loan Receivable UP ₦100,000 (debit). Cash/sponsor-bank funding account would go DOWN, we omit it here to keep the focus on impairment. At disbursal you also book a small Stage 1 ECL (12-month expected loss); for a quality loan that might be 0.5% = ₦500. Omitting for simplicity.
Day 31: loan tips into Stage 2 (significant deterioration)
First day of being past due. Under IFRS 9, this loan jumps from Stage 1 (12-month ECL) to Stage 2 (LIFETIME ECL). The provision rate jumps from ~0.5% to maybe 8-15% depending on your model. Say 10% = ₦10,000.
| Account | Debit | Credit |
|---|---|---|
| Impairment Charge (P&L) (5400) | ₦9,500.00 | |
| ECL Provision (contra-asset) (1510) | ₦9,500.00 |
Impairment Charge UP ₦9,500 (the DELTA between the new ₦10,000 provision and the existing ₦500). ECL Provision UP ₦9,500 (it's a contra-asset, credit-natural). The book value of the loan (Gross - Provision) drops from ₦99,500 to ₦90,000. Your P&L took a hit even though the user hasn't actually defaulted yet.
Day 91: tips into Stage 3 (default)
Past the 90-day DPD threshold. CBN classifies this as 'doubtful' / Stage 3. Provision jumps to 50-100% of the gross. You also have to stop accruing interest (interest income unwinds against the provision instead of P&L). Say new provision is 80% of ₦100,000 = ₦80,000 total. You currently have ₦10,000 provisioned. Top up by ₦70,000.
| Account | Debit | Credit |
|---|---|---|
| Impairment Charge (P&L) (5400) | ₦70,000.00 | |
| ECL Provision (contra-asset) (1510) | ₦70,000.00 |
Impairment Charge UP ₦70,000 (debit). ECL Provision UP ₦70,000 (credit, contra-asset). Loan book value is now ₦20,000. If the user finally pays in full, you reverse the provision and recognize a recovery in P&L, a windfall against the conservative expectation.
Takeaway
Loans don't go from 'good' to 'written off' in one step. IFRS 9 forces a three-stage cascade: Stage 1 (performing, 12-month ECL), Stage 2 (significantly deteriorated, lifetime ECL), Stage 3 (defaulted, full ECL + interest accrual stops). The transition is driven by DPD buckets (30, 60, 90) plus qualitative triggers (forbearance, restructuring). Your loan engine needs a nightly job that walks every active loan, computes today's DPD, and posts the impairment delta. Without it, your CFO is flying blind and your auditor will refuse to sign the financials.
Practice this on a real ledger
Reading is half of it. Open this lesson in the lab to post the entries yourself against a real Postgres-backed double-entry ledger, with the validation on. Free, your sandbox is yours.