How to automate personal loan documentation

TLDR

Deliver the current package once Closing verifies the exact authorized terms, required documents and permitted delivery route. Check any applicable pricing disclosure on its own clock.

Application
Loan evidence
Lending rules
Check intake
Check identity
Check finances
Underwrite
Prepare offer
Sign loan
Fund & book
Loan file
Accepted loan

When is a personal-loan agreement and disclosure package ready for delivery?

The agreement shows the current principal but uses the prior version's fee. Hold the package until Closing regenerates it from the approved terms and checks the applicable disclosures and delivery route.

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. Current final terms permit a document package, a selected pricing-disclosure clock becomes due, a delivery route changes, or preconsummation disclosed terms need correction.

Owner and accepted result. Closing Operations. Deliver the current package once Closing verifies the exact authorized terms, required documents and permitted delivery route. Check any applicable pricing disclosure on its own clock.

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. Relies on a general contact permission checkbox for the written electronic disclosure route. Assistant pitfall. Infers effective E-SIGN consent from an email address.

Release check. Compare the attributed consent and relevant access evidence to the selected disclosure delivery route, applicable requirements and its actual timing. Electronic-route evidence is incomplete. Use an authorized alternative or hold that delivery path for Closing.

Tasks and validation instructions

Establish permitted disclosure-delivery route

Owner and trigger. Closing / disclosure channel owner. Required written record is to be provided electronically, or relevant consent/access status changes.

Read and preflight. Applicable written-record rule, consumer election, scoped consent/access evidence and current contact details. An attributable required-written-record delivery election or access/consent change needs assessment.

Implement and hand off. Supported electronic route, paper/assisted route, or owned hold/disposition. 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. Electronic written-record reliance requires applicable prior consent/access conditions. A general source-access checkbox is insufficient. Assigned authority retains the stated decision. No universal manual approval is implied.

Human pitfall. Relies on a general contact permission checkbox for the written electronic disclosure route.

Assistant pitfall. Infers effective E-SIGN consent from an email address.

Independent check. Compare the attributed consent and relevant access evidence to the selected disclosure delivery route, applicable requirements and its actual timing.

Failure and recovery. Electronic-route evidence is incomplete. Use an authorized alternative or hold that delivery path for Closing. Use the original key (application/request + exact contract/source/package version + selected route + actual event identity) 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 “Establish permitted
disclosure-delivery route”. Use only
the authorized input manifest for this
task. Applicable written-record rule,
consumer election, scoped
consent/access evidence and current
contact details. Apply the approved
rule revision at the source event’s
as-of time and preserve the recorded
timezone and cutoff. Compare the
attributed consent and relevant access
evidence to the selected disclosure
delivery route, applicable
requirements and its actual timing.
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
(Closing / disclosure channel owner).
Leave unsupported values unknown.
Apply this recovery rule.
Electronic-route evidence is
incomplete. Use an authorized
alternative or hold that delivery path
for Closing. Keep the decision and any
write within existing authority. Read
any original destination receipt
before repeating an effect.

Source context · 15 USC 7001 — Electronic signatures and consumer records

Select report-based pricing disclosure route

Owner and trigger. Credit / Compliance Operations. Applicable consumer-report use and pricing/notice-program facts are available or change.

Read and preflight. Actual report/score/request facts, selected compliance program and source identity. Approved terms only when the actual selected ordinary notice route requires them. An attributable request/transaction and relevant report/score/program or pricing facts are available for classification, including missing or conflicting facts.

Implement and hand off. Ordinary notice, specific qualifying exception disclosure, or documented not-required basis. 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. Use actual § 1022.72 or § 1022.74 criteria and route-specific timing. Do not send every alternative. Assigned authority retains the stated decision. No universal manual approval is implied.

Human pitfall. Sends multiple pricing notices because the selected route was not recorded.

Assistant pitfall. Chooses a score disclosure without evidence that the approved alternative applies.

Independent check. Match actual report use, terms and program selection to the approved decision table for the applicable disclosure or exception route.

Failure and recovery. The report-use basis is unknown. Record the missing basis and route it to Compliance before sending a selected notice. Use the original key (application/request + exact contract/source/package version + selected route + actual event identity) 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 “Select report-based
pricing disclosure route”. Use only
the authorized input manifest for this
task. Actual report/score/request
facts, selected compliance program and
source identity. Approved terms only
when the actual selected ordinary
notice route requires them. Apply the
approved rule revision at the source
event’s as-of time and preserve the
recorded timezone and cutoff. Match
actual report use, terms and program
selection to the approved decision
table for the applicable disclosure or
exception route.  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 /
Compliance Operations). Leave
unsupported values unknown. Apply this
recovery rule. The report-use basis is
unknown. Record the missing basis and
route it to Compliance before sending
a selected notice. Keep the decision
and any write within existing
authority. Read any original
destination receipt before repeating
an effect.

