| # Parameter CSV files | |
| ## Files and directories | |
| ### accounts.csv | |
| Account configuration list | |
| - `count` Number of accounts | |
| - `min_balance` Minimum initial balance | |
| - `max_balance` Maximum initial balance | |
| - `country` Alpha-2 country code | |
| - `business_type` business type | |
| - `model` Account behavior model ID (See also `AbstractTransactionModel.java`) | |
| - 0: Single transactions | |
| - 1: Fan-out | |
| - 2: Fan-in | |
| - 3: Mutual | |
| - 4: Forward | |
| - 5: Periodical | |
| - `bank_id` Bank ID which these accounts belong to (optional) | |
| Raw account list | |
| - `uuid` Account ID | |
| - `seq` | |
| - `first_name` | |
| - `last_name` | |
| - `street_addr` | |
| - `city` | |
| - `state` | |
| - `zip` | |
| - `gender` | |
| - `phone_number` | |
| - `birth_date` | |
| - `ssn` | |
| ### degree.csv | |
| This CSV file has three columns with header names: `Count`, `In-degree` and `Out-degree`. | |
| Each CSV row indicates how many account vertices with certain in(out)-degrees should be generated. | |
| Here is an example of degree.csv. | |
| ``` | |
| Count,In-degree,Out-degree | |
| 0,2,2 | |
| 1,1,1 | |
| 2,2,2 | |
| ``` | |
| From this parameter file, the transaction graph generator generates a directed graph with five vertices (accounts) and five edges. | |
| Two of five vertices has no outgoing edges and two of five vertices has no incoming edges (these two vertices might be same). | |
| The transaction network generator constructs a directed graph from the degree distribution data with | |
| [Configuration Model](https://networkx.github.io/documentation/networkx-1.11/reference/generated/networkx.generators.degree_seq.directed_configuration_model.html). | |
| ### alertPatterns.csv | |
| AML typology transaction pattern parameters (CSV columns) | |
| - `count` Number of typologies (transaction sets) | |
| - `type` Name of transaction type (`fan_in`, `fan_out`, `cycle`...) as the AML typology | |
| - `schedule_id` Transaction scheduling ID of the typology | |
| - 0: All member accounts send money in order with the same interval (number of days) | |
| - 1: All member accounts send money in order with random intervals | |
| - 2: All member accounts send money randomly | |
| - `min_accounts`: Minimum number of involved accounts | |
| - `max_accounts`: Maximum number of involved accounts | |
| - `min_amount` Minimum initial transaction amount | |
| - `max_amount` Maximum initial transaction amount | |
| - `min_period` Minimum overall transaction period (number of days) | |
| - `max_period` Maximum overall transaction period (number of days) | |
| - `bank_id` Bank ID which member accounts belong to (optional: if empty, no limitation for the bank ID) | |
| - `is_sar` Whether the alert is SAR (True) or false alert (False) | |
| ### transactionType.csv | |
| This CSV file has two columns with header names: `Type` (transaction type name) | |
| and `Frequency` (relative number of transaction frequency) | |
| Here is an example of transactionType.csv. | |
| ``` | |
| Type,Frequency | |
| WIRE,5 | |
| CREDIT,10 | |
| DEPOSIT,15 | |
| CHECK,20 | |
| ``` | |
| In this case, "WIRE" transaction will appear with 10% probability (5 / (5+10+15+20) = 0.1) |