Documentation Index
Fetch the complete documentation index at: https://docs.finwatch.finance/llms.txt
Use this file to discover all available pages before exploring further.
Understanding FinWatch Actions: A Hybrid Approach to Decision-Making
In FinWatch, determining the final action for a transaction is not based on a single rule’s output. Instead, it uses a sophisticated, multi-layered hybrid model that provides both the immediate certainty of explicit commands and the contextual nuance of an aggregated risk assessment. This document explains how individual rule verdicts and the final consolidated verdict work together. An Action is the operation performed when a rule’s conditions are met. It is defined in thethen block and consists of a verdict, a risk score, and a reason.
This output is passed to the Risk Consolidator, which uses the information to calculate a final risk profile for the transaction and trigger external workflows.
The Two Layers of Decision-Making
When a transaction is processed, decision-making happens in two distinct layers:- The Individual Rule Verdict: Each watchscript
.wsrule that triggers against the transaction produces its own verdict (block,review,alert, orapprove (useful for whitelisting)) and a correspondingscore. This serves as an immediate, self-contained signal from that specific rule. - The Consolidated Verdict: After all rules have been executed, the
RiskConsolidatorservice takes all the individual verdicts and scores as input. It then performs a final calculation to produce a single, authoritative outcome for the transaction, consisting of aFinalRiskScore,FinalVerdict, andRiskLevel.
score: A numerical value from0.0to1.0indicating the severity of the event.reason: A descriptive string explaining why the rule was triggered. All reasons from triggered rules are aggregated by the Risk Consolidator.
The Decision-Making Hierarchy
TheRiskConsolidator does not simply average the scores. It follows a strict, hierarchical order of operations to determine the FinalVerdict. This ensures that critical, high-confidence signals are never ignored.
- The
blockOverride (Highest Priority):- The system first checks if any of the triggered rules returned a
blockverdict. - If even one rule has a
blockverdict, theFinalVerdictis immediately set toblock. The process stops here. This is an absolute override for zero-tolerance scenarios like sanction list hits.
- The system first checks if any of the triggered rules returned a
- Score-Based Escalation:
- If no rule issued a
blockverdict, theRiskConsolidatorcalculates theFinalRiskScoreby averaging the scores of all triggered rules. - It then checks this score against thresholds:
- If
FinalRiskScore >= 0.7, theFinalVerdictis escalated toblock. - If
FinalRiskScore >= 0.5, theFinalVerdictis escalated toreview.
- If
- If no rule issued a
- The
reviewGuarantee:- After the score-based check, the system checks if any of the triggered rules had a
reviewverdict. - If so, and if the
FinalVerdicthasn’t already been escalated toblock, theFinalVerdictis set toreview. This ensures that a transaction flagged for review is never implicitly approved, even if its final score is low.
- After the score-based check, the system checks if any of the triggered rules had a
- The
approveDefault (Lowest Priority):- If none of the conditions above are met (i.e., no
blockoverride, the score is below0.5, and no rule forced areview), theFinalVerdictdefaults toapprove
- If none of the conditions above are met (i.e., no
Practical Scenarios
Scenario A: Sanctions Hit- A transaction triggers three rules:
SanctionsList:block,score: 1.0NewAccount:review,score: 0.5LateNightTxn:alert,score: 0.3
- Result: The
FinalVerdictisblock. Theblockoverride from theSanctionsListrule is the highest priority and immediately ends the decision process.
- A transaction triggers two rules:
HighVelocity:review,score: 0.8UnusualCountry:review,score: 0.6
- Result: The
FinalVerdictisblock.- No rule has a
blockverdict, so the override is skipped. - The
FinalRiskScoreis calculated:(0.8 + 0.6) / 2 = 0.7. - Since the score is
>= 0.7, the verdict is escalated toblock.
- No rule has a
- A transaction triggers one rule:
LateNightTxn:alert,score: 0.4
- Result: The
FinalVerdictisapprove.- No
blockoverride. - The
FinalRiskScoreis0.4, which is below the0.5threshold forreview. - No rule forced a
review. - The system falls through to the default case, resulting in
approve.
- No
.png?fit=max&auto=format&n=0JF6z69u57hmqsWm&q=85&s=531373acedba0eb783b669f6d558dfd8)