{"_self":{"principle":"Self-explaining payload — no external context required. This _self block describes what you are reading and where to look next.","widget":"article_topology","feature":"topology","name":"Article topology","what":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","contains":"claims, sources, anecdotes, question_graph slice","slug":"ecoa-adverse-action-specific-reasons","urls":{"read":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/topology"},"how_to_use":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","write":null,"imessage":null,"router_tag":null,"proof_chain":[{"step":1,"claim":"Articles are voxel graphs of tiered claims, not prose blobs.","verify":"https://miscsubjects.com/api/articles/constitution"},{"step":2,"claim":"Claims link to hash-chained sources via source_ids.","verify":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/sources"},{"step":3,"claim":"Ask reads topology; ingest/claim append to ledger.","verify":"https://miscsubjects.com/api/protocol"},{"step":4,"claim":"Models queue growth: populate → collaborate → repair → reflex.","verify":"https://miscsubjects.com/api/protocol/grow"},{"step":5,"claim":"Graph proves its own shape (reflex) and $/claim (yield).","verify":"https://miscsubjects.com/graph.html?layer=reflex"},{"step":6,"claim":"Full feature index + _explain on every API response.","verify":"https://miscsubjects.com/api/articles/system-map"}],"related_features":[{"id":"ask","name":"Ask protocol","what":"Answer only from topology; creates question_node with gaps and ingest_hint.","urls":{"read":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/prompts","write":"https://miscsubjects.com/api/protocol/ask"}},{"id":"graph_topology","name":"Cross-article graph","what":"Merged claims/sources across condition+stack slugs for one question.","urls":{"read":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/graph-topology?question=..."}},{"id":"question_graph","name":"Question graph","what":"Ask nodes (questions + gaps) and evidence_ingest nodes (pasted model output).","urls":{"read":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/question-graph","write":"https://miscsubjects.com/api/protocol/ask"}},{"id":"voxels","name":"Voxel graph","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","urls":{"read":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/voxels","write":"https://miscsubjects.com/api/protocol/claim"}}],"system_map":"https://miscsubjects.com/api/articles/system-map","system_map_markdown":"https://miscsubjects.com/api/articles/system-map?format=markdown","not_medical_advice":true},"_explain":{"feature":"topology","name":"Article topology","what":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","why":"Every feature is auditable collective intelligence","how":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","model":null,"verifies":null,"urls":{"read":"https://miscsubjects.com/api/articles/ecoa-adverse-action-specific-reasons/topology"},"imessage":null,"router":null,"related":[{"id":"ask","what":"Answer only from topology; creates question_node with gaps and ingest_hint."},{"id":"graph_topology","what":"Merged claims/sources across condition+stack slugs for one question."},{"id":"question_graph","what":"Ask nodes (questions + gaps) and evidence_ingest nodes (pasted model output)."},{"id":"voxels","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance."}],"not_medical_advice":true},"slug":"ecoa-adverse-action-specific-reasons","title":"ECOA requires the specific reasons for adverse action. The CFPB says a complex model is no excuse. Here is a decision format that produces the reasons at decision time, by construction.","register":"standard","tags":["ecoa","regulation-b","adverse-action","fair-lending","use-case"],"updated_at":"2026-07-30T13:57:00.065Z","body_excerpt":"## The obligation: specific reasons, by statute\n\nWhen a creditor takes adverse action — denies the application, closes the account, cuts the limit, refuses the terms requested — the Equal Credit Opportunity Act gives the applicant a statutory entitlement: a **statement of specific reasons**. Not a notice that something happened. The reasons. And the statute defines sufficiency itself: 15 U.S.C. § 1691(d) provides that a statement of reasons \"meets the requirements of this section only if it contains the **specific reasons** for the adverse action taken.\"\n\n[[embed:source:s1]]\n\nRegulation B, 12 C.F.R. § 1002.9, operationalizes it: notification within 30 days, containing a statement of the specific **principal** reasons for the action — or a disclosure of the applicant's right to demand them. The official interpretations are blunt about the bar: the statement \"must be specific and indicate the principal reason(s),\" and statements like \"the applicant failed to achieve a qualifying score on our credit scoring system\" or \"internal standards were not met\" do not pass. The examiner's question is never *did you send a letter*. It is *do the reasons on the letter state what actually drove the decision*.\n\n[[embed:source:s2]]\n\nTwo CFPB circulars close the escape routes. Circular 2022-03 addresses the defense every machine-learning deployment eventually reaches for — *the model is too complex to explain*:\n\n[[embed:source:s3]]\n\nThe Bureau's position is unambiguous: ECOA and Regulation B apply **regardless of the technology used**. A creditor's obligation is not diminished because the decision came from a complex algorithm, and a creditor cannot lawfully use a model when it cannot identify and state the specific reasons for the adverse actions the model produces. The circular is explicit that this holds even for so-called black-box models \"when the technology used to evaluate applicants means they cannot accurately identify the specific reasons for denying credit.\"\n\nCircular 2023-03 closes the second route — the checklist. Regulation B ships sample forms with a list of common reasons. Checking the closest box is not compliance when the box does not reflect the actual principal reason. A lender relying on behavioral or other unexpected data must state the actual reason, in language the applicant can understand, even when no checklist entry fits:\n\n[[embed:source:s4]]\n\nPut the two circulars together and the compliance requirement is architectural, not rhetorical: the system that decides must be able to produce, for each individual applicant, the actual principal reasons that operated in that applicant's case. Approximate reasons are not the statutory entitlement. Plausible reasons are not the statutory entitlement.\n\n## The post-hoc problem\n\nThe standard industry answer is post-hoc explainability: run the decision, then run a second computation — feature attributions, surrogate models, perturbation analysis — to estimate which inputs mattered, and translate the top attributions into reason codes. Three properties make that legally fragile against the standard above.\n\nFirst, it is an **approximation of the decision, not the decision**. Attribution methods answer \"which inputs, under this method's assumptions, most influenced the output\" — and different methods, baselines, and perturbation schemes rank different features for the same decision. A reason produced by a technique that another defensible technique would replace with a different reason is a weak exhibit for \"the specific reasons for the action taken.\"\n\nSecond, it is **generated after the fact**, usually at notice time, sometimes at examination time. The artifact a fair-lending examiner or a plaintiff's expert wants is contemporaneous: what the decision system held as its grounds at the moment it decided. A reconstruction, however sophisticated, invites the question of whether the stated reason is the operative reason or the presentable one.\n\nThird, it **cannot state the counterfactual w","ranking":"safety-first (interaction_risk/limitations), then quote-gated effective_weight","claims":[{"id":"c1","text":"ECOA at 15 U.S.C. § 1691(d) entitles a rejected credit applicant to a statement of specific reasons, and the statute itself defines sufficiency: the statement must contain the specific reasons for the action taken.","tier":"system","section":"The obligation","interaction_risk":false,"status":"active","source_ids":["s1","s2"],"why_material":"The entire article rests on this being a statutory entitlement with a specificity standard, not a courtesy.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c2","text":"Regulation B at 12 C.F.R. § 1002.9 requires notification within 30 days and a statement of the specific principal reasons; the official interpretations reject vague or general statements as insufficient.","tier":"system","section":"The obligation","interaction_risk":false,"status":"active","source_ids":["s2"],"why_material":"The operational deadline and the specificity bar that any decision system must meet.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c3","text":"CFPB Circular 2022-03 states that the adverse-action requirements apply regardless of the technology used, and that a creditor may not lawfully use a complex algorithm when it cannot identify and state the specific reasons for the adverse action.","tier":"system","section":"The obligation","interaction_risk":false,"status":"active","source_ids":["s3"],"why_material":"Removes the black-box defense; the compliance question becomes architectural.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c4","text":"CFPB Circular 2023-03 states that checking the closest entry on the Regulation B sample checklist is not compliant when it does not reflect the actual principal reasons for the adverse action.","tier":"system","section":"The obligation","interaction_risk":false,"status":"active","source_ids":["s4"],"why_material":"Kills the checklist workaround — the reason stated must be the reason that operated.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c5","text":"In the governed decision format, each model seat must emit a per-clause derivation — whether each clause's condition fired, whether it supports or defeats the action, and on which evidence records — plus the records that were absent and the finding that would flip the verdict, all against a rule set pinned to a content hash.","tier":"system","section":"Reasons by construction","interaction_risk":false,"status":"active","source_ids":["s5","s7"],"why_material":"This is the mechanism that makes the reasons contemporaneous artifacts rather than reconstructions.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c6","text":"The derivation-agreement gate refuses to authorise when independent seats reach the same verdict through different derivations; a unanimous verdict has been refused on the record for exactly this.","tier":"system","section":"Reasons by construction","interaction_risk":false,"status":"active","source_ids":["s5","s6"],"why_material":"Proves the reasons are load-bearing: they decide whether the decision seals at all.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c7","text":"Every sealed decision leaves a permanent public receipt carrying the hashes, contract, and lineage, with the complete request and response credentialed behind it — so the reasons on the notice can be checked against the reasons in the record, at any later date.","tier":"system","section":"The notice writes itself","interaction_risk":false,"status":"active","source_ids":["s7","s9"],"why_material":"An adverse-action file that survives a fair-lending examination is one whose stated reasons are verifiable against the decision record.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c8","text":"In the first calibration study — 30 oracle-labelled synthetic cases through the production gate, three seats across two model families — glm-5.2 scored 30/30, kimi-k2.7 29/30, and the gate produced zero wrongful authorisations across all 30 cases.","tier":"system","section":"Measured, not asserted","interaction_risk":false,"status":"active","source_ids":["s8"],"why_material":"The residual error is quantified on a bounded suite rather than asserted.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c9","text":"Where a lender's underlying scorer is a separate machine-learning model, this format governs rule-application decisions — policy overlays, exception handling, verification-driven denials — and does not produce the reasons of the scoring model itself; Regulation B requires the actual principal reasons from whatever actually scored the applicant.","tier":"system","section":"The boundary, stated precisely","interaction_risk":false,"status":"active","source_ids":["s2","s3"],"why_material":"The article must not be read as an explainability substitute for a gradient-based scorer; that would be overselling into a regulated obligation.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c10","text":"No conformance analysis against Regulation B's sample notification forms or its specific notice-content requirements has been performed; the calibration fixtures are synthetic and determinate; the running exhibits use three seats across two model families, not three.","tier":"system","section":"The boundary, stated precisely","interaction_risk":false,"status":"active","source_ids":["s8"],"why_material":"A compliance reader must know exactly what has and has not been established before relying on any of it.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false}],"sources":[{"id":"s1","type":"primary_source","url":"https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title15-section1691&num=0&edition=prelim","title":"Equal Credit Opportunity Act, 15 U.S.C. § 1691(d)","summary":"The statutory adverse-action requirement: a creditor must provide a statement of specific reasons for adverse action, and a statement is sufficient only if it contains the specific reasons for the action taken.","claim_ids":["c1"],"hash":"8330383c89f18f6aa797a7de9d1a8e4421d119637a27fae420227bc9bdddac41"},{"id":"s2","type":"primary_source","url":"https://www.ecfr.gov/current/title-12/chapter-X/part-1002/section-1002.9","title":"Regulation B, 12 C.F.R. § 1002.9 — Notifications","summary":"The implementing rule: notification within 30 days, a statement of specific principal reasons, and the specificity standard — the statement must be specific and indicate the principal reason(s); vague statements are insufficient.","claim_ids":["c1","c2"],"hash":"df2298d5c0b85e55a4c7d00f0b2d23b5f8fa5a7066c5b206146849f0892c7a76"},{"id":"s3","type":"primary_source","url":"https://www.consumerfinance.gov/compliance/circulars/circular-2022-03-adverse-action-notification-requirements-in-connection-with-credit-decisions-based-on-complex-algorithms/","title":"CFPB Circular 2022-03: Adverse action notification requirements in connection with credit decisions based on complex algorithms","summary":"The Bureau's answer to the black-box defense: ECOA and Regulation B apply regardless of the technology; a creditor cannot lawfully use a model whose specific reasons for adverse action it cannot identify and state.","claim_ids":["c3"],"hash":"71f22e2e0b27e75194a417c0c7f8713f7432e50a11ad3da8708dd205947d612e"},{"id":"s4","type":"primary_source","url":"https://www.consumerfinance.gov/compliance/circulars/circular-2023-03-adverse-action-notification-requirements-and-the-proper-use-of-the-cfpbs-sample-forms-provided-in-regulation-b/","title":"CFPB Circular 2023-03: Adverse action notification requirements and the proper use of the CFPB's sample forms provided in Regulation B","summary":"The follow-up: checking the closest box on the sample checklist is not compliance when it does not reflect the actual principal reasons — creditors relying on unexpected data must state the actual reason even if no checklist entry fits.","claim_ids":["c4"],"hash":"2f5eb07915f28dbe3d90069c56d702c14a39363ca8a51302ea91a7690e47bc82"},{"id":"s5","type":"live_surface","url":"Independent models under a pinned rule set; a deterministic parser projects each finding into canonical per-clause derivation tuples; the gate refuses to authorise when the derivations diverge, even on a unanimous verdict.","title":"The derivation-agreement gate — reasons compared clause by clause","summary":["c5","c6"],"claim_ids":[],"hash":"df35264fa67ab1e7c9aad3648285b39aaead5c01dce370741ddec36065335080"},{"id":"s6","type":"live_surface","url":"Three seats returned the same verdict citing the same clauses; two derived it through different trigger states, so the gate escalated instead of concluding — the reasons, not the answer, decided the outcome.","title":"A unanimous verdict, refused on divergent derivation","summary":["c6"],"claim_ids":[],"hash":"32572b6e7a76b9b336ec1711e875e6ecec5ce79cc5d89c897f7d3db0b1c35d2f"},{"id":"s7","type":"live_surface","url":"The clean authorisation on record: every seat fired the same clauses in the same trigger states on the same evidence. A second complete sealed panel is at /receipt/inv_7rqy8ywuls, and a single governed seat's full finding at /receipt/inv_qh3ge2x74b.","title":"A sealed decision, opened: the genuine APPROVE and a complete panel receipt","summary":["c5","c7"],"claim_ids":[],"hash":"1e7a9f3c1bf0907e17f0c8b45f24897e524ec39d28477d80c333c24f754bafd2"},{"id":"s8","type":"live_surface","url":"Three seats across two model families on 30 hashed, oracle-labelled synthetic cases: glm-5.2 30/30, kimi-k2.7 29/30, zero wrongful authorisations at the gate across all 30.","title":"Calibration, measured: 30 oracle-labelled cases through the production gate","summary":["c8"],"claim_ids":[],"hash":"984481716fa16c1302113fff2498b5fa6d179dd8b0743716cdfe4bfbe2311e81"},{"id":"s9","type":"live_surface","url":"A coverage record adjudicated under the constitution, each seat compelled to name the record that would flip its verdict — the same field an adverse-action notice needs, produced at decision time.","title":"The flip condition as the required reason — the prior-authorisation exhibit","summary":["c7"],"claim_ids":[],"hash":"83f069327e33c450d9dda493d7289488f2242936fa8e5db6c61e3e98a463d07b"},{"id":"em_es_3160382069254f6f9007","type":"email","url":"https://miscsubjects.com/letter-finreglab-2026-07-30","title":"Letter to Melissa Koide — 2026-07-30","claim_ids":[],"hash":"02c8cf6d92fecb726783bcb1cacb2647ab5092eb046be8f67ee1bdcb40d86644"}],"anecdotal_sources":[],"scientific_sources":[],"user_reports":[],"related_articles":[],"question_graph":{"slug":"ecoa-adverse-action-specific-reasons","questions":[],"evidence":[],"edges":[],"counts":{"questions":0,"evidence":0,"edges":0}},"honesty":{"active_claims":10,"retracted_claims":0,"cut_claims":0,"challenges":0,"scrub_events":0,"note":"Retracted/cut claims stay on ledger but are excluded from ask unless ?include_inactive=1"},"counts":{"claims":10,"claims_total":10,"sources":10,"anecdotal":0,"scientific":0,"user_reports":0,"questions":0,"evidence_ingests":0}}