How to automate personal loan offer management

TLDR

Build the package from current terms authorized for documentation. Preserve the consumer’s response and assess any binding effect under the applicable rule.

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

When can accepted offer terms move to loan documentation?

The consumer accepts a preliminary offer, and the amount later changes. Preserve the response, route the material change to Credit and wait for current document-ready terms before preparing the package.

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 preliminary/final offer must be presented, an actual response/validity event occurs, or current authorized terms/firm-offer conditions change.

Owner and accepted result. Origination Operations. Build the package from current terms authorized for documentation. Preserve the consumer’s response and assess any binding effect under the applicable rule.

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. Copies an old offer amount or omits open conditions from a conditional offer. Assistant pitfall. Calls a preliminary offer a final approval.

Release check. Compare offer classification, decision revision, approved principal, term and open conditions with the current authorized decision and any applicable original firm-offer criteria. Offer terms come from v2 but decision v3 is current. Withdraw the draft and rebuild against v3 before presentation.

Tasks and validation instructions

Prepare correctly classified current offer

Owner and trigger. Origination coordinator. Permitted positive/offer route applies. Open conditions remain visible.

Read and preflight. Current authorized decision/offer terms, actual offer type and explicit remaining conditions. For actual statutory firm-offer responses only: immutable original offer/criteria and current permitted-condition state. Later generic policy is not substituted. An attributed authorized-offer/decision candidate with actual type/context and available terms/condition references or named gaps exists.

Implement and hand off. Correct current presentable preliminary/final/counteroffer candidate, or itemized unsupported/missing offer terms/context. 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. Clearly distinguish preliminary/conditional offer, final authorized approval and counteroffer. Current terms and open conditions are attributed to their actual decision. Preparation and consumer selection do not themselves establish the state-law consummation point. If actual statutory firm-offer response, reconcile the immutable original criteria and permitted conditions. Ordinary direct/consumer-soft-prequalification requests explicitly bypass this statutory constraint. Return discrepancies to Credit or Pricing.

Human pitfall. Copies an old offer amount or omits open conditions from a conditional offer.

Assistant pitfall. Calls a preliminary offer a final approval.

Independent check. Compare offer classification, decision revision, approved principal, term and open conditions with the current authorized decision and any applicable original firm-offer criteria.

Failure and recovery. Offer terms come from v2 but decision v3 is current. Withdraw the draft and rebuild against v3 before presentation. 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 “Prepare correctly
classified current offer”. Use only
the authorized input manifest for this
task. Current authorized
decision/offer terms, actual offer
type and explicit remaining
conditions. For actual statutory
firm-offer responses only: immutable
original offer/criteria and current
permitted-condition state. Later
generic policy is not substituted.
Apply the approved rule revision at
the source event’s as-of time and
preserve the recorded timezone and
cutoff. Compare offer classification,
decision revision, approved principal,
term and open conditions with the
current authorized decision and any
applicable original firm-offer
criteria.  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 (Origination
coordinator). Leave unsupported values
unknown. Apply this recovery rule.
Offer terms come from v2 but decision
v3 is current. Withdraw the draft and
rebuild against v3 before
presentation. Keep the decision and
any write within existing authority.
Read any original destination receipt
before repeating an effect.

Source context · Regulation B §1002.2 Definitions and official interpretations

Connected work · Validate document content · Present the offer

Present the offer

Owner and trigger. Origination coordinator or digital channel. Permitted offer is ready for communication to the consumer.

Read and preflight. Use the current offer and permitted delivery method. A current supported presentable offer/communication candidate and actual correct recipient/authorized delivery path exist.

Implement and hand off. Actual correctly typed offer/approval/counteroffer communication and timestamp, or failed/unknown communication attempt. 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. A communicated evaluated prequalification denial may create application/notice treatment. Applicable RBP notice follows its correct approval-communication and consummation timing. Reference communication/selection is nonbinding. Any state-law binding offer acceptance uses root applicable offer acceptance rule and consummation readiness check. Resolve delivery or explanation requests.

Human pitfall. Presents an expired offer or sends it to a different applicant.

Assistant pitfall. Treats message drafting or submission as proof the consumer was notified.

Independent check. Match presentation recipient, offer version, effective window and authoritative communication evidence. Track any selected notice route on its own clock.

Failure and recovery. Offer expired before actual presentation. Do not send it. Ask Origination Operations whether a current authorized offer exists. 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 “Present the offer”.
Use only the authorized input manifest
for this task. Use the current offer
and permitted delivery method. Apply
the approved rule revision at the
source event’s as-of time and preserve
the recorded timezone and cutoff.
Match presentation recipient, offer
version, effective window and
authoritative communication evidence.
Track any selected notice route on its
own clock.  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 (Origination
coordinator or digital channel). Leave
unsupported values unknown. Apply this
recovery rule. Offer expired before
actual presentation. Do not send it.
Ask Origination Operations whether a
current authorized offer exists. Keep
the decision and any write within
existing authority. Read any original
destination receipt before repeating
an effect.

