File size: 41,321 Bytes
94cb318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
# Authoritative Dataset Cards & Storage Architecture Specification (`DATASETS.md`)
## Privacy-Preserving Collaborative Financial Crime Intelligence Platform (CF-Intelligence)

**Specification Version:** `2.4.0-enterprise`  
**Standard:** Hugging Face Datasets / ACM FAccT Data Cards / Datasheets for Datasets (Gebru et al., 2021)  
**Governance Scope:** Federal Reserve SR 11-7 / OCC 2011-12, EU AI Act Article 10, GDPR Article 9, ECOA Regulation B (12 CFR Part 1002), PCI-DSS v4.0  
**Repository Location:** `DATASETS.md` (root) and `docs/DATASETS.md`  

---

## 1. Executive Summary & Zero-Mock Dataset Governance

A core architectural invariant of **CF-Intelligence** is **Zero-Mock, Zero-Dummy Data** in production and empirical benchmarking evaluations. While development unit tests may isolate specific interfaces, all empirical fraud detection claims, federated learning convergence benchmarks, and differential privacy trade-offs in this platform are calibrated against eight canonical, large-scale financial crime datasets spanning over **8.9 million transactions**:

### Master Dataset Inventory & Licensing Matrix

| Dataset ID | Dataset Name | Domain Scope | Real vs Synthetic | Distribution Source & Archive | Copyright & License | Class Imbalance Ratio | Protected Demographic Fields |
|:---|:---|:---|:---:|:---|:---|:---:|:---:|
| **`paysim`** | PaySim Mobile Money | Mobile Money Remittance | Synthetic Agent Simulator | Kaggle (`ealaxi/paysim1`) | CC BY-SA 4.0 | 0.129% (1:774) | **0 / 10 (0.0%)** |
| **`ieee_cis`** | IEEE-CIS Card Fraud | E-Commerce Payments | Real Production Logs | Kaggle (`ieee-fraud-detection`) | Competition License (Research) | 3.500% (1:28) | **0 / 10 (0.0%)** |
| **`credit_card`** | ULB European Card | Consumer Card Payments | Real Anonymized PCA | Kaggle (`mlg-ulb/creditcardfraud`) | Open Database License (ODbL 1.0) | 0.173% (1:578) | **0 / 10 (0.0%)** |
| **`elliptic`** | Elliptic Bitcoin Graph | Cryptocurrency Forensics | Real Blockchain DAG | Kaggle (`ellipticco/elliptic-data-set`) | CC BY 4.0 | 9.76% labeled (1:9) | **0 / 10 (0.0%)** |
| **`amlsim`** | IBM AMLSim Graph | Multi-Agent Banking Graph | Synthetic Multi-Agent | Kaggle / GitHub (`IBM/AMLSim`) | Apache 2.0 | 0.130% (1:769) | **0 / 10 (0.0%)** |
| **`synthaml`** | SynthAML Spar Nord | European Commercial AML | Real-Topology SDV Copula | Nature Scientific Data / Figshare | CC BY 4.0 | 8.500% (1:11) | **0 / 10 (0.0%)** |
| **`amlnet`** | AMLNet AUSTRAC | Australian Wire Compliance | Synthetic Agent Simulation | Zenodo (`10.5281/zenodo.10058474`) | CC BY-NC 4.0 | 0.140% (1:714) | **0 / 10 (0.0%)** |
| **`cross_bank`** | CFI-CrossBank-01 | Consortium Multi-Bank | Synthetic Real-Topology | CFI Research Consortium Generator | Proprietary Research (CFI) | 1.830% (1:55) | **0 / 10 (0.0%)** |

---

## 2. Directory Layout & Local Storage Topology

All raw dataset files are stored in `backend/storage/datasets/<dataset_name>/` or `storage/datasets/<dataset_name>/`. The dynamic loader (`resolve_dataset_dir` in `dataloader.py`) resolves storage across containerized and development environments:

```
storage/datasets/
β”œβ”€β”€ amlsim/
β”‚   β”œβ”€β”€ accounts.csv                              # 326 KB (10,000 accounts metadata)
β”‚   β”œβ”€β”€ alerts.csv                                # 88 KB (1,719 ground-truth AML typology alerts)
β”‚   β”œβ”€β”€ transactions.csv                          # 61.05 MB (1,323,234 raw transaction flow events)
β”‚   └── transactions.parquet                      # 11.43 MB (Zero-copy fast columnar cache)
β”œβ”€β”€ creditcard/
β”‚   └── creditcard.csv                             # 143.84 MB (284,807 rows)
β”œβ”€β”€ elliptic/
β”‚   β”œβ”€β”€ elliptic_txs_classes.csv                  # 3.15 MB (Node classification labels)
β”‚   β”œβ”€β”€ elliptic_txs_edgelist.csv                 # 4.26 MB (Directed transaction flow graph)
β”‚   └── elliptic_txs_features.csv                 # 657.73 MB (166-dimensional node embeddings)
β”œβ”€β”€ ieee_cis/
β”‚   β”œβ”€β”€ train_transaction.csv                     # 651.69 MB (Primary training transactions)
β”‚   β”œβ”€β”€ train_identity.csv                        # 25.30 MB (Device & IP network identity)
β”‚   β”œβ”€β”€ test_transaction.csv                      # 584.79 MB (Out-of-time evaluation transactions)
β”‚   └── test_identity.csv                         # 24.60 MB (Out-of-time identity features)
β”œβ”€β”€ paysim/
β”‚   β”œβ”€β”€ PS_20174392719_1491204439457_log.csv      # 470.67 MB (6.36M simulated mobile money records)
β”‚   β”œβ”€β”€ bank_alpha.parquet                        # Partitioned Non-IID client split (Bank Alpha)
β”‚   β”œβ”€β”€ bank_beta.parquet                         # Partitioned Non-IID client split (Bank Beta)
β”‚   └── bank_gamma.parquet                        # Partitioned Non-IID client split (Bank Gamma)
β”œβ”€β”€ synthaml/
β”‚   β”œβ”€β”€ alerts.csv                                # 195 KB (5,000 alert metadata records)
β”‚   β”œβ”€β”€ alerts.parquet                            # 82 KB (Zero-copy fast columnar alert cache)
β”‚   β”œβ”€β”€ transactions.csv                          # 9.87 MB (92,261 lookback transactions)
β”‚   └── transactions.parquet                      # 2.92 MB (Zero-copy fast columnar transaction cache)
└── amlnet/
    β”œβ”€β”€ amlnet_transactions.csv                   # 5.48 MB (25,000 canonical AUSTRAC transactions)
    β”œβ”€β”€ transactions.csv                          # 5.48 MB (Primary transaction flow log)
    └── transactions.parquet                      # 900 KB (Zero-copy fast columnar cache)
└── cross_bank/
    β”œβ”€β”€ config.json                               # Multi-bank topology specification (Alpha, Beta, Gamma)
    β”œβ”€β”€ results.json                              # Full empirical benchmark metrics (PR-AUC, F1, latency)
    β”œβ”€β”€ metrics.csv                               # Tabular client-by-client performance breakdown
    β”œβ”€β”€ report.md                                 # Full empirical research report with LaTeX formulas
    └── plots/                                    # Comparative PR curves and cross-bank topology graphs
```

