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.
- Author: Open Risk
- License: MIT
- Online Code Documentation: Read The Docs
- NPL Data Documentation: Open Risk Manual Loan Data
- Development Website: Github
- Project Discussion: Open Risk Commons
- Docker Image: Docker
- Training: Open Risk Academy
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