PD, LGD and EAD — the model parameters

PD, LGD and EAD are the three numbers that, multiplied together, give Expected Credit Loss. Each has its own data source, owner and approval process. Getting them wrong is the difference between a defensible audit and a qualified opinion.

IFRS 9 runs
Quarterly run history with totals.

The ECL formula

For Stage 1 loans, ECL is the present value of credit losses expected over the next 12 months: ECL = EAD × PD_12m × LGD × discount. For Stage 2 and 3, lifetime PD replaces 12-month PD, and the calculation is summed across each year of remaining life.

eir is the effective interest rate of the loan, captured at origination. lifetime_pd_curve is built from segment-level PD term structures stored in ifrs9.assumption.

# Stage 1 — 12-month ECL
ecl = ead * pd_12m * lgd * discount_factor

# Stage 2/3 — lifetime ECL
ecl = 0.0
for year in range(1, remaining_life_years + 1):
    pd_marginal = lifetime_pd_curve[year] - lifetime_pd_curve[year - 1]
    ead_year = expected_outstanding_at_year(year)
    discount = 1.0 / ((1.0 + eir) ** year)
    ecl += ead_year * pd_marginal * lgd * discount

PD — probability of default

Macro scenarios
Base / Optimistic / Downside scenarios with weights.

PD is the probability that a loan will default within a given horizon. We calibrate PD per portfolio segment — a combination of product, member type and loan band — because default behaviour is materially different across segments. A KES 5,000 emergency loan to a long-standing member behaves nothing like a KES 2M business loan to a six-month-old member.

Calibration is annual, with a quarterly review. The annual recalibration uses 3 years of historical default data, fits a logistic regression on origination characteristics, and produces a PD term structure (12m, 24m, 36m, 48m, 60m) per segment.

SegmentPD 12mPD lifetime (36m)Data source
NORMAL × Tenured ≥ 24m × Band 1 (≤50k)1.2%3.4%Internal default register 2023-2026
NORMAL × Tenured 12-24m × Band 2 (≤250k)3.8%9.7%Internal default register
NORMAL × New < 12m × Band 16.4%14.1%Internal + peer benchmark
EMERGENCY × Any × Band 14.1%5.2%Internal (mostly 3-month tenor)
GROUP × Group ≥ 18m × Band 22.1%6.8%Internal group default register
AGRICULTURE × Smallholder × Band 15.8%13.4%Internal + AFC benchmark
BUSINESS × SME × Band 3 (≤1M)4.2%11.7%Internal + CRB scorecard overlay

LGD — loss given default

LGD is the percentage of the exposure that is lost after recovery efforts. A loan secured by clean title to land has a very different LGD than an unsecured emergency loan. LGD is calibrated per collateral type using actual recovery data from the last 36 months of write-offs.

