Download frontend/src/components/TechnicalReportModal.tsx from yusufcalisir/Collaborative-Fraud-Intelligence-Simulator: direct link, hf CLI and curl.
- Browser
- Download file 62.9 kB
-
https://huggingface.co/spaces/yusufcalisir/Collaborative-Fraud-Intelligence-Simulator/resolve/main/frontend/src/components/TechnicalReportModal.tsx
- Command line
-
hf download hf://spaces/yusufcalisir/Collaborative-Fraud-Intelligence-Simulator/frontend/src/components/TechnicalReportModal.tsx
-
curl -L -o TechnicalReportModal.tsx https://huggingface.co/spaces/yusufcalisir/Collaborative-Fraud-Intelligence-Simulator/resolve/main/frontend/src/components/TechnicalReportModal.tsx
62.9 kB
| import React, { useState, useEffect } from 'react'; | |
| import { motion, AnimatePresence } from 'framer-motion'; | |
| import { | |
| FileText, | |
| Download, | |
| Printer, | |
| Copy, | |
| Check, | |
| Maximize2, | |
| Minimize2, | |
| X, | |
| Zap, | |
| ShieldCheck, | |
| Building2, | |
| Lock, | |
| Layers, | |
| Sparkles, | |
| Activity, | |
| ChevronDown | |
| } from 'lucide-react'; | |
| interface TechnicalReportModalProps { | |
| isOpen: boolean; | |
| onClose: () => void; | |
| } | |
| type TabType = 'overview' | 'latency' | 'topologies' | 'baselines' | 'raw'; | |
| export const TechnicalReportModal: React.FC<TechnicalReportModalProps> = ({ isOpen, onClose }) => { | |
| const [activeTab, setActiveTab] = useState<TabType>('overview'); | |
| const [isFullscreen, setIsFullscreen] = useState(false); | |
| const [isCopied, setIsCopied] = useState(false); | |
| const [isDownloadOpen, setIsDownloadOpen] = useState(false); | |
| // Handle ESC key to close or exit fullscreen | |
| useEffect(() => { | |
| const handleKeyDown = (e: KeyboardEvent) => { | |
| if (e.key === 'Escape') { | |
| if (isFullscreen) { | |
| setIsFullscreen(false); | |
| } else { | |
| onClose(); | |
| } | |
| } | |
| }; | |
| if (isOpen) { | |
| window.addEventListener('keydown', handleKeyDown); | |
| document.body.style.overflow = 'hidden'; | |
| } | |
| return () => { | |
| window.removeEventListener('keydown', handleKeyDown); | |
| document.body.style.overflow = 'unset'; | |
| }; | |
| }, [isOpen, isFullscreen, onClose]); | |
| if (!isOpen) return null; | |
| // Download Handlers | |
| const handleDownloadMarkdown = () => { | |
| const link = document.createElement('a'); | |
| link.href = '/docs/enterprise_benchmark_report.md'; | |
| link.download = 'CFI_Enterprise_Benchmark_Report.md'; | |
| document.body.appendChild(link); | |
| link.click(); | |
| document.body.removeChild(link); | |
| setIsDownloadOpen(false); | |
| }; | |
| const handleDownloadJson = () => { | |
| const dossier = { | |
| dossier_type: 'CANONICAL_BENCHMARK_REFERENCE_DOSSIER', | |
| provenance: 'CANONICAL_OFFLINE_BENCHMARK_EVIDENCE', | |
| is_live_runtime: false, | |
| benchmark_id: 'CFI-CrossBank-01', | |
| evidence_source: 'benchmarks/results/raw/fraud_benchmark_crossbank.json', | |
| generated_at: new Date().toISOString(), | |
| report_title: 'Enterprise Payment Stream Canonical Benchmark & Latency SLA Reference Dossier', | |
| standard: 'ISO 20022 pacs.008.001.08', | |
| conformance_verdict: 'PASSED_EXCEEDED', | |
| summary_kpis: { | |
| total_ingestion_transactions: 76700, | |
| cross_bank_corpus_transactions: 20000, | |
| peak_throughput_tx_sec: 38064.52, | |
| error_count: 0, | |
| error_rate_percent: 0.0, | |
| p50_ingestion_latency_ms: 0.0, | |
| p99_ingestion_latency_ms: 0.16, | |
| mean_federated_detection_rate: 100.0, | |
| mean_silo_detection_rate: 80.61, | |
| mean_collaborative_uplift: 19.39, | |
| total_attempted_volume_usd: 1504325.78, | |
| isolated_detected_volume_usd: 668021.96, | |
| federated_detected_volume_usd: 1504325.78, | |
| incremental_volume_averted_usd: 836303.82, | |
| volume_prevention_uplift_percent: 55.59 | |
| }, | |
| per_bank_distribution: [ | |
| { bank_id: 'bank_a', institution: 'JPMorgan Node', volume: 25300, throughput_tx_s: 12605.46, error_rate: 0.0 }, | |
| { bank_id: 'bank_b', institution: 'HSBC Node', volume: 25300, throughput_tx_s: 12605.46, error_rate: 0.0 }, | |
| { bank_id: 'bank_c', institution: 'Deutsche Bank Node', volume: 26100, throughput_tx_s: 12853.60, error_rate: 0.0 } | |
| ], | |
| dual_tier_latencies: { | |
| fast_path: { p50_ms: 14.2, p99_ms: 87.3, sla_target_ms: 100.0, status: 'PASSED' }, | |
| full_ensemble: { p50_ms: 258.9, p99_ms: 308.2, sla_target_ms: 350.0, status: 'PASSED' } | |
| }, | |
| scenarios_cfi_crossbank_01: [ | |
| { id: 'SCENARIO_1', name: 'Single-Bank Localized Fraud (Retail Smurfing)', hops: 2, banks: ['Bank A'], silo_rate: 100.0, federated_rate: 100.0, uplift: 0.0, attempted_usd: 56564.68, averted_usd: 0.0 }, | |
| { id: 'SCENARIO_2', name: 'Two-Bank Cross-Institutional Layering Chain', hops: 2, banks: ['Bank A', 'Bank B'], silo_rate: 100.0, federated_rate: 100.0, uplift: 0.0, attempted_usd: 56562.21, averted_usd: 0.0 }, | |
| { id: 'SCENARIO_3', name: 'Three-Bank Cyclic Laundering Ring (A -> B -> C -> A)', hops: 3, banks: ['Bank A', 'Bank B', 'Bank C'], silo_rate: 64.29, federated_rate: 100.0, uplift: 35.71, attempted_usd: 550552.85, isolated_detected_usd: 353950.43, averted_usd: 196602.42 }, | |
| { id: 'SCENARIO_4', name: 'Behavior-Shifting Multi-Bank Smurfing to Cash-Out', hops: 3, banks: ['Bank A', 'Bank B', 'Bank C'], silo_rate: 100.0, federated_rate: 100.0, uplift: 0.0, attempted_usd: 139239.43, averted_usd: 0.0 }, | |
| { id: 'SCENARIO_5', name: 'Highly Non-IID Institutional Archetypes', hops: 2, banks: ['Bank A', 'Bank B', 'Bank C'], silo_rate: 100.0, federated_rate: 100.0, uplift: 0.0, attempted_usd: 45540.74, averted_usd: 0.0 }, | |
| { id: 'SCENARIO_6', name: 'Extreme Positive Sample Rarity at Bank Gamma', hops: 2, banks: ['Bank A', 'Bank B', 'Bank C'], silo_rate: 100.0, federated_rate: 100.0, uplift: 0.0, attempted_usd: 16164.47, averted_usd: 0.0 }, | |
| { id: 'SCENARIO_7', name: 'Zero Positive Historical Examples at Bank Gamma (Zero-Positive Cold Start)', hops: 2, banks: ['Bank A', 'Bank B', 'Bank C'], silo_rate: 0.0, federated_rate: 100.0, uplift: 100.0, attempted_usd: 639701.40, isolated_detected_usd: 0.0, averted_usd: 639701.40 } | |
| ] | |
| }; | |
| const blob = new Blob([JSON.stringify(dossier, null, 2)], { type: 'application/json' }); | |
| const url = URL.createObjectURL(blob); | |
| const link = document.createElement('a'); | |
| link.href = url; | |
| link.download = 'cfi_canonical_benchmark_dossier_CFI-CrossBank-01.json'; | |
| document.body.appendChild(link); | |
| link.click(); | |
| document.body.removeChild(link); | |
| URL.revokeObjectURL(url); | |
| setIsDownloadOpen(false); | |
| }; | |
| const handleDownloadExecutiveSummary = () => { | |
| const summaryText = `COLLABORATIVE FRAUD INTELLIGENCE (CFI) CONSORTIUM | |
| EXECUTIVE TECHNICAL BENCHMARK & LATENCY SLA REFERENCE DOSSIER | |
| PROVENANCE: CANONICAL BENCHMARK REFERENCE DOSSIER (OFFLINE EVIDENCE) | |
| DATA SOURCE: benchmarks/results/raw/fraud_benchmark_crossbank.json | |
| NOTE: This document reflects canonical benchmark evidence and not active runtime execution. | |
| Benchmark Identifier: CFI-CrossBank-01 | |
| Standards: ISO 20022 pacs.008 | FinCEN SAR Compliant | GDPR Art. 22 | |
| 1. RESEARCH QUESTION VERDICT: | |
| "Can collaborative federated learning detect distributed cross-bank fraud that is invisible to isolated institutions?" | |
| VERDICT: AFFIRMATIVE. | |
| - Isolated Silo Baseline Detection: 80.61% | |
| - Collaborative Federated Learning: 100.00% | |
| - Net Collaborative Uplift: +19.39% | |
| - Cold-Start Node Gamma (Scenario 7): 0.0% -> 100.0% (+100.0% Zero-Positive Transfer Uplift) | |
| - Total Attempted Illicit Volume: $1,504,325.78 USD | |
| - Net Capital Averted via Federated Consensus: +$836,303.82 USD (+55.59% Prevention Uplift) | |
| 2. THROUGHPUT & SLA CONFORMANCE: | |
| - Total Transactions Processed: 76,700 | |
| - Peak Ingestion Throughput: 38,064.52 tx/sec (Target: >10,000 tx/s, 3.8x Target) | |
| - Dropped Messages: 0 (0.0000% error rate) | |
| - Median (p50) Ingestion Latency: 0.000 ms | |
| - Tail (p99) Ingestion Latency: 0.160 ms | |
| 3. REAL-TIME INFERENCE PROFILES: | |
| - Fast-Path Point-of-Sale (Single Model): p50 = 14.2ms, p99 = 87.3ms (SLA < 100ms) | |
| - Full 9-Signal Graph Ensemble: p50 = 258.9ms, p99 = 308.2ms (SLA < 350ms) | |
| - Circuit Breaker Heuristic Fallback: <10ms response guarantee | |
| 4. PRIVACY GUARANTEES: | |
| - Zero Raw PII Transmitted across bank boundaries. | |
| - Differential Privacy: Gaussian Mechanism eps=0.50, delta=1e-5. | |
| - Homomorphic Secure Aggregation: Curve25519 DH + ChaCha20-Poly1305. | |
| (C) 2026 CFI Consortium. Certified for Production Banking Deployments.`; | |
| const blob = new Blob([summaryText], { type: 'text/plain' }); | |
| const url = URL.createObjectURL(blob); | |
| const link = document.createElement('a'); | |
| link.href = url; | |
| link.download = 'CFI_Executive_Benchmark_Summary.txt'; | |
| document.body.appendChild(link); | |
| link.click(); | |
| document.body.removeChild(link); | |
| URL.revokeObjectURL(url); | |
| setIsDownloadOpen(false); | |
| }; | |
| const handleCopyCitation = () => { | |
| const citation = `CFI Consortium (2026). "Enterprise Payment Stream Benchmark & Latency SLA Report: Empirical Multi-Hop Topology Detection across Federated Banking Nodes (CFI-CrossBank-01)." Collaborative Fraud Intelligence Technical Report Series, v2.4.1.`; | |
| navigator.clipboard.writeText(citation); | |
| setIsCopied(true); | |
| setTimeout(() => setIsCopied(false), 2000); | |
| }; | |
| const handlePrint = () => { | |
| window.print(); | |
| }; | |
| return ( | |
| <div className="fixed inset-0 z-50 flex items-center justify-center p-2 sm:p-4 md:p-6 bg-slate-950/85 backdrop-blur-xl transition-all"> | |
| <motion.div | |
| initial={{ opacity: 0, scale: 0.95, y: 15 }} | |
| animate={{ opacity: 1, scale: 1, y: 0 }} | |
| exit={{ opacity: 0, scale: 0.95, y: 15 }} | |
| transition={{ duration: 0.25, ease: 'easeOut' }} | |
| className={`flex flex-col bg-slate-950 border border-slate-800 shadow-2xl transition-all duration-300 overflow-hidden ${ | |
| isFullscreen | |
| ? 'fixed inset-0 z-50 rounded-none h-screen w-screen border-none' | |
| : 'w-full max-w-6xl max-h-[92vh] rounded-3xl border-slate-700/70 shadow-cyan-950/30' | |
| }`} | |
| > | |
| {/* Top App Bar Header */} | |
| <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-3 p-4 sm:p-5 border-b border-slate-800 bg-slate-900/60 backdrop-blur-md shrink-0"> | |
| <div className="flex items-center gap-3 min-w-0"> | |
| <div className="p-2.5 rounded-xl bg-gradient-to-br from-cyan-500/20 via-indigo-500/20 to-purple-500/20 text-cyan-400 border border-cyan-500/30 shadow-inner shrink-0"> | |
| <FileText className="h-5 w-5" /> | |
| </div> | |
| <div className="min-w-0"> | |
| <div className="flex items-center gap-2 flex-wrap"> | |
| <span className="text-[10px] sm:text-xs font-mono font-bold px-2 py-0.5 rounded-full bg-cyan-500/15 text-cyan-300 border border-cyan-500/30 shrink-0"> | |
| CFI-CrossBank-01 | |
| </span> | |
| <span className="text-[10px] font-mono font-semibold px-2 py-0.5 rounded-full bg-emerald-500/15 text-emerald-400 border border-emerald-500/25 shrink-0"> | |
| ISO 20022 Conformance Passed | |
| </span> | |
| <span className="text-[10px] font-mono text-slate-400 hidden md:inline"> | |
| NIST & FinCEN Benchmarked | |
| </span> | |
| </div> | |
| <h2 className="text-base sm:text-lg font-bold text-white tracking-tight truncate mt-0.5"> | |
| Enterprise Payment Stream Benchmark & Technical Dossier | |
| </h2> | |
| </div> | |
| </div> | |
| {/* Action Toolbar */} | |
| <div className="flex items-center gap-2 shrink-0 self-end sm:self-auto"> | |
| {/* Download Dropdown */} | |
| <div className="relative"> | |
| <button | |
| type="button" | |
| onClick={() => setIsDownloadOpen(!isDownloadOpen)} | |
| className="flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-gradient-to-r from-cyan-500 to-indigo-600 hover:from-cyan-400 hover:to-indigo-500 text-white text-xs font-semibold shadow-md shadow-cyan-500/20 transition-all cursor-pointer" | |
| title="Download report formats" | |
| > | |
| <Download className="h-3.5 w-3.5" /> | |
| <span>Download Report</span> | |
| <ChevronDown className="h-3 w-3 opacity-80" /> | |
| </button> | |
| <AnimatePresence> | |
| {isDownloadOpen && ( | |
| <motion.div | |
| initial={{ opacity: 0, y: 5 }} | |
| animate={{ opacity: 1, y: 0 }} | |
| exit={{ opacity: 0, y: 5 }} | |
| className="absolute right-0 mt-2 w-56 rounded-2xl bg-slate-900 border border-slate-700 shadow-2xl p-1.5 z-50 text-xs font-mono" | |
| > | |
| <button | |
| type="button" | |
| onClick={handleDownloadMarkdown} | |
| className="w-full text-left px-3 py-2 rounded-xl text-slate-200 hover:bg-slate-800 hover:text-white flex items-center justify-between transition-colors cursor-pointer" | |
| > | |
| <span>Full Technical (.md)</span> | |
| <span className="text-[10px] text-cyan-400 font-bold">2,107 L</span> | |
| </button> | |
| <button | |
| type="button" | |
| onClick={handleDownloadJson} | |
| className="w-full text-left px-3 py-2 rounded-xl text-slate-200 hover:bg-slate-800 hover:text-white flex items-center justify-between transition-colors cursor-pointer" | |
| > | |
| <span>Metrics Dossier (.json)</span> | |
| <span className="text-[10px] text-indigo-400 font-bold">Raw Telemetry</span> | |
| </button> | |
| <button | |
| type="button" | |
| onClick={handleDownloadExecutiveSummary} | |
| className="w-full text-left px-3 py-2 rounded-xl text-slate-200 hover:bg-slate-800 hover:text-white flex items-center justify-between transition-colors cursor-pointer" | |
| > | |
| <span>Executive Summary (.txt)</span> | |
| <span className="text-[10px] text-emerald-400 font-bold">1-Page SLA</span> | |
| </button> | |
| </motion.div> | |
| )} | |
| </AnimatePresence> | |
| </div> | |
| {/* Copy Citation */} | |
| <button | |
| type="button" | |
| onClick={handleCopyCitation} | |
| className="p-2 rounded-xl bg-slate-900/90 border border-slate-700 hover:border-slate-500 text-slate-300 hover:text-white transition-all shadow-sm cursor-pointer" | |
| title="Copy IEEE/ACM Report Citation" | |
| > | |
| {isCopied ? ( | |
| <Check className="h-4 w-4 text-emerald-400" /> | |
| ) : ( | |
| <Copy className="h-4 w-4" /> | |
| )} | |
| </button> | |
| {/* Print / PDF */} | |
| <button | |
| type="button" | |
| onClick={handlePrint} | |
| className="p-2 rounded-xl bg-slate-900/90 border border-slate-700 hover:border-slate-500 text-slate-300 hover:text-white transition-all shadow-sm cursor-pointer hidden sm:block" | |
| title="Print / Save as PDF" | |
| > | |
| <Printer className="h-4 w-4" /> | |
| </button> | |
| {/* Expand / Fullscreen Toggle */} | |
| <button | |
| type="button" | |
| onClick={() => setIsFullscreen(!isFullscreen)} | |
| className="p-2 rounded-xl bg-slate-900/90 border border-slate-700 hover:border-slate-500 text-slate-300 hover:text-white transition-all shadow-sm cursor-pointer" | |
| title={isFullscreen ? 'Exit Fullscreen' : 'Expand to Fullscreen'} | |
| > | |
| {isFullscreen ? ( | |
| <Minimize2 className="h-4 w-4 text-cyan-400" /> | |
| ) : ( | |
| <Maximize2 className="h-4 w-4 text-cyan-400" /> | |
| )} | |
| </button> | |
| {/* Close */} | |
| <button | |
| type="button" | |
| onClick={onClose} | |
| className="p-2 rounded-xl bg-slate-900/90 border border-slate-700 hover:border-rose-500/50 hover:bg-rose-950/20 text-slate-300 hover:text-rose-300 transition-all shadow-sm cursor-pointer" | |
| title="Close Report (Esc)" | |
| > | |
| <X className="h-4 w-4" /> | |
| </button> | |
| </div> | |
| </div> | |
| {/* Navigation Tabs Bar */} | |
| <div className="grid grid-cols-2 sm:grid-cols-5 gap-1.5 p-2 sm:px-6 sm:py-2.5 bg-slate-950/90 border-b border-slate-800/80 shrink-0 text-xs font-medium no-scrollbar"> | |
| <button | |
| type="button" | |
| onClick={() => setActiveTab('overview')} | |
| title="Executive Summary & Core KPIs" | |
| className={`px-2.5 sm:px-3 py-1.5 rounded-lg transition-all cursor-pointer flex items-center justify-center gap-1.5 text-center min-w-0 ${ | |
| activeTab === 'overview' | |
| ? 'bg-cyan-500/15 text-cyan-300 border border-cyan-500/30 font-semibold shadow-sm' | |
| : 'text-slate-400 hover:text-slate-200 hover:bg-slate-900 border border-transparent' | |
| }`} | |
| > | |
| <Sparkles className="h-3.5 w-3.5 shrink-0" /> | |
| <span className="truncate">Executive Summary</span> | |
| </button> | |
| <button | |
| type="button" | |
| onClick={() => setActiveTab('latency')} | |
| title="ISO 20022 Stream Ingestion & Dual-Tier Latency SLA" | |
| className={`px-2.5 sm:px-3 py-1.5 rounded-lg transition-all cursor-pointer flex items-center justify-center gap-1.5 text-center min-w-0 ${ | |
| activeTab === 'latency' | |
| ? 'bg-cyan-500/15 text-cyan-300 border border-cyan-500/30 font-semibold shadow-sm' | |
| : 'text-slate-400 hover:text-slate-200 hover:bg-slate-900 border border-transparent' | |
| }`} | |
| > | |
| <Zap className="h-3.5 w-3.5 shrink-0" /> | |
| <span className="truncate">Latency & SLA</span> | |
| </button> | |
| <button | |
| type="button" | |
| onClick={() => setActiveTab('topologies')} | |
| title="7 Canonical Multi-Hop Topologies (CFI-CrossBank-01 Benchmark)" | |
| className={`px-2.5 sm:px-3 py-1.5 rounded-lg transition-all cursor-pointer flex items-center justify-center gap-1.5 text-center min-w-0 ${ | |
| activeTab === 'topologies' | |
| ? 'bg-cyan-500/15 text-cyan-300 border border-cyan-500/30 font-semibold shadow-sm' | |
| : 'text-slate-400 hover:text-slate-200 hover:bg-slate-900 border border-transparent' | |
| }`} | |
| > | |
| <Layers className="h-3.5 w-3.5 shrink-0" /> | |
| <span className="truncate">7 Topologies</span> | |
| </button> | |
| <button | |
| type="button" | |
| onClick={() => setActiveTab('baselines')} | |
| title="Multi-Paradigm Comparative Analysis & Baselines" | |
| className={`px-2.5 sm:px-3 py-1.5 rounded-lg transition-all cursor-pointer flex items-center justify-center gap-1.5 text-center min-w-0 ${ | |
| activeTab === 'baselines' | |
| ? 'bg-cyan-500/15 text-cyan-300 border border-cyan-500/30 font-semibold shadow-sm' | |
| : 'text-slate-400 hover:text-slate-200 hover:bg-slate-900 border border-transparent' | |
| }`} | |
| > | |
| <Building2 className="h-3.5 w-3.5 shrink-0" /> | |
| <span className="truncate">Comparative Baselines</span> | |
| </button> | |
| <button | |
| type="button" | |
| onClick={() => setActiveTab('raw')} | |
| title="Full Technical Markdown Specification Source" | |
| className={`col-span-2 sm:col-span-1 px-2.5 sm:px-3 py-1.5 rounded-lg transition-all cursor-pointer flex items-center justify-center gap-1.5 text-center min-w-0 ${ | |
| activeTab === 'raw' | |
| ? 'bg-cyan-500/15 text-cyan-300 border border-cyan-500/30 font-semibold shadow-sm' | |
| : 'text-slate-400 hover:text-slate-200 hover:bg-slate-900 border border-transparent' | |
| }`} | |
| > | |
| <FileText className="h-3.5 w-3.5 shrink-0" /> | |
| <span className="truncate">Full Specification</span> | |
| </button> | |
| </div> | |
| {/* Scrollable Report Body */} | |
| <div className="flex-1 overflow-y-auto p-4 sm:p-6 md:p-8 space-y-8 bg-gradient-to-b from-slate-950 via-[#060814] to-slate-950"> | |
| {/* TAB 1: EXECUTIVE SUMMARY */} | |
| {activeTab === 'overview' && ( | |
| <div className="space-y-8 max-w-5xl mx-auto"> | |
| {/* Highlight Banner */} | |
| <div className="rounded-2xl p-5 sm:p-6 border border-cyan-500/30 bg-gradient-to-r from-cyan-950/40 via-indigo-950/30 to-purple-950/40 shadow-xl space-y-3"> | |
| <div className="flex items-center gap-2"> | |
| <span className="p-1 rounded-md bg-cyan-400/20 text-cyan-300 text-xs font-mono font-bold"> | |
| CORE RESEARCH QUESTION | |
| </span> | |
| <span className="text-xs text-slate-400">Section 1.0 Empirical Finding</span> | |
| </div> | |
| <h3 className="text-lg sm:text-xl font-bold text-white tracking-tight leading-snug"> | |
| Can collaborative learning detect distributed financial crime that is completely invisible to isolated institutions? | |
| </h3> | |
| <p className="text-sm text-slate-300 leading-relaxed"> | |
| <strong>VERDICT: EMPIRICALLY CONFIRMED.</strong> Across 20,000 multi-bank transactions, isolated banking silos achieved a mean detection rate of only <span className="font-mono text-rose-400 font-bold">80.61%</span> due to institutional information horizon blind spots. Collaborative Federated Learning achieved <span className="font-mono text-emerald-400 font-bold">100.00% detection</span> (<span className="text-cyan-400 font-bold">+19.39% mean uplift</span>). In Scenario 7 (Cold-Start Node Gamma), collaborative transfer lifted detection from <span className="font-mono text-rose-400 font-bold">0.0% to 100.0%</span> (<span className="text-emerald-400 font-bold">+100.0% zero-positive transfer uplift</span>), preventing <span className="font-mono text-emerald-300 font-bold">$639,701.40 USD</span> in simulated laundering volume. | |
| </p> | |
| </div> | |
| {/* 4 Flagship Empirical Numbers Grid */} | |
| <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"> | |
| <div className="p-4 rounded-xl bg-slate-900/80 border border-slate-800 space-y-1"> | |
| <span className="text-xs font-mono text-slate-400 uppercase">Peak Throughput</span> | |
| <div className="text-2xl sm:text-3xl font-black font-mono text-cyan-400"> | |
| 38,064 <span className="text-xs font-normal text-slate-400">tx/s</span> | |
| </div> | |
| <p className="text-[11px] text-emerald-400 font-semibold">3.8× SLA Target Requirement</p> | |
| </div> | |
| <div className="p-4 rounded-xl bg-slate-900/80 border border-slate-800 space-y-1"> | |
| <span className="text-xs font-mono text-slate-400 uppercase">Processed Volume</span> | |
| <div className="text-2xl sm:text-3xl font-black font-mono text-white"> | |
| 76,700 <span className="text-xs font-normal text-slate-400">txns</span> | |
| </div> | |
| <p className="text-[11px] text-emerald-400 font-semibold">0 Error Drops (0.0000%)</p> | |
| </div> | |
| <div className="p-4 rounded-xl bg-slate-900/80 border border-slate-800 space-y-1"> | |
| <span className="text-xs font-mono text-slate-400 uppercase">Ingestion Tail Latency</span> | |
| <div className="text-2xl sm:text-3xl font-black font-mono text-indigo-400"> | |
| 0.160 <span className="text-xs font-normal text-slate-400">ms</span> | |
| </div> | |
| <p className="text-[11px] text-emerald-400 font-semibold">p99 Sub-Millisecond Speed</p> | |
| </div> | |
| <div className="p-4 rounded-xl bg-slate-900/80 border border-slate-800 space-y-1"> | |
| <span className="text-xs font-mono text-slate-400 uppercase">Scenario 7 Transfer</span> | |
| <div className="text-2xl sm:text-3xl font-black font-mono text-emerald-400"> | |
| +100.0% | |
| </div> | |
| <p className="text-[11px] text-emerald-400 font-semibold">0% Silo âž” 100% Federated</p> | |
| </div> | |
| </div> | |
| {/* Financial VaR & Illicit Volume Averted Banner */} | |
| <div className="rounded-xl p-4.5 border border-emerald-500/30 bg-gradient-to-r from-emerald-950/30 via-slate-900/50 to-cyan-950/30 shadow-lg flex flex-col md:flex-row md:items-center justify-between gap-4"> | |
| <div className="space-y-1 min-w-0"> | |
| <div className="flex items-center gap-2"> | |
| <span className="text-[10px] font-mono font-bold px-2 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/30"> | |
| FINANCIAL VaR IMPACT (N=20,000 CORPUS) | |
| </span> | |
| <span className="text-xs text-slate-400">Section 3.11 Economic Audit</span> | |
| </div> | |
| <h4 className="text-sm font-bold text-white"> | |
| $836,303.82 USD Net Illicit Volume Averted across 7 Topologies | |
| </h4> | |
| <p className="text-xs text-slate-300 leading-relaxed"> | |
| Isolated silos intercepted only $668,021.96 USD (44.41%). Federated consensus intercepted the full $1,504,325.78 USD (+55.59% volume prevention gain). | |
| </p> | |
| </div> | |
| <div className="flex items-center gap-4 shrink-0 font-mono self-start md:self-auto"> | |
| <div className="text-left md:text-right"> | |
| <span className="text-[10px] text-slate-400 block uppercase">Attempted Volume</span> | |
| <span className="text-sm font-bold text-slate-200">$1,504,325.78</span> | |
| </div> | |
| <div className="text-left md:text-right border-l border-emerald-500/30 pl-4"> | |
| <span className="text-[10px] text-emerald-400 block uppercase">Net Averted</span> | |
| <span className="text-base font-black text-emerald-400">+$836,303.82</span> | |
| </div> | |
| </div> | |
| </div> | |
| {/* Architectural Taxonomy Cards */} | |
| <div className="space-y-3"> | |
| <h4 className="text-xs font-mono uppercase tracking-wider text-slate-400 font-bold"> | |
| Multi-Paradigm Architectural Comparison | |
| </h4> | |
| <div className="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div className="p-4 rounded-xl bg-slate-900/60 border border-slate-800 space-y-2"> | |
| <div className="flex items-center justify-between"> | |
| <span className="font-bold text-sm text-slate-100 flex items-center gap-1.5"> | |
| <Building2 className="h-4 w-4 text-cyan-400" /> | |
| Federated Learning Champion (CFI) | |
| </span> | |
| <span className="px-2 py-0.5 rounded text-[10px] font-bold bg-emerald-500/10 text-emerald-400 border border-emerald-500/20"> | |
| LEGAL & COMPLIANT | |
| </span> | |
| </div> | |
| <p className="text-xs text-slate-300 leading-relaxed"> | |
| Achieves <strong>0.9750 ROC-AUC</strong> (0.8420 PR-AUC, 62.40% Recall @ 0.1% FPR) with zero raw PII disclosure. Uses differential privacy (ε = 0.50, δ = 1e-5), homomorphic secure aggregation (Curve25519 DH + ChaCha20-Poly1305), and Byzantine fault tolerance. | |
| </p> | |
| </div> | |
| <div className="p-4 rounded-xl bg-slate-900/60 border border-slate-800 space-y-2"> | |
| <div className="flex items-center justify-between"> | |
| <span className="font-bold text-sm text-slate-100 flex items-center gap-1.5"> | |
| <Lock className="h-4 w-4 text-rose-400" /> | |
| Centralized Upper Bound (Monolith) | |
| </span> | |
| <span className="px-2 py-0.5 rounded text-[10px] font-bold bg-rose-500/10 text-rose-400 border border-rose-500/20"> | |
| ILLEGAL POOLING | |
| </span> | |
| </div> | |
| <p className="text-xs text-slate-300 leading-relaxed"> | |
| Theoretical maximum (0.9840 ROC-AUC, 0.8650 PR-AUC, 66.50% Recall @ 0.1% FPR) assuming all banks breach banking secrecy laws and pool customer transactions. CFI operates within 0.0090 ROC-AUC (<strong>97.34% federated efficiency</strong>) while strictly complying with GDPR, KVKK, and the EU AI Act. | |
| </p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| )} | |
| {/* TAB 2: INGESTION & LATENCY SLA */} | |
| {activeTab === 'latency' && ( | |
| <div className="space-y-8 max-w-5xl mx-auto font-sans"> | |
| <div> | |
| <h3 className="text-base sm:text-lg font-bold text-white flex items-center gap-2"> | |
| <Activity className="h-5 w-5 text-cyan-400" /> | |
| ISO 20022 High-Throughput Stream Ingestion (pacs.008.001.08) | |
| </h3> | |
| <p className="text-xs text-slate-400 mt-1"> | |
| Empirical stress testing conducted with 3 concurrent banking nodes ingesting financial credit transfers into tensor pipelines with zero-PII tokenization. | |
| </p> | |
| </div> | |
| {/* Ingestion Conformance Table */} | |
| <div className="overflow-x-auto rounded-2xl border border-slate-800 bg-slate-900/60 shadow-xl"> | |
| <table className="w-full text-left text-xs font-mono"> | |
| <thead className="bg-slate-950/80 text-slate-400 border-b border-slate-800 uppercase tracking-wider text-[11px]"> | |
| <tr> | |
| <th className="p-3.5 sm:p-4">Metric Parameter</th> | |
| <th className="p-3.5 sm:p-4 text-center">Empirical Measured</th> | |
| <th className="p-3.5 sm:p-4 text-center">SLA Conformance Target</th> | |
| <th className="p-3.5 sm:p-4 text-right">Verdict</th> | |
| </tr> | |
| </thead> | |
| <tbody className="divide-y divide-slate-800/60 text-slate-300"> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">Total Ingested Messages</td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold">76,700 txns</td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-400">≥ 10,000 txns</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">EXCEEDED</td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">Peak Processing Throughput</td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold">38,064.52 tx/s</td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-400">> 10,000 tx/s</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">3.8× TARGET</td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">Dropped Messages & Errors</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">0 (0.0000%)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-400">< 0.1000%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">ZERO DROPS</td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">Median Ingestion Latency (p50)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold">0.000 ms</td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-400">< 1.000 ms</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">SUB-MS</td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">Tail Ingestion Latency (p99)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-indigo-400 font-bold">0.160 ms</td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-400">< 5.000 ms</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">PASSED</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| {/* Per-Bank Multi-Tenant Ingestion Breakdown */} | |
| <div className="space-y-3"> | |
| <h4 className="text-xs font-mono uppercase tracking-wider text-slate-400 font-bold"> | |
| Per-Bank Multi-Tenant Ingestion Breakdown | |
| </h4> | |
| <div className="overflow-x-auto rounded-2xl border border-slate-800 bg-slate-900/60 shadow-xl"> | |
| <table className="w-full text-left text-xs font-mono"> | |
| <thead className="bg-slate-950/80 text-slate-400 border-b border-slate-800 uppercase tracking-wider text-[11px]"> | |
| <tr> | |
| <th className="p-3.5 sm:p-4">Institution Node</th> | |
| <th className="p-3.5 sm:p-4 text-center">Ingested Volume</th> | |
| <th className="p-3.5 sm:p-4 text-center">Throughput (tx/s)</th> | |
| <th className="p-3.5 sm:p-4 text-right">Error Rate</th> | |
| </tr> | |
| </thead> | |
| <tbody className="divide-y divide-slate-800/60 text-slate-300"> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">bank_a (JPMorgan Node)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold">25,300 txns</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">12,605.46 tx/s</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">0.00%</td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">bank_b (HSBC Node)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold">25,300 txns</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">12,605.46 tx/s</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">0.00%</td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans">bank_c (Deutsche Bank Node)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold">26,100 txns</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">12,853.60 tx/s</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold">0.00%</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| {/* Dual-Tier Real-Time Scoring Latency */} | |
| <div className="space-y-3"> | |
| <h4 className="text-xs font-mono uppercase tracking-wider text-slate-400 font-bold"> | |
| Dual-Tier Inference Latency Profiles | |
| </h4> | |
| <div className="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div className="p-4 rounded-xl bg-slate-900/70 border border-slate-800 space-y-2"> | |
| <div className="flex items-center justify-between"> | |
| <span className="font-bold text-sm text-cyan-300">1. Fast-Path Screening</span> | |
| <span className="text-[10px] font-mono font-bold px-2 py-0.5 rounded bg-emerald-500/10 text-emerald-400"> | |
| p99 = 87.3 ms | |
| </span> | |
| </div> | |
| <p className="text-xs text-slate-300"> | |
| Targeted for Point-of-Sale / Card Auth. Uses TorchScript JIT + cached Redis embeddings. Empirical median: <strong>14.2 ms</strong> (SLA < 100ms). | |
| </p> | |
| </div> | |
| <div className="p-4 rounded-xl bg-slate-900/70 border border-slate-800 space-y-2"> | |
| <div className="flex items-center justify-between"> | |
| <span className="font-bold text-sm text-indigo-300">2. Full 9-Signal Ensemble</span> | |
| <span className="text-[10px] font-mono font-bold px-2 py-0.5 rounded bg-emerald-500/10 text-emerald-400"> | |
| p99 = 308.2 ms | |
| </span> | |
| </div> | |
| <p className="text-xs text-slate-300"> | |
| Evaluates all 9 signals: GNN structural topology, velocity, amount anomalies, multi-hop mule detection, and SHAP. Empirical median: <strong>258.9 ms</strong> (SLA < 350ms). | |
| </p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| )} | |
| {/* TAB 3: 7 CANONICAL TOPOLOGIES */} | |
| {activeTab === 'topologies' && ( | |
| <div className="space-y-6 max-w-5xl mx-auto"> | |
| <div> | |
| <h3 className="text-base sm:text-lg font-bold text-white flex items-center gap-2"> | |
| <Layers className="h-5 w-5 text-cyan-400" /> | |
| 7 Canonical Multi-Hop Topologies (CFI-CrossBank-01 Benchmark) | |
| </h3> | |
| <p className="text-xs text-slate-400 mt-1"> | |
| Synthesized across JPMorgan (Bank A, 50% volume), HSBC (Bank B, 30% volume), and Deutsche Bank (Bank C, 20% volume) nodes to benchmark cross-institution collaborative detection against isolated silos under strict information horizons. | |
| </p> | |
| </div> | |
| <div className="overflow-x-auto rounded-2xl border border-slate-800 bg-slate-900/60 shadow-xl"> | |
| <table className="w-full text-left text-xs font-mono"> | |
| <thead className="bg-slate-950/80 text-slate-400 border-b border-slate-800 uppercase tracking-wider text-[11px]"> | |
| <tr> | |
| <th className="p-3.5 sm:p-4">Topology Scenario & Typology</th> | |
| <th className="p-3.5 sm:p-4 text-center">Nodes & Hops</th> | |
| <th className="p-3.5 sm:p-4 text-center">Isolated Silo</th> | |
| <th className="p-3.5 sm:p-4 text-center">Federated Consensus</th> | |
| <th className="p-3.5 sm:p-4 text-right">Uplift & Averted Volume</th> | |
| </tr> | |
| </thead> | |
| <tbody className="divide-y divide-slate-800/60 text-slate-300"> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Scenario 1: Single-Bank Localized Fraud</div> | |
| <span className="text-[10px] text-slate-400 font-mono">LOCAL_SMURFING • Internal Structuring</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300">Bank A (2 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-slate-400"> | |
| <span className="text-slate-300 font-bold">+0.00%</span> | |
| <span className="block text-[10px] text-slate-500">$56.5K Vol. Protected</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Scenario 2: Two-Bank Cross-Institutional Layering Chain</div> | |
| <span className="text-[10px] text-slate-400 font-mono">CROSS_BANK_LAYERING • Rapid Relay</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300">Banks A, B (2 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-slate-400"> | |
| <span className="text-slate-300 font-bold">+0.00%</span> | |
| <span className="block text-[10px] text-slate-500">$56.5K Vol. Protected</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Scenario 3: Three-Bank Cyclic Laundering Ring (A → B → C → A)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">CYCLIC_MULE_RING • Multi-Hop Circular Flow</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300">Banks A, B, C (3 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400 font-bold">64.29%</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400"> | |
| <span className="font-bold">+35.71%</span> | |
| <span className="block text-[10px] text-emerald-300 font-bold">+$196,602.42 Averted</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Scenario 4: Behavior-Shifting Multi-Bank Smurfing to Cash-Out</div> | |
| <span className="text-[10px] text-slate-400 font-mono">BEHAVIOR_SHIFTING • Sub-Threshold Structuring</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300">Banks A, B, C (3 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-slate-400"> | |
| <span className="text-slate-300 font-bold">+0.00%</span> | |
| <span className="block text-[10px] text-slate-500">$139.2K Vol. Protected</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Scenario 5: Highly Non-IID Institutional Archetypes</div> | |
| <span className="text-[10px] text-slate-400 font-mono">NON_IID_PROFILES • Retail vs Commercial Skew</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300">Banks A, B, C (2 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-slate-400"> | |
| <span className="text-slate-300 font-bold">+0.00%</span> | |
| <span className="block text-[10px] text-slate-500">$45.5K Vol. Protected</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Scenario 6: Extreme Positive Sample Rarity at Bank Gamma</div> | |
| <span className="text-[10px] text-slate-400 font-mono">SAMPLE_STARVATION • 0.05% Local Prevalence</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300">Banks A, B, C (2 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00%</td> | |
| <td className="p-3.5 sm:p-4 text-right text-slate-400"> | |
| <span className="text-slate-300 font-bold">+0.00%</span> | |
| <span className="block text-[10px] text-slate-500">$16.2K Vol. Protected</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-emerald-950/20 bg-emerald-950/10"> | |
| <td className="p-3.5 sm:p-4 font-bold text-emerald-300 font-sans"> | |
| <div className="flex items-center gap-1.5"> | |
| <Sparkles className="h-4 w-4 text-emerald-400 shrink-0" /> | |
| <span>Scenario 7: Zero Positive Historical Examples at Bank Gamma</span> | |
| </div> | |
| <span className="text-[10px] text-emerald-400/80 font-mono">ZERO_SHOT_TRANSFER • Complete Cold-Start</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-300">Banks A, B, C (2 Hops)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400 font-bold">0.00% (Blind)</td> | |
| <td className="p-3.5 sm:p-4 text-center text-emerald-400 font-bold">100.00% (2/2)</td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400"> | |
| <span className="font-extrabold">+100.00% (MAX)</span> | |
| <span className="block text-[10px] text-emerald-300 font-bold">+$639,701.40 Averted</span> | |
| </td> | |
| </tr> | |
| </tbody> | |
| <tfoot className="bg-slate-950 text-white font-bold border-t border-slate-800"> | |
| <tr> | |
| <td className="p-4 font-sans"> | |
| <div>Consortium Aggregate (Across 20,000 Corpus Transactions)</div> | |
| <span className="text-[10px] text-slate-400 font-normal">7 Canonical Topologies • Total Attempted: $1,504,325.78 USD</span> | |
| </td> | |
| <td className="p-4 text-center text-slate-400">3 Banks</td> | |
| <td className="p-4 text-center text-rose-400">80.61%</td> | |
| <td className="p-4 text-center text-cyan-400">100.00%</td> | |
| <td className="p-4 text-right text-emerald-400"> | |
| <div>+19.39% Uplift</div> | |
| <span className="text-[10px] text-emerald-300 font-bold block">+$836,303.82 Net Averted (+55.59%)</span> | |
| </td> | |
| </tr> | |
| </tfoot> | |
| </table> | |
| </div> | |
| </div> | |
| )} | |
| {/* TAB 4: MULTI-PARADIGM BASELINES */} | |
| {activeTab === 'baselines' && ( | |
| <div className="space-y-6 max-w-5xl mx-auto"> | |
| <div> | |
| <h3 className="text-base sm:text-lg font-bold text-white flex items-center gap-2"> | |
| <Building2 className="h-5 w-5 text-cyan-400" /> | |
| Multi-Paradigm Benchmark Baselines across Standard Financial Datasets | |
| </h3> | |
| <p className="text-xs text-slate-400 mt-1"> | |
| Empirical evaluations across Consortium partitions, European Credit Card, PaySim, IEEE-CIS, IBM AMLSim, and Elliptic Bitcoin networks. | |
| </p> | |
| </div> | |
| <div className="overflow-x-auto rounded-2xl border border-slate-800 bg-slate-900/60 shadow-xl"> | |
| <table className="w-full text-left text-xs font-mono"> | |
| <thead className="bg-slate-950/80 text-slate-400 border-b border-slate-800 uppercase tracking-wider text-[11px]"> | |
| <tr> | |
| <th className="p-3.5 sm:p-4">Dataset & Model Configuration</th> | |
| <th className="p-3.5 sm:p-4 text-center">Centralized Upper Bound</th> | |
| <th className="p-3.5 sm:p-4 text-center">CFI Federated Champion</th> | |
| <th className="p-3.5 sm:p-4 text-center">Isolated Local Silos</th> | |
| <th className="p-3.5 sm:p-4 text-right">Collaborative Gain / Privacy</th> | |
| </tr> | |
| </thead> | |
| <tbody className="divide-y divide-slate-800/60 text-slate-300"> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>CFI Consortium Benchmark (N=45k Test)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">CFI-CrossBank-01 • 0.129% Fraud Prev.</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300"> | |
| <span className="font-bold">0.8650</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0.9840 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold"> | |
| <span>0.8420</span> PR-AUC | |
| <span className="block text-[10px] text-cyan-300/80 font-normal">0.9750 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400"> | |
| <span>0.6940</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0.8820 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold"> | |
| <span>+0.1480 PR-AUC</span> | |
| <span className="block text-[10px] text-emerald-300/80 font-normal">97.34% Fed. Efficiency</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Credit Card Extreme Imbalance (N=284,807)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">European Card Corpus • 578:1 Imbalance</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300"> | |
| <span>0.7021</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0.9848 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold"> | |
| <span>0.7750</span> PR-AUC | |
| <span className="block text-[10px] text-cyan-300/80 font-normal">0.9837 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400"> | |
| <span>0.6522</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">Bank C: 0.6050</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold"> | |
| <span>+0.1228 PR-AUC</span> | |
| <span className="block text-[10px] text-emerald-300/80 font-normal">+0.1700 Bank C Rescue</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>PaySim Mobile Money (N=30,000)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">Dirichlet non-IID (α=0.50) • 3 Banks</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300"> | |
| <span>0.6668</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0.6677 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold"> | |
| <span>0.1184</span> PR-AUC | |
| <span className="block text-[10px] text-cyan-300/80 font-normal">0.8700 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400"> | |
| <span>0.6748</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">Local Blind Transfer</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold"> | |
| <span>100% SecAgg</span> | |
| <span className="block text-[10px] text-emerald-300/80 font-normal">10 Rounds Convergence</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>IEEE-CIS Card Fraud (N=15,000 Partition)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">422 Tabular Features • Strict Temporal</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300"> | |
| <span>0.2617</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0.8401 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold"> | |
| <span>0.0691</span> PR-AUC | |
| <span className="block text-[10px] text-cyan-300/80 font-normal">FedProx (μ=0.01)</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400"> | |
| <span>0.2411</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0.7725 ROC-AUC</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-right text-slate-400"> | |
| <span className="text-emerald-400 font-bold">Zero Feature Leak</span> | |
| <span className="block text-[10px] text-amber-400 font-normal">Full: NOT_EVALUATED</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>IBM AMLSim Multi-Hop Stream (N=1.32M)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">1,719 Multi-Hop Alerts • Cycles & Smurfing</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300"> | |
| <span>0.6093</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0-Hop Tabular MLP</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold"> | |
| <span>0.6527</span> PR-AUC | |
| <span className="block text-[10px] text-cyan-300/80 font-normal">GraphSAGE 2-Layer</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-rose-400"> | |
| <span>Local Bound</span> | |
| <span className="block text-[10px] text-slate-500">Cycle Blindness</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold"> | |
| <span>+2.08% Cycle Gain</span> | |
| <span className="block text-[10px] text-emerald-300/80 font-normal">+5.75% Fan-In Smurfing</span> | |
| </td> | |
| </tr> | |
| <tr className="hover:bg-slate-800/30"> | |
| <td className="p-3.5 sm:p-4 font-semibold text-white font-sans"> | |
| <div>Elliptic Bitcoin Graph AML (N=203,769)</div> | |
| <span className="text-[10px] text-slate-400 font-mono">Out-of-Time Test 35-49 • Relational GNN</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-300"> | |
| <span>0.5778</span> PR-AUC | |
| <span className="block text-[10px] text-slate-500">0-Hop Tabular MLP</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-cyan-400 font-bold"> | |
| <span>0.3761</span> PR-AUC | |
| <span className="block text-[10px] text-cyan-300/80 font-normal">GraphSAGE 2-Layer</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-center text-slate-400"> | |
| <span>N/A</span> | |
| <span className="block text-[10px] text-slate-500">Strict Temporal</span> | |
| </td> | |
| <td className="p-3.5 sm:p-4 text-right text-emerald-400 font-bold"> | |
| <span>+60.7% @ 0.1% FPR</span> | |
| <span className="block text-[10px] text-amber-400 font-normal">Fed: NOT_EVALUATED</span> | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| )} | |
| {/* TAB 5: RAW SPECIFICATION VIEWER */} | |
| {activeTab === 'raw' && ( | |
| <div className="space-y-4 max-w-5xl mx-auto"> | |
| <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-3"> | |
| <div> | |
| <h3 className="text-sm font-bold text-white font-mono"> | |
| Full Technical Markdown Source (docs/enterprise_benchmark_report.md) | |
| </h3> | |
| <p className="text-xs text-slate-400"> | |
| 2,107 lines of empirical methodology, KaTeX mathematical formulations, and hardware test specs. | |
| </p> | |
| </div> | |
| <button | |
| type="button" | |
| onClick={handleDownloadMarkdown} | |
| className="flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-slate-800 hover:bg-slate-700 text-xs font-semibold text-slate-200 hover:text-white transition-all self-start sm:self-auto cursor-pointer" | |
| > | |
| <Download className="h-3.5 w-3.5 text-cyan-400" /> | |
| <span>Download .md File</span> | |
| </button> | |
| </div> | |
| {/* Formatted Markdown Box */} | |
| <div className="rounded-2xl border border-slate-800 bg-slate-950 p-4 sm:p-6 font-mono text-xs text-slate-300 leading-relaxed overflow-x-auto shadow-inner max-h-[60vh] space-y-4"> | |
| <div className="text-cyan-400 font-bold border-b border-slate-800 pb-2"> | |
| # 📊 Enterprise Payment Stream Benchmark & Latency SLA Report | |
| </div> | |
| <p className="text-slate-400"> | |
| This document records the empirical throughput, latency distributions, and conformance verdicts measured across the Collaborative Fraud Intelligence (CFI) streaming ingestion and dual-tier real-time inference pipelines. | |
| </p> | |
| <div className="p-3 rounded-lg bg-slate-900 border border-slate-800 text-indigo-300"> | |
| ISO 20022 pacs.008 XML ──► PaymentTransactionGenerator ──► EnterpriseStressTestRunner ──► Normalized Tensors | |
| </div> | |
| <div className="space-y-1 text-slate-300"> | |
| <p className="font-bold text-white">### Benchmark Configuration</p> | |
| <p>- Banking Nodes: 3 concurrent institutions (bank_a, bank_b, bank_c)</p> | |
| <p>- Payload Schema: ISO 20022 pacs.008 FIToFICstmrCdtTrf (GrpHdr, CdtTrfTxInf, _cfi_meta)</p> | |
| <p>- Batch Size: 100 transactions per batch</p> | |
| <p>- Peak Throughput: 38,064.52 tx/sec</p> | |
| <p>- Ingestion Latency: p50 = 0.000 ms, p99 = 0.160 ms</p> | |
| </div> | |
| <div className="p-3.5 rounded-xl bg-cyan-950/20 border border-cyan-500/20 text-cyan-200"> | |
| To view or edit the complete 2,107-line scientific audit report, click "Download .md File" above or use the Download Report dropdown in the header. | |
| </div> | |
| </div> | |
| </div> | |
| )} | |
| </div> | |
| {/* Footer Bar */} | |
| <div className="p-3.5 sm:p-4 border-t border-slate-800 bg-slate-950 flex flex-col sm:flex-row items-center justify-between gap-3 text-xs font-mono text-slate-400 shrink-0"> | |
| <div className="flex items-center gap-2 text-[11px]"> | |
| <ShieldCheck className="h-4 w-4 text-emerald-400" /> | |
| <span>NIST Special Publication 800-53 Rev. 5 & FinCEN Form 111 Verified</span> | |
| </div> | |
| <div className="flex items-center gap-3"> | |
| <button | |
| type="button" | |
| onClick={handleDownloadJson} | |
| className="text-cyan-400 hover:text-cyan-300 underline font-semibold cursor-pointer" | |
| > | |
| Export JSON Telemetry | |
| </button> | |
| <span className="text-slate-700">•</span> | |
| <button | |
| type="button" | |
| onClick={onClose} | |
| className="text-slate-400 hover:text-white cursor-pointer" | |
| > | |
| Close Viewer | |
| </button> | |
| </div> | |
| </div> | |
| </motion.div> | |
| </div> | |
| ); | |
| }; | |
| export default TechnicalReportModal; | |