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