FinanceCase study 28

Defensible Credit Decisioning

A glass-box decision layer sits over the core credit model and generates regulator-ready adverse-action reasons automatically, in place of analysts hand-writing them.

Model Risk & GovernanceExplainable AICredit Decisioning
50%less examiner time spent per review cycle
45 min → 90 sectime to generate a compliant reason code
100%of declines now carry a consistent, auto-generated reason

The challenge

The lender's core underwriting model — a gradient-boosted ensemble trained on 11 years of repayment history — scored well, but Regulation B requires a specific, accurate reason for every adverse action, and a boosted ensemble doesn't hand those out on its own. That left the compliance team to:

  • Manually translate top model features into approved reason codes for every decline
  • Spend roughly 45 minutes per file during high-volume weeks, creating a standing backlog
  • Produce reason codes that varied between analysts for functionally similar declines
  • Field examiner findings about inconsistency between the model's actual drivers and the stated reasons
  • Re-justify the same decision logic from scratch at every periodic exam

Only 72% of declines carried reason codes the compliance team was confident would hold up under examiner questioning; the rest were reworked by hand.

How it works

An explainable layer between the model and the notice

Rather than replace the underwriting model, the team built a second model whose only job is to explain the first one defensibly:

  1. 01

    An Explainable Boosting Machine trained to approximate the core model's decision surface with monotonic, auditable feature effects

  2. 02

    SHAP values extracted from the core model for every decline to identify the true top drivers

  3. 03

    A reason-code taxonomy mapped one-to-one against approved ECOA/Reg B language

  4. 04

    Consistency checks confirming the glass-box explanation and the core model's actual decision agree above a set threshold

  5. 05

    Fair-lending disparate-impact testing run against the explanation layer before go-live

  6. 06

    Integration with the loan origination system so reason codes generate at the moment of decline

  7. 07

    Every explanation logged with the model version and feature snapshot it was generated from, for exam retrieval

What we built

Key capabilities

01

Reasons generated at decision time

Adverse-action reason codes are produced the instant a loan is declined, not reconstructed afterward by an analyst.

02

Consistency-checked against the real model

Explanations are validated to agree with the core model's actual decision drivers above a set threshold before they ship.

03

Full audit trail

Every generated reason is logged with the model version and feature snapshot behind it, ready for exam retrieval.

04

Fair-lending tested

The explanation layer itself is tested for disparate impact before deployment, not assumed neutral because it's 'just explaining'.

Before vs after

What changed in the review cycle

Reason-code turnaround
45 min → 90 sec
Declines with defensible reasons
72% → 100%
Examiner hours per cycle
~120 hrs → ~60 hrs
Analyst rework on reason codes
28% of files → near zero

Business impact

What it changed

Examiner time cut roughly in half

Auto-generated, consistency-checked reason codes meant examiners spent the most recent cycle verifying the system rather than re-deriving reasons file by file — cutting review hours from about 120 to about 60.

100% defensible coverage

Every decline now carries a reason code checked against the model's actual drivers, up from the 72% the compliance team was previously confident in.

Backlog eliminated

Reason-code generation dropped from 45 minutes of analyst time to under two minutes, removing the backlog that used to build during high-volume weeks.

Technology stack

PythonInterpretML (EBM)SHAPLoan origination system integrationModel risk governance platform

Explainability that only lives in a slide deck doesn't survive an exam. This one lives in the decision path, generated the moment the decision is made.