Neo4J Use case in Capital Markets


Neo4j is best suited for applications having interconnected data not purely linearly connect neither purely hierarchically connected.It gives near real time traversal over data relationships to detect linkages/rings established within the data.Thus it is best suited for fraud detection application like any AML application.

Neo4J in Anti-Money-Laundering (AML)

Money laundering is the process of making illegally-gained proceeds (i.e. “dirty money”) appears legal (i.e. “clean”). Typically, it involves three steps: placement, layering and integration. First, the illegitimate funds are furtively introduced into the legitimate financial system. Then, the money is moved around to create confusion, sometimes by wiring or transferring through numerous accounts. Finally, it is integrated into the financial system through additional transactions until the “dirty money” appears “clean.

CREATE (David:Person { name: “David Matron” })

CREATE (Alice:Person { name: “Alice Nelson” })

CREATE (Jack:Person { name: “Jack Baluci” })

CREATE (DummyCompany:Company {name:”some fake company”})

 

CREATE (Chase:Bank { name: “Chase”, country:”USA” })

CREATE (CreditSuisse:Bank { name: “Credit Suisse”, country:”Switzerland”})

CREATE (HSBC:Bank { name: “HSBC”, country:”United Kindom” })

CREATE (RBC:Bank { name: “RBC Royal” , country:”Cayman Islands” })

CREATE (ADCB:Bank { name: “Abu Dhabi Commercial Bank” , country:”United Arab Emirates” })

 

CREATE (Jack)-[:Owner]->(DummyCompany)

 

CREATE (David)-[:Deposit { account_id:”P11111″, amount:8000, currency:”USD” }]->(Chase)

CREATE (David)-[:Deposit { account_id:”P22222″, amount:8000, currency:”USD” }]->(HSBC)

CREATE (Alice)-[:Deposit { account_id:”P33333″, amount:9000, currency:”USD” }]->(Chase)

CREATE (Alice)-[:Deposit { account_id:”P44444″, amount:9000, currency:”USD” }]->(HSBC)

 

CREATE (Chase)-[:Transfer { from_account:”P11111″, to_account:”B55555″, amount:8000, currency:”USD” }]->(CreditSuisse)

CREATE (Chase)-[:Transfer { from_account:”P33333″, to_account:”B66666″, amount:9000, currency:”USD” }]->(RBC)

CREATE (HSBC)-[:Transfer { from_account:”P22222″, to_account:”B55555″, amount:8000, currency:”USD” }]->(CreditSuisse)

CREATE (HSBC)-[:Transfer { from_account:”P44444″, to_account:”B66666″, amount:9000, currency:”USD” }]->(RBC)

 

CREATE (CreditSuisse)-[:Transfer { from_account:”B55555″, to_account:”C77777″, amount:8000, currency:”USD” }]->(ADCB)

CREATE (CreditSuisse)-[:Transfer { from_account:”B55555″, to_account:”C77777″, amount:9000, currency:”USD” }]->(ADCB)

CREATE (RBC)-[:Transfer { from_account:”B66666″, to_account:”C77777″, amount:8000, currency:”USD” }]->(ADCB)

CREATE (RBC)-[:Transfer { from_account:”B66666″, to_account:”C77777″, amount:9000, currency:”USD” }]->(ADCB)

 

CREATE (Jack)-[:Withdraw { account_id:”C77777″, amount:34000, currency:”USD” }]->(ADCB)

NeoAML1

Now run below query to get the account where total amount transferred is more than 10000 and to know details about transactions like who has done the transaction and how many times etc.

NeoAML2

Tabular representation for the above –

NeoAML3

There could be other scenarios as well, like consider if we know one person has criminal record and we want to track his/her activity. For example, in below case suppose we already know Alice Nelson is involved in Money Laundering activities so track her all the transactions –

NeoAML4

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s