# 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)