One of Germany’s largest banks replaced the existing pricing kernel for their market risk system by an in-house development, using the front office pricing library. Moreover, several business processes were included leading to a more concise and simplified set-up and therefore yielded a considerably cost reduction.
Two decades ago, at time of implementation of the used pricing kernel it was cutting edge, developed by the then world leading provider for financial analytics. The bank faced now the fact that the licenses were expiring.
By now the product, model and market data spectrum grew considerably and the software could no longer to be considered to be state-of-the-art. Due to stricter regulation there were more requirements on the validation of models and processes. There was the wish to use the inhouse front office library for pricing which was already well-tested, approved and regularly validated. Using front-office pricing also guarantees the same prices in market risk management as were used in the front office trading. The delivering format for results needed to be changed to a new format such that the receiving systems could easily use the data. The idea came up to replace the buy-pricing kernel by an inhouse development. This would also save the license costs.
Role of UCG
At the beginning of this project, UCG was asked to support the analysis during the bank wide transformation. This analysis showed that the original plan could not be implemented due to shortage of ressources in various departments. Setting up a project team for a desired inhouse development was also no choice due to budget restrictions.
Together with the internal project manager and an additional full-time external our expert implemented a full-functional prototype, flexible enough for further extensions and up-scaling. After the successful proof-of-concept, the development team was extended with further internal and external ressources to up to 15 FTEs. Our expert was responsible for all valuation topics and for managing part of the external ressources including two UCG consultants. These consultants worked amongst others on the input and reporting interfaces, regression testing, security concepts, (web) user interface (using Python Django) and cloud computing (via Kubernetes and Docker).
During the testing phase, all UCG consultants worked on analysing, fixing and improving issues found and on additional requirements. Here, having a broad overview of the system together with the related business processes is a striking advantage and results in a big speed-up for the project. At the end, this made the difference and led the project to a succesful go-live.
The bank was in a transformation process. Basically, all business processes should be streamlined and simplified. Interfaces were not yet defined at the start and should be developed between the different stakeholders along the way. Therefore, an agile approach had to be taken. This requires good knowledge on general mechanisms, market conventions and typical implementation patterns.
Challenges Along the Way
Naturally there were common challenges in the implementation work. The documentation of the external old pricing kernel was not detailed enough to easily reproduce the numbers, an explicit requirement by the business and for simplifying the model change. Improvements in pricing should be (de-)activated by configuration switches.
Customer documentation of the business processes and their requirements were developing due to the general transformation process and responsibilities were not finalized. Not all products and all features could be priced with the front office library and proprietary pricing code had to be developed, implemented and tested. Moreover, the front office pricing was optimized for trading and not for speed. Some functionality had therefore to be replaced by speed-optimized proprietary code which nethertheless yielded the exact same numbers. This was necessary for avoiding the need of an additional validation. The project deadline was not extendible due to the end of support of the pricing kernel hardware which was aligned to the end of the software licences.
Given the restrictions above it was important to define milestones with deadlines and to start working on those parts which are needed in any case.
The work on the different input systems was ordered, maximizing the value-cost ratio. Possible difficulties should appear and clarified as soon as possible. Technically, an object-oriented set-up was chosen with both well-defined and general interfaces. This allowed to quickly and easily react to changing requirements by exchanging the relevant object by another version. Moreover, the system can now always be extended without redesigning other code parts. There was a switch of IT strategy, which required the code to be ported from C# to Java. The clear structure of the code helped to achieve the porting without difficulties. The code and critical data usage was designed as well for cloud and for premise server usage. The flexible design helped to dock the code to several cloud and server environment for testing and getting the optimal solution. Unit tests as well as regression tests were developed for the whole code and are required to stay failure-free for every new software build.
Documentation and Go-Life
Going life needs approval by all relevant business and IT departments as well as complete, structured and readable documentation. The documentation needs to be addressed to users, regulators and technicians. For getting approval by the banking supervisor, the results must not deviate too much from those of the previous system and dedicated explanations and impact sizes need to determined for each desired improvement separately. Having a flexible way of configuring different behaviours of the processing and calculation workflow is a big plus for this task. In the same way, having a team with competence in IT together with business helps a lot to quickly explain deviations in pricing, to decide on possible errors and to fix any issue right away.
Learnings and Outlook
The project showed that it is possible to design an inhouse solution which is cheaper and clearly outperforms the buy-solution. Agile working can considerably speed up implementation time and can react on a changing environment.
The system is currently running in a stable mode and is constantly extended to include further processes, thus leading to more cost efficiency and concise results.