Collateral typeLGDRecovery basis
Unsecured (clean)75%Average actual recovery 2023-2026
Chattel — vehicle (registered logbook)45%Auction value 60% of MSRP, 24-month sale period
Chattel — household goods65%Limited resale market
Land (title held)25%Average sale at 75% of valuation
Land (charge only)40%Slower realisation, partial recoveries
Group guarantee (Chama)35%Internal group cohesion recoveries
Salary check-off (employer MoU)20%Direct deduction, low loss
Savings collateral (member's own savings)5%Set-off on default
Note — Where a loan has multiple collateral types, the blended LGD is Σ (collateral_value × lgd) / total_exposure, floored at 5% and capped at 75%.

EAD — exposure at default

EAD is what the lender stands to lose at the moment of default. For closed-end loans it is the outstanding principal plus accrued interest. For revolving facilities (overdraft, credit line) it adds undrawn commitment × a Credit Conversion Factor (CCF).

EAD is computed live by the engine from mfi.loan at the snapshot date. No manual override is permitted — if the EAD looks wrong, the underlying loan record is wrong.

Product typeEAD formula
Closed-end loan (Stage 1/2)outstanding_principal + accrued_interest
Closed-end loan (Stage 3)outstanding_principal + accrued_interest – specific allowance
Revolving facilitydrawn + undrawn × CCF (50%)
Group joint-liability loanoutstanding for the named borrower only; cross-default handled by staging rule

Versioning and approval

Every assumption row is versioned. When the Risk Manager updates a PD or LGD, the old row is end-dated and a new row is created with the new value and a forward effective date. Runs already posted are not affected; the next run picks up the new assumptions.

  1. Risk Manager opens IFRS 9 → Configuration → Assumptions and clicks New version.
  2. System creates draft versions of all rows.
  3. Risk Manager edits PD / LGD values, attaches calibration memo.
  4. Risk Committee reviews — typically annually at year-end recalibration.
  5. CFO approves; effective date is set to the next quarter-end.
  6. Old version is end-dated; new version is the active assumption set.
Warning — Never edit an assumption row in place. The audit trail relies on the versioning. The system enforces this — direct edits require the ifrs9.manager permission and are flagged in the audit pack as 'assumption edited in place'.

Discounting

ECL is discounted at the original effective interest rate (EIR) of the loan, captured at origination on mfi.loan.eir. EIR includes interest, fees and any premium/discount amortised over the life of the loan. For loans originated before EIR was captured (legacy migration), the nominal rate is used and the variance is documented in the audit pack.

Worked scenarios

Scenario — Annual PD recalibration — 2026 year end

Setting: Y/E 2026. Last calibration was Dec 2025. Risk Committee meets to review.

CharacterRole
Kimani MwangiRisk Manager
Florence AchiengCFO
David KaranjaInternal Audit
Aisha HassanExternal Audit Partner

Timeline

  1. Nov 5: Kimani exports 36 months of default history per segment. 4,184 origination cohorts, 312 defaults. (ifrs9.defaults.export)
  2. Nov 12: Kimani fits logistic regression. New PD term structures generated. (Calibration memo drafted)
  3. Nov 20: Largest change: GROUP × Tenured PD 12m falls from 2.8% to 2.1% (clean year). NEW MEMBER × NORMAL PD 12m rises from 5.9% to 6.4%. (Diff report)
  4. Nov 28: Risk Committee reviews; one queries: 'Why is BUSINESS PD flat at 4.2% when CBK rate rose 200bps?' Kimani adds a macro overlay sensitivity to the memo. (Memo v2)
  5. Dec 5: Risk Committee approves new PDs effective 31-Dec. (Minute 6.4)
  6. Dec 18: Kimani creates new assumption version in system. CFO approves. Old version end-dated 30-Dec. (ifrs9.assumption v2)
  7. Dec 31: Q4 run uses new PDs. Total ECL impact of recalibration: +KES 0.4M (net of all segments). (ECL bridge attribution)
  8. Feb 8 (next year): Aisha samples 10 segments. Confirms calibration memo, sign-offs, and rebases each PD against her own back-test. All within tolerance. (Audit pack section 5)

Outcome — PD framework refreshed annually; auditor signs off without management letter point.

Reference

ifrs9.assumption fields

FieldTypeNotes
assumption_typeSelectionpd_12m | pd_lifetime | lgd | ccf
segment_idMany2onePortfolio segment (product × tenure × band)
collateral_typeSelectionFor LGD rows; unsecured/vehicle/land/etc
valueFloatDecimal probability (0.012 = 1.2%) or percentage as configured
valid_fromDateFirst run date this applies to
valid_toDateLast run date; blank = current
versionCharCalibration version label e.g. 'v2026.1'
calibration_memo_idMany2one(ir.attachment)PDF of calibration evidence
approved_byMany2one(res.users)CFO or Risk Manager
approved_dateDatetimeSign-off timestamp

Standard segment codes

CodeProductMember tenureLoan band
NRM-T-B1Normal≥ 24 months≤ KES 50k
NRM-T-B2Normal≥ 24 months≤ KES 250k
NRM-M-B1Normal12-24 months≤ KES 50k
NRM-N-B1Normal< 12 months≤ KES 50k
EMG-A-B1EmergencyAny≤ KES 50k
GRP-T-B2GroupGroup ≥ 18 months≤ KES 250k
AGR-S-B1AgricultureSmallholder≤ KES 50k
BUS-S-B3BusinessSME≤ KES 1M

Troubleshooting

SymptomLikely causeFix
Run errors with NoAssumptionForSegment.A loan's segment has no active PD assumption row for the run's period_end.Open IFRS 9 → Assumptions, check that the segment has rows with valid_from ≤ period_end ≤ (valid_to or open). Create or extend the missing version.
EAD on a Stage 3 loan looks too high.Specific allowance is not being netted, usually because the prior period's allowance was reversed but not re-recognised.Check mfi.loan.specific_allowance. If empty, run IFRS 9 → Tools → Recompute specific allowances for the period.
LGD comes out as 0% — ECL effectively zero.Collateral type defaulted to 'savings collateral' (5%) and a value above the loan amount, so the engine treats it as fully cash-collateralised.Verify on the loan: collateral_value ≤ loan amount. If excess collateral was captured, correct the value; LGD will reflect the true secured fraction.
Calibration memo missing from audit pack.Memo was attached to the wrong assumption row, or to the user record instead of the assumption.Open the active assumption row, scroll to the Calibration evidence tab, attach the PDF. Audit pack regenerates on next run or via Audit pack → Refresh.
PD doubled overnight on one segment.New version was created with valid_from in the past — engine retroactively applied it. Should not happen with proper versioning.Edit the new version, set valid_from to the next quarter-end. The current run will re-use the previous version. Document the near-miss in the change register.

See also

Was this page helpful?