Disputes Analysis
Reg E Bank Dispute Triage & Resolution Workflow
Fragmented manual dispute handling → AI routes, investigates, and decisions debit card, ATM, and ACH disputes under Regulation E → analysts get a structured case outcome with documented reasoning, not a blank screen.
01 — The Problem
Financial institutions processing consumer disputes under Regulation E face a branching, rule-dense process where the correct path depends on dispute type, transaction characteristics, card status, timing, and fraud signals — all evaluated simultaneously. Without automation, analysts must hold the entire decision tree in their heads, apply it consistently across high volumes, and document their reasoning for regulatory retention. The cost of inconsistency is regulatory exposure; the cost of slowness is provisional credit sitting on the books longer than necessary.
02 — What the AI Does
Routing & Classification: Classifies incoming disputes into three tracks: debit card fraud, ATM dispute, or ACH dispute Within each track, applies sub-routing logic (ATM subtypes: unauthorized withdrawal, short dispense, missing check, missing cash; ACH direction: credit vs. debit, consumer vs. commercial, age of transaction) Investigation (LLM-assisted): Initial Triage (Claude Haiku): Screens debit card fraud claims for obvious invalidity — authorized-use patterns, prior dispute history, merchant refunds already issued, customer callbacks recognizing the transaction Reg E Investigation (Claude Sonnet): Full compliance investigation — evaluates authorization, consumer liability calculation based on reporting timing ($50/$500/unlimited tiers), recommended action ATM Investigation (Claude Haiku): Evaluates dispute rights by subtype — counterfeit/stolen card scenarios, audit report review for short dispense, third-party coordination flags ACH Investigation (Claude Haiku): Evaluates Reg E coverage, return code selection (R05, R10, R11, R29, R31), WSUD requirements, ODFI proof-of-authorization handling Decision & Credit Processing: Provisional credit assessment: tiers transactions by amount (<$25 no chargeback, ≤$2,500 auto chargeback, >$2,500 manual review) Chargeback rights check and routing to auto vs. manual chargeback processing Final credit calculation with consumer liability applied Claim denial with provisional credit reversal ACH return submission with return code Record Retention: Terminal node confirms 2-year retention per Reg E and generates final case summary Models: Claude Haiku 4.5 (triage, ATM, ACH investigations), Claude Sonnet 4.5 (full Reg E investigation)
03 — Design Decisions
Separate router nodes for dispute type, ATM subtype, and ACH coverage — each a distinct node with explicit port logic — rather than a single large prompt handling all cases
Regulatory processes have hard branching rules that must be auditable. Encoding them as deterministic code nodes means routing logic is inspectable, testable, and doesn't drift with model behavior. [Creator: add rationale on whether this was driven by audit requirements or operational preference]
Routing decisions are never delegated to an LLM — only investigation and summarization are
Claude Haiku for initial triage, ATM, and ACH investigations; Claude Sonnet reserved for the full Reg E debit card investigation
Full Reg E investigation requires nuanced liability calculation and multi-factor reasoning; triage and sub-investigations follow more structured criteria where a faster, cheaper model suffices. Deliberate cost/quality tradeoff, not a default.
All LLM nodes output structured JSON with defined schemas — no free-text outputs flow into downstream logic
Every investigation prompt uses json_mode: True and returns a defined schema with conclusion, recommended_action, and supporting fields
Downstream port routing depends on parsing conclusion values like "VALID"/"INVALID". Free-text outputs would break deterministic routing. [Creator: add rationale if json_schema strict mode was considered and rejected]
If an LLM returns malformed JSON, port logic will fail — no fallback parser exists in the current implementation
The $25/$2,500 thresholds and credit tier assignment are hardcoded in Python, not inferred by a model
These are regulatory/policy thresholds, not judgment calls. Code makes them auditable and change-controlled. [Creator: confirm whether thresholds reflect actual bank policy or Reg E defaults]
Threshold changes require a code change, not a prompt edit — intentional friction for policy-sensitive values
The $50/$500/unlimited liability tiers are implemented in Python logic, not delegated to the Reg E investigation LLM
The LLM reasons about liability in its summary, but the actual credit amount is calculated deterministically. Separates "reasoning about the rule" from "applying the rule." [Creator: add rationale]
The LLM's consumer_liability_amount output is not used in the credit calculation — code recalculates independently
Nodes receiving inputs from multiple upstream paths use AWAIT_ATTRIBUTES merge behavior
Without this, a node could execute before all required inputs are available, producing incomplete outputs or race conditions
Adds latency at convergence points — all upstream paths must complete before the merge node runs
Every resolution path routes through RecordRetentionNode before the workflow ends
Reg E requires 2-year documentation retention. Making it a mandatory terminal node ensures no path exits without confirming retention. [Creator: confirm whether this triggers an actual system write or is a documentation placeholder]
If a path bypasses RecordRetentionNode, final_summary will be absent — a detectable gap
Bank-detected fraud cases route to PriorityFraudProcessingNode (5-day SLA, card blocked) before reaching InitialTriageNode
Bank-detected fraud has a different SLA and handling protocol; running it through standard triage would apply the wrong criteria. [Creator: confirm whether priority fraud cases still go through Reg E investigation downstream — this appears to be the current behavior]
Priority fraud path still routes to RegEInvestigationNode — [Creator: confirm whether this is intentional or whether priority fraud should have a separate investigation path]
05 — Key Insight
In regulated processes, the highest-value AI design decision is often where not to use AI — encoding policy thresholds and routing rules as deterministic code preserves auditability while reserving LLM judgment for the unstructured reasoning that humans actually struggle to do consistently at scale.