Probability of default (PD)
Survival, hazard, and macro-conditioned PD term structures
Build period-by-period risk while accounting for surviving accounts and changing conditions.

Purpose
Introduce hazard-based methods for lifetime PD and explain where macro scenarios enter.
Key terms
Hover over or focus a term for a quick definition, or open its glossary entry.
Key definitions
- Survival is the probability of not yet defaulting by a time point.
- A hazard is the conditional event probability or rate in a period among accounts surviving to its start.
Sₜ = Πₖ₌₁ᵗ(1 − hₖ); marginal default probability in t = Sₜ₋₁ × hₜ.Worked example
For annual hazards 2%, 3%, and 4%, cumulative PD through year three is 1 − 0.98×0.97×0.96 ≈ 8.84%.
Detailed explanation
Survival methods use the timing of events rather than collapsing every exposure into a single binary label. The conditional hazard is evaluated among accounts still at risk at a period's start. Multiplying period survival probabilities creates a term structure; multiplying survival before a period by its hazard gives the unconditional marginal probability of default in that period.
Macroeconomic conditioning can vary hazards across scenarios or periods. Calibrate and validate those paths against observed outcomes and the intended accounting or risk use. Keep lifetime horizon, censoring, prepayment, and competing exit assumptions visible. A hazard model is not automatically more predictive than a simpler cohort method; its value is that it can use event timing when data and assumptions support it.
Try a reproducible Python example
These examples use synthetic inputs and run locally in a browser worker. Edit the code, run it, and compare its output with the published example.
Runnable Python · local in your browser
Convert a logistic model logit to PD
Apply the logistic function to an illustrative intercept plus two feature contributions.
Output
Run the code to see the output.
Runtime loads only after you press Run. Code runs in a separate browser worker with a 10-second limit and a 20,000-character output cap. Use synthetic examples only; browser execution is not a secure environment for secrets or sensitive records.
Runnable Python · local in your browser
Calculate year-by-year marginal and cumulative PD
Follow years 1–3 separately: conditional PD is the rate among survivors, marginal PD is the share of the original cohort defaulting in that year, and cumulative PD adds those marginal shares.
Output
Run the code to see the output.
Runtime loads only after you press Run. Code runs in a separate browser worker with a 10-second limit and a 20,000-character output cap. Use synthetic examples only; browser execution is not a secure environment for secrets or sensitive records.
Assumptions
- Period boundaries and conditional versus marginal probability conventions are consistent.
Limitations
- Hazards need careful treatment of censoring, competing risks, and portfolio changes.
- Scenario-conditioned PD paths depend on model specification and macro assumptions.
References
- IFRS 9 Financial Instruments — IFRS Foundation
- Guidance on credit risk and accounting for expected credit losses — Basel Committee on Banking Supervision
- Basel Framework: IRB approach and credit-risk components — Basel Committee on Banking Supervision
Educational material only. Methods and examples are simplified; state and validate the assumptions required for your use case.