---

## 3. Authoritative Dataset Cards (8 Primary Benchmarks)

### 3.1 PaySim Mobile Money Fraud (`paysim`)

#### 3.1.1 Provenance, Citation & Licensing
- **Dataset Title**: PaySim: A Financial Mobile Money Simulator for Fraud Detection
- **Authors**: Edgar Lopez-Rojas, Ahmad Elmir, and Stefan Axelsson (Blekinge Institute of Technology)
- **Publication**: IEEE 28th International Conference on Tools with Artificial Intelligence (ICTAI), 2016
- **Distribution Source**: Kaggle (`ealaxi/paysim1`)
- **Copyright & License**: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
- **Designation**: Synthetic Agent-Based Mobile Money Simulation (empirically calibrated against 1 month of anonymized financial logs from an African mobile money service operator, M-Pesa Kenya topology)

#### 3.1.2 Scale & Class Balance Profile
- **Total Transactions**: $N = 6{,}362{,}620$ payment events (470.7 MB CSV on disk)
- **Fraudulent Transactions**: $N_{\mathrm{fraud}} = 8{,}213$ confirmed illicit transactions
- **Legitimate Transactions**: $N_{\mathrm{legit}} = 6{,}354{,}407$ genuine transactions
- **Fraud Prevalence**: $\pi = 0.1291\%$ (Class Imbalance Ratio $\approx 774:1$)
- **Simulation Duration**: 744 hourly timesteps ($31$ simulated calendar days)

#### 3.1.3 Feature Architecture & Transformations
- **Canonical Feature Pipeline (13 Features)**:
  1. `step`: Integer hour of simulation ($1 \le t \le 744$).
  2. `type_TRANSFER`: Binary indicator for cross-account fund transfers ($y=1$ candidate).
  3. `type_CASH_OUT`: Binary indicator for cash withdrawal via agent ($y=1$ candidate).
  4. `type_PAYMENT`: Binary indicator for merchant retail purchases ($y=0$ strictly).
  5. `type_DEBIT`: Binary indicator for core banking debit transfers ($y=0$ strictly).
  6. `type_CASH_IN`: Binary indicator for cash deposit via agent ($y=0$ strictly).
  7. `amount`: Transacted currency value.
  8. `oldbalanceOrg`: Originator account balance prior to transaction.
  9. `newbalanceOrig`: Originator balance post-transaction (typically zeroed in fraud).
  10. `oldbalanceDest`: Recipient account balance prior to transaction.
  11. `newbalanceDest`: Recipient balance post-transaction.
  12. `errorBalanceOrig`: Sender accounting discrepancy delta:

$$\Delta \mathrm{bal}_{\mathrm{orig}} = \mathrm{newbalanceOrig} + \mathrm{amount} - \mathrm{oldbalanceOrg}$$

  13. `errorBalanceDest`: Recipient accounting discrepancy delta:

$$\Delta \mathrm{bal}_{\mathrm{dest}} = \mathrm{oldbalanceDest} + \mathrm{amount} - \mathrm{newbalanceDest}$$

#### 3.1.4 Data Hygiene, Biases & Limitations
- **Selective Fraud Typologies**: Fraud occurs strictly within `TRANSFER` and `CASH_OUT` transaction types; zero fraud cases exist in `PAYMENT`, `CASH_IN`, or `DEBIT`. Models trained without type filtering may learn trivial shortcut heuristics.
- **Absence of Real PII**: No protected or special-category demographic attributes (0/10) are present in the evaluated public datasets (relevant to GDPR Article 9 and ECOA Regulation B exclusions).
- **Deterministic Evasion**: Synthetic fraudsters execute simple double-step asset drain attacks without sophisticated multi-hop laundering chains.

---

### 3.2 IEEE-CIS E-Commerce Fraud Detection (`ieee_cis`)

#### 3.2.1 Provenance, Citation & Licensing
- **Dataset Title**: IEEE-CIS Fraud Detection Benchmark
- **Authors**: IEEE Computational Intelligence Society (IEEE-CIS) & Vesta Corporation
- **Publication**: Kaggle Competition Benchmark, 2019
- **Distribution Source**: Kaggle (`ieee-fraud-detection`)
- **Copyright & License**: Vesta Corporation Competition Dataset License (authorized for academic, scientific, and open-source benchmark evaluation)
- **Designation**: Real Production E-Commerce Card-Not-Present (CNP) Transactions

