IFRS 9 portfolio analytics with Python and atoti

In this post I would like to present examples of visualizations for IFRS 9 using the BI app built in the previous post with Python and atoti: “Tutorial: How to Build an IFRS 9 BI app with Python and atoti”.

Getting started

Please refer to the previous post for a guide on building a BI app for IFRS 9 analytics, or simply download and run this Jupyter Notebook.

To view the dashboards in the newly built app, run session.url and launch the user interface.


IFRS 9 portfolio analytics

This blog provides a guide on how to address daily credit portfolio monitoring needs, in particular to track and explain expected credit losses for IFRS 9, perform vintage analysis, drill-down to loan-level data, analyze changes between periods and determine the main drivers behind the portfolio risks.

I will furnish you with a step-by-step outline on how to build an IFRS 9 analytical app in Python using a Jupyter Notebook and atoti.


In the post “How to explain non-additive measures” we talked about how to use “parent” and “child” data relationships in atoti to navigate data and implement your on-the-fly allocation rules. Today let’s make use of these atoti functions to define the percentage of parent calculation.


A product catalogue example

In this atoti tutorial, I will walk you through how you can create a hierarchy — aka parent child data structure — to interactively aggregate and drill down using python libraries Treelib and atoti.

The example I’ll be using is an e-commerce product catalog, and the same technique can be applied to create natural hierarchies with many levels: for example, legal entities structure, regional hierarchies and so on.


In this post, I’d like to show how to quickly create a Tableau-like BI application on top of your data in a Jupyter Notebook using the atoti python module. It can give your users an easy way to:

  1. explore the data produced by your model with an interactive UI,
  2. play around and see it in various projections without the need to run any notebook or to write any code or depending on someone to ingest it into a standalone BI solution.

In the study “2020 State of Data Science — moving from hype towards maturity”, Anaconda discovered that

“Fewer than…


Interactive decomposition with atoti

This article is a part of a series. Check also: Part 1: Pro-rata allocation for a generic example of allocation into additive components and Part 2: Marginal contribution for an incremental analysis example. In this post, we’ll explore a technique that is handy for historical VaR decomposition — the “LEstimated VaR”, aka “Component VaR”.

If you wish to read what non-additive measures are and why we may want to have them decomposed — please refer to the Pro-rata allocation post.

The name “LEstimated VaR” refers to the term “L-estimator” — a linear combination of order statistics — as we’ll be…


Building regulatory risk application with python and atoti

In this post, I want to discuss a faster approach to compute the variance-covariance formulae present by regulatory capital models — FRTB SBM and CVA Risk Framework — as well as ISDA SIMM and internal sensitivity-based VaR-type models, and illustrate this approach with a sample implementation of SBM Equity Delta aggregation in atoti. I would like to thank Robert Mouat for sharing his ideas on multi-threading in the FRTB Accelerator and on the matrix formula optimization.

All of the above-mentioned methodologies use a series of nested variance-covariance formulae — see an example below — to compute a VaR-like risk measure…


Interactive decomposition with atoti

This article is the second part of a series of tutorials about interactive analytics in in atoti’s dynamic pivot tables. Check out Part 1: Pro-rata allocation if you wish to read what non-additive measures are and why we may want to have them decomposed.

Solution #2: Incremental contribution


Interactive decomposition with atoti

This article is the first part of a series of tutorials about interactive analytics in atoti’s dynamic pivot tables. Check also: Part 2: Marginal contribution.

What are non-additive measures?


Counterparty credit risk analytics and what-if

In this post, I will show how you can implement an interactive analytical app for SA-CCR analytics in python using Jupyter Notebook and atoti. You can take this example as a starter, and adapt it to your data model or adjust the calculation logic, for instance, to enable sensitivity-based AddOns.

As a quick reminder, the SA-CCR is a regulatory methodology for computing EAD (Exposure At Default) which is part of the consolidated Basel framework. It is already implemented for financial institutions in Europe by the Regulation (EU) 2019/876 (CRR II) and will be applicable from June 2021 and January 2022…

Anastasia V Polyakova

Anastasia is a quantitative financial analyst and risk management practitioner experienced in modern data analysis tools and frameworks.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store