Macro scenarios — forward-looking overlay

IFRS 9 demands that ECL reflect 'reasonable and supportable' forward-looking information. The macro scenarios page is where that forward-looking lens is built — usually three scenarios (base, upside, downside), each with macro inputs and a probability weight, blended into a single ECL number.

IFRS 9 runs
Quarterly run history with totals.

Why macro scenarios exist

Historical default rates tell you what borrowers did in the conditions of the past. IFRS 9 wants ECL to reflect what borrowers will do in the conditions of the future. The bridge between the two is a macro model: a set of macroeconomic factors that explain default behaviour, projected forward under multiple scenarios, with each scenario probability-weighted.

We use three scenarios — a base case (most likely), an upside (better than expected), and a downside (worse than expected). Each scenario adjusts the through-the-cycle PD by a scalar derived from its macro factor projections. The final ECL is the probability-weighted ECL across the three scenarios.

The macro factors we use

Macro scenarios
Base / Optimistic / Downside scenarios with weights.

Five Kenyan macroeconomic factors drive the PD overlay. They were selected from a longer list after back-testing against the internal default series. Each factor is sourced from a public release and refreshed before each quarter-end.

FactorSourceUpdate frequencyRelevance
Real GDP growth (y/y %)KNBS Quarterly GDP releaseQuarterlyStrong driver for business + SME segments
CPI inflation (y/y %)KNBS Monthly CPIMonthlyConsumer purchasing power, emergency loan stress
KES/USD exchange rateCBK indicativeDailyImport-cost shocks for trading SMEs
CBR (Central Bank Rate %)CBK Monetary PolicyBi-monthlyFunding cost + arrears correlation
Long-rains rainfall indexKenya Met OfficeSeasonal (Mar-Jun)Agriculture segment driver

How factors become a PD overlay

Each segment has a fitted linear overlay equation that maps macro factor deviations from baseline to a PD multiplier. The equations were fitted on 8 years of macro × default data using a least-squares regression.

The floor and cap prevent the overlay from producing unreasonable numbers when a factor moves outside the calibration range. They are documented in the model documentation and the cap has been hit twice in the last three years (Covid-19 H1 2020 and the 2022 FX shock).

# Example — Business SME segment overlay
# Calibrated coefficients (stored on ifrs9.segment.overlay)
#   beta_gdp = -0.45     (1pp lower GDP → +45% PD)
#   beta_cpi = +0.12     (1pp higher CPI → +12% PD)
#   beta_fx  = +0.08     (KES/USD +1% → +8% PD)
#   beta_cbr = +0.18     (CBR +1pp → +18% PD)

def pd_multiplier(segment, scenario):
    s = scenario.macro_factors  # dict of projected values
    delta_gdp = s['gdp'] - segment.baseline_gdp
    delta_cpi = s['cpi'] - segment.baseline_cpi
    delta_fx  = (s['fx']  / segment.baseline_fx)  - 1.0
    delta_cbr = s['cbr'] - segment.baseline_cbr
    raw = 1.0 \
        + segment.beta_gdp * delta_gdp \
        + segment.beta_cpi * delta_cpi \
        + segment.beta_fx  * delta_fx \
        + segment.beta_cbr * delta_cbr
    return max(0.4, min(raw, 2.5))  # floor 0.4×, cap 2.5×

Scenario weights

After each scenario produces its own ECL, the three are blended:

Default weights are 50% base / 25% upside / 25% downside. The Risk Committee can shift weights when forward-looking conditions justify it — most commonly raising the downside weight in periods of macroeconomic stress.

ecl_weighted = w_base * ecl_base + w_upside * ecl_upside + w_downside * ecl_downside
# w_base + w_upside + w_downside == 1.0
Warning — Weight changes are the single most common audit topic in this area. Every weight change must be minuted with reason, approved by the Risk Committee and CFO, and documented in the audit pack. The system locks the weights in the run-line snapshot — once a run is posted, weights cannot be edited retrospectively.

Projection horizon

Macro factors are projected over a horizon that covers the longest expected lifetime in the loan book — typically 5 years. Years 1-2 are the 'reasonable and supportable forecast' period (from named institutional forecasts). Years 3-5 revert linearly to the long-term mean.

YearSourceMethod
1-2IMF WEO + CBK / Treasury BPS forecastDirect institutional projection
3Linear blend75% institutional / 25% long-term mean
4Linear blend50% / 50%
5+Long-term meanThrough-the-cycle baseline