#### 3.2.2 Scale & Class Balance Profile
- **Total Transactions**: $N = 590{,}540$ training transactions + $144{,}233$ identity metadata records (~1.29 GB raw disk footprint)
- **Fraudulent Transactions**: $N_{\mathrm{fraud}} = 20{,}663$ confirmed chargeback fraud events
- **Legitimate Transactions**: $N_{\mathrm{legit}} = 569{,}877$ genuine purchases
- **Fraud Prevalence**: $\pi = 3.4989\%$ (Class Imbalance Ratio $\approx 28:1$)
- **Temporal Horizon**: Elapsed seconds across 182 calendar days ($t \in [86{,}400, 15{,}811{,}131]$ seconds)

#### 3.2.3 Feature Architecture & Identity Join
- `train_transaction.csv` (394 attributes): Transaction amount, product code (`ProductCD`), card metadata (`card1`–`card6`), address codes (`addr1`–`addr2`), email domains, count features (`C1`–`C14`), timedeltas (`D1`–`D15`), match flags (`M1`–`M9`), and Vesta risk indicators (`V1`–`V339`).
- `train_identity.csv` (41 attributes): Identity verification metadata (`id_01`–`id_38`), `DeviceType`, and `DeviceInfo`.
- **Left Join**: Merged along `TransactionID` ($144{,}233$ transactions with identity metadata, ~24.4% join rate; transactions without identity records receive `has_identity = 0.0` and imputed indicators).

#### 3.2.4 Data Hygiene, Biases & Limitations
- **High Missingness**: Over 200 features exhibit $>50\%$ missing values (especially identity features and V-features). Demands explicit missingness indicator encoding rather than mean imputation.
- **Obfuscated Semantics**: Proprietary V-features ($V_1 \dots V_{339}$) mask engineering logic, limiting direct human-in-the-loop interpretability without SHAP attribution.
- **Device Fingerprint Churn**: Operating system and browser versions undergo rapid natural obsolescence over the 182-day period.

---

### 3.3 European Credit Card Fraud (`credit_card`)

#### 3.3.1 Provenance, Citation & Licensing
- **Dataset Title**: Credit Card Fraud Detection (European Cardholders)
- **Authors**: Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson, and Gianluca Bontempi
- **Publication**: *Calibrating Probability with Undersampling for Unbalanced Classification*, IEEE SSCI, 2015
- **Research Institution**: Machine Learning Group (MLG), UniversitΓ© Libre de Bruxelles (ULB)
- **Distribution Source**: Kaggle (`mlg-ulb/creditcardfraud`)
- **Copyright & License**: Open Database License (ODbL) v1.0
- **Designation**: Real Anonymized Consumer Credit Card Transactions

#### 3.3.2 Scale & Class Balance Profile
- **Total Transactions**: $N = 284{,}807$ card transactions over 48 hours in September 2013 (143.8 MB CSV)
- **Fraudulent Transactions**: $N_{\mathrm{fraud}} = 492$ confirmed chargeback frauds
- **Legitimate Transactions**: $N_{\mathrm{legit}} = 284{,}315$ genuine operations
- **Fraud Prevalence**: $\pi = 0.1727\%$ (Class Imbalance Ratio $\approx 578:1$)
- **Temporal Horizon**: Elapsed seconds $t \in [0, 172{,}792]$ seconds (spanning exactly 2 calendar days)

#### 3.3.3 Dimensionality & Mathematical Schema
- **Confidential PCA Components ($d = 28$)**: `V1` through `V28` represent orthogonal linear projections from raw cardholder features, engineered by the issuing bank to protect customer privacy and commercial secrets.
- **Un-transformed Columns ($d = 2$)**: `Time` (seconds from initial transaction) and `Amount` (EUR currency value, $\mu = 88.35\text{ EUR}$, $\max = 25{,}691.16\text{ EUR}$, heavily right-skewed).
- **Target Label**: `Class` $\in \{0, 1\}$.

#### 3.3.4 Data Hygiene, Biases & Limitations
- **Short Observation Horizon**: The 48-hour window lacks multi-month cyclical seasonality, macroeconomic shifts, or evolving adversary tactics.
- **Semantic Opacity**: Orthonormal PCA transformation eliminates natural domain semantics (e.g. merchant category, geographic corridor).
- **Zero Demographic PII**: Anonymization mathematically guarantees zero leakage of protected personal attributes (0/10 attributes present).

---

### 3.4 Elliptic Bitcoin Transaction Graph (`elliptic`)

#### 3.4.1 Provenance, Citation & Licensing
- **Dataset Title**: Elliptic Bitcoin Anti-Money Laundering Graph Dataset
- **Authors**: Mark Weber, Domenic Puzis, Jie Chen, Dylan E. Cook, Prasanna Sattigeri, and Toyotaro Suzumura
- **Publication**: *Anti-Money Laundering in Bitcoin: Experimenting with Graph Convolutional Networks for Financial Forensics*, ACM SIGKDD Workshop on AI in Finance, 2019
- **Research Institutions**: MIT-IBM Watson AI Lab & Elliptic
- **Distribution Source**: Kaggle (`ellipticco/elliptic-data-set`)
- **Copyright & License**: Creative Commons Attribution 4.0 International (CC BY 4.0)
- **Designation**: Real Public Bitcoin Blockchain Directed Acyclic Transaction Flow Graph

