University of Iowa – Bond Analysis
Feb 21, 2025
This is a problem set from the UChicago Harris School’s Public Capital Markets Credential, which was hosted in Beijing, China, and co-sponsored by the Central University of Finance and Economics. Led by Professor Justin Marlowe, the program equips participants with essential analytical skills for public finance officials, including bond valuation, credit analysis, debt structuring and issuance strategies, and financial sustainability assessment.
Overview
In this problem set, we analyze the University of Iowa bond issuance designed to finance the construction and equipping of a new health science academic facility, along with covering bond issuance costs. The analysis includes:
- Issuer and Purpose – Identifying who issued the bond and what the proceeds will finance.
- Bond Description – Detailing key parameters such as dated date, maturity, principal, coupon, price, and yield at issuance.
- Spread Analysis – Comparing the bond’s yield to the ICE AAA Municipal Index and discussing how much of the spread is attributable to credit risk versus liquidity risk.
- Duration Analysis – Calculating both the initial and new Macaulay and Modified Durations with detailed Python code snippets, explaining the significance of these metrics in assessing interest rate risk.
Every term is defined and explained in advance, ensuring the full reasoning and calculation process is transparent.
Question 1: Issuer and Purpose
Question:
View the Official Statement (or use EMMA with a VPN) and find CUSIP 914364ZV9. Who issued this bond? What is the purpose of the proceeds?
Answer:
- Issuer: University of Iowa Facilities Corporation
- Purpose: The bond proceeds will finance part of the cost to construct and equip a new health science academic facility, as well as cover the expenses related to the bond issuance.
Key Definitions & Significance:
- Issuer: The entity that borrows funds by selling bonds. In this case, the University of Iowa Facilities Corporation (a nonprofit) is responsible for managing the project and its financing.
- Bond Proceeds: Funds raised from the bond issuance. Knowing the use of these proceeds is critical for assessing the financial risk and the project’s impact.
This information is essential for investors and municipal finance officials to understand the source of the debt and its intended use.
Question 2: Bond Description
Question:
What is this bond’s dated date? Maturity date? Principal amount? Coupon? Price at issuance? Yield at issuance?
Answer:
- Dated Date: November 1, 2024
- Maturity Date: June 1, 2033
- Principal Amount: $1,070,000
- Coupon: 5%
- Price at Issuance: 113.321
- Yield at Issuance: 3.2%
Key Definitions & Significance:
- Dated Date: The starting date from which interest accrues.
- Maturity Date: The date on which the bond’s principal is repaid.
- Principal Amount: The face value of the bond; the amount borrowed.
- Coupon: The annual interest rate (as a percentage of the face value) used to compute periodic interest payments.
- Price at Issuance: The price at which the bond is sold relative to its par value (often expressed as a percentage).
- Yield at Issuance: The effective return to investors based on the coupon rate and the price paid.
This detailed description outlines the bond’s cash flow profile and allows for an informed assessment of its financial attractiveness.
Question 3: Spread Analysis
Question:
Find the ICE AAA Municipal Index for November 1, 2024 (the date this bond was sold). What is the bond’s spread to the ICE AAA Index? In your estimation, how much of that spread is due to credit risk versus liquidity risk?
Answer:
- ICE AAA Municipal Index Yield (9-year average): 2.942%
- Initial Yield of CUSIP 914364ZV9: 3.2%
- Total Spread: 25.8 basis points
Using the Bondwave AA QCurve (noting the methodological differences):
- Average Yield per QCurve: 3.085% for a bond with 9 years to maturity
- Derived Spread from QCurve: 11.5 basis points
Attribution of Spread:
- Credit Risk Component: Approximately 14.3 basis points (≈55.4% of the total spread)
- Liquidity Risk Component: Approximately 44.6% of the total spread
Key Definitions & Significance:
- Yield Spread: The difference between the bond’s yield and the yield of a benchmark (here, the ICE AAA Municipal Index). It reflects the additional return required by investors to compensate for risks.
- Credit Risk: The risk of default by the issuer. A higher spread can indicate perceived credit risk.
- Liquidity Risk: The risk associated with the ease of buying or selling the bond without significantly affecting its price. Less liquid bonds generally command higher yields.
Understanding the breakdown of the spread helps investors and financial managers gauge whether the bond’s pricing properly compensates for its risk profile.
Question 4: Duration Analysis
Question:
Assume an investor bought this bond at issuance at the reoffering price and yield. One year later, market yields have increased to 5.5%. Compute the bond’s modified duration both initially and after one year. Explain every step in the analysis.
Answer:
Step 1: Initial Duration Calculation
The bond has semi-annual coupon payments. Initially, we expect about 17 payments (from November 2024 to June 2033).
Definitions:
- Macaulay Duration: The weighted average time until cash flows are received.
where:- is time in years,
- is the cash flow (coupon or coupon plus principal at maturity),
- is the yield per period,
- is the bond’s current price.
- Modified Duration: Adjusts Macaulay Duration for the yield’s compounding frequency:
Below is the Python code used to calculate the initial durations:
face = 1070000
coupon = 0.05
initial_yield = 0.032
price = 1.13321 * face
coupon_payment = (coupon * face) / 2
weighted_times = 0
total_pv = 0
for t in range(1, 18): # Payments 1 through 17
time = t / 2 # Convert semi-annual periods to years
payment = coupon_payment
if t == 17: # Final payment includes the face value
payment += face
discount = (1 + initial_yield / 2) ** t
pv = payment / discount
weighted_times += time * pv
total_pv += pv
# Calculate durations
macaulay_duration = weighted_times / price
modified_duration = macaulay_duration / (1 + initial_yield / 2)
print(f"Initial Macaulay Duration: {macaulay_duration:.4f} years")
print(f"Initial Modified Duration: {modified_duration:.4f}%")
Results:
Initial Macaulay Duration: 7.1322 years
Initial Modified Duration: 7.0199%
Step 2: Revised Duration Calculation (One Year Later)
One year later, with market yields at 5.5%, there are now 15 semi-annual payments remaining, plus one month of accrued interest to account for.
Accrued Interest Calculation:
- Accrued Payment:
For one month accrued:
months_accrued = 1
accrued_payment = coupon_payment * (months_accrued / 6)
New Price Calculation with 15 Remaining Payments:
new_yield = 0.055
total_pv = 0
# Accrued interest for 1 month
months_accrued = 1
accrued_payment = coupon_payment * (months_accrued / 6)
total_pv += accrued_payment
for t in range(1, 16): # 15 remaining semi-annual payments
payment = coupon_payment
if t == 15: # Final payment includes the face value
payment += face
discount = (1 + new_yield / 2) ** t
pv = payment / discount
total_pv += pv
new_price = total_pv
price_to_par = new_price / face * 100
print(f"New price: ${new_price:,.2f}")
print(f"Price as % of par: {price_to_par:.3f}%")
Recalculate Durations with the New Price:
weighted_times = 0
# Account for accrued interest (1 month)
time_accrued = 1 / 12 # 1 month expressed in years
weighted_times += time_accrued * accrued_payment
for t in range(1, 16):
time = t / 2
payment = coupon_payment
if t == 15:
payment += face
discount = (1 + new_yield / 2) ** t
pv = payment / discount
weighted_times += time * pv
macaulay_duration_new = weighted_times / new_price
modified_duration_new = macaulay_duration_new / (1 + new_yield / 2)
print(f"New Macaulay Duration: {macaulay_duration_new:.4f} years")
print(f"New Modified Duration: {modified_duration_new:.4f}%")
Results:
- New Macaulay Duration: 6.2971 years
- New Modified Duration: 6.1286%
Key Definitions & Significance:
- Duration Metrics:
- Macaulay Duration: The weighted average time until cash flows are received.
- Modified Duration: Estimates the percentage change in the bond price for a 1% change in yield.
- Significance: The reduction in duration from approximately 7.13 to 6.30 years indicates a decrease in the bond’s sensitivity to interest rate changes as it ages. This is a critical factor for investors assessing interest rate risk and for financial managers when considering refinancing or hedging strategies.