Entimema

Event-Driven Decision Triggers in Lending Systems

Entimema
Contents

Within 90 seconds, one revolving draw creates an authorisation, posted drawdown, utilisation update, feature-store update, behavioural score refresh and customer-state projection. A naïve platform treats each technical event as a new reason to run the same limit or EWS decision.

1 ECONOMIC CHANGE
AUTHORISATIONPOSTINGUTILISATIONFEATURE UPDATESCORE UPDATE
5 DECISION RUNS
5 POSSIBLE ACTIONS
DataChange ≠ DecisionRelevantChange
Foundational boundary

Triggers originate from events, state, features, time or combinations

Reusable decision-trigger taxonomy
TypeExampleWhy it triggers
EventPAYMENT_REVERSEDExplicit causal event can change collections eligibility
StateUtilisation moves NORMAL → WATCHTransition, not raw update, is material
FeaturePaymentRatio_30d crosses governed zoneDerived model input changed materially
TimeReview date matures or watch remains unresolvedState changes because time passed
CompositeHigh utilisation AND payment deteriorationVersioned combination becomes eligible
TriggerD(E,S) = I(RelevantD) × I(MaterialD) × I(NotDuplicate) × I(PolicyAllows)
Trigger eligibility

Event-driven does not mean event-only. Timers remain necessary for time-since-payment, scheduled reviews and unresolved watch states.

Dependency intersection eliminates unrelated rescoring

type DecisionDependency = {
  decisionType: string;
  inputKeys: string[];
};

// Trigger only when intersection is non-empty:
// ChangedInputs ∩ DecisionDependencies

Collections priority may depend on DPD, payment state, promise state and exposure. A CRM address update is a data change but not a dependency, so it produces no rescore.

Decision-specific materiality
MethodConceptUse
Absolute|Xₜ − Xₜ₋₁| > εᴅMeaningful unit change
Relative|ΔX| / |Xₜ₋₁|Scale-aware change
Zone crossingNORMAL → WATCHPolicy boundary transition
CompositeA ∧ B or A ∨ BSeveral signals under versioned logic

No universal threshold applies. Prefer triggering on a state transition to repeatedly triggering on a raw value while it remains in the same zone.

Debounce, coalescing, hysteresis and cooldown act at different stages

RAW RELATED EVENTSDEBOUNCECOALESCEMATERIAL STATE TRANSITIONDECISIONACTION COOLDOWN
Debounce waits for a short settling interval; coalescing joins related causes; hysteresis stabilises state; cooldown protects post-action episodes.

A trigger window groups related drawdown, utilisation and feature updates into one EXPOSURE_STATE_CHANGED context. Debounce consumes latency, so:

DebounceDelay < RemainingInterventionWindow
Noise/latency trade-off

Hysteresis triggers above a high boundary and clears below a lower boundary, preventing oscillation. Cooldown occurs after action and may be overridden only by a materially distinct deterioration defined in policy.

One economic change needs one stable trigger identity

type DecisionTrigger = {
  triggerId: string;
  decisionType: string;
  entityId: string;
  causeEventIds: string[];
  createdAt: Date;
};

Causal grouping maps several technical events to one trigger. Duplicate delivery of the same trigger produces one decision execution—or an explicitly safe equivalent—through idempotent consumption.

E1E2E3
TRIGGER T-42DECISION RUN D-17

Link decisionRunId to triggerId. This makes deduplication auditable rather than an invisible cache behaviour.

A decision run is not an action instruction

ΔD = Dnew − Dprevious
Decision delta
Decision-state comparison
PreviousNewOperational meaning
WATCHWATCHRecord no-change run; normally no repeated action
WATCHALERTMeaningful transition can create action
ALERTALERTUpdate evidence/case context, not duplicate case
ALERTNORMALClear/cure transition under policy
ActionKey = (Entity, DecisionState, Episode)
Illustrative action identity

Risk episodes retain context without multiplying cases

NORMALWATCHALERTALERTALERTCURE / CLOSE

The first WATCH → ALERT transition may create one review task. Later ALERT → ALERT changes append evidence. A new case may be justified only after closure, cure, cooldown expiry or materially distinct deterioration under versioned episode rules.

For a payment settlement, collections may move CONTACT → HOLD and suppress planned contact once. A later causal reversal can create the distinct HOLD → CONTACT_ELIGIBLE transition.

Reject or re-evaluate decisions that become stale while executing

DECISION STARTS
STATE v42
STATE v43 ARRIVESSTALE-DECISION GUARD
REJECT / RE-EVALUATE
A decision computed on state v42 cannot automatically act after a material v43 arrives. The executor validates state/version freshness before side effects.

If a run is already in flight, queue, merge or cancel/restart a new trigger according to latency and engine design. Before action, compare input state version, current version and decision age. A materially stale result cannot execute merely because it finished successfully.

Trigger policy is a versioned part of model operationalisation

type TriggerPolicy = {
  decisionType: string;
  version: string;
  dependencies: string[];
  debounceMs?: number;
  cooldownMs?: number;
};