#### 3.4.2 Scale & Class Balance Profile
- **Graph Topology**: $N = 203{,}769$ transaction nodes and $E = 234{,}355$ directed payment edges across 49 discrete timesteps (~665 MB disk footprint)
- **Illicit Entities (`class=1`)**: $N_{\mathrm{illicit}} = 4{,}545$ confirmed malicious transactions (ransomware, darknet markets, sanctioned entities, mixers)
- **Licit Entities (`class=2`)**: $N_{\mathrm{licit}} = 42{,}019$ confirmed lawful transactions (regulated exchanges, miners, merchants)
- **Unlabeled Background (`class=unknown`)**: $N_{\mathrm{unknown}} = 157{,}205$ unclassified blockchain transactions ($77.15\%$ of total nodes)
- **Labeled Cohort Balance**: $\pi = 9.762\%$ illicit prevalence within the $46{,}564$ ground-truth labeled cohort ($1:9$ ratio)

#### 3.4.3 Topological Properties & Discrete Timesteps
- **Intra-Timestep DAG Invariant**: Every edge connects transactions within the exact same two-week timestep window:

$$\forall (u, v) \in \mathcal{E}, \quad \mathrm{timestep}(u) = \mathrm{timestep}(v)$$

- The entire dataset consists of 49 completely disjoint directed acyclic subgraphs with zero cross-timestep edges.
- **Node Feature Schema ($d = 166$)**:
  - `timestep`: Integer index ($1 \le t \le 49$).
  - `feat_0`–`feat_93` (94 features): Local transaction features (amount, fees, script types).
  - `feat_94`–`feat_164` (72 features): Aggregated 1-hop neighborhood features (mean, std, min, max degrees and volumes across predecessor/successor nodes).

#### 3.4.4 Data Hygiene, Biases & Limitations
- **High Background Ratio**: 77.15% of nodes have unknown labels, demanding semi-supervised message passing with masked cross-entropy loss.
- **Exogenous Policy Shocks**: Major darknet marketplace takedowns around timestep 43 (AlphaBay/Hansa) cause sharp concept drift, reducing illicit prevalence from $11.58\%$ ($t \le 34$) to $6.50\%$ ($t > 34$).
- **Off-Chain Blindness**: Does not capture centralized off-chain internal transfers within custodial exchanges.

---

### 3.5 IBM Research AMLSim (`amlsim`)

#### 3.5.1 Provenance, Citation & Licensing
- **Dataset Title**: IBM AMLSim: Multi-Agent Anti-Money Laundering Graph Simulator
- **Authors**: IBM Research AI (Mark Weber et al.)
- **Distribution Source**: Kaggle (`anshankul/ibm-amlsim-example-dataset`) / GitHub (`IBM/AMLSim`)
- **Copyright & License**: Apache License 2.0
- **Designation**: Synthetic Multi-Agent Banking Network Graph Simulator

#### 3.5.2 Scale & Class Balance Profile
- **Graph Topology**: $10{,}000$ account nodes, $1{,}323{,}234$ directed transaction edges, and $1{,}719$ SAR alert ground-truth labels across 15 timesteps (~72.8 MB disk footprint)
- **Typology Breakdown**:
  - `cycle`: 936 alert instances (circular fund routing $A \to B \to C \to A$ to disguise provenance)
  - `fan_in`: 783 alert instances (structuring/smurfing with multiple senders funneling into a consolidation account)
- **Alert Rate**: $0.1299\%$ overall alert prevalence ($1{,}719 / 1{,}323{,}234$)

#### 3.5.3 Relational Schema & Feature Pipeline
- `accounts.csv` (10,000 accounts): Account IDs, initial balances, and account types.
- `alerts.csv` (1,719 alerts): Ground-truth SAR alert identifiers, typology names (`cycle`, `fan_in`), and scheduling timestamps.
- `transactions.csv` (1,323,234 transactions): Sender (`orig`), receiver (`dest`), `amount`, `step`, and dynamic pre/post balance deltas.

#### 3.5.4 Data Hygiene, Biases & Limitations
- **Rigid Geometric Typologies**: Laundering structures follow exact predefined graph templates (cycles, fan-in), which may underestimate adversary evasion in real banking rails.
- **Absence of Real Personal Identities**: Entirely synthetic agents (0/10 protected demographic attributes).
- **Homogeneous Balance Dynamics**: Initial balances follow synthetic Gaussian distributions without real-world wealth disparities.

---

### 3.6 SynthAML Danish Commercial AML (`synthaml`)

#### 3.6.1 Provenance, Citation & Licensing
- **Dataset Title**: A Synthetic Data Set to Benchmark Anti-Money Laundering Methods
- **Authors**: Martin V. Jensen, Christian S. MΓΈller, Andreas B. Simonsen, and Thomas D. Nielsen
- **Publication**: Nature Scientific Data 10, 715 (2023), DOI: `10.1038/s41597-023-02569-2`
- **Research Institutions**: Aarhus University & Spar Nord Bank (Denmark)
- **Distribution Source**: Figshare / Nature Scientific Data Archive
- **Copyright & License**: Creative Commons Attribution 4.0 International (CC BY 4.0)
- **Designation**: Real-Topology Synthetic AML Benchmark (generated via SDV Gaussian Copula and CTGAN models trained directly on proprietary Spar Nord Bank commercial customer accounts and empirical AML alert outcomes)

#### 3.6.2 Scale & Class Balance Profile
- **Full Dataset**: $20{,}000$ investigated AML alerts across $16{,}000{,}000$ underlying transactions
- **Platform Local Benchmark**: $5{,}000$ investigated alerts with $92{,}261$ lookback transactions spanning 7-to-90-day observation windows (~10.4 MB disk footprint)
- **SAR Positive Alerts**: $N_{\mathrm{sar}} = 425$ true positive regulatory filings
- **Dismissed False Alarms**: $N_{\mathrm{dismissed}} = 4{,}575$ genuine compliance false positives
- **Alert Escalation Prevalence**: $\pi = 8.500\%$ (Class Imbalance Ratio $\approx 11:1$)

