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