Credit Risk Modelling System

A production-grade, end-to-end risk assessment platform that predicts borrower default probability, quantifies expected loss, and stress-tests entire loan portfolios — deployed as a live interactive dashboard.

Problem Statement

Retail banks need fast, explainable borrower risk scores to make consistent lending decisions. Manual credit assessment is slow, inconsistent, and does not scale. Risk teams also lack a self-service tool to simulate how macroeconomic shocks affect portfolio-level expected losses, or to validate FICO-band segmentation methodologies.

Solution

I built a fully deployed credit risk platform with three core modules: a Single Borrower Prediction engine that computes Probability of Default (PD) and Expected Loss (EL) from financial inputs; a Portfolio & Stress Testing dashboard that surfaces aggregate risk metrics and lets analysts simulate economic shocks via a PD multiplier; and a FICO Rating Explorer that uses dynamic programming to find optimal log-likelihood credit-grade boundaries for any number of risk buckets.

Tech Stack

  • Python, Pandas, NumPy, Scikit-learn
  • Logistic Regression with calibrated PD output
  • Dynamic Programming for optimal FICO bucketing (log-likelihood objective)
  • Plotly for interactive risk visualisations
  • Streamlit for deployment and UI
  • Git & GitHub for version control

Key Results

  • Deployed a live app that scores individual borrowers and returns PD & EL in real time.
  • Portfolio dashboard surfaces a $41.6 M loan book with an 18.5% default rate and $7.5 M baseline expected loss.
  • Stress-testing module allows analysts to apply PD multipliers and instantly see the impact on total expected losses across FICO bands.
  • FICO Rating Explorer generates risk-grade tables (AAA → BB) — e.g., FICO 697–850 at 4.65% default vs. FICO 408–520 at 66.11% — validating the model's discriminatory power.
  • Dynamic programming bucketing outperforms equal-width FICO splits in log-likelihood, producing cleaner grade separations.

Improvement Plan

Extend the model with SHAP-based explainability to satisfy regulatory interpretability requirements. Add a loan-level data upload flow so risk teams can score custom portfolios. Integrate a FastAPI backend to serve the model as a REST endpoint for downstream systems, and containerise the full stack with Docker for enterprise deployment.