#### 3.6.3 Canonical 14 Lookback Aggregated Feature Architecture
1. `n_transactions`: Total transactions within the observation window.
2. `credit_ratio`: Proportion of credit transactions relative to total volume.
3. `card_ratio`: Point-of-sale card payment fraction.
4. `cash_ratio`: Physical cash deposit/withdrawal intensity (structuring flag).
5. `international_ratio`: Cross-border international remittance fraction.
6. `wire_ratio`: Domestic wire transfer fraction.
7. `size_mean`: Sample mean of log-standardized transaction magnitudes.
8. `size_max`: Maximum transaction size in window.
9. `size_std`: Sample standard deviation of transaction sizes (volatility).
10. `total_credit_volume`: Aggregate inbound currency.
11. `total_debit_volume`: Aggregate outbound currency.
12. `net_flow`: Directional liquidity delta ($\mathrm{credit} - \mathrm{debit}$).
13. `window_days`: Duration of observation window ($7 \le \Delta t \le 90$).
14. `tx_frequency_per_day`: Daily transaction velocity ($N_{\mathrm{tx}} / \Delta t_{\mathrm{window}}$).

#### 3.6.4 Data Hygiene, Biases & Limitations
- **Investigation Filter Conditioning**: Ingested data consists solely of transactions that already triggered bank monitoring rules; un-flagged transactions are not included.
- **Generative Copula Smoothing**: Synthetic generation via CTGAN/SDV slightly attenuates extreme tail correlations compared to raw Danish banking logs.
- **Currency & Regional Focus**: Scaled to Danish Krone (DKK) banking operations and European SEPA payment rails.

---

### 3.7 AMLNet Australian AUSTRAC AML (`amlnet`)

#### 3.7.1 Provenance, Citation & Licensing
- **Dataset Title**: AMLNet: A Knowledge-Guided Synthetic Benchmark for Machine Learning in AML
- **Authors**: Sabin Huda, Jun Shen, et al.
- **Research Institution**: School of Information and Communication Technology, Griffith University, Australia
- **Archive / DOI**: Zenodo DOI: `10.5281/zenodo.10058474`
- **Copyright & License**: Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
- **Designation**: AUSTRAC Knowledge-Guided Multi-Agent Synthetic AML Benchmark

#### 3.7.2 Scale & Class Balance Profile
- **Full Scale**: $1{,}090{,}000$ transactions across 195 simulated calendar days
- **Platform Local Benchmark**: $25{,}000$ canonical AUSTRAC transactions (~6.4 MB disk footprint)
- **Rare-Event Laundering Prevalence**: $\pi = 0.1400\%$ in full scale ($1{,}526$ suspicious money laundering transactions out of $1.09\text{M}$, a $\approx 714:1$ negative-to-positive class imbalance)
- **Regulatory Framework**: Australian AML/CTF Act 2006 statutory smurfing reporting threshold ($10{,}000\text{ AUD}$)

#### 3.7.3 Canonical Feature Architecture (18 Features)
1. `amount`: Currency value in Australian Dollars.
2. `log_amount`: Log-scaled amount ($\ln(1 + \mathrm{amount})$).
3. `oldbalanceOrg`: Originator pre-transaction balance.
4. `newbalanceOrig`: Originator post-transaction balance.
5. `balance_orig_delta`: Originator balance mismatch delta.
6. `balance_orig_ratio`: Balance depletion fraction (amount / (bal + 1)).
7. `hour`: Hour of transaction ($0 \le h \le 23$).
8. `day_of_week`: Day of week ($0 \le d \le 6$).
9. `type_TRANSFER`: Indicator for electronic fund transfers.
10. `type_OSKO`: Indicator for Australian instant OSKO transfers.
11. `type_BPAY`: Indicator for BPAY bill payments.
12. `type_EFTPOS`: Indicator for card point-of-sale transactions.
13. `type_DEBIT`: Indicator for direct debits.
14. `type_NPP`: Indicator for New Payments Platform real-time transfers.
15. `is_near_reporting_threshold`: Binary indicator flagging smurfing just under the statutory threshold:

$$\mathbb{I}_{\mathrm{structuring}} = \mathbb{I}(8{,}500 \le \mathrm{amount} < 10{,}000)$$

16. `category_high_risk`: Binary indicator for high-risk economic categories (Cryptocurrency, Shell Company, Luxury Goods, Gambling, Investment).
17. `is_night_txn`: Unusual nocturnal transaction indicator ($\mathrm{hour} < 5 \lor \mathrm{hour} > 22$).
18. `is_weekend_txn`: Weekend transaction indicator (`day_of_week` $\ge 5$).

#### 3.7.4 Data Hygiene, Biases & Limitations
- **Non-Commercial License Restriction**: CC BY-NC 4.0 permits research, academic benchmarking, and evaluation but prohibits commercial exploitation without separate licensing.
- **Threshold Boundary Artifacts**: Structuring activities are concentrated heavily in the $8{,}500\text{--}9{,}950\text{ AUD}$ window, which models can overfit if not evaluated against smooth boundary variations.
- **Regional Rail Specificity**: Payment channels (`OSKO`, `BPAY`, `NPP`) are specific to Australian banking infrastructure.

---

### 3.8 CFI-CrossBank-01 Flagship Consortium Benchmark (`cross_bank`)

#### 3.8.1 Provenance, Citation & Licensing
- **Dataset Title**: CFI-CrossBank-01 Flagship Consortium Multi-Bank Fraud Benchmark
- **Authors**: CF-Intelligence Research & Engineering Consortium
- **Publication**: Collaborative Financial Intelligence Empirical Benchmark Series, 2026
- **Distribution Source**: Internal Consortium Repository (`experiments/cross_bank`)
- **Copyright & License**: Proprietary Research License (CF-Intelligence Open Governance Framework)
- **Designation**: Synthetic Real-Topology Multi-Bank Collaborative Benchmark across 3 Heterogeneous Bank Tiers