What you see on the screen

IFRS 9 → Configuration → Scenarios lists the current scenario set. The screenshot shows base / upside / downside with their respective weights, macro factor inputs, and a 'last approved' stamp. Editing requires Risk Manager privileges; posting requires CFO sign-off.

Worked scenarios

Scenario — Pandemic-style downside shock — Risk Committee raises downside weight

Setting: Q1 quarter-end. Reports of a new respiratory virus outbreak. Kenya not yet locked down. Risk Committee meets pre-quarter-end.

CharacterRole
Kimani MwangiRisk Manager
Florence AchiengCFO
Peter OtienoBoard Risk Committee Chair
Mary MutuaHead of Credit

Timeline

  1. Mar 18: Risk Committee meets ad-hoc. Reviews global infection trajectory and 2020 default playbook. (Minute item 1)
  2. Mar 18: Committee decides: downside weight 25% → 40%, base 50% → 45%, upside 25% → 15%. Downside scenario macro factors adjusted: GDP -3pp, CPI +2pp, KES/USD +8%. (Minute item 2)
  3. Mar 19, 10:00: Kimani opens IFRS 9 → Scenarios. Edits the downside scenario in draft. Updates the three macro factors and saves. (ifrs9.scenario state=draft)
  4. Mar 19, 11:30: Kimani edits the weights. System refuses — weights must sum to 100%. Re-checks: 45+15+40 = 100. Saves. (Validation OK)
  5. Mar 19, 14:00: Kimani attaches the minute extract as supporting evidence. (ir.attachment linked)
  6. Mar 20, 09:00: Florence reviews and approves. CFO sign-off captured. (ifrs9.scenario state=approved, effective Mar 31)
  7. Mar 31, 23:59: Quarter-end snapshot. Q1 run starts. (ifrs9.run state=snapshotted)
  8. Apr 2: ECL computed. Base scenario ECL: KES 9.1M. Downside scenario ECL: KES 24.6M. Weighted: KES 14.2M (vs Q4 KES 9.8M). (state=computed)
  9. Apr 4: Florence walks board through the ECL bridge: +KES 3.4M from downside weight change, +KES 1.0M from macro factor stress. (Audit pack section 4)

Outcome — Forward-looking provision built ahead of the actual default deterioration; board comfortable; auditor satisfied with the documentation trail.

Reference

ifrs9.scenario fields

FieldTypeNotes
nameChare.g. 'Base — Q4 2026'
scenario_typeSelectionbase | upside | downside | custom
weightFloatProbability weight 0.0 – 1.0
effective_fromDateFirst run this applies to
effective_toDateLast run this applies to
macro_factors_jsonText(JSON)Year-by-year projections of each factor
approved_byMany2one(res.users)CFO required
approval_evidence_idsOne2many(ir.attachment)Minutes, MoUs, reports

Default shipped scenario set

ScenarioWeightGDP y1CPI y1KES/USDCBR
Base50%5.0%6.5%13010.50%
Upside25%6.2%5.0%1259.50%
Downside25%2.8%9.0%14212.50%

Troubleshooting

SymptomLikely causeFix
Cannot save scenario — error 'weights must sum to 1.0'.Decimal rounding (e.g. three rows of 0.333 = 0.999).Adjust one weight to absorb the rounding (e.g. base 0.34, upside 0.33, downside 0.33). Better: use weights that sum exactly (0.5 / 0.25 / 0.25).
All three scenarios produce identical ECL.Macro factor projections are identical across scenarios, usually because someone copied the base without editing.Open the upside and downside scenarios and ensure macro_factors_json differs from base. The validator should warn — check that the warning was not dismissed.
PD overlay multiplier is hitting the cap (2.5×) on most segments.Downside scenario macro factors set unreasonably extreme.Sense-check downside: should be a plausible bad case, not Armageddon. The cap is a safety net, not a target. Refer to peer benchmarks or historical 2008/2020 reference set.
Auditor asks 'why was the upside weight 25% in a clearly improving environment?'Weights have not been refreshed during a multi-quarter expansion.Take a weight-review proposal to Risk Committee. Document the rationale for keeping vs changing. Symmetry isn't required — weights should reflect the genuine distribution of forward outcomes.
Macro factor source unavailable (e.g. KNBS release delayed).External release missed deadline.Use the most recent available release and document the data lag in the audit pack. Do not delay the run — IFRS 9 explicitly allows reasonable approximation when current data is unavailable.

See also

Was this page helpful?