The openNPL platform

openNPL is a Python / Django powered platform for working with detailed (loan level) data with a particular emphasis on capturing non-performing loan information.

The source code is available in the Open Risk Repository Link.

Functionality

The openNPL platform may be useful to financial industry users (portfolio managers, business analysts), data engineers and/or risk model developers. The loan data templates currently covered are in particular relevant for EU countries and the US.

Users can use openNPL to:

  • Log-in into the application with their credentials

  • Inspect the available loan data sets (tables or relations) conforming to the European Banking Authority Template recommendations of US Agency Loan Performance Data schemas

  • Insert, Update or Delete loan records (e.g. new counterparty, loan or collateral data)

  • Consult the documentation as to the meaning and requirements of each data element

Note

openNPL is still in active development. The functionality of the platform will be significantly enhanced in future versions. If you have specific requests / ideas please raise them in our github repository.

Architecture

The current architecture of openNPL is summarized as follows:

  • openNPL is built on top of the Python Django framework

  • The non-performing loan template recommendations of the EBA are implemented as distinct models in the database

  • A similar but distinct model structure is implemented for US Agency mortgage data

  • The backend database is currently sqlite3

  • Additional models are introduced to bind the data together in relations (e.g. portfolio snapshot)

  • The user interface uses built-in Django forms as those are rendered by the Jazzmin skin

Directory structure

The openNPL distribution has the following structure:

Level 1

Level 2

Level 3

File or Directory Description

openNPL

The root directory

npl_portfolio

DIR: EBA NPL portfolio app

models.py

Portfolio level models

counterparty.py

The Counterparty model

loan.py

The Loan model

The other EBA models

fixtures

DIR: Sample data in JSON format

sflp_portfolio

DIR: US Single Family loan app

models

DIR: model files

fixtures

DIR: Sample data in JSON format

start

DIR: Templates for the front end

openNPL

DIR: Application configuration files

docs

DIR: This documentation

static

DIR: Styling assets

templates

DIR: Template customization

tests

DIR: Testing scrips

Core Data Models

The core data models currently implemented are:

EBA NPL Portfolio

  • Portfolio (Segments the loan level data into distinct portfolios)

  • Portfolio_Snapshot (Segments the loan level data into temporal snapshots / cutoff dates)

  • 8 NPL Tables (Implementing the core European Banking Authority NPL template specification)

  • User (Inheriting from Django User model)

US Single Family Portfolio

Installation Options

The Installation page provides guidance with the current installation options

Getting Started

The Usage page illustrates (using screenshots) the currently available functionality to help you get started with openNPL