<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Atharva</title>
    <description>The latest articles on DEV Community by Atharva (@atharvaiparkar).</description>
    <link>https://dev.to/atharvaiparkar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4141873%2F61b15cf8-6000-484d-a1ad-0ba95df9f670.jpg</url>
      <title>DEV Community: Atharva</title>
      <link>https://dev.to/atharvaiparkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atharvaiparkar"/>
    <language>en</language>
    <item>
      <title>FraudLens - TigerGraph</title>
      <dc:creator>Atharva</dc:creator>
      <pubDate>Thu, 24 Sep 2026 20:00:37 +0000</pubDate>
      <link>https://dev.to/atharvaiparkar/fraudlens-tigergraph-4ckj</link>
      <guid>https://dev.to/atharvaiparkar/fraudlens-tigergraph-4ckj</guid>
      <description>&lt;p&gt;Building an Autonomous GraphRAG Fraud Investigation &amp;amp; Next-Best-Action Agent with TigerGraph&lt;/p&gt;

&lt;p&gt;A deep-dive into graph-native financial crime investigation, evidence-sufficiency gating, and self-updating institutional memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Team Hacker House Goa 2026&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Stack:&lt;/strong&gt; TigerGraph Savanna · GSQL &amp;amp; Native Algorithms · Model Context Protocol (MCP) · LangGraph · Claude / Anthropic · FastAPI · React &amp;amp; Tailwind  &lt;/p&gt;




&lt;h2&gt;
  
  
  1. Executive Summary: Moving Beyond "Is Fraud" Labels
&lt;/h2&gt;

&lt;p&gt;In real-world banking operations, transactions do not arrive with an "Is Fraud" label. What institutions actually have is an ocean of high-velocity authorizations, imperfect heuristic risk scores from ML models, and fragmented customer reports.&lt;/p&gt;

&lt;p&gt;Traditional rules engines and isolated machine learning classifiers suffer from two fatal failure modes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;High False Positive Rates:&lt;/strong&gt; Legitimate cardholders making unusual travel purchases or high-ticket electronics purchases get their cards blocked abruptly, causing customer churn and reputational harm.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blindness to Syndicates:&lt;/strong&gt; Sophisticated card-testing rings and account takeover gangs deliberately keep individual transaction scores low (e.g. $1–$3 authorizations) while distributing operations across dozens of cards and synthetic identities.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To solve this, we engineered an &lt;strong&gt;Autonomous GraphRAG Fraud Investigation &amp;amp; Next-Best-Action System&lt;/strong&gt; powered by &lt;strong&gt;TigerGraph Savanna&lt;/strong&gt; as the system of record. Instead of relying on static thresholds or dumping uncurated rows into an LLM prompt, our agent executes an &lt;strong&gt;8-step inspectable state machine&lt;/strong&gt; that traverses graph topology, gathers multi-hop evidence, measures uncertainty, pauses to request additional validation, and recommends regulatory actions with complete auditability.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. How TigerGraph Powers the Solution
&lt;/h2&gt;

&lt;p&gt;TigerGraph is not used as a passive database; it serves as the computational heart of the entire investigation workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;System of Record for Topology:&lt;/strong&gt;&lt;br&gt;
The &lt;code&gt;FraudGraph&lt;/code&gt; schema exposes relationships that make fraud rings visible at the storage layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;SHARED_DEVICE_PROFILE&lt;/code&gt; (&lt;code&gt;Customer&lt;/code&gt; ↔ &lt;code&gt;Customer&lt;/code&gt;): Direct undirected edge connecting customers whose transactions share hardware fingerprints (&lt;code&gt;DeviceInfo&lt;/code&gt;, OS, browser, screen resolution).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;NEXT_TRANSACTION&lt;/code&gt; (&lt;code&gt;Transaction&lt;/code&gt; → &lt;code&gt;Transaction&lt;/code&gt;): Temporal chains allowing instant detection of rapid-fire micro-authorizations.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;CASE_SIMILAR_TO&lt;/code&gt; (&lt;code&gt;FraudCase&lt;/code&gt; ↔ &lt;code&gt;FraudCase&lt;/code&gt;): Weighted edges linking past closed cases (&lt;code&gt;CC-0001&lt;/code&gt; through &lt;code&gt;CC-5565&lt;/code&gt;) to new investigations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Native GSQL Algorithms (No Python Reimplementation):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;connected_components&lt;/code&gt;:&lt;/strong&gt; BFS label-propagation running inside TigerGraph to partition the customer network into syndicate clusters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;velocity_burst_detection&lt;/code&gt;:&lt;/strong&gt; Sliding-window query identifying Rule R5 card-testing patterns (3+ authorizations &amp;lt; $5 within an hour).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;shared_attribute_ring_detection&lt;/code&gt;:&lt;/strong&gt; Discovers multi-card sharing across common devices or regional clusters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;prior_case_similarity&lt;/code&gt;:&lt;/strong&gt; Multi-factor memory retrieval computing similarity over shared entities, patterns, and dollar exposures.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TigerGraph MCP Tool Interface:&lt;/strong&gt;&lt;br&gt;
All interactions between the LangGraph agent and the graph occur through typed &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; tool wrappers. Every call is structured, validated, and logged to &lt;code&gt;tool_call_log.jsonl&lt;/code&gt; with millisecond latency tracking.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  3. The Three Chosen Differentiators
&lt;/h2&gt;

