Before any model code, get the format fixed. Regulation B, at 12 CFR 1002.9, governs the content and timing of adverse action notices, and ECOA at 15 U.S.C. 1691(d) requires a statement of specific reasons when a creditor takes adverse action Trussed on ECOA notices. The CFPB has been explicit that a complex algorithm is not an excuse: the circular responding to "black box" underwriting says creditors cannot justify noncompliance because the technology is too complicated or too opaque the Consumer Finance Monitor analysis of the CFPB circular.
Two practical points follow.
First, the sample reason-code checklists in Appendix C are illustrative, not exhaustive or mandatory. Regulators have stated that creditors must tailor reasons to the factors that actually affected the specific applicant, which means an Appendix C list is a starting vocabulary rather than a ceiling Trussed on specific reasons.
Second, there is useful flexibility. The Official Interpretation to Regulation B says a creditor need not describe how or why a disclosed factor adversely affected the application, and the regulation does not mandate any particular list of reasons, as long as the reasons accurately describe the factors actually considered and scored the CFPB innovation blog. That is what makes plain-language translation feasible without exposing proprietary model internals.
A useful framing comes from fair lending testing practice: score the model output, then the configuration (thresholds, auto-decisioning), then manual review, then the final decision. Disparities can enter at any of those four stages, so the notice has to match the stage that actually caused the decline CrossCheck's fair lending framework.



