• Welcome to the Open Risk Academy where we forge the open future of risk management!

    Acedemy Visual

    Search for a topic of interest or simply scroll down the page to find an interesting course!

    Can't find an interesting course? Use the course request form to outline a topic of interest and (subject to resources and fit) we will try to accomodate!

Academy News

Awesome Sustainable Finance List

by Ad Min -

We are building an awesome sustainable finance list that aims to identify and highlight all open source and open data projects that make an impact on sustainable finance, understood in the broadest way. Are you aware of any project that targets this space, you are very welcome to contibute. 

Particularly welcome any pointers to projects that focus on the "S" of ESG: the social dimension of finance. If you have a github account you can directly contribute here.

List of current topics (topic suggestions also welcome!)

Thank you!

A new short course providing interactive analysis of input-output models

by Ad Min -

A new short introductory course on Input-Output analysis focuses on stylized interactive calculations that can be performed directly within the online reading sections.

The level of the course is introductory. There are no mathematical nor computer science prerequisites. It should be useful for anybody wishing to obtain insights into the flow of the basic calculations behind modern large scale Environmentally Extended Input-Output Models.

The objective of the course is to provide intuition and familiarity with the basic calculation workflow, indicatively:

From the Initial IO System

Calculate the Technical Requirements Matrix:

Calculate the Leontief Inverse Matrix:
Enter a new Demand vector:
To obtain the new IO system:


Connecting the Dots, Tensor Representations of Activitypub Networks

by Ad Min -

ActivityPub is a technical specification towards decentralized (more precisely, federated) social networking (termed the Fediverse) based upon the exchange of ActivityStreams messages that follow the Activity Vocabulary. The ActivityPub proposal has been standardized and published by the W3C and has motivated the design of several federated social networking systems. NB: As Open Risk we are already present on the Fediverse via a Mastodon account.

Analysing and understanding the dynamics of economic networks is of vital importance for informed decision-making. In a number of previous White Papers we reviewed and illustrated how mathematical concepts from Network and Graph theory (OpenRiskWP08,OpenRiskWP10) can be used to that effect.

Our focus in the latest White Paper (OpenRiskWP15) in the Connect the Dots series is on mathematical (in particular Tensor) representations of federated online networks that help encode succinctly certain important elements of their structure. We focus on federated networks adhering to the ActivityPub protocol, which we discuss in the relevant detail.

The classic, simple (with no self-loops), directed graph is sufficient to describe the Following/Followed connectivity of Actors within a single Server. The core idea is to map Actors to graph nodes, and express relations using graph edges.

An illustration of mapping ActivityPub concepts to Graphs

The challenge is that actual ActivityPub networks will be quite a bit more demanding in the variety of Actor and Activities that they engage in, which limits the utility of simple graphs.

Loosely speaking, Tensors can be seen as generalizations of vectors and matrices. Vectors could be called rank-1 tensors, they have one index. Matrices are rank-2 tensors, they have two indexes or dimensions. The more indices, the higher the rank of a tensor. Adjacency Matrices are rank-2 tensors, so they are inherently limited in the complexity of the relationships they can capture. Adjacency Tensors are higher-order objects that can potentially capture more complex network relations. The multilayer adjacency tensor is a very general object that can be used to represent a wealth of complicated relationships among nodes.

Illustration of ActivityPub network comprising multiple servers

The mapping of networks to tensor algebra is typically the first step in the process towards concrete applications. Depending on the task one might need to flatten the relevant tensors into the so-called supra-adjacency matrix which can then be analysed with more conventional matrix algebra.

New Academy Course, an Introduction to Tensor Operations with Eigen

by Ad Min -

An Introduction to Tensor Operations with Eigen is a new course at the Open Risk Academy. It is a DeepDive into using the Eigen C++ Library to perform Tensor calculations.

What is Eigen::Tensor?

Eigen is a C++ template library for linear algebra covering matrices, vectors, numerical solvers, and related algorithms. We focus in this course on a significant extension of Eigen (the Tensor module) that extends Eigen's functionality in handling higher-dimensional numerical objects (tensors of three and higher dimensions).

