Free CFA Level I practice example
Probability Trees and Conditional Expectations in Credit Risk
Practice question on probability trees and conditional expectations in credit risk.
Key Concept
A probability tree is a structured diagram that maps out all possible outcomes and their associated probabilities across sequential events. In fixed income analysis, probability trees are used to model multi-stage credit scenarios, where the probability of default or rating migration in a later period depends on the state reached in an earlier period.
The total probability rule states that for an event $B$ with mutually exclusive and exhaustive conditioning events $A_i$:
$P(B) = \sum_{i} P(B \mid A_i) \cdot P(A_i)$
The expected value given a probability tree is computed as:
$E(X) = \sum_{i} x_i \cdot P(x_i)$
The conditional expected value updates expectations once new information is received. Using Bayes' theorem, the posterior probability of event $A$ given observed event $B$ is:
$P(A \mid B) = \frac{P(B \mid A) \cdot P(A)}{P(B)}$
The variance of a random variable $X$ is:
$\text{Var}(X) = E(X^2) - [E(X)]^2 = \sum_{i} P(x_i) \cdot [x_i - E(X)]^2$
And the standard deviation is simply $\sigma(X) = \sqrt{\text{Var}(X)}$.
These tools allow analysts to compute expected portfolio losses, update loss estimates after observing interim credit events, and quantify uncertainty around those estimates.
Practice Question
Scenario:
A credit analyst at a fixed income fund is evaluating a two-year corporate bond with a face value of $1,000. The bond pays no coupon (zero-coupon). The analyst uses a two-stage probability tree to model credit outcomes.
Stage 1 — End of Year 1: The bond issuer either survives (no default) or defaults.
Additional Information:
The analyst subsequently learns that the issuer did survive Year 1. Using this new information, the analyst wants to update expectations.
Calculate the following:
- $P(\text{Survive Year 1}) = 0.80$ \item $P(\text{Default Year 1}) = 0.20$
- $P(\text{Survive Year 2} \mid \text{Survive Year 1}) = 0.85$ \item $P(\text{Default Year 2} \mid \text{Survive Year 1}) = 0.15$
- $P(\text{Full Recovery} \mid \text{Default Year 1}) = 0.30$ \item $P(\text{Partial Recovery} \mid \text{Default Year 1}) = 0.70$
| Outcome Path | Bond Payoff at Resolution ($) |
|---|---|
| Survive Year 1, Survive Year 2 | $1,000 |
| Survive Year 1, Default Year 2 | $400 |
| Default Year 1, Full Recovery | $900 |
| Default Year 1, Partial Recovery | $250 |
- The joint (unconditional) probability of each of the four terminal outcomes.
- The unconditional expected payoff $E(X)$ of the bond at resolution.
- The unconditional variance $\text{Var}(X)$ and standard deviation $\sigma(X)$ of the bond payoff.
- Using Bayes' theorem, compute the posterior probability that the bond will default in Year 2 given that the issuer survived Year 1. Confirm this equals the directly stated conditional probability. The conditional expected payoff $E(X \mid \text{Survive Year 1})$ and conditional standard deviation $\sigma(X \mid \text{Survive Year 1})$, given the updated information.
Solution
Step 1: Joint Probabilities of Each Terminal Outcome
There are four terminal paths. Joint probability = (Stage 1 probability) $\times$ (Stage 2 conditional probability). $\begin{array}{rcl} P(\text{S1, S2}) &=& P(\text{Survive Y1}) \times P(\text{Survive Y2} \mid \text{Survive Y1}) \\ &=& 0.80 \times 0.85 = 0.680 \\[6pt] P(\text{S1, D2}) &=& P(\text{Survive Y1}) \times P(\text{Default Y2} \mid \text{Survive Y1}) \\ &=& 0.80 \times 0.15 = 0.120 \\[6pt] P(\text{D1, FR}) &=& P(\text{Default Y1}) \times P(\text{Full Recovery} \mid \text{Default Y1}) \\ &=& 0.20 \times 0.30 = 0.060 \\[6pt] P(\text{D1, PR}) &=& P(\text{Default Y1}) \times P(\text{Partial Recovery} \mid \text{Default Y1}) \\ &=& 0.20 \times 0.70 = 0.140 \end{array}$ Verification: $0.680 + 0.120 + 0.060 + 0.140 = 1.000$ ✓Step 2: Unconditional Expected Payoff
$E(X) = \sum_{i} P(x_i) \cdot x_i$ $\begin{array}{rcl} E(X) &=& (0.680)(1000) + (0.120)(400) + (0.060)(900) + (0.140)(250) \\ &=& 680 + 48 + 54 + 35 \\ &=& \$817 \end{array}$Step 3: Unconditional Variance and Standard Deviation
First compute $E(X^2)$: $\begin{array}{rcl} E(X^2) &=& (0.680)(1000)^2 + (0.120)(400)^2 + (0.060)(900)^2 + (0.140)(250)^2 \\ &=& (0.680)(1{,}000{,}000) + (0.120)(160{,}000) + (0.060)(810{,}000) + (0.140)(62{,}500) \\ &=& 680{,}000 + 19{,}200 + 48{,}600 + 8{,}750 \\ &=& 756{,}550 \end{array}$ Now apply the variance formula: $\text{Var}(X) = E(X^2) - [E(X)]^2 = 756{,}550 - (817)^2$ $(817)^2 = 667{,}489$ $\text{Var}(X) = 756{,}550 - 667{,}489 = 89{,}061$ $\sigma(X) = \sqrt{89{,}061} \approx \$298.43$Step 4: Bayesian Update — Posterior Probability of Default in Year 2 Given Survival in Year 1
We want $P(\text{Default Y2} \mid \text{Survive Y1})$ using Bayes' theorem. First, define the relevant events:- Let $A = \text{Default Y2}$ (which in our tree is only reachable via Survive Y1) Let $B = \text{Survive Y1}$
Step 5: Conditional Expected Payoff and Conditional Standard Deviation
Given survival in Year 1, only two outcomes are possible: Survive Y2 (payoff = $1,000) or Default Y2 (payoff = $400). $E(X \mid \text{Survive Y1}) = (0.85)(1000) + (0.15)(400)$ $= 850 + 60 = \$910$ For the conditional variance, first compute $E(X^2 \mid \text{Survive Y1})$: $E(X^2 \mid \text{Survive Y1}) = (0.85)(1000)^2 + (0.15)(400)^2$ $= (0.85)(1{,}000{,}000) + (0.15)(160{,}000)$ $= 850{,}000 + 24{,}000 = 874{,}000$ Conditional variance: $\text{Var}(X \mid \text{Survive Y1}) = E(X^2 \mid \text{Survive Y1}) - [E(X \mid \text{Survive Y1})]^2$ $= 874{,}000 - (910)^2 = 874{,}000 - 828{,}100 = 45{,}900$ $\sigma(X \mid \text{Survive Y1}) = \sqrt{45{,}900} \approx \$214.24$ Summary of Results:| Metric | Unconditional | Conditional on Survive Y1 |
|---|---|---|
| Expected Payoff | $817.00 | $910.00 |
| Variance | 89,061 | 45,900 |
| Standard Deviation | $298.43 | $214.24 |
Christian's Thoughts
This question captures why Bayesian updating is so practical in fixed income. Notice how the unconditional standard deviation of \$298 drops to \$214 once we learn the issuer survived Year 1. That single piece of new information eliminates the two ugly default-in-Year-1 paths entirely, dramatically narrowing our uncertainty.
On the exam, the most common trap is forgetting to renormalize probabilities when conditioning. When you restrict your sample space to only the paths consistent with the new information, the probabilities of the remaining outcomes must sum to 1. Dividing each joint probability by the probability of the conditioning event (here, 0.800) achieves exactly that.
Also notice Step 4 confirmed Bayes produced the same number as the original tree. This is not a coincidence — it is a guarantee when the tree is self-consistent. Exam writers sometimes ask you to "use Bayes' theorem" as a verification exercise, so practicing this double-check will save you from careless errors under time pressure.
-christian
Calculator Keystrokes
Part 1: Updated Probability (Indicator 1)
Calculate the updated probability of default given the signal from Economic Indicator 1 using Bayes' formula.
- Calculate P(Signal 1 | No Default) * P(No Default): 0.15 x (1 - 0.05)
- [1] [-] [.] [0] [5] [=]
- [x] [.] [1] [5] [=] (Result should be 0.1425)
- [STO] [1]
- Calculate P(Signal 1 | Default) * P(Default): 0.75 x 0.05
- [.] [7] [5] [x] [.] [0] [5] [=] (Result should be 0.0375)
- [STO] [2]
- Calculate P(Signal 1): P(Signal 1 | No Default) * P(No Default) + P(Signal 1 | Default) * P(Default)
- [RCL] [1] [+] [RCL] [2] [=] (Result should be 0.18)
- [STO] [3]
- Calculate P(Default | Signal 1): [P(Signal 1 | Default) * P(Default)] / P(Signal 1)
- [RCL] [2] [/] [RCL] [3] [=] (Result is approx 0.2083 or 20.83%)
Part 2: Updated Probability (Indicator 1 and 2)
Calculate the updated probability of default given signals from both indicators, using the result from Part 1 as the new prior probability.
- Store the previous result (approx 0.2083) as the new prior P(Default)
- [.] [2] [0] [8] [3] [STO] [1]
- Calculate P(Signal 2 | No Default) * P(No Default): 0.25 x (1 - 0.2083)
- [1] [-] [RCL] [1] [=]
- [x] [.] [2] [5] [=] (Result should be approx 0.1979)
- [STO] [2]
- Calculate P(Signal 2 | Default) * P(Default): 0.85 x 0.2083
- [.] [8] [5] [x] [RCL] [1] [=] (Result should be approx 0.1771)
- [STO] [3]
- Calculate P(Signal 2): P(Signal 2 | No Default) * P(No Default) + P(Signal 2 | Default) * P(Default)
- [RCL] [2] [+] [RCL] [3] [=] (Result should be approx 0.375)
- [STO] [4]
- Calculate P(Default | Signal 2): [P(Signal 2 | Default) * P(Default)] / P(Signal 2)
- [RCL] [3] [/] [RCL] [4] [=] (Result is approx 0.4723 or 47.23%)
Part 3: Bond Price Change Approximation
Calculate the approximate percentage price change using duration-only and duration-convexity formulas.
- Duration-only approximation: -Duration * DeltaYield
- [5] [.] [2] [+/-] [x] [.] [0] [0] [7] [5] [=] (Result is -0.039 or -3.9%)
- [STO] [1]
- Duration-convexity approximation: [-Duration * DeltaYield] + [0.5 * Convexity * (DeltaYield)^2]
- Calculate (DeltaYield)^2: (0.0075)^2
- [.] [0] [0] [7] [5] [x^2] (Result is 0.00005625)
- Calculate convexity term: 0.5 * 35 * (DeltaYield)^2
- [x] [3] [5] [x] [.] [5] [=] (Result is approx 0.000984)
- [STO] [2]
- Add duration term and convexity term
- [RCL] [1] [+] [RCL] [2] [=] (Result is approx -0.0380 or -3.80%)
Calculations completed for Bayes' updates and bond price change approximations.
More CFA Calculation Practice
This is a public sample. The full justCalculations product contains the gated practice library, detailed solutions, and calculator workflows.