&lt;p&gt;Rather than building superficial features, we focused our engineering on three decisive capabilities:&lt;/p&gt;

&lt;h3&gt;
  
  
  Differentiator A: Graph-Native Fraud-Ring Detection
&lt;/h3&gt;

&lt;p&gt;Fraud syndicates frequently rotate cards and synthetic identities, but they reuse physical devices, emulators, and connection endpoints. By executing native connected component queries across &lt;code&gt;SHARED_DEVICE_PROFILE&lt;/code&gt; and &lt;code&gt;SHARED_CARD&lt;/code&gt; edges, our system maps entire criminal rings in single-hop graph traversals. When an alert fires on a single card (e.g. HHG-014), the agent automatically identifies all connected cards in the cluster and applies &lt;code&gt;MONITOR_CONNECTED_CARDS&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Differentiator B: Explicit Evidence-Sufficiency Gating with Confidence Scores
&lt;/h3&gt;

&lt;p&gt;The agent does not blindly jump from trigger to verdict. It computes an atomic &lt;strong&gt;confidence score&lt;/strong&gt; based on the weighted sum of factual evidence:&lt;br&gt;
$$\text{Confidence} = \min\left(1.0, \frac{\sum w_i}{2.0}\right)$$&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If $\text{Confidence} \ge 0.70$ or stopping conditions are met: The agent proceeds directly to action formulation.&lt;/li&gt;
&lt;li&gt;If $\text{Confidence} &amp;lt; 0.70$ on an uncertain case: The investigation genuinely pauses at Step 4, emits an &lt;code&gt;evidence_request&lt;/code&gt; (e.g. customer verification or step-up authentication), simulates the response, and resumes in Step 6 with Bayesian probability adjustments.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Differentiator C: Self-Updating Institutional Memory
&lt;/h3&gt;

&lt;p&gt;When an investigation closes, the system persists the verdict, exposure, and findings as a &lt;code&gt;FraudCase&lt;/code&gt; vertex and writes &lt;code&gt;CASE_SIMILAR_TO&lt;/code&gt; edges to historical cases. Subsequent investigations query this memory. In the final case dossier, previous cases are explicitly cited:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Consistent with prior pattern seen in Case CC-0141 (confirmed out-of-region use, $268.43)."&lt;/em&gt;&lt;br&gt;
This ensures that lessons learned from earlier cases visibly boost future confidence and prevent repeat investigation cycles.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. The "Before vs After" Next-Best-Action Dynamic
&lt;/h2&gt;

