Liability modelling is often the most cumbersome and time-consuming part in the development of asset and liability management (ALM) models for life insurers or pension trusts. So, the expected time and cost associated with the re-modelling of liabilities is often a crucial obstacle that keeps companies from replacing ALM models on legacy software platforms with state-of-the-art software solutions.

However, in many cases a replacement of the current software platform is essential for the optimisation of current Solvency II reporting processes and for preparing for the implementation of the upcoming IFRS 17 reporting standard.

An alternative to modelling liabilities directly in an ALM system is to integrate external software, i.e. to make use of an implementation of liabilities outside of the ALM model. Technically, this can be achieved by the integration of a liabilities DLL (Dynamic-Link Library). In this article we discuss the advantages and limitations of this approach and share our experience from an internal development project.


eVal G is an actuarial software product developed by the German Retirement Systems Group at Willis Towers Watson. It combines a powerful calculation kernel and a sophisticated parameterised liability model with an intuitive graphical user interface. The main application of eVal G is the valuation of pensions and other employee benefits under multiple GAAP and German tax, where it is currently used for more than 1,000 clients.

In 2014 the Benefits Segment of Willis Towers Watson Germany decided to extend eVal G, its existing valuation system for occupational pensions, with functionality to project future pension obligations and pension payments.

The Risk Consulting and Software business maintains C-ALM, a comprehensive ALM model built in RiskAgility Financial Modeller (FM). C-ALM features a rich asset and investment strategy model, a flexible economic scenario interface and a liability model that covers the common insurance products in Europe.

In early 2015, discussions began to combine both software products to build a modern integrated pension ALM system. The combined approach delivers several benefits compared to stand-alone solutions:

  • No need for re-modelling in either stand-alone system
    The combined model inherits the asset and investment strategy models from C-ALM and the liability model from eVal G, such that pension plans implemented in the eVal G system are available in the combined system eliminating the need for re-modelling of liabilities in the ALM system or building an asset model within the eVal G system.
  • Precise liability modelling
    Precise stochastic liability modelling in pension ALM enables unprecedented granular analyses of the dependence of pension liabilities on economic variables. Furthermore, it enables the valuation of options and guarantees embedded in pension plans.
  • Full asset-liability interaction
    The combined model allows for full asset-liability interaction in pension plan modelling, i.e. asset returns can be used in the calculation of pension amounts.

The Proof of Concept

The usual approach for the combination of both systems is the integration of an eVal G-DLL in C-ALM, a feature naturally supported by RiskAgility FM. Two main challenges were identified with this approach:

  • Different technologies
    eVal G is a .Net application running under the control of the Common Language Runtime (CLR). Since RiskAgility FM is a native C++ application, it cannot access eVal G components. 
  • Feasible run times
    Although a certain additional cost in terms of run-time compared to a stand-alone implementation is expected, it needs to be assured that run-times remain in a feasible range.

Microsoft developed C++/CLI, an extension to the C++ programming language, which aims to bridge the gap between the different technologies. Using C++/CLI, it is possible to make use of .Net-DLLs in native C++ applications and vice versa.

As RiskAgility FM does not support C++/CLI directly, the natural idea was therefore to build a wrapper DLL in C++/CLI which translates the valuation interface of eVal G from .NET to native C++ code, which can then be used in RiskAgility FM. The interplay between the three components is shown in Figure 1.

Figure 1. Basic structure of the combined model

Basic structure of the combined model

In order to prove the technical feasibility and to analyse the run time effects of this additional layer, a prototype model was built in summer 2015. The prototype model proved to be stable and robust. In particular, we were able to demonstrate that while the Wrapper DLL did add additional run-time, the difference was negligible when compared to the overall run time.

Model design and implementation

Following the successful proof of concept, the actual development project was started in 2016 with detailed discussions on the design of the combined model. Particular attention was given to a precise definition of DLL interfaces because actual development and implementation was split into two distinct but closely connected work streams:

Development of the eVal G-DLL

  • The combined solution runs in RiskAgility FM, so the liability data required for projections had to be accessible from that domain. For performance reasons and to keep cross-domain data access under control, a snapshot of the liability data is provided once and is kept in memory during runtime.
  • A generic interface was developed to keep the Wrapper DLL clean and simple even though the existing valuation projects in eVal G differ considerably.
  • A new controller layer was developed. It keeps track of the economic and plan parameters in a given scenario and provides the calculations from the model layer for the Wrapper DLL.

Development of the Wrapper DLL and customisation of C-ALM

The following components of the standard version of C-ALM were customised:

  • The standard insurance liability model was replaced by a new liability model built from scratch. As all direct liability calculations have been encapsulated in the eVal G-DLL, the liability model in C-ALM manages data streams between RiskAgility FM and the external DLL and the pre-aggregation of calculation results.
  • The standard crediting model, containing the profit sharing strategy, was customised to reflect contribution strategies for plan assets.
  • The scenario model was enhanced with a flexible function for the mapping and transformation of scenario variables to economic pension plan variables.

The final structure of the combined model is shown in Figure 2.

Figure 2. Final structure of the combined model

Final structure of the combined model
Click to enlarge

The basic wrapper DLL built for the proof of concept was refined and extended to reflect all methods offered by the final eVal G DLL. (For clarity, the Wrapper DLL is merely a bridge between different technologies and doesn’t provide any business logic.)

For stability and reliability, only simple data types, i.e. no container types like vectors, are passed between RiskAgility FM and the Wrapper DLL. Data types used within the liability model in C-ALM reflect this restriction to avoid time-consuming data conversions. 


The combined model is now used for Willis Towers Watson’s projections of pension plans, plan design projects and ALM, demonstrating that the combination of a financial model build in RiskAgility FM with an external DLL offers a feasible modelling approach across different technologies. We are convinced that the combination of models built in RiskAgility FM with external DLL is an attractive model design option for a considerable range of cases, such as:

  • Planned model migrations
    An organisation that is considering the migration of its legacy cash-flow model to a modern software platform but hasn’t executed its plans due to the expected cost of re-modelling liabilities. Where liability modelling is available or can be made available from the inventory management system, a combined approach could significantly reduce the cost of liability modelling.
  • Planned model enhancements
    A new component (e.g. a new category of liability product or an alternative asset) needs to be modelled from scratch for inclusion in a financial model built in RiskAgility FM. Where the new component is already implemented in another system and can be made available from there, the combined approach avoids double implementation of comparable components in different systems.

Equally, we stress that any such modelling project should be preceded by a proof of concept project in order to assess:

  • Potential technical obstacles
    Potential hurdles to be analysed are the different technologies in both systems, different compilers, Microsoft HPC compatibility (or alternatively cloud based grid technologies), and additional requirements of the external DLL, such as database connections.
  • Outline of the model design
    Typical questions to be assessed concern the methods required from and currently provided by the external DLL, the steering of the calculation process and efficient exchange of data across software boundaries.
  • Run-time of the combined model
    The run-time of the combined model needs to be verified as in a feasible range while allowing for stochastic calculations with a sufficient number of scenarios.