-
Notifications
You must be signed in to change notification settings - Fork 82
Transaction Model: Alert Model
This page describes AML typologies (alert and SAR models). See this page for the definition of "alert" and "SAR".
The Java implementation of all AML typologies (suspicious transaction models) is in the src/amlsim/model/aml/
directory (amlsim.model.aml
package).
-
AMLTypology.java
: The base class of SAR transaction typologies -
FanOutTypology.java
: fan-out -
FanInTypology.java
: fan-in -
CycleTypology.java
: cycle -
BipartiteTypology.java
: bipartite -
StackTypology.java
: stacked bipartite -
RandomTypology.java
: random transactions -
ScatterGatherTypology.java
: scatter-gather (fan-out -> fan-in) -
GatherScatterTypology.java
: gather-scatter (fan-in -> fan-out)
All subclasses must have these following methods:
-
getType
: Return transaction type description -
setSchedule
: Set transaction schedules from the scheduling model ID -
makeTransactions
: Exchange money among members of the alert.
- simulation step range (start - end)
- transaction scheduling model
- simultaneous
- sequential with the fixed interval
- random
Implementation: FanOutTypology.java
A suspicious account m (the main account of the AML typology) distributes (large or rounded amount of) money to other multiple accounts a, b and c.
Implementation: FanInTypology.java
Suspicious accounts (a, b, and c) send large or rounded amount of money to the main account m.
Implementation: CycleTypology.java
The main account m sends large amount of money to one of the neighbor members a. The beneficiary account sends 90% of the received money to another neighbor. Finally, the last member d sends money to the main account m.
Implementation: BipartiteTypology.java
Some originator accounts distribute money to other multiple accounts. The common originators (m and n) and beneficiaries (a, b, and c) may have unobvious relationships
Implementation: StackTypology.java
Stacked (sequential) bipartite patterns. All transactions between the first originator accounts (m1 and m2) and the intermediate accounts (a1, a2 and a3) precede all transactions between the intermediate accounts and the last beneficiary accounts (b1 and b2).
Implementation: RandomTypology.java
Each account sends money to one of the neighboring members, and the beneficiary account sends 90% of the received money to another neighbor account. Unlike the cycle typology, the destination account is chosen randomly and the final beneficiary account is not always the main account.
Implementation: ScatterGatherTypology.java
The main account distributes money to several members, and then these accounts send most of the received money to single account.
In this example, the main originator account m distributes a large sum of money to some intermediate accounts a1, a2 and a3 (fan-out phase). Then, these intermediate accounts send 90% of the received money to the beneficiary account n (fan-in phase). Finally, each intermediate account holds $10,000 (10% of the received money) as the margin.
Implementation: GatherScatterTypology.java
Some of member accounts send money to the main account, and then the main account distributes most of the total received money to other members.
In this example, some originator accounts a1, a2 and a3 send money to the main account m (fan-in phase). The main account distributes 90% of the total received money to other beneficiary accounts b1, b2 and b3 (fan-out phase). Finally, the main account holds $30,000 (10% of the total amount of received money) as the margin.