All Articles
Credit Risk
Advanced
5 min readJuly 28, 2025

Modeling PD in Zero-Default Portfolios: Pluto-Tasche Method with Python

20
#Pluto-Tasche#PD Modeling#Credit Risk#Low Default Portfolios#Zero Default#IFRS 9#Basel III#Risk Management#Stress Testing#Model Risk#Python#scipy#Clopper-Pearson#IRB Models#Quantitative Finance#Financial Modeling#Banking

Estimating probability of default (PD) in portfolios with no historical defaults is one of the toughest challenges in credit risk. Traditional logistic models fail here — not because of bad logic, but because the data doesn't support convergence. Here's a methodology to help: the Pluto-Tasche approach — a mathematically grounded, conservative method endorsed by the Basel Committee to handle low-default or zero-default portfolios, especially in the corporate or sovereign space.


Why Pluto-Tasche?

In low-default environments, MLE-based estimators can understate risk. Pluto and Tasche (2005) proposed an approach using confidence intervals for binomial distributions to derive conservative PD estimates. Instead of ignoring the lack of data, it treats it as a sign to inject statistical conservatism. It's also ideal for regulatory capital, IRB models, and IFRS 9 overlays.


Step-by-Step Computation

Step 1: Set Parameters

from scipy.stats import beta

# Inputs
confidence_level = 0.999  # For regulatory conservatism
n_observations = 250      # Number of obligors in the portfolio
n_defaults = 0            # Observed defaults

Step 2: Compute Upper Bound of Confidence Interval

Using the Clopper-Pearson method:

alpha = 1 - confidence_level
upper_bound = beta.ppf(1 - alpha, n_defaults + 1, n_observations - n_defaults)
print(f"Conservative PD estimate (Pluto-Tasche): {upper_bound:.4%}")

This gives you a conservative one-sided PD, suitable for zero-default portfolios. If defaults are observed, simply update n_defaults.


Interpretation

This PD estimate answers the question: "What is the worst-case PD that is still statistically consistent with my observations, with 99.9% confidence?"

  • If n = 250, d = 0, you get ~1.84%
  • For larger portfolios, the PD estimate shrinks as sample confidence improves
  • Unlike logistic models, this doesn't require covariates, but can be blended later for hybrid models

Consequences of Doing It Wrong

  • Underestimating PD in zero-default portfolios can violate prudential regulations and create false risk assurance
  • Ignoring sample size leads to overconfidence in low-risk sectors (e.g., sovereigns, large corporates)
  • Failing to document the choice of statistical method can raise red flags during model validation or regulatory audits

Real-World Applications

  • Sovereign portfolios with no defaults for years
  • Corporate banking with investment-grade clients
  • IFRS 9 overlays where default observations are lagging
  • Climate-adjusted PDs in frontier markets with sparse data

For institutions dealing with model risk in data-scarce environments, the Pluto-Tasche method is not just a workaround — it's a principled solution that blends statistical rigor with regulatory defensibility.


Key Takeaways

  • Use Pluto-Tasche when default data is insufficient
  • It produces upper bound PDs based on confidence intervals
  • Easily implemented in Python and aligns with Basel II/III expectations
  • Suitable for conservative provisioning, capital estimation, and stress testing