Motivation for the Course

Eigen (and in particular its Tensor module) is a building block used by major open source computational libraries and frameworks such a Tensorflow and Stan. Such libraries frequently require tensor type containers (higher-dimensional than vectors and matrices). Familiarity with the Eigen::Tensor API enables developers with similar requirements to write concise, high-level C++ code that is performant on a variety of devices.

Course Objectives

The objective of the course is to provide an introduction to using Eigen::Tensor as a high-level library for using Tensors in C++ projects.

  • We learn the concept and techniques of the Eigen Tensor class
  • How to declare, initialize Tensors of various ranks and types and how to access Tensor elements
  • Elementary unary and binary operations involving Tensors
  • More complex operations (reductions, contractions)
  • Modifying the shape of Tensors

The course is now live at the Academy, the github repository hosts C++ scripts used in the course.


Basic knowledge and a working setup for C++ development (e.g., being able to add Eigen as a header only library) is required.

Mathematical notation is used liberally throughout the course to clarify (for those familiar with it) the tensor manipulation concepts but is not strictly required for benefiting from the course.

Summary of Contents

The course comprises 14 Steps covering the following topics

  • Step 1. Getting started with Eigen
  • Step 2. Tensor Class Declarations
  • Step 3. Tensor Class Initializations
  • Step 4. Working with Tensor Elements, I
  • Step 5. Working with Tensor Elements, II
  • Step 6. Random Number Initialization
  • Step 7. Unary Element-Wise Operations
  • Step 8. Binary Element-Wise Operations
  • Step 9. In-Memory Representations of Tensors
  • Step 10. Tensor Contraction Operations
  • Step 11. Tensor Reduction Operations
  • Step 12. Tensor Shape Modifying Operations
  • Step 13. Tensor Scanning Operations
  • Step 14. Review and Outlook

Course Exercises

The exercises concern writing C++ small snippets of code that accomplish a certain task. The form of each exercise is as a Catch2 test. Indicative solutions are provided in this repository.


Attachment tensorflow-example.jpg

Find us on the open source Fediverse!

by Ad Min -
A visual representation of the fediverse as a network of communicating servers

The fediverse is a neologism for a new generation of open source social networks that finds increasing adoption by users worldwide. 

Its defining feature is that it does not rely on a single centralized service but rather orchestrates (federates) communication across a (potentially) large number of servers that exchange data using a specific protocol (activityPub).

At Open Risk we are exploring the possibility of setting up such a federating server with focus on the subject matters of interest, though work currently underway may enable our Open Risk Commons to federate directly. 

In the meantime we have a fediverse account where we post occasional updates and promote our vision for open source and open data approaches to (sustainable) finance and risk management. 

Are you already on the fediverse or interested to explore this new universe of possibilities? You can readily open an account on an instance of your choice and connect with us there!

Crash course introduction to Input-Output model mathematics

by Ad Min -

A new crash course is available now in the Academy.

The course should be useful for people who want to refresh their linear algebra and matrix theory knowledge or want identify specific areas which they wish to study deeper. It offers a brief introduction to Input-Output Model mathematics, the basic elements of linear algebra and matrix theory that are necessary to understand the standard Input-Output models, including their environmental impact extensions. Matrix theory is the main subject covered here, as it is the dominant mathematical tool used in IO analysis. The focus is on notation and defining the mathematical objects and operations commonly used, not the economic interpretation or any mathematical proofs.

This resource can be seen as a slightly more mathematical version compared to Appendix A: Matrix Algebra for Input-Output Models as presented in the definitive textbook on IO models, namely Input-Output Analysis Foundations and Extensions by Miller and Blair. We follow roughly the naming, notation and conventions of the Encyclopedic Dictionary of Mathematics.

A summary of the main topics covered:

  • Basics, Matrix Definition, Matrix Families
  • Various Matrix Operations
  • Matrix-Matrix Products (Cayley, Hadamard, Kronecker etc.)
  • Matrix Inversion and Matrix Series
  • Select IO Specific Topics

You can enroll directly here. Enjoy and keep us posted with any observations, ideas or feedback on how to improve this resource.

Older topics...