Skip to content

Transaction Model: Normal Behavior Model

Hiroki Kanezashi edited this page Oct 13, 2021 · 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 makes a transaction to one of neighboring accounts randomly only once.
    • Example: Purchase of living goods, regular rent payments, other expensive merchandises such as cars
    • The originator or beneficiary can be either individual (typed "I") or business (typed "B") account.
  • 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 randomly between specified amounts in the parameter file located at a file named "prop.ini" under the top directory of AMLSim.

normal-1-single

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

  • In the case of individual persons, people purchase 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. 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 randomly.
    • 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").
    • All transaction amounts are similar (current balance of the originator divided by the number of neighbors).

normal-2-fanout

3. Fan-in

Implementation: FanInTransactionModel.java

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

normal-3-fanin

4. Mutual

Implementation: MutualTransactionModel.java

  • Two accounts make 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.

normal-4-mutual

5. Forward

Implementation: ForwardTransactionModel.java

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

normal-5-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.

normal-6-periodical