Derivatives Transaction Reporting System
Background
The bank needed a system to meet its regulatory reporting obligations under regulations like Dodd Frank, EMIR, HKMA etc that were planned for derivatives being traded across all its regions
Implementation
DTCC GTR was decided to be used as the repository for the bank transactions. Initial requirements exercise was conducted with business users to identify the type of trades that would need reporting, types of reporting (Real Time, Snapshot, PET) that would have to be sent.
The system was designed to have multiple services that talked to each other to provide the real time reporting solution. The core reporting rules engine service had the responsibility of determining the reporting obligation. We decided to model the reporting rules in an excel spreadsheet. This provided a very readable view of how trade data was being checked against each and every reporting rule and the resultant reporting obligation. The service would extract the key trade data needed for the engine and run them through the spreadsheet rules and determine the obligations. The message generation service would look at the obligations and then do the appropriate mapping into the XML message for the Reatime, Snapshot, PET that would have to be sent to DTCC GTR to meet the actual reporting obligation. Data generated in each of the services were captured in the individual database schemas so that they could be provided to the user via the common UI.
The main products that the system was processing was : Various flavours of Interest Rate Derivates like Basis Swap, Fixed Float Swap, Fixed Fixed Swap, OIS Swap, Inflation Swap, Cross Currency Swap, Swaptions, Bond Options, FRA, Cap, Floor and Structured Trades
Main Tech Stack : Java 8, Google Guice, GRPC, REST, JPA, Hibernate, Multithreading, XML, XSD, Xpath, FpML, JSON, Mockito, Fitnesse, Maven, Jenkins, Sybase, Solace, MQ, Linux, SVN/Enterprise GitHub, Nexus Repository.
The end result was a very flexible maintainable reporting system that could be changed without much effort as new reporting rules/jurisdictions came online. We had the system supporting Dodd Frank, ESMA, HKMA, CAD and ASIC jurisdictions. The reporting rules modelled in the spreadsheet were backed with a full set of automated tests. This gave the business immense confidence when making rule changes to determine the impact of the changes to the existing reporting. The common UI was updated to provide a tree view of the reporting rules trace under each jurisdiction. The users were thus able to quickly understand why a particular trade was reported or not reported to the regulators. This achieved the bank to fulfill all its reporting obligations without any fines for incorrect data or missing deadlines.