Source context · Regulation B §1002.2 Definitions and official interpretations

Connected work · Prepare correctly classified current offer

Record nonbinding selection, response and current offer status

Owner and trigger. Origination coordinator. A real response candidate or minimum owned unmatched-response record is available for lawful LO16T03 inspection/recording. Deduplicate the actual event. Do not require a current valid acceptance, resolved offer association or completed legal effect before examining it. Unsupported association applies no guessed-case effect.

Read and preflight. Actual response or validity event, offer references, available occurrence time and any disputed binding/late-response facts. An attributed actual response/use/rejection/change/expiry event candidate or owned correlation exception exists.

Implement and hand off. Actual nonbinding selection/response/expiry status, or unknown/outdated/potentially binding event referred to the actual legal-state owner. No binding act is performed by this recording task. 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. Reference selection here means nonbinding intent-to-proceed, response, rejection or expiry. Do not assume every acceptance is nonbinding under state law. Any binding act follows the root acceptance-effect/consummation gate after required disclosures. Final documentation can begin from current authorized terms before binding acceptance. Route material term changes or applicable adverse notice obligations.

Human pitfall. Records a response to an expired version as selection of the current offer.

Assistant pitfall. Interprets an ambiguous message as binding acceptance.

Independent check. Compare response identity, offer revision, receipt time and configured legal effect with the actual event and applicable rule.

Failure and recovery. A reply names the prior offer. Preserve it as a stale-version response and hold progress on the current offer. 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 “Record nonbinding
selection, response and current offer
status”. Use only the authorized input
manifest for this task. Actual
response or validity event, offer
references, available occurrence time
and any disputed binding/late-response
facts. Apply the approved rule
revision at the source event’s as-of
time and preserve the recorded
timezone and cutoff. Compare response
identity, offer revision, receipt time
and configured legal effect with the
actual event and applicable 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
(Origination coordinator). Leave
unsupported values unknown. Apply this
recovery rule. A reply names the prior
offer. Preserve it as a stale-version
response and hold progress on the
current offer. Keep the decision and
any write within existing authority.
Read any original destination receipt
before repeating an effect.

Source context · Regulation B §1002.2 Definitions and official interpretations

Record a permitted earlier binding consumer act

Owner and trigger. Creditor contract / authorized channel. The specifically recorded incoming event or relevant accepted state changes.

Read and preflight. Applicable-law/contract classification, current final terms, required provided disclosures and actual consumer act. The act is classified as binding under the actual contract/law.

Implement and hand off. A versioned binding-act record for this explicitly selected contract variant. 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. This variant must clear consummation readiness check before the actual act. It is not the ordinary nonbinding LO16 selection and cannot create a second obligation. Assigned authority retains the stated decision. No universal manual approval is implied.

Human pitfall. Records a binding acceptance before confirming the applicable disclosure gate.

Assistant pitfall. Treats an intent-to-proceed click as creation of a legal obligation.

Independent check. Match actual act, consumer, exact terms and applicable consummation rule to the approved gate result and prerequisite evidence.

Failure and recovery. Disclosure delivery lacks the required evidence. Hold the binding act and route the gap to Closing. Use the original key (application + exact contract version + consumer act 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 “Record a permitted
earlier binding consumer act”. Use
only the authorized input manifest for
this task. Applicable-law/contract
classification, current final terms,
required provided disclosures and
actual consumer act. Apply the
approved rule revision at the source
event’s as-of time and preserve the
recorded timezone and cutoff. Match
actual act, consumer, exact terms and
applicable consummation rule to the
approved gate result and prerequisite
evidence.  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 (Creditor contract
/ authorized channel). Leave
unsupported values unknown. Apply this
recovery rule. Disclosure delivery
lacks the required evidence. Hold the
binding act and route the gap to
Closing. Keep the decision and any
write within existing authority. Read
any original destination receipt
before repeating an effect.

Source context · Regulation Z1026.2 — Consummation definition and interpretation

Connected work · Accept executed closing package

Scheduling and safe replay

Run on offer presentation, actual response, validity event or a material terms change. Use the offer's recorded effective and expiry fields at the source event time. Recompute affected terms and preserve past offers and responses.

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-16-lab.sqlite \
  --process LO-16
  • LO-16-current → verified.
  • LO-16-premature-binding-state → hold. Reason mismatch:binding_act. Source binding_act is false. The saved value is true.

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 offer management. 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