Rabobank: The Matlab to Python Journey

Risk management is everyone’s business. It is in the heart of banking and has a key role in optimizing the risk/reward ratio. This is accomplished by assessing risks and creating a healthy relationship between risk and return. We use models to realize this and in this article we would like to tell you more about the transition from a Matlab based risk model landscape to one based on Python.
Written by: Rabobank

In the recent past, Matlab was the programming language of risk modelers within Rabobank. The software enabled the development of predictive models and the required data (pre-)processing using ready-to-use functionality combined with a rich and flexible programming language. The models developed could be validated and tested by an independent model validation team based on the Matlab code and the result files. 

The biggest challenge emerged after the model was developed, validated, and approved: deploying it in professional IT systems of the bank.  IT business analysts had the difficult job to understand and implement the complex calculation logic, and the data sourcing, into professional IT code (often C# or .NET). This step in the process was lengthy and error prone; user acceptance testing often revealed errors due to misinterpretations.

In 2017, we tried a different approach to a large scale modelling project. In cooperation with our IT department we agreed to implement the calculation logic in the popular open source programming language Python. This way, risk modelers could help in coding the complex calculation logic as part of the professional IT software. Instead of lengthy discussions to explain the tedious calculation steps, risk modelers deliver Python code that functionally does the job and that adheres to the most important IT software development standards.

This approach has turned out to be so promising we have adopted this as a standard way of working for all new risk models. Risk, data, and IT experts are working together in multidisciplinary Agile teams during the development of a new risk model. We now need less iterations to deliver the model in the production environment. Additionally, jointly developed calculation engines can be deployed more easily into the cloud to improve calculation performance.

We have made the transition complete by also migrating existing self-build Matlab library functions that were used during statistical modeling to in-house Python library functions for credit modeling. This code is optimized based on IT software development standards and designed for future use by other modeling projects.

The Journey from a Matlab Modeler Perspective
The vast majority of the risk modelers within the bank have been trained extensively in Matlab during their university days. But a modeler is a modeler and coding is coding, so migrating from Matlab to Python is not rocket science.

Nevertheless, the transition we are going through is an exciting one. Not because it is changing the language in which we program, but because it is changing and improving the technique in which we code (e.g. object oriented, writing tests). Another interesting part of the transition is working in so called Feature teams (multidisciplinary Agile teams). All of this leads to very nice personal growth opportunities.

Recently, Rabobank started to build a model in Python which will be used to assess the impact of strategic decisions on the financial performance of the bank, such as the profit and losses and the capital ratios. The current tool (which is even Excel based!) is being widely used within the bank. A publicly known example of this is the issuance of one billion euros worth of Rabobank certificates. Since the bank is migrating towards Python and Python is such a diverse programming language, there is even a possibility to build a complete web app in Python. This means that even members of the managing board can do analyses on their iPads while traveling to their next appointments. The web app will be hosted in the cloud and the model will be designed in such a way that the calculations can be distributed over multiple resources (e.g. virtual machines, cores, etc). All of this allows ‘traditional’ risk modelers to go beyond their traditional tasks. The same holds for the ‘traditional’ web app builder because of the multidisciplinary teams. Compared to the ‘traditional’ Matlab/Excel work, a whole new world opens up in this project.

Develop your professional impact
Do you want a career in which you can start making a difference from day 1? Rabobank is the place to do it. For instance, in a team making a new model based on the new approach using Python. Or, as an expert who does the implementing of the models in collaboration with the business departments. At Rabobank, we help you to be the best and most effective version of yourself.

Your development is key and we invest in an environment where you learn by doing. Already know what you want to do? We’ll give you the space and opportunity. Still figuring it out? We can help. By providing a good balance between free-range and supervised work – with coaching and leadership that inspires you. Enjoy the safety net and network that a strong corporate employer has to offer, along with ample innovation capacity and flexibility.

What do you bring to the table? The right mindset:
Challenge: your peers and yourself
Connect: make new contacts and expand your network
Change: help transform yourself, the bank and the world
Courage: show initiative and perseverance

Everyone is different, and it is the differences in people that help us to be an even better bank. That is why we are curious about who you are! Let’s get acquainted.

Would you like more information about the Young Professional Advanced Analytics Program or would you like to apply?

Please have a look at: rabobank.jobs/en/expertise/student-starter/ or rabobank.jobs/nl/young-professionals/