Source context · Regulation V1022.73 — Risk-based-pricing notice content, form and timing

Connected work · Retrieve and match the report

Prepare and validate the selected pricing disclosure

Owner and trigger. Disclosure Operations. The specifically recorded incoming event or relevant accepted state changes.

Read and preflight. Selected notice/exception route and its actual required score/source/content/form facts. Final terms/approval are required only when that route calls for them. A supported selected required disclosure route identifies what must be prepared.

Implement and hand off. A route-correct disclosure with content defects resolved. 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. Use the selected route content/form. Score factors do not substitute for ECOA actual principal reasons. Assigned authority retains the stated decision. No universal manual approval is implied.

Human pitfall. Carries a field from a different notice route into the chosen form.

Assistant pitfall. Uses score factors to fill principal reasons for adverse action.

Independent check. Compare template fields and source references against the approved selected pricing disclosure route and the actual score/report data used.

Failure and recovery. The artifact uses the wrong approved form. Return the form/version mismatch to Compliance and withhold delivery. Use the original key (application/request + exact contract/source/package version + selected route + actual event identity) 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 “Prepare and
validate the selected pricing
disclosure”. Use only the authorized
input manifest for this task. Selected
notice/exception route and its actual
required score/source/content/form
facts. Final terms/approval are
required only when that route calls
for them. Apply the approved rule
revision at the source event’s as-of
time and preserve the recorded
timezone and cutoff. Compare template
fields and source references against
the approved selected pricing
disclosure route and the actual
score/report data used.  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
(Disclosure Operations). Leave
unsupported values unknown. Apply this
recovery rule. The artifact uses the
wrong approved form. Return the
form/version mismatch to Compliance
and withhold delivery. Keep the
decision and any write within existing
authority. Read any original
destination receipt before repeating
an effect.

Connected work · Select report-based pricing disclosure route

Provide selected pricing or score disclosure

Owner and trigger. Disclosure Operations. Selected disclosure's own timing trigger is reached.

Read and preflight. Current exact selected pricing-disclosure delivery check permission with explicit mode, validated selected current disclosure/source/form/recipient and safe-attempt facts, original immutable timing/qualification record and exact actual Compliance instruction if remediation mode. A current exact selected pricing-disclosure delivery check positive permission identifies this consumer/transaction/disclosure version and explicit normal-timely or lawful-current-remediation mode.

Implement and hand off. Required disclosure provided with route-specific content/form/timing evidence. 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. For ordinary closed-end risk-based pricing notice, the window opens when approval is communicated and closes before consummation. For the applicable score-disclosure exception, provide it as soon as reasonably practicable after obtaining the score and at or before consummation. For the applicable no-score exception, use the score-request time and the same outside deadline. Record any authorized late remediation with its actual time and preserve the missed original deadline. Assigned authority retains the stated decision. No universal manual approval is implied.

Human pitfall. Sends a route-specific notice from the wrong approval or score event.

Assistant pitfall. Marks authorized late remediation as on-time original delivery.

Independent check. Compare actual provision and selected version against the applicable route’s event and timing record. Preserve original and remediation times separately.