Changing rescore frequency can alter realised decisions even when the model is unchanged. Store triggerPolicyVersion with replay evidence.

Before running, guard data freshness, source health, feature completeness and duplicate/in-flight state. Expensive features, external calls and human review strengthen the case for selective triggers. Conceptually, re-evaluate only when Value(redecision) > Cost(redecision).

Event-driven rescoring changes which customers are observed

High-activity or deteriorating borrowers generate more events and therefore more scores. Monitoring only rescored cases overrepresents them and creates operational selection effects.

EVENT-DRIVEN SCORES

Timely intervention population; activity-selected.

SCHEDULED BASELINE

Daily/weekly population snapshot for unbiased comparison.

Periodic full reevaluation also audits trigger recall. If baseline scoring finds a material change without a prior trigger, the dependency or trigger policy is incomplete.

MissedTriggerRate = MaterialBaselineChangesWithoutTrigger / MaterialBaselineChanges
Missed-trigger control

Replay requires the trigger context—not only the final score

type TriggerManifest = {
  triggerId: string;
  decisionType: string;
  causeEvents: string[];
  stateVersion: string;
  triggerPolicyVersion: string;
  createdAt: Date;
};
EVENT(S)TRIGGERDECISION RUNDECISION TRANSITIONACTIONOUTCOME

Decision manifests store the trigger ID alongside model, feature and policy versions. Outcome events such as review completion, payment received or limit changed close the monitoring loop.

The same orchestration pattern supports collections, limits and EWS

Illustrative trigger-to-action paths
DomainMaterial triggerDecision transitionAction behaviour
CollectionsPayment state changedCONTACT → HOLDSuppress planned contact once
Collections reversalPAYMENT_REVERSEDHOLD → CONTACT_ELIGIBLENew causal transition, not duplicate
LimitUtilisation 45% → 80%NORMAL → REVIEWCreate one review episode
EWSSeveral features deteriorate in trigger windowNORMAL → WATCH/ALERTOne coalesced rescore and controlled workflow

A golden trigger stream proves one economic change creates at most one intended action

Deterministic trigger sequence
StepInputExpected result
1–3Two utilisation events plus feature updateOne coalesced trigger
4Decision computesTransition to WATCH
5–6Equivalent repeated eventNo new action
7–9Payment deteriorationTransition ALERT; one action created
10–11Duplicate trigger deliveryNo duplicate decision/action effect
12–13Cure stateClear transition and close episode
Trigger integrity tests
TestExpected proof
MaterialitySmall change produces no trigger
Zone transitionMaterial crossing creates a run
HysteresisBoundary oscillation creates no action churn
CooldownEquivalent episode trigger creates no duplicate action
Stale decisionv42 result is rejected after material v43
Source healthStale critical source takes governed guard path
ReplayHistorical trigger stream reproduces decision/action sequence
Shadow policyOld/new trigger counts and impacts are explainable

High trigger volume is not success

RawEventRateEligibleTriggerRateDecisionRunRateNoChangeRateActionRateDuplicateTriggerRateMissedTriggerRateStaleDecisionDiscardRate
DecisionRuns / MaterialEconomicChanges
Trigger amplification
Actions / DecisionStateTransitions
Action amplification

Also track raw-event compression, trigger/decision/action lag and entity concentration. A well-designed system can reduce total runs while improving intervention timing. Shadow new policy, compare counts and decision/action deltas, then canary with rollback that preserves event history.

The Entimema architecture filters changes before decisions and actions

EVENTS / STATE CHANGESDEPENDENCY RESOLVERMATERIALITY FILTERDEBOUNCE / COALESCINGTRIGGER ENGINEDECISION ENGINEDECISION-STATE COMPARISONACTION DEDUPLICATIONACTION EXECUTORCOOLDOWN / EPISODE STATEOUTCOME / MONITORING
Dependencies and materiality reject irrelevant changes; coalescing produces stable triggers; decision-state comparison and episode identity prevent duplicate actions.
ENTIMEMA FRAMEWORKDetect → Filter → Re-Evaluate → Act → Stabilise
  1. Define decision dependencies
  2. Detect relevant change
  3. Test materiality
  4. Coalesce related events
  5. Create stable trigger
  6. Run decision
  7. Compare decision state
  8. Deduplicate action
  9. Apply cooldown and episode logic
  10. Monitor trigger value

A Decision Trigger Integrity Agent can diagnose orchestration without changing policy

A controlled agent can monitor event-to-trigger mapping, detect storms and duplicates, measure no-change rescoring, compare baseline scoring for missed triggers, flag stale decisions and repeated episode actions, compare policy versions and trace event → trigger → decision → action lineage.

Continue with Real-Time Utilisation and Exposure Monitoring, Streaming Behavioural Features for Early Warning, From Batch ETL to Event-Driven Credit Risk Architecture, Building a Credit Risk Feature Store, Point-in-Time Customer State Reconstruction, Decision Engine Monitoring and Collections Prioritisation. Backpressure recovery, real-time collections state and production EWS monitoring remain future research directions—not fabricated routes.