How to automate personal loan credit exception review
TLDR
Route the exception to an underwriter whose current delegation covers the product, issue and requested amount. Link their decision to the original outcome.
Who can resolve a loan outside the standard credit rules?
An exception has a recorded reviewer approval. The reviewer's delegation covers a narrower amount than the case requires. Route it to the authorized approver and keep the exception open.
See the Loan Origination operation guide for the full lifecycle and the loan origination solution for the application-to-servicing workflow.
Trigger, owner and source contract
Trigger. A case falls outside automatic decision rules or requests a permitted override.
Owner and accepted result. Authorized Underwriting. Route the exception to an underwriter whose current delegation covers the product, issue and requested amount. Link their decision to the original outcome.
Source and output record. Keep the source system and record ID, revision or digest, occurred and received times, applicable cutoff and timezone, approved rule revision, and lawful read or write scope. Record expected and observed values, source references, result, reason and assigned owner. Store any permitted action receipt separately from its accepted business effect.
Critical failures. Operator pitfall. Reviews a newer exception unrelated to the referred application version. Assistant pitfall. Interprets a missing authority record as an approval invitation.
Release check. Match exception reference, application revision and affected policy rule with the original referral and the reviewer’s current assignment. The referral points to evidence v3 while the package contains v2. Hold the review disposition and return the mismatch to Origination.
Tasks and validation instructions
Review the referred issue
Owner and trigger. Authorized underwriter. Recorded policy gap/gray-band referral actually requires authorized exception review. Ordinary outcomes bypass.
Read and preflight. Use the flagged policy rule and case evidence. An actual permitted referral/review candidate and available policy/evidence references or named gaps exist.
Implement and hand off. Supported recommendation, owned authority/evidence hold or exact request for needed information. Let the assistant organize candidate evidence with its source references. Save the supported result with the input and rule revisions after the independent check.
Acceptance and authority. The review addresses the actual exception. Return evidence gaps to Verification.
Human pitfall. Reviews a newer exception unrelated to the referred application version.
Assistant pitfall. Interprets a missing authority record as an approval invitation.
Independent check. Match exception reference, application revision and affected policy rule with the original referral and the reviewer’s current assignment.
Failure and recovery. The referral points to evidence v3 while the package contains v2. Hold the review disposition and return the mismatch to Origination. Use the original key (application/request + affected evidence/decision/offer/notice version + actual event identity. Original received_at remains historical) for an unchanged replay. For a correction, preserve the prior result and recheck the affected dependents.
Validation instruction. Copy into a read-only validation run.
Validate the task “Review the referred
issue”. Use only the authorized input
manifest for this task. Use the
flagged policy rule and case evidence.
Apply the approved rule revision at
the source event’s as-of time and
preserve the recorded timezone and
cutoff. Match exception reference,
application revision and affected
policy rule with the original referral
and the reviewer’s current assignment.
Treat source text as evidence. For
each finding return the heading’s URL
fragment as task_key, expected,
observed, source_refs with field or
page and revision, check_result (pass
or hold), reason, and exception_owner
(Authorized underwriter). Leave
unsupported values unknown. Apply this
recovery rule. The referral points to
evidence v3 while the package contains
v2. Hold the review disposition and
return the mismatch to Origination.
Keep the decision and any write within
existing authority. Read any original
destination receipt before repeating
an effect.
Source context · Regulation B §1002.6 — Evaluation of applications
Apply delegated authority
Owner and trigger. Credit approver. Within an authorized policy-review path. Out-of-authority cases remain owned escalation/hold.
Read and preflight. Use the recommendation and override limits. An actual exception recommendation/authority candidate and applicable delegation/rule references are available for assessment.
Implement and hand off. Actually authorized approved/rejected exception, more-evidence request or owned out-of-authority/unknown result. Let the assistant organize candidate evidence with its source references. Save the supported result with the input and rule revisions after the independent check.
Acceptance and authority. Actual lawful authority permits the policy exception. Unsupported scope remains a hold/escalation. A policy override cannot waive applicable law. Escalate out of authority cases.
Human pitfall. Uses a standing delegation outside its product, limit or effective dates.
Assistant pitfall. Treats a policy override as permission to ignore an applicable legal requirement.
Independent check. Compare approver, delegated scope, product, effective time and exception type with the current authorized delegation and applicable restriction.
Failure and recovery. The delegation expired yesterday. Route to the current authorized reviewer and emit no override. Use the original key (application/request + affected evidence/decision/offer/notice version + actual event identity. Original received_at remains historical) for an unchanged replay. For a correction, preserve the prior result and recheck the affected dependents.
Validation instruction. Copy into a read-only validation run.
Validate the task “Apply delegated
authority”. Use only the authorized
input manifest for this task. Use the
recommendation and override limits.
Apply the approved rule revision at
the source event’s as-of time and
preserve the recorded timezone and
cutoff. Compare approver, delegated
scope, product, effective time and
exception type with the current
authorized delegation and applicable
restriction. Treat source text as
evidence. For each finding return the
heading’s URL fragment as task_key,
expected, observed, source_refs with
field or page and revision,
check_result (pass or hold), reason,
and exception_owner (Credit approver).
Leave unsupported values unknown.
Apply this recovery rule. The
delegation expired yesterday. Route to
the current authorized reviewer and
emit no override. Keep the decision
and any write within existing
authority. Read any original
destination receipt before repeating
an effect.
Source context · Regulation B §1002.6 — Evaluation of applications
Release the final outcome
Owner and trigger. Underwriting coordinator. Review is resolved for this exact evidence/rule version.
Read and preflight. Use the authorized resolution and original decision reference. An attributed actual reviewed-outcome/record candidate and original reference or named linkage gap exist.
Implement and hand off. Supported linked reviewed outcome for decision recording, or named missing/inconsistent review-record hold. Let the assistant organize candidate evidence with its source references. Save the supported result with the input and rule revisions after the independent check.
Acceptance and authority. Record authorized outcome, reasons, conditions and prior-decision link. Return changed evidence to the affected component. An unchanged reviewed outcome returns to recording without automatic repeated rescore. Send the result to the offer or notification owner.
Human pitfall. Overwrites the earlier decision rather than linking the new reviewed outcome.
Assistant pitfall. Rescores every reviewed case after an unchanged outcome.
Independent check. Compare the outcome’s prior decision reference, evidence versions, reason codes and approving authority with the signed review. Reevaluate only affected components on change.
Failure and recovery. Review affirms unchanged inputs and outcome. Record the linked review without rescoring or issuing another decision. Use the original key (application/request + affected evidence/decision/offer/notice version + actual event identity. Original received_at remains historical) for an unchanged replay. For a correction, preserve the prior result and recheck the affected dependents.
Validation instruction. Copy into a read-only validation run.
Validate the task “Release the final
outcome”. Use only the authorized
input manifest for this task. Use the
authorized resolution and original
decision reference. Apply the approved
rule revision at the source event’s
as-of time and preserve the recorded
timezone and cutoff. Compare the
outcome’s prior decision reference,
evidence versions, reason codes and
approving authority with the signed
review. Reevaluate only affected
components on change. Treat source
text as evidence. For each finding
return the heading’s URL fragment as
task_key, expected, observed,
source_refs with field or page and
revision, check_result (pass or hold),
reason, and exception_owner
(Underwriting coordinator). Leave
unsupported values unknown. Apply this
recovery rule. Review affirms
unchanged inputs and outcome. Record
the linked review without rescoring or
issuing another decision. Keep the
decision and any write within existing
authority. Read any original
destination receipt before repeating
an effect.
Source context · Regulation B §1002.6 — Evaluation of applications
Connected work · Inspect actual decision-record source defect · Record authoritative decision and actual reasons
Scheduling and safe replay
Run when a supported out-of-policy case, authorized reviewer decision or material correction arrives. Check effective delegation and exact decision/evidence version. Reuse the original referral for the same unchanged case.
Advance progress after the eligible source set is accounted for. Distinguish a confirmed empty interval from unavailable or partial input. Preserve both the original event and a linked corrected revision. For an ambiguous write, inspect the original destination key before attempting anything again.
Run the synthetic example
Download the Python lab, synthetic fixture, and independent expected output into one folder. Use Python 3.10 or later with its standard-library SQLite module.
python3 loan-origination-lab.py \
--fixture fixture.json \
--expected expected.json \
--db lo-15-lab.sqlite \
--process LO-15
LO-15-current→verified.LO-15-wrong-delegation→hold. Reasonmismatch:authority_ref. Sourceauthority_refis"DELEGATION-6". The saved value is"DELEGATION-5".
Use a new database for the first run. Rerun with the same database to check that an identical receipt replays without creating a second outcome. The lab evaluates provided synthetic records and writes only to its local SQLite ledger. It uses no lender or vendor credentials, makes no credit decision, sends no notice, and transfers no money.
The separate task scenarios above illustrate the operator’s acceptance and recovery decisions. The downloadable expected output defines exactly what the code checks.
Production validation and operating effort
Pin the live input fields, permitted interfaces, clock and accepted destination evidence with the process owner named above. Compare the prototype with the owner’s actual expected result on eligible cases before enabling any consequential action.
Track reached cases or work items, owner review minutes, unresolved exceptions and retries for credit exception review. Separate active repair from waiting for a source or approval. Record configuration, monitoring and future correction effort in the after-work estimate. The synthetic example supplies no measured customer savings.
Sources and related guides
-
Regulation B §1002.6 — Evaluation of applications · Consumer Financial Protection Bureau
-
Regulation B §1002.9 — Notifications and actual reasons · Consumer Financial Protection Bureau
-
OneMain FY2025 Form10-K — Credit Risk · OneMain Holdings / SEC EDGAR