#### 3.8.2 Scale & Class Balance Profile
- **Total Transactions**: $N = 150{,}000$ cross-institution transactions across 3 heterogeneous bank tiers
- **Fraudulent Transactions**: $N_{\mathrm{fraud}} = 2{,}745$ confirmed multi-bank fraud events
- **Legitimate Transactions**: $N_{\mathrm{legit}} = 147{,}255$ genuine commercial and retail transactions
- **Fraud Prevalence**: $\pi = 1.8300\%$ (Class Imbalance Ratio $\approx 54.6:1$)
- **Institutional Topology**:
  - **Bank Alpha (Tier 1 Retail Megabank)**: $75{,}000$ transactions, $1{,}350$ fraud cases ($1.80\%$), baseline local PR-AUC: $0.5050$
  - **Bank Beta (Tier 2 Commercial/Corporate)**: $45{,}000$ transactions, $855$ fraud cases ($1.90\%$), baseline local PR-AUC: $0.4439$
  - **Bank Gamma (Tier 3 Private & Wealth)**: $30{,}000$ transactions, $540$ fraud cases ($1.80\%$), baseline local PR-AUC: $0.3855$

#### 3.8.3 Typologies & Collaborative Detection Advantage
- **Cross-Bank Fraud Typologies**: Circular layering across institutions (smurfing/fan-out $\to$ intermediate mules $\to$ rapid exit gather), split-deposit velocity bursts, and cross-border settlement loops.
- **Collaborative GNN Gain**: Local silo PR-AUC average of $0.4448$ increases to $\mathbf{0.8267}$ under Federated Relational GNN, delivering an empirical gain of $+0.3819$ ($+85.8\%$ relative lift).

#### 3.8.4 Data Hygiene, Biases & Limitations
- **Strict Privacy Invariant**: 0/10 protected demographic attributes. Zero raw PII across institutions. Entity identifiers pseudonymized with type-salted HMAC-SHA256.
- **Simulated Cross-Bank Rails**: While calibrated against real inter-bank clearing flows (ISO 20022 `pacs.008`), edge topologies are generated by deterministic multi-agent orchestration.

---

## 4. Cross-Dataset Comparison & Federated Suitability

| Dimension | PaySim | IEEE-CIS | Credit Card | Elliptic | IBM AMLSim | SynthAML | AMLNet | CFI-CrossBank-01 |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| **Primary Risk Type** | Asset Drain Fraud | CNP Payment Fraud | Counterfeit Card | Bitcoin Laundering | Smurfing & Cycles | Compliance SAR | TTR Structuring | Consortium Multi-Hop |
| **Data Topology** | Tabular / Account IDs | Tabular + Identity | Tabular (PCA) | Directed Graph (DAG) | Directed Multigraph | Relational Lookback | Tabular + Rails | Heterogeneous Multi-Bank Graph |
| **Temporal Granularity** | 1 Hour | Elapsed Seconds | Elapsed Seconds | 2-Week Windows | Simulation Steps | Daily Windows | Hourly Timesteps | Chronological Rounds |
| **Total Features** | 13 | 378 | 30 | 166 | 6 + Graph | 14 | 18 | Multi-Modal Embeddings |
| **Strict Chronological Split** | $t \le 595$ vs $t > 595$ | $t \le 145\text{d}$ vs $t > 145\text{d}$ | $t \le 38\text{h}$ vs $t > 38\text{h}$ | $t \le 34$ vs $t > 34$ | $t \le 11$ vs $t > 11$ | $t \le 80$ vs $t > 80$ | $t \le 165$ vs $t > 165$ | $t \le 70\%$ vs $t > 70\%$ |
| **FL Non-IID Dirichlet $\alpha$** | $\alpha \in [0.1, 1.0]$ | $\alpha \in [0.1, 1.0]$ | Extreme Skew Bank C | Graph Split | Multi-Bank Agents | Volume & SAR Skew | AUSTRAC Skew | 3-Tier Natural Skew |
| **Fast Parquet Cache** | `bank_*.parquet` | Parquet Cached | Parquet Cached | `elliptic_cache.parquet`| `transactions.parquet` | `alerts.parquet` | `transactions.parquet` | `metrics.csv` & JSON |

---

## 5. Zero Demographic PII Invariant & Statutory Compliance

In strict compliance with **EU GDPR Article 9**, **Equal Credit Opportunity Act (ECOA) Regulation B (12 CFR Part 1002)**, and **Federal Reserve SR 11-7**, all eight benchmark datasets have been exhaustively audited for protected personal characteristics:

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    PROTECTED DEMOGRAPHIC ATTRIBUTE SCAN INVARIANT                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ STATUTORY CATEGORY      β”‚ REGULATORY BASIS        β”‚ SCAN KEYWORDS     β”‚ STATUS (0/8)  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Age                     β”‚ ECOA Reg B 1002.2(z)    β”‚ age, dob, birth   β”‚ EXCLUDED [OK] β”‚
β”‚ Gender / Sex            β”‚ ECOA / GDPR Art 9       β”‚ gender, sex, male β”‚ EXCLUDED [OK] β”‚
β”‚ Race / Ethnicity        β”‚ ECOA / Civil Rights Act β”‚ race, ethnic      β”‚ EXCLUDED [OK] β”‚
β”‚ Religion / Creed        β”‚ GDPR Art 9 / ECOA       β”‚ religion, faith   β”‚ EXCLUDED [OK] β”‚
β”‚ Marital Status          β”‚ ECOA Reg B 1002.5(d)    β”‚ marital, spouse   β”‚ EXCLUDED [OK] β”‚
β”‚ Nationality / Origin    β”‚ ECOA / Title VI         β”‚ nationality, pass β”‚ EXCLUDED [OK] β”‚
β”‚ Sexual Orientation      β”‚ GDPR Art 9              β”‚ sexual, lgbt      β”‚ EXCLUDED [OK] β”‚
β”‚ Disability Status       β”‚ ADA / GDPR Art 9        β”‚ disability, med   β”‚ EXCLUDED [OK] β”‚
β”‚ Genetic / Biometric     β”‚ GDPR Art 9              β”‚ biometric, dna    β”‚ EXCLUDED [OK] β”‚
β”‚ Socioeconomic Status    β”‚ ECOA Reg B              β”‚ welfare, assist   β”‚ EXCLUDED [OK] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

