At a talk by Credit Suisse, we were surprised by the complexity of financial movements and the datasets collecting this kind of information, and inspired at the same time by the necessity of having more transparency and building analytic tools to detect potentially fraudulent behaviors in economic transactions, as these are one of the essential keys for building a safer and a fairer society for everyone during this century.
We decided to dive into a huge dataset of money movements and try to shed light into it, by building software that allows to order and visualize the data, as well as analyzing it with graph algorithms to detect fraudulent movements.
What it does
Fraud Inspector is a tool that dives for you into big economic transactions datasets containing money movements between particulars and businesses, identifying movements that could potentially be part of some economic fraud. This is done through graph analysis algorithms in C++. A web interface built with Flask (Python) allows a simple visualization of the transaction dataset that is being used, provided by Credit Suisse with MongoDB and interaction with the C++ program that analizes possible frauds, outputting the result on the browser.
How we built it
We used Flask (Python) to build the web server, which got the data from a MongoDB database by using PyMongo. We used C++ to build the graph of economic transactions and implement the algorithms which analyze it and detect suspicious behaviors.
Challenges we ran into
One of the most challenging parts of the project was to think of methods that made sense with regard to how to automatically detect and isolate fraudulent behavior. This was hard because of the fact of having to deal with a huge amount of data, which made essential to carefully think where to look at and what to look for before starting to code.
Accomplishments that we're proud of
We are proud of having obtained a functional project in just 24h of work -although there is room for lots of improvements-, with its different parts being well connected between them and working well altogether (for example, the interface between the web server and the C++ program that builds and analyses the graph).
What we learned
We learned how to develop a web server with Flask, and improved our graph analysis knowledge with C++.
What's next for Fraud Inspector
We think that there is still room for improving the visualization of data, as well as refining the algorithms that explore the graph of transactions. However, being conscious of what can be done in just 24h, we are quite happy with the result.