In a high-profile banking country like Switzerland, the fluidity of money has a drawback. Freedom of money transfer means that criminals can take advantage of the system by wiring their assets to other criminal accounts. This can be damaging to CreditSuisse both financially and to their public relations.
What it does
We are trying to identify patterns of criminal activity using the data of CreditSuisse accounts using a visualization tool. The visualization tool allows you to investigate individual clients, track where their money is being sent within the world, and investigate money flow within the client's account over time. In addition, the map identifies suspicious locations that are prone to criminal activity using the Worldwide Governance Indicator. The second part of the visualization tool is based on an algorithm used to detect the Flow pattern, in which money goes between a client A and B, but is first wired through multiple 'dummy' accounts. The visualization algorithm shows the connections between client A and B and all of the accounts that are connected in between. The algorithm also detects something similar to the time pattern: When two pairs of clients repeatedly interact, and their transactions occur in multiples at the exact same time.
How we built it
We used the dash library of plotly to create a prototype dashboard so that the user can have a better view of the transactions linked to a specified user. We also created a view for flagged possible fraudulent activity.
The algorithm for the Flow pattern investigates all clients. It starts at client A (node 1), and looks at all targets of client A. (clients B-C, node 2). Then, it looks at all targets of clients B-C (client D, node 3). Then, all of the transactions TO Client D (node 3) are investigated. All of the sources that go to client D and match to targets of client A are investigated. The sum of all transactions from Client A and the sum of all transactions to client D with these common "middle-men" are calculated. If the sum of transactions from Client A and the sum of transactions to Client D are similar enough (a user-defined ratio), they are flagged as possible fraud.
The algorithm for the Time-type pattern looks for high amounts of repeated transactions between a pair of source and target. Then, it filters for transactions that occur in high amounts between the pair at the exact same time. These are flagged as possible fraud.
Challenges we ran into
One of the libraries for geolocation used latitudes and longitudes in the United States instead of mapping across the globe. So, we had to get general latitudes and longitudes for the country locations. This means that our map does not show the exact locations within the countries for transactions.
Accomplishments that we're proud of
We really like our visualization tool. We started with a conceptual understanding of fraud, and were able to interpret it into code.
What we learned
Patterns of fraud can take different forms. We learned about how to detect these patterns using algorithms, and how to build interesting visualization tools to tackle the pattern recognition.
What's next for International Fraud Detection Squad
We would like to develop better, faster algorithms for pattern detection, including detection and visualization of the Circular pattern. Interactive Visualization Fraud Detection Graph
A weighted nodes (client or company) and edges (transactions) graph customization to show: -transactions made within a certain time frame -clustering by characteristics (location, age, transaction frequency, etc) -size of nodes adjustable to money amount or flow -filters to highlight repeated transactions, cycles, or other fraud related patterns where input weighted sum is similar to the output weighted sum