*Audit Certification: [`benchmarks/results/raw/demographic_fairness_audit.json`](benchmarks/results/raw/demographic_fairness_audit.json)*  
*Engine: [`experiments/fairness/demographic_audit.py`](experiments/fairness/demographic_audit.py)*  
*Automated Test: [`backend/tests/unit/test_demographic_fairness_audit.py`](backend/tests/unit/test_demographic_fairness_audit.py) (10 tests, 100% passing)*

---

## 6. Automated Acquisition & CLI Download Protocol

If raw benchmark datasets require re-acquisition in clean developer or CI runner environments, execute the automated acquisition CLI (`scripts/download_real_benchmarks.py`) or native Kaggle CLI commands:

```bash
# 1. Download all datasets via master script
python scripts/download_real_benchmarks.py --all

# 2. Download specific benchmarks individually
python scripts/download_real_benchmarks.py --dataset synthaml
python scripts/download_real_benchmarks.py --dataset amlnet
python scripts/download_real_benchmarks.py --dataset paysim

# 3. Direct Kaggle API CLI commands (requires ~/.kaggle/kaggle.json)
kaggle datasets download -d ealaxi/paysim1 -p backend/storage/datasets/paysim --unzip
kaggle competitions download -c ieee-fraud-detection -p backend/storage/datasets/ieee_cis
kaggle datasets download -d mlg-ulb/creditcardfraud -p backend/storage/datasets/creditcard --unzip
kaggle datasets download -d ellipticco/elliptic-data-set -p backend/storage/datasets/elliptic --unzip
kaggle datasets download -d anshankul/ibm-amlsim-example-dataset -p backend/storage/datasets/amlsim --unzip
```

---

## 7. Verification Test Suites

Dataset integrity, zero lookahead leakage, schema conformance, and zero-mock error guards are verified across **86 dedicated data tests**:
- [`backend/tests/unit/test_dataset_cards.py`](backend/tests/unit/test_dataset_cards.py): Authoritative dataset card formalization, licensing conformance, class balance validation, and cross-reference integrity (**8 tests, 100% passing**).
- [`backend/tests/unit/test_real_dataloaders.py`](backend/tests/unit/test_real_dataloaders.py): Ingestion integrity for all 7 benchmark datasets, PyG/NetworkX graph exports, and zero-mock error guards (**13 tests, 100% passing**).
- [`backend/tests/unit/test_flagship_cross_bank_experiment.py`](backend/tests/unit/test_flagship_cross_bank_experiment.py): CFI-CrossBank-01 3-tier topology generation, circular multi-hop validation, and collaborative GNN baseline (**10 tests, 100% passing**).
- [`backend/tests/unit/test_paysim_loader.py`](backend/tests/unit/test_paysim_loader.py): PaySim loading, 13-feature engineering, accounting balance deltas, and zero temporal leakage (**8 tests, 100% passing**).
- [`backend/tests/unit/test_creditcard_loader.py`](backend/tests/unit/test_creditcard_loader.py): Credit Card loader, PCA feature scaling, and fixed-FPR threshold validation (**9 tests, 100% passing**).
- [`backend/tests/unit/test_synthaml_loader.py`](backend/tests/unit/test_synthaml_loader.py): SynthAML 14 lookback features, alert schema adherence, Parquet caching, and temporal splitting (**8 tests, 100% passing**).
- [`backend/tests/unit/test_amlnet_loader.py`](backend/tests/unit/test_amlnet_loader.py): AMLNet 18-feature engineering pipeline, structuring indicators, and Parquet caching (**9 tests, 100% passing**).
- [`backend/tests/unit/test_demographic_fairness_audit.py`](backend/tests/unit/test_demographic_fairness_audit.py): 8-dataset demographic attribute scan confirming 0/10 protected attributes (**10 tests, 100% passing**).
- [`backend/tests/unit/test_split_isolation.py`](backend/tests/unit/test_split_isolation.py): Zero data snooping, training-only preprocessor fitting, and handling of unseen categorical test tokens (**7 tests, 100% passing**).
- [`backend/tests/unit/test_feature_leakage.py`](backend/tests/unit/test_feature_leakage.py): Target proxy correlation audits, outcome feature detection, and entity memorization elimination (**6 tests, 100% passing**).
- [`backend/tests/unit/test_ci_smoke_gates.py`](backend/tests/unit/test_ci_smoke_gates.py): Gate A dataset-independent smoke gates using schema fixtures (**10 tests, 100% passing**).
- [`backend/tests/unit/test_dataset_provenance_and_smoke_contracts.py`](backend/tests/unit/test_dataset_provenance_and_smoke_contracts.py): Fail-closed contracts, empty directory defenses, and provenance verification (**7 tests, 100% passing**).
- [`backend/tests/integration/datasets/test_real_dataset_integration.py`](backend/tests/integration/datasets/test_real_dataset_integration.py): Gate B physical real-dataset integration tests covering all 7 benchmarks (**7 tests, 100% passing**).

---

## 8. Continuous Integration & Real-Data Gating Architecture (Gates A & B)

To ensure reliable, deterministic CI without brittle external network dependencies or multi-gigabyte data transfers while preserving rigorous empirical testing on real data, the platform implements a strict dual-gate testing architecture:

### 8.1 Dual-Gate Architecture

