Skip to content

Transaction Model: Normal Behavior Model

hkanezashi edited this page Nov 12, 2019 · 10 revisions

Here is a description of normal account transaction behavior models. Suspicious behavior models (AML typologies) are described here.

Implementations

The Java implementation of all normal transaction typologies (models) is in the src/amlsim/model/normal/ directory (amlsim.model.normal package) except the Java file (src/amlsim/model/AbstractTransactionModel.java) of base class (AbstractTransactionModel).

  • AbstractTransactionModel.java: The base class of all transaction models (including AML typology classes)
  • SingleTransactionModel.java: single transaction (single account sends money to another account)
  • FanOutTransactionModel.java: fan-out (single account distributes money to several accounts)
  • FanInTransactionModel.java: fan-in (single account receives money from several accounts)
  • MutualTransactionModel.java: bipartite (some accounts sends money to other accounts)
  • ForwardTransactionModel.java: stacked bipartite
  • PeriodicalTransactionModel.java: periodical transactions (single account repeatedly sends money to another account periodically)

1. Single Transaction

Implementation: SingleTransactionModel.java

  • An account sends a transaction to another account in his/her neighborhood that is currently selected in a random way.
    • Example: Purchase of living goods, regular rent payments, other expensive merchandises such as cars
    • The originator or beneficiary can be an individual (typed "I") or a business account (typed "B").
  • The account initially has a certain amount of money in its account called "INIT_BALANCE" (e.g.$1000) - which is determined by the initial stage of the simulator. Initial amounts are determined in a random way between specified amounts in the parameter file located at a file named "prop.ini" under the top directory of AMLSim.
single

TODO: We will update this model to answer the following questions as the future work.

  • In the case of individual persons, people buy living goods every day with a debit card or credit card, send a living cost to their family with WIRE transaction on a monthly basis. There should be recurring behaviors.
  • In the case of business accounts, the amount should be larger than individual accounts. In the case of car dealers, they buy used cars and re-sell them. In that case, their transaction amount is larger and might be fluctuated based on their business situations.
  • In summary, each transaction amount and transaction frequency vary depending on whether it is individual or business.

2. Fan-out

Implementation: FanOutTransactionModel.java

  • A trusted account sends transactions to other accounts in his/her neighborhoods. The order of the beneficiary accounts is currently determined in a random way.
    • Example: A company distributes money to employees as the salary
    • The originator or beneficiary can be an individual (typed "I") or a business account (typed "B").
    • The amount of transactions are almost same (current balance of the originator divided by the number of neighbors).
fan_out

3. Fan-in

Implementation: FanInTransactionModel.java

  • A trusted account receives money from other accounts. The order of the originator accounts is currently determined in a random way.
    • Example 1: Citizens pay taxes or public utility charges to the government
    • Example 2: Supporters donate some money to a public organization
fan_in

4. Mutual

Implementation: MutualTransactionModel.java

  • Two accounts send transactions to each other. It is near to a cycle transaction (one of alert transaction types), but each transaction does not fit the AML rules.
    • Transaction dates may have a significant difference (e.g. one month).
    • Example: Loan or debt.
mutual

5. Forward

Implementation: ForwardTransactionModel.java

  • When a (trusted) account receives money, it sends the same amount of money to another account immediately.
forward

6. Periodical

Implementation: PeriodicalTransactionModel.java

  • An account sends (almost) same amount of money to the same account periodically (e.g. one month).
    • Ex. Allowance or salary
    • The originator and beneficiary should have close relationships such as family or co-workers.
periodical
Clone this wiki locally