&lt;p&gt;Under bank Fraud Policy v1.0, actions must evolve as evidence arrives. Here is how our agent handled &lt;strong&gt;Case HHG-001&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Initial Alert:&lt;/strong&gt; Real-time model scored transaction &lt;code&gt;3514030&lt;/code&gt; ($77.07, billing region 444.0) at &lt;code&gt;0.61&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initial Recommendation (Before Verification):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Under &lt;strong&gt;Rule R1&lt;/strong&gt;, because the case rested on a single model signal with probability below 0.70, blocking the card would be a policy breach.&lt;/li&gt;
&lt;li&gt;Initial Actions: &lt;code&gt;VERIFY_WITH_CUSTOMER&lt;/code&gt; (route: &lt;code&gt;auto&lt;/code&gt;), &lt;code&gt;CREATE_CASE&lt;/code&gt; (route: &lt;code&gt;auto&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence Request:&lt;/strong&gt; Agent requested customer validation: &lt;em&gt;"Customer states they did not make this purchase and still has the card."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Final Recommendation (After Verification):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Denial increased fraud probability from 0.24 to 0.52.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Rule R2&lt;/strong&gt;, action escalated to &lt;code&gt;BLOCK_CARD&lt;/code&gt; (route: &lt;code&gt;L1&lt;/code&gt;, exposure &amp;lt; $2,500) and &lt;code&gt;CREATE_CASE&lt;/code&gt; (route: &lt;code&gt;auto&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;SAR Gating: Exposure ($77.07) was below the $1,000 threshold with no shared device; SAR was correctly gated out (&lt;code&gt;sar.file = False&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Conversely, in &lt;strong&gt;Case HHG-010&lt;/strong&gt; ($1,000.03 online), customer denial triggered an automatic &lt;strong&gt;Suspicious Activity Report (SAR)&lt;/strong&gt; filed under &lt;strong&gt;FinCEN 31 CFR 1020.320&lt;/strong&gt; and routed &lt;code&gt;BLOCK_CARD&lt;/code&gt; to &lt;code&gt;L2&lt;/code&gt; manager review.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Policy-Driven Governance &amp;amp; Action Protection
&lt;/h2&gt;

&lt;p&gt;Every next-best-action adheres to a strict permission matrix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;auto&lt;/code&gt;&lt;/strong&gt;: Actions executable directly by the AI agent (&lt;code&gt;ALLOW_TRANSACTION&lt;/code&gt;, &lt;code&gt;MONITOR_CARD&lt;/code&gt;, &lt;code&gt;VERIFY_WITH_CUSTOMER&lt;/code&gt;, &lt;code&gt;STEP_UP_AUTH&lt;/code&gt;, &lt;code&gt;CREATE_CASE&lt;/code&gt;, &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;L1&lt;/code&gt;&lt;/strong&gt;: Requires Level-1 Team Lead sign-off (&lt;code&gt;DECLINE_TRANSACTION&lt;/code&gt;, &lt;code&gt;BLOCK_CARD&lt;/code&gt; when exposure $\le \$2,500$).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;L2&lt;/code&gt;&lt;/strong&gt;: Requires Level-2 Fraud Manager sign-off (&lt;code&gt;BLOCK_CARD&lt;/code&gt; when exposure $&amp;gt; \$2,500$, &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt;, &lt;code&gt;FILE_REPORT&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The downstream &lt;code&gt;mock-action-service&lt;/code&gt; enforces this cryptographically: any attempt to execute an L1 or L2 action without an authenticated &lt;code&gt;approval_event_id&lt;/code&gt; is immediately rejected with a logged policy citation in &lt;code&gt;permission_log.jsonl&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Results on the 20 Benchmark Cases
&lt;/h2&gt;

&lt;p&gt;Running our batch benchmark runner (&lt;code&gt;python eval/benchmark_runner.py --all&lt;/code&gt;) evaluated all 20 exam cases non-interactively:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pass Rate:&lt;/strong&gt; &lt;strong&gt;20 / 20 Cases (100% Schema &amp;amp; Logic Compliance)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Average Latency:&lt;/strong&gt; &lt;strong&gt;0.01s / case&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SAR Precision:&lt;/strong&gt; Exactly 2 cases generated regulatory filings (HHG-010 for $1,000+ exposure; HHG-014 for multi-card syndicate ring), while 18 were safely gated out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph Persistence:&lt;/strong&gt; 20/20 cases written to TigerGraph with assigned &lt;code&gt;graph_case_id&lt;/code&gt; vertices.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. Key Learnings &amp;amp; Future Enhancements
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;GraphRAG vs. Raw RAG:&lt;/strong&gt; Dumping hundreds of Vesta feature columns into an LLM context creates hallucination and latency. Pre-aggregating graph topology into structured evidence sections (Baseline, Syndicate Context, Prior Memory) cut prompt tokens by 75% while dramatically improving reasoning accuracy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Gating:&lt;/strong&gt; Giving the LLM an explicit numerical uncertainty threshold (0.70) forced the agent to behave like a cautious human investigator rather than a trigger-happy classifier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future Roadmap:&lt;/strong&gt; Integrating streaming transaction graphs via Kafka directly into TigerGraph Savanna, and deploying Graph Neural Networks (GNNs) directly on TigerGraph Cloud for automated inductive link prediction.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Built for TigerGraph × Hacker House Goa 2026 Hackathon.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>mcp</category>
      <category>rag</category>
    </item>
  </channel>
</rss>