Failure and recovery. The original window missed and late action is authorized. Record the late provision separately and retain the missed-window evidence. Use the original key (actual transaction + exact current selected pricing-disclosure delivery check permission + normal-timely or lawful-current-remediation mode + actual instruction/disclosure version + real attempt/event identity. Original score/approval trigger 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 “Provide selected
pricing or score disclosure”. Use only
the authorized input manifest for this
task. Current exact selected
pricing-disclosure delivery check
permission with explicit mode,
validated selected current
disclosure/source/form/recipient and
safe-attempt facts, original immutable
timing/qualification record and exact
actual Compliance instruction if
remediation mode. Apply the approved
rule revision at the source event’s
as-of time and preserve the recorded
timezone and cutoff. Compare actual
provision and selected version against
the applicable route’s event and
timing record. Preserve original and
remediation times separately. For
ordinary closed-end risk-based pricing
notice, the window opens when approval
is communicated and closes before
consummation. For the applicable
score-disclosure exception, provide it
as soon as reasonably practicable
after obtaining the score and at or
before consummation. For the
applicable no-score exception, use the
score-request time and the same
outside deadline. Record any
authorized late remediation with its
actual time and preserve the missed
original deadline. 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
(Disclosure Operations). Leave
unsupported values unknown. Apply this
recovery rule. The original window
missed and late action is authorized.
Record the late provision separately
and retain the missed-window evidence.
Keep the decision and any write within
existing authority. Read any original
destination receipt before repeating
an effect.

Regulation V § 1022.73(c)(1)(i) · Regulation V § 1022.74(e)(3) and (f)(4)

Generate the loan package

Owner and trigger. Closing specialist. Activated only by the incoming graph edge guards. Process arrival alone does not run every task.

Read and preflight. Use the accepted offer and approved templates. Current final terms readiness check authorizes the exact terms/version for document preparation.

Implement and hand off. Produce the agreement and applicable disclosures. 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. Principal, charges, APR and schedule agree with the authorized terms. Return inconsistencies for correction.

Human pitfall. Reuses last week’s charge table or schedule when authorized terms changed.

Assistant pitfall. Invents an APR from a nominal interest rate.

Independent check. Compare principal, itemized charges, amount financed, rate fields and schedule with the approved terms and lender calculation outputs for the same revision.

Failure and recovery. The generated fee differs by $10 from the approved schedule. Route the package back to Closing and prevent delivery. Use the original key (application/request + exact contract/source/package version + selected route + actual event identity) 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 “Generate the loan
package”. Use only the authorized
input manifest for this task. Use the
accepted offer and approved templates.
Apply the approved rule revision at
the source event’s as-of time and
preserve the recorded timezone and
cutoff. Compare principal, itemized
charges, amount financed, rate fields
and schedule with the approved terms
and lender calculation outputs for the
same revision.  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 (Closing
specialist). Leave unsupported values
unknown. Apply this recovery rule. The
generated fee differs by $10 from the
approved schedule. Route the package
back to Closing and prevent delivery.
Keep the decision and any write within
existing authority. Read any original
destination receipt before repeating
an effect.

Source context · 15 USC 7001 — Electronic signatures and consumer records

Connected work · Validate document content

Validate document content

Owner and trigger. Closing specialist. Activated only by the incoming graph edge guards. Process arrival alone does not run every task.

Read and preflight. Use generated documents and the underlying decision. An identifiable generated-package candidate or generation-defect record is attributable to the current case.

Implement and hand off. Produce a reviewed package with identified versions. 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. Required terms and applicable state or product documents are included. Hold incomplete or inconsistent packages.

Human pitfall. Checks the cover page but misses the required product-specific document.

Assistant pitfall. Assumes a generic template covers the selected jurisdiction.

Independent check. Compare the package manifest and exact rendered values against the current document requirements for the selected product and jurisdiction.

Failure and recovery. An applicable form is absent. Record the exact missing form and rebuild the version before release. Use the original key (application/request + exact contract/source/package version + selected route + actual event identity) 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 “Validate document
content”. Use only the authorized
input manifest for this task. Use
generated documents and the underlying
decision. Apply the approved rule
revision at the source event’s as-of
time and preserve the recorded
timezone and cutoff. Compare the
package manifest and exact rendered
values against the current document
requirements for the selected product
and jurisdiction.  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 (Closing
specialist). Leave unsupported values
unknown. Apply this recovery rule. An
applicable form is absent. Record the
exact missing form and rebuild the
version before release. Keep the
decision and any write within existing
authority. Read any original
destination receipt before repeating
an effect.

Source context · 15 USC 7001 — Electronic signatures and consumer records

Connected work · Generate the loan package

Deliver required disclosures

Owner and trigger. Closing specialist. Activated only by the incoming graph edge guards. Process arrival alone does not run every task.

Read and preflight. Use the current package and delivery election. permitted written-disclosure delivery check currently permits the exact validated package and selected delivery route.

Implement and hand off. Produce disclosure delivery evidence before applicable consummation. 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 delivery method and timing satisfy the applicable rule. Regenerate or redeliver when required.

Human pitfall. Uses queued time as provision time when the delivery channel failed.

Assistant pitfall. Treats an email draft as delivered disclosures.

Independent check. Compare the authoritative provision event and channel evidence with the validated document digest, recipient and applicable timing rule.

Failure and recovery. The only record is a send queue entry. Keep delivery pending and resolve the original attempt before replay. Use the original key (application/request + exact contract/source/package version + selected route + actual event identity) 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 “Deliver required
disclosures”. Use only the authorized
input manifest for this task. Use the
current package and delivery election.
Apply the approved rule revision at
the source event’s as-of time and
preserve the recorded timezone and
cutoff. Compare the authoritative
provision event and channel evidence
with the validated document digest,
recipient and applicable timing rule.
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
(Closing specialist). Leave
unsupported values unknown. Apply this
recovery rule. The only record is a
send queue entry. Keep delivery
pending and resolve the original
attempt before replay. Keep the
decision and any write within existing
authority. Read any original
destination receipt before repeating
an effect.

Source context · 15 USC 7001 — Electronic signatures and consumer records

Scheduling and safe replay

Run when document-ready terms, delivery requirements or a material correction changes the package. Pin the authorized terms and approved template at preparation time. Create a new governed revision and preserve any earlier delivery evidence.

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-18-lab.sqlite \
  --process LO-18
  • LO-18-current → verified.
  • LO-18-old-terms-in-package → hold. Reason mismatch:terms_revision. Source terms_revision is 3. The saved value is 2.

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 loan documentation. 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

AuthorsMage Team