1. **Gate A: Standard CI Smoke Gates (Dataset-Independent)**
   - **Scope**: Runs on every pull request and push to `main` without requiring external multi-gigabyte downloads.
   - **Mechanism**: Exercises production data loaders against schema-valid deterministic fixtures created in temporary directories (`backend/tests/fixtures/dataloader_smoke_fixtures.py`).
   - **Verification**: Verifies loader importability, configuration, schema validation, parsing algorithms, and fail-closed behavior without needing Kaggle credentials.
   - **Execution Command**:
     ```bash
     cd backend && pytest tests/unit/test_ci_smoke_gates.py -v
     ```

2. **Gate B: Real-Data Integration Suite (`@pytest.mark.real_data`)**
   - **Scope**: Exercises authentic physical files on disk across all 7 benchmark datasets (`paysim`, `ieee_cis`, `creditcard`, `elliptic`, `amlsim`, `synthaml`, `amlnet`).
   - **Mechanism**: Dedicated suite in `backend/tests/integration/datasets/test_real_dataset_integration.py`.
   - **Gating**: Marked with `@pytest.mark.real_data`. Skipped by default in standard CI.
   - **Mandatory Enforcement**: When invoked with `--require-real-data`, missing dataset files cause an immediate **test failure** (`pytest.fail`), never a silent skip or synthetic fallback.
   - **Execution Commands**:
     ```bash
     # Run all real-data integration tests (fails closed if files are missing):
     cd backend && pytest tests/integration/datasets/ -v --require-real-data

     # Include real data tests if present (skips if absent):
     cd backend && pytest tests/integration/datasets/ -v --include-real-data
     ```

### 8.2 Provenance Taxonomy

The repository strictly differentiates dataset origins and integrity levels:

| Provenance Level | Description | Benchmark Datasets |
|:---|:---|:---|
| `EMPIRICAL_EXTERNAL_DATA` | Real observations from authentic commercial payment logs or public blockchain DAGs. | `ieee_cis`, `creditcard`, `elliptic` |
| `PUBLIC_SIMULATED_DATASET` | Public agent-based simulations published with physical source files and published baseline distributions. | `paysim`, `amlsim` |
| `CONTROLLED_PROJECT_SYNTHETIC` | Reproducible benchmark datasets generated via domain-specific statistical models or academic methodology. | `synthaml`, `amlnet`, `cross_bank` |
| `TEST_FIXTURE` | Minimal in-process deterministic schema fixtures for unit testing and CI smoke gates (`is_synthetic=True`). | Generated in `dataloader_smoke_fixtures.py` |

### 8.3 Provisioning Matrix & CI Reality

| Dataset ID | Authoritative Source | Required Files & Format | Storage Location | Acquisition Method | Auth & License Requirements | Standard CI | Real-Data CI Gate | Local Execution |
|:---|:---|:---|:---|:---|:---|:---:|:---:|:---|
| **`paysim`** | Kaggle `ealaxi/paysim1` | `PS_20174392719_1491204439457_log.csv` (CSV) | `backend/storage/datasets/paysim/` | Kaggle API / CLI | Kaggle API Key; CC BY-SA 4.0 | Schema Fixture | Provisions via Kaggle API | Real file on disk |
| **`ieee_cis`** | Kaggle `c/ieee-fraud-detection` | `train_transaction.csv`, `train_identity.csv` (CSV) | `backend/storage/datasets/ieee_cis/` | Kaggle Competition CLI | Kaggle API Key + Competition Rules Acceptance | Schema Fixture | Requires Kaggle credentials & rules acceptance | Real file on disk |
| **`creditcard`** | Kaggle `mlg-ulb/creditcardfraud` | `creditcard.csv` (CSV) | `backend/storage/datasets/creditcard/` | Kaggle API / CLI | Kaggle API Key; ODbL 1.0 | Schema Fixture | Provisions via Kaggle API | Real file on disk |
| **`elliptic`** | Kaggle `ellipticco/elliptic-data-set` | `elliptic_txs_features.csv`, `elliptic_txs_classes.csv`, `elliptic_txs_edgelist.csv` (CSV) | `backend/storage/datasets/elliptic/` | Kaggle API / CLI | Kaggle API Key; CC BY 4.0 | Schema Fixture | Provisions via Kaggle API | Real file on disk |
| **`amlsim`** | Kaggle `anshankul/ibm-amlsim-example-dataset` | `transactions.csv`, `accounts.csv`, `alerts.csv` (CSV) | `backend/storage/datasets/amlsim/` | Kaggle API / CLI | Kaggle API Key; Apache 2.0 | Schema Fixture | Provisions via Kaggle API | Real file on disk |
| **`synthaml`** | Figshare / Nature Sci Data DOI: `10.1038/s41597-023-02569-2` | `alerts.csv`, `transactions.csv` (CSV/Parquet) | `backend/storage/datasets/synthaml/` | Direct Download / `generate_synthaml_dataset.py` | Open Access; CC BY 4.0 | Schema Fixture | Local cache / Generator script | Real file on disk |
| **`amlnet`** | Zenodo DOI: `10.5281/zenodo.10058474` | `transactions.csv` (CSV/Parquet) | `backend/storage/datasets/amlnet/` | Direct Download / `generate_amlnet_dataset.py` | Open Access; CC BY-NC 4.0 | Schema Fixture | Local cache / Generator script | Real file on disk |

### 8.4 Automated Provisioning Workflow

The standalone GitHub Actions workflow `.github/workflows/real_data_integration.yml` provides a secure, gated pipeline for real-data integration:
- Triggered manually via `workflow_dispatch` or on a weekly schedule.
- Uses repository secrets `KAGGLE_USERNAME` and `KAGGLE_KEY`.
- Executes `python scripts/download_real_benchmarks.py --dataset all`.
- Fails closed if physical datasets cannot be provisioned when mandatory execution is requested.