Session 5: Valuation of Fixed-Income Securities#
🤖 AI Copilot Reminder: Throughout this session, you’ll be working alongside your AI copilot to understand bond valuation, analyze interest rate relationships, and prepare to teach others. Look for the 🤖 symbol for specific collaboration opportunities.
Section 1: The Investment Hook#
The Interest Rate Puzzle: When “Safe” Bonds Lose Money#
Sarah has successfully optimized her portfolio allocation in Session 4 and allocated 10% to bonds through BND (Total Bond Market ETF). She feels confident about this “safe” allocation until she checks her account after six months:
Sarah’s Bond Investment Reality Check:
Initial Investment: $1,000 in BND at $75.50 per share (13.25 shares)
Six Months Later: BND price = $72.80 per share
Current Value: $964.60 (loss of $35.40 or -3.54%)
Dividend Received: $8.50 (0.85% yield for 6 months)
Total Return: -2.69% in six months
Sarah’s Confusion: “I thought bonds were supposed to be safe! How can I lose money on government and high-grade corporate bonds? The news says interest rates went up 1%, but I don’t understand how that caused my ‘safe’ investment to lose money.”
The Specific Challenge: Sarah’s financial advisor shows her bond data that makes her more confused:
Bond Type |
Coupon Rate |
Current Yield |
Price Change |
Duration |
---|---|---|---|---|
2-Year Treasury |
4.5% |
4.8% |
-1.9% |
1.8 years |
10-Year Treasury |
4.2% |
4.6% |
-8.7% |
8.2 years |
30-Year Treasury |
4.0% |
4.4% |
-15.2% |
17.8 years |
Sarah’s Question: “How do I understand what bonds are actually worth? Why do longer-term bonds lose more money when rates rise? How can I evaluate if a bond is a good investment?”
Timeline Visualization: The Bond Valuation Journey#
Present Value Analysis Interest Rate Sensitivity Portfolio Integration
(Cash Flow Valuation) → Duration & Convexity Analysis → Yield Curve Strategy
↓ ↓ ↓
Calculate Fair Value Measure Interest Rate Risk Optimize Fixed Income
Using Required Returns Under Different Scenarios Allocation Decisions
This session addresses the transition from understanding bonds as “safe” investments to scientifically valuing them based on cash flows, interest rate risk, and yield relationships.
Learning Connection#
Building on Session 4’s portfolio optimization framework, we now dive deep into the specific valuation of one major asset class. This provides the analytical foundation for making informed fixed-income allocation decisions and understanding how interest rate changes affect portfolio values.
Section 2: Foundational Investment Concepts & Models#
Bond Fundamentals - Complete Framework#
🤖 AI Copilot Activity: Before diving into bond mathematics, ask your AI copilot: “Help me understand the basic structure of bonds and why they’re considered debt investments. What are the key components that determine a bond’s value? How do bonds differ from stocks in terms of cash flows and investor rights?”
Bond Characteristics - Detailed Analysis#
Basic Bond Structure
Face Value (Par Value) represents the amount the bond issuer promises to repay at maturity, typically $1,000 for individual bonds and the basis for price quotations.
Definition: The principal amount that will be repaid when the bond matures
Standard Amount: $1,000 for most corporate and government bonds
Price Quotation: Bonds are quoted as percentage of par (e.g., 98.5 = $985 for $1,000 face value)
Importance: Determines the final cash flow received by the bondholder
Coupon Rate is the annual interest rate paid by the bond issuer, expressed as a percentage of the face value.
Definition: Fixed annual interest rate stated on the bond
Payment Frequency: Usually semi-annual (twice per year) in the United States
Calculation: Annual coupon payment = Face Value × Coupon Rate
Example: 5% coupon on $1,000 bond = $50 annually ($25 every six months)
Fixed Nature: Coupon rate never changes during the bond’s life
Maturity Date specifies when the issuer must repay the face value and make the final coupon payment.
Definition: The specific date when the bond expires and principal is repaid
Classifications:
Short-term: Less than 2 years
Intermediate-term: 2-10 years
Long-term: More than 10 years
Impact on Risk: Longer maturity generally means higher interest rate sensitivity
Credit Quality measures the issuer’s ability to make promised payments, rated by agencies like Moody’s, S&P, and Fitch.
Investment Grade: BBB-/Baa3 and above (lower default risk)
High Yield (Junk): Below BBB-/Baa3 (higher default risk, higher yields)
Government Bonds: Generally considered highest credit quality
Corporate Bonds: Credit quality varies by company financial strength
Bond Valuation Mathematics - Complete Framework#
🤖 AI Copilot Activity: Ask your AI copilot: “Walk me through the mathematical foundation of bond valuation. Why do we use present value calculations for bonds? How does the required rate of return relate to market interest rates and credit risk?”
Present Value Bond Valuation Model
Bonds are valued as the present value of all future cash flows (coupon payments plus principal repayment) discounted at the required rate of return.
Basic Bond Valuation Formula: Bond Value = PV(Coupons) + PV(Principal)
Mathematical Expression:
P = Σ[C/(1+r)^t] + F/(1+r)^n
Where:
P = Bond Price
C = Coupon payment per period
r = Required rate of return per period
t = Time period
F = Face value
n = Number of periods to maturity
Detailed Example Calculation:
Bond Characteristics:
- Face Value: \$1,000
- Coupon Rate: 6% (annual)
- Maturity: 3 years
- Required Return: 7% (current market rate for similar bonds)
- Payment Frequency: Annual
Calculation:
Year 1 Coupon: \$60 / (1.07)^1 = \$56.07
Year 2 Coupon: \$60 / (1.07)^2 = \$52.41
Year 3 Coupon: \$60 / (1.07)^3 = \$48.98
Year 3 Principal: \$1,000 / (1.07)^3 = \$816.30
Bond Value = \$56.07 + \$52.41 + \$48.98 + \$816.30 = \$973.76
Semi-Annual Compounding (More Realistic) Most U.S. bonds pay interest semi-annually, requiring adjustment to the formula:
P = Σ[C/2/(1+r/2)^t] + F/(1+r/2)^2n
Where:
C/2 = Semi-annual coupon payment
r/2 = Semi-annual required return
2n = Total number of semi-annual periods
Yield Calculations - Comprehensive Analysis#
🤖 AI Copilot Activity: Ask your AI copilot: “Explain the different types of bond yields and why each is important for investment analysis. How do current yield, yield to maturity, and yield to call differ? Which yield measure is most useful for comparing bonds?”
Current Yield
Definition: Annual coupon payment divided by current market price
Formula: Current Yield = (Annual Coupon Payment / Current Price) × 100
Example: $50 coupon, $950 price → Current Yield = ($50 / $950) × 100 = 5.26%
Limitation: Ignores capital gains/losses from price changes
Use: Quick comparison tool, but incomplete measure
Yield to Maturity (YTM)
Definition: The total return if bond is held to maturity, considering both coupon income and capital gains/losses
Calculation: Internal rate of return that makes present value of cash flows equal to current price
Interpretation: The discount rate that equates bond price to present value of future cash flows
Industry Standard: Most important yield measure for bond analysis
Assumption: All coupon payments are reinvested at the YTM rate
YTM Calculation Process: Solve for ‘r’ in the bond valuation equation:
Current Price = Σ[Coupon/(1+r)^t] + Face Value/(1+r)^n
This requires iterative calculation or financial calculator/software.
Interest Rate Risk - Mathematical Framework#
🤖 AI Copilot Activity: Ask your AI copilot: “Help me understand why bond prices move inversely to interest rates and how to measure this sensitivity. What is duration and why is it crucial for bond portfolio management? How do investors use duration to manage interest rate risk?”
Price-Yield Relationship (Fundamental Bond Principle)
Bond prices and yields move in opposite directions due to the present value mathematics:
When interest rates rise: Required returns increase, present value of future cash flows decreases, bond prices fall
When interest rates fall: Required returns decrease, present value of future cash flows increases, bond prices rise
Duration - Primary Risk Measure
Modified Duration measures the percentage change in bond price for a 1% change in yield.
Formula: Modified Duration = Duration / (1 + YTM)
Interpretation: If modified duration = 7.2, a 1% increase in rates causes approximately 7.2% decrease in price
Use: Portfolio risk management and hedging decisions
Macaulay Duration measures the weighted average time to receive cash flows.
Formula: Duration = Σ[t × PV(Ct)] / Bond Price
Where: t = time period, PV(Ct) = present value of cash flow at time t
Interpretation: Average maturity of the bond’s cash flows
Duration Properties:
Higher duration = greater interest rate sensitivity
Longer maturity generally increases duration
Lower coupon rates increase duration
Higher yields decrease duration
Convexity - Advanced Risk Measure
Definition: Measures the curvature of the price-yield relationship
Importance: Duration assumes linear relationship, but actual relationship is curved
Application: Improves accuracy of price change estimates for large yield changes
Formula: Price Change ≈ -Duration × Yield Change + 0.5 × Convexity × (Yield Change)²
Credit Risk Analysis - Complete Framework#
Default Risk Assessment
Credit Ratings: Systematic evaluation of issuer’s ability to pay
Spread Analysis: Yield difference between corporate and government bonds
Credit Quality Migration: How ratings change over time
Recovery Rates: Expected percentage recovery if default occurs
Credit Spread Components:
Default Risk Premium: Compensation for possibility of default
Liquidity Premium: Extra yield for less liquid bonds
Tax Considerations: Municipal bonds often trade at lower yields due to tax advantages
Yield Curve Analysis - Advanced Framework#
Yield Curve Construction
Definition: Graph showing yields for bonds of different maturities but similar credit quality
Normal Curve: Upward sloping (longer maturities have higher yields)
Inverted Curve: Downward sloping (shorter maturities have higher yields)
Flat Curve: Similar yields across all maturities
Theories of Yield Curve Shape:
Expectations Theory: Curve shape reflects expected future interest rates
Liquidity Preference: Investors demand premium for longer-term bonds
Market Segmentation: Different investors prefer different maturity ranges
Section 3: The Investment Gym - Partner Practice & AI Copilot Learning#
Solo Practice Problems (10-15 minutes)#
Problem 1: Basic Bond Valuation Calculate the price of a bond with:
Face Value: $1,000
Coupon Rate: 5%
Maturity: 4 years
Required Return: 6%
Payment: Annual
Show all steps in your calculation.
Problem 2: Yield Calculations A $1,000 face value bond with 7% coupon rate currently trades at $1,050:
Calculate the current yield
If the bond matures in 5 years, estimate whether YTM is above or below the coupon rate
Explain the relationship between price, coupon rate, and YTM
Problem 3: Duration and Interest Rate Sensitivity Two bonds have the following characteristics:
Bond A: 3-year maturity, 6% coupon, duration = 2.8
Bond B: 10-year maturity, 6% coupon, duration = 7.4
If interest rates increase by 1.5%, estimate the price change for each bond.
AI Copilot Learning Phase (10-15 minutes)#
🤖 AI Copilot Learning Prompt: “Act as a fixed-income portfolio manager and help me understand the practical application of bond valuation and interest rate risk management. I need to explore: 1) How do professional bond managers use duration and convexity to manage portfolio risk? 2) What factors beyond credit ratings affect bond pricing in real markets? 3) How should individual investors think about fixed-income allocation in different interest rate environments? Prepare me to explain these concepts clearly to a peer, focusing on both the mathematical foundations and practical portfolio management applications.”
Student Preparation Task: Work with AI to master these concepts, then prepare to teach:
The mathematical relationship between interest rates and bond prices
How to use duration to measure and manage interest rate risk
The process of evaluating bonds for portfolio inclusion
Reciprocal Teaching Component (15-20 minutes)#
Structured Roles:
Bond Analyst: Explain valuation mathematics and yield calculations
Risk Manager: Focus on duration, convexity, and interest rate sensitivity
Portfolio Manager: Address how bond analysis fits into overall portfolio construction
Teaching Requirements: Each student must explain:
Mathematical Logic: Why do bond prices move inversely to interest rates?
Valuation Process: How do you calculate the fair value of a bond using present value techniques?
Risk Management: How does duration help investors manage interest rate risk?
Peer Teaching Scenario: “Your partner is Sarah trying to understand why her ‘safe’ bond investment lost money. Explain the relationship between interest rates and bond prices, how to calculate a bond’s sensitivity to rate changes, and what this means for portfolio management.”
Collaborative Challenge Problem (15-20 minutes)#
The Fixed-Income Allocation Challenge
Your team advises three clients who need to optimize their bond allocations:
Available Bond Options:
Short-Term Treasury: 2-year maturity, 4.5% yield, duration = 1.9
Intermediate Corporate: 7-year maturity, 5.2% yield, duration = 6.1, AA-rated
Long-Term Treasury: 20-year maturity, 4.8% yield, duration = 14.2
High-Yield Corporate: 5-year maturity, 7.8% yield, duration = 4.2, BB-rated
Interest Rate Environment:
Current 10-year Treasury: 4.6%
Federal Reserve expected to raise rates 0.75% over next 12 months
Economic uncertainty moderate but increasing
Client Profiles:
Conservative Retiree: Age 68, needs steady income, cannot afford principal losses
Moderate Investor: Age 45, balanced approach, can accept some volatility for higher returns
Defensive Investor: Age 35, primarily equity-focused but wants bond hedge against stock volatility
Challenge Questions:
For each client, recommend optimal bond allocation considering duration risk
Calculate expected price impact if interest rates rise 0.75% as projected
Justify allocation decisions using duration, credit quality, and yield analysis
Design rebalancing strategy for changing interest rate environment
Robinhood Integration (15 minutes)#
Platform Bond Analysis:
Yield Curve Research: Examine current Treasury yield curve
ETF Duration Analysis: Look up duration and yield data for major bond ETFs
Credit Spread Investigation: Compare yields between Treasury and corporate bond ETFs
Debrief Discussion (10 minutes)#
Key Insights:
Bond valuation requires understanding present value mathematics and interest rate relationships
Duration provides essential tool for measuring and managing interest rate risk
Credit analysis adds second dimension to bond evaluation beyond interest rate sensitivity
Fixed-income strategy must consider both income generation and capital preservation goals
Section 4: The Investment Coaching - Your DRIVER Learning Guide#
Coaching Scenario: “Should Sarah Avoid Bonds After Learning About Interest Rate Risk?”#
Sarah now understands why her bond investment lost money when interest rates rose, but she’s questioning whether bonds belong in her portfolio at all. She needs to make informed decisions about fixed-income allocation in a rising rate environment.
Define & Discover#
🤖 DRIVER Stage 1: Structured Prompt Starters
Step 1 - Context Exploration Prompt: “Act as a fixed-income strategist and help me explore the context of bond investing in different interest rate environments. What are the key factors that make bond allocation complex for different types of investors? What has research shown about optimal fixed-income strategies across various market cycles and investor life stages?”
Step 2 - Problem Framing Prompt: “Help me frame Sarah’s specific bond allocation decision systematically: 1) What are the key trade-offs between interest rate risk and diversification benefits for a 22-year-old investor? 2) How should duration, credit quality, and yield considerations influence bond selection? 3) What criteria should guide the choice between individual bonds, bond funds, and bond ETFs? 4) How do current interest rate levels and Federal Reserve policy affect optimal bond strategy?”
Step 3 - Verification and Refinement Prompt: “Review my problem framing for Sarah’s fixed-income investment decisions. Is this framework comprehensive and practical for a young investor? What important bond analysis considerations might I be missing? How can I make this analysis more actionable for someone building their first bond allocation?”
Problem Framing:
Objective: Determine appropriate fixed-income allocation that balances diversification benefits with interest rate risk
Constraints: 22-year-old timeline, limited bond knowledge, current rising rate environment
Variables: Duration target, credit quality preferences, allocation percentage, implementation vehicle
Success Criteria: Portfolio diversification, income generation, manageable volatility, easy implementation
Represent#
🤖 DRIVER Stage 2: Structured Prompt Starters
Step 1 - Visualization Planning Prompt: “Help me create a logical visual structure for Sarah’s bond investment analysis. I need to map the decision flow from interest rate environment through duration analysis to specific bond selection. What would be the most effective way to visualize the relationship between yield, duration, credit quality, and portfolio role?”
Step 2 - Model Structure Prompt: “Help me design the logical framework for evaluating bonds within a portfolio context. What are the key steps in moving from macroeconomic interest rate analysis to specific bond selection? How should I structure the comparison between different bond types and implementation approaches?”
Step 3 - Logic Verification Prompt: “Review my logical structure for Sarah’s bond analysis. Does this framework capture the key considerations for fixed-income investing in a rising rate environment? What am I missing in terms of risk management, yield optimization, or practical implementation?”
Visual Mapping:
Bond Investment Decision Framework:
Interest Rate Environment Assessment
├── Rising Rates (favor shorter duration)
├── Stable Rates (moderate duration acceptable)
└── Falling Rates (longer duration beneficial)
↓
Portfolio Role Definition
├── Diversification (low correlation with stocks)
├── Income Generation (current yield focus)
└── Capital Preservation (high credit quality)
↓
Implementation Strategy
├── Individual Bonds (direct control)
├── Bond Funds (professional management)
└── Bond ETFs (liquidity and transparency)
Implement#
🤖 DRIVER Stage 3: Structured Prompt Starters
Step 1 - Implementation Planning Prompt: “Help me plan the implementation of Sarah’s bond analysis and valuation system. I need to create Python code that can value bonds, calculate duration and yield measures, and assess interest rate sensitivity. What object-oriented design would work best? What financial calculations need to be implemented with precision?”
Step 2 - Code Development Prompt: “Help me implement the bond valuation code step by step. Start with a class structure for managing bond characteristics and valuation, then add methods for yield calculations, duration analysis, and scenario testing. Make sure the code handles both individual bonds and portfolio-level analysis clearly.”
Step 3 - Code Review and Enhancement Prompt: “Review my bond valuation implementation code for both technical accuracy and practical usability. Are the financial calculations correct? How can I make the code more robust and educational? What additional features would make this tool more useful for fixed-income analysis?”
⚠️ CODE LEARNING NOTE: The following code is intentionally simplified for educational purposes and may contain incomplete logic or potential errors. Your job is to work with your AI copilot to:
Understand each line of code and its financial purpose
Verify the bond valuation and duration calculations against financial theory
Identify any limitations or potential improvements
Test the code with different bond characteristics and interest rate scenarios
Enhance the code to handle edge cases and make it more comprehensive
Remember: Learning comes from analyzing and improving the code, not just copying it!
Python Code Example:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
class BondAnalyzer:
def __init__(self, face_value=1000, coupon_rate=0.05, years_to_maturity=5,
payments_per_year=2, current_yield_environment=0.06):
"""
Initialize bond analyzer with bond characteristics
Parameters:
face_value: Bond face value (default \$1000)
coupon_rate: Annual coupon rate (decimal)
years_to_maturity: Years until bond matures
payments_per_year: Coupon payment frequency (1=annual, 2=semi-annual)
current_yield_environment: Current market yield for similar bonds
"""
self.face_value = face_value
self.coupon_rate = coupon_rate
self.years_to_maturity = years_to_maturity
self.payments_per_year = payments_per_year
self.market_yield = current_yield_environment
# Calculate derived properties
self.total_periods = years_to_maturity * payments_per_year
self.coupon_payment = (face_value * coupon_rate) / payments_per_year
self.period_yield = current_yield_environment / payments_per_year
def calculate_bond_price(self, market_yield=None):
"""
Calculate bond price using present value of cash flows
"""
if market_yield is None:
market_yield = self.market_yield
period_yield = market_yield / self.payments_per_year
# Present value of coupon payments (annuity)
if period_yield == 0:
pv_coupons = self.coupon_payment * self.total_periods
else:
pv_coupons = self.coupon_payment * (
(1 - (1 + period_yield) ** (-self.total_periods)) / period_yield
)
# Present value of face value (lump sum)
pv_face_value = self.face_value / ((1 + period_yield) ** self.total_periods)
bond_price = pv_coupons + pv_face_value
return bond_price
def calculate_current_yield(self, market_price=None):
"""
Calculate current yield (annual coupon / current price)
"""
if market_price is None:
market_price = self.calculate_bond_price()
annual_coupon = self.face_value * self.coupon_rate
current_yield = annual_coupon / market_price
return current_yield
def calculate_yield_to_maturity(self, market_price=None, precision=0.0001):
"""
Calculate YTM using iterative approximation (Newton-Raphson method)
"""
if market_price is None:
market_price = self.calculate_bond_price()
# Initial guess
ytm_guess = self.coupon_rate
for iteration in range(100): # Maximum iterations
price_at_guess = self.calculate_bond_price(ytm_guess)
price_diff = price_at_guess - market_price
if abs(price_diff) < precision:
return ytm_guess
# Calculate derivative (price sensitivity to yield change)
ytm_up = ytm_guess + 0.0001
price_up = self.calculate_bond_price(ytm_up)
derivative = (price_up - price_at_guess) / 0.0001
# Newton-Raphson update
if derivative != 0:
ytm_guess = ytm_guess - (price_diff / derivative)
else:
break
return ytm_guess
def calculate_macaulay_duration(self, market_yield=None):
"""
Calculate Macaulay duration (weighted average time to cash flows)
"""
if market_yield is None:
market_yield = self.market_yield
period_yield = market_yield / self.payments_per_year
bond_price = self.calculate_bond_price(market_yield)
weighted_time = 0
# Calculate weighted present value of each coupon payment
for period in range(1, self.total_periods + 1):
time_in_years = period / self.payments_per_year
cash_flow = self.coupon_payment
# Add face value to final payment
if period == self.total_periods:
cash_flow += self.face_value
present_value = cash_flow / ((1 + period_yield) ** period)
weighted_time += (time_in_years * present_value)
macaulay_duration = weighted_time / bond_price
return macaulay_duration
def calculate_modified_duration(self, market_yield=None):
"""
Calculate modified duration (price sensitivity to yield changes)
"""
if market_yield is None:
market_yield = self.market_yield
macaulay_duration = self.calculate_macaulay_duration(market_yield)
modified_duration = macaulay_duration / (1 + market_yield / self.payments_per_year)
return modified_duration
def estimate_price_change(self, yield_change, market_yield=None):
"""
Estimate price change for given yield change using duration
"""
modified_duration = self.calculate_modified_duration(market_yield)
estimated_price_change_percent = -modified_duration * yield_change
current_price = self.calculate_bond_price(market_yield)
estimated_new_price = current_price * (1 + estimated_price_change_percent)
return {
'estimated_price_change_percent': estimated_price_change_percent,
'estimated_new_price': estimated_new_price,
'current_price': current_price
}
def scenario_analysis(self, yield_scenarios):
"""
Analyze bond performance under different yield scenarios
"""
results = []
for scenario_name, new_yield in yield_scenarios.items():
new_price = self.calculate_bond_price(new_yield)
current_price = self.calculate_bond_price()
price_change = (new_price - current_price) / current_price
# Duration-based estimate
duration_estimate = self.estimate_price_change(new_yield - self.market_yield)
results.append({
'scenario': scenario_name,
'new_yield': new_yield,
'new_price': new_price,
'price_change_percent': price_change,
'duration_estimate_percent': duration_estimate['estimated_price_change_percent'],
'estimation_error': abs(price_change - duration_estimate['estimated_price_change_percent'])
})
return pd.DataFrame(results)
def generate_bond_report(self):
"""
Generate comprehensive bond analysis report
"""
current_price = self.calculate_bond_price()
current_yield = self.calculate_current_yield(current_price)
ytm = self.calculate_yield_to_maturity(current_price)
mac_duration = self.calculate_macaulay_duration()
mod_duration = self.calculate_modified_duration()
print("\n" + "="*50)
print("BOND ANALYSIS REPORT")
print("="*50)
print(f"\nBOND CHARACTERISTICS:")
print(f"Face Value: ${self.face_value:,.2f}")
print(f"Coupon Rate: {self.coupon_rate:.2%}")
print(f"Years to Maturity: {self.years_to_maturity}")
print(f"Payment Frequency: {self.payments_per_year}x per year")
print(f"Annual Coupon Payment: ${self.face_value * self.coupon_rate:,.2f}")
print(f"\nVALUATION METRICS:")
print(f"Current Market Yield: {self.market_yield:.2%}")
print(f"Calculated Bond Price: ${current_price:,.2f}")
print(f"Price as % of Par: {current_price/self.face_value:.1%}")
print(f"\nYIELD ANALYSIS:")
print(f"Current Yield: {current_yield:.2%}")
print(f"Yield to Maturity: {ytm:.2%}")
print(f"Yield vs. Coupon: {'Premium' if ytm < self.coupon_rate else 'Discount' if ytm > self.coupon_rate else 'Par'}")
print(f"\nRISK METRICS:")
print(f"Macaulay Duration: {mac_duration:.2f} years")
print(f"Modified Duration: {mod_duration:.2f}")
print(f"Price Sensitivity: {mod_duration:.1f}% per 1% yield change")
# Scenario analysis
scenarios = {
'Rates Rise 1%': self.market_yield + 0.01,
'Rates Rise 2%': self.market_yield + 0.02,
'Rates Fall 1%': self.market_yield - 0.01,
'Rates Fall 2%': self.market_yield - 0.02
}
scenario_df = self.scenario_analysis(scenarios)
print(f"\nSCENARIO ANALYSIS:")
for _, row in scenario_df.iterrows():
print(f"{row['scenario']:>15}: {row['price_change_percent']:>6.1%} price change")
return {
'bond_price': current_price,
'current_yield': current_yield,
'ytm': ytm,
'macaulay_duration': mac_duration,
'modified_duration': mod_duration,
'scenarios': scenario_df
}
# Example Usage: Sarah's Bond Analysis
def analyze_sarahs_bond_options():
"""Analyze different bond options for Sarah's portfolio"""
print("Analyzing Bond Options for Sarah's Portfolio")
print("Current Interest Rate Environment: Rising rates expected")
# Define bond options
bond_options = {
'Short-Term Treasury': BondAnalyzer(1000, 0.045, 2, 2, 0.048),
'Intermediate Corporate': BondAnalyzer(1000, 0.052, 7, 2, 0.055),
'Long-Term Treasury': BondAnalyzer(1000, 0.042, 20, 2, 0.046)
}
# Analyze each option
analysis_results = {}
for bond_name, bond_analyzer in bond_options.items():
print(f"\n{'='*20} {bond_name} {'='*20}")
results = bond_analyzer.generate_bond_report()
analysis_results[bond_name] = results
return analysis_results
# AI Collaboration for Enhancement
print("Bond Analysis Complete!")
print("Work with your AI copilot to enhance this analysis:")
print("1. Add credit risk analysis and rating considerations")
print("2. Include tax implications for different bond types")
print("3. Build yield curve analysis and positioning strategies")
print("4. Implement portfolio-level duration and risk management")
Validate#
🤖 DRIVER Stage 4: Structured Prompt Starters
Step 1 - Validation Planning Prompt: “Act as a fixed-income risk manager and help me design comprehensive validation tests for this bond valuation model. What benchmarks should I compare against? What are the most important edge cases to test? How do professional bond managers validate their valuation models?”
Step 2 - Testing Strategy Prompt: “Help me create specific validation tests for Sarah’s bond analysis. I need to test: 1) Accuracy of bond pricing calculations against market data, 2) Duration estimates vs. actual price sensitivity, 3) Yield calculations vs. financial data providers, 4) Scenario analysis reliability under different interest rate environments. What specific metrics should I track?”
Step 3 - Results Interpretation Prompt: “Help me interpret the validation results for my bond valuation model. What do the test outcomes tell me about when to trust vs. question my calculations? What limitations should I acknowledge? How should this analysis influence practical bond investment decisions?”
Evolve#
🤖 DRIVER Stage 5: Structured Prompt Starters
Step 1 - Pattern Recognition Prompt: “Help me identify the core analytical patterns from this bond valuation that apply to other fixed-income contexts. What is the fundamental present value framework we used? How does this discounted cash flow approach extend to other types of fixed-income analysis?”
Step 2 - Application Extension Prompt: “Now that I understand this bond valuation framework, help me identify other contexts where this same analytical approach applies. Consider preferred stocks, REITs, dividend-paying stocks, and mortgage-backed securities. What are the similarities and differences in cash flow analysis?”
Step 3 - Integration and Advancement Prompt: “Help me connect this bond valuation framework to more advanced fixed-income concepts. How does this foundation prepare me for yield curve strategies, credit analysis, and institutional bond portfolio management? What should I learn next to build on this analytical foundation?”
Reflect#
🤖 DRIVER Stage 6: Structured Prompt Starters
Step 1 - Learning Synthesis Prompt: “Act as a fixed-income mentor and help me consolidate the key lessons from this bond valuation analysis. What fundamental principles about present value and interest rate risk did we demonstrate? What was most important about the systematic approach we used? How did this analysis change my understanding of ‘safe’ investments?”
Step 2 - Application Planning Prompt: “Help me identify how I can apply this bond analysis framework to real-world investment decisions and future learning. What specific next steps should I take to implement these concepts? What other DRIVER applications would strengthen my fixed-income analysis skills? How does this foundation prepare me for advanced investment strategies?”
Step 3 - Meta-Learning Reflection Prompt: “Help me reflect on my learning process during this bond valuation analysis. What aspects of the mathematical framework were most challenging? Which concepts connected most clearly to previous sessions? How can I improve my quantitative analysis and AI collaboration for future investment problems?”
Section 5: The Investment Game - Financial Detective Work#
Part A: Recognition Scenarios (15 minutes)#
Bond Analysis Recognition: Identify the appropriate bond concept being applied in each scenario:
Scenario: Portfolio manager reduces average portfolio duration from 7 years to 4 years Question: What market condition likely drove this decision? Options: Rising rates expected, Credit concerns, Liquidity needs, Tax optimization
Scenario: Investor chooses AA-rated corporate bonds yielding 5.2% over Treasury bonds yielding 4.6% Question: What analysis framework justifies this 60 basis point spread? Options: Duration matching, Credit risk premium, Liquidity preference, Tax considerations
Scenario: Pension fund ladders bond maturities across 10 years rather than concentrating in 5-year bonds Question: What risk management principle does this strategy address? Options: Interest rate risk, Credit risk, Liquidity risk, Reinvestment risk
Part B: Full DRIVER Application (30 minutes)#
Case Study: The Rising Rate Challenge
Michael, 45, has $150,000 in bond investments and is concerned about rising interest rates. His current allocation:
Current Bond Holdings:
Long-Term Treasury ETF (TLT): $60,000, duration ≈ 17 years, current yield 4.4%
Corporate Bond Fund: $50,000, duration ≈ 6 years, current yield 5.1%
High-Yield Bond ETF: $40,000, duration ≈ 4 years, current yield 7.8%
Market Environment:
Federal Reserve projecting 1.5% rate increases over next 18 months
Economic uncertainty moderate, credit spreads stable
Inflation expectations rising from 2.5% to 3.2%
Michael’s Situation:
Investment Goal: Preserve capital while generating income
Risk Tolerance: Moderate (can accept 5-8% portfolio volatility)
Time Horizon: 20 years to retirement
Income Needs: Wants $6,000 annual income from bond portfolio
Your Challenge: Apply the complete DRIVER framework to redesign Michael’s bond allocation.
🤖 Assignment Reminder: Work closely with your AI copilot throughout this analysis, using the structured prompts provided for each DRIVER stage.
Primary Deliverable: YouTube Video Presentation (8-12 minutes)
Your main assignment is a YouTube video presentation that demonstrates mastery of both bond valuation theory and practical portfolio management.
Required Video Components:
Financial Analysis Section (4-6 minutes):
Clear explanation of how you analyzed Michael’s duration risk using bond valuation principles
Demonstration of yield and duration calculations for current holdings
Recommended optimal allocation with justification based on interest rate sensitivity analysis
Discussion of how rising rate environment affects bond selection strategy
Technical Implementation Section (4-6 minutes):
Step-by-step walkthrough of your bond valuation and portfolio analysis code
Explanation of duration calculations and scenario testing methodology
Demonstration of code execution with Michael’s specific holdings and constraints
Sensitivity analysis showing impact of different interest rate scenarios
Integration & Conclusion (1-2 minutes):
How the quantitative bond analysis results inform your allocation recommendations
Trade-offs between income generation and interest rate risk management
Connection to broader portfolio construction principles from previous sessions
Written Supplement: AI Collaboration Reflection (200 words) Along with your video, submit a brief written reflection addressing:
Most Valuable Prompt: Which specific AI prompt from this session was most helpful for your learning?
Prompt Improvement: How would you modify or improve that prompt for future use?
Learning Process: How did working with your AI copilot change your understanding of bond valuation compared to working alone?
Section 6: Reflect & Connect - Fixed-Income Investment Insights Discussion#
Individual Reflection (5 minutes)#
Reflection Prompts:
How did learning bond valuation mathematics change your understanding of “safe” investments?
What surprised you most about the relationship between interest rates and bond prices?
Which aspect of duration analysis was most challenging to explain to others?
Pair Discussion (10 minutes)#
Discussion Questions:
Compare your bond analysis results - what factors drove different duration recommendations?
Discuss: “When do bonds provide diversification benefits vs. when do they add unwanted risk?”
Share insights: What made the present value calculations most meaningful for investment decisions?
Class Synthesis (10 minutes)#
Key Insights:
Bond valuation requires systematic mathematical analysis, not just yield comparison
Duration provides essential quantitative tool for managing interest rate risk
Present value framework reveals why bond prices fluctuate and enables informed decisions
Fixed-income strategy must balance income generation with capital preservation goals
Section 7: Looking Ahead - From Fixed-Income to Equity Valuation#
Skills Developed Today#
Applied present value mathematics to bond valuation and portfolio decisions
Analyzed duration and interest rate sensitivity for risk management
Implemented comprehensive bond analysis using Python and financial modeling
Evaluated fixed-income strategies in different interest rate environments
Bridge to Session 6#
Now that we understand HOW to value fixed-income securities using discounted cash flows, Session 6 addresses equity valuation using similar but more complex analytical frameworks.
The Next Challenge: “I can value bonds because they have predictable cash flows, but how do I value stocks where dividends and earnings are uncertain and potentially growing? How do I determine if a stock is overvalued or undervalued?”
Pattern Evolution Preview#
The present value framework from today becomes the foundation for equity valuation in Session 6. We’ll modify our cash flow analysis to handle uncertain and growing payments, moving from bond mathematics to stock valuation models.
Preparation for Next Session#
Review dividend discount model concepts
Think about this question: “How would you value a stock that pays growing dividends vs. one that pays no dividends?”
Section 8: Appendix - Fixed-Income Solutions & Implementation Guide#
Solutions to Practice Problems#
Basic Bond Valuation:
Bond Price = PV(coupons) + PV(principal)
Annual coupons: $50 for 4 years
PV = $50/1.06 + $50/1.06² + $50/1.06³ + $1,050/1.06⁴ = $965.35
Bond trades at discount (below par) because market yield > coupon rate
Yield Calculations:
Current Yield = $70/$1,050 = 6.67%
YTM < 7% coupon rate (bond trading at premium)
When price > par, YTM < coupon rate
Duration and Price Sensitivity:
Bond A: 1.5% rate increase × 2.8 duration = -4.2% price change
Bond B: 1.5% rate increase × 7.4 duration = -11.1% price change
Longer duration bonds show greater interest rate sensitivity
Video Presentation Rubric for Session 5#
Financial Explanation (40%)
Excellent: Clear explanation of bond valuation principles, duration analysis, interest rate risk with supporting quantitative evidence
Good: Solid understanding of fixed-income concepts with minor gaps in explanation
Needs Work: Basic understanding but unclear explanations or missing key valuation foundations
Inadequate: Fundamental misunderstanding of bond mathematics or valuation principles
Technical Implementation (40%)
Excellent: Working bond valuation code, clear cash flow analysis, appropriate use of duration calculations
Good: Mostly functional implementation with minor issues, clear technical approach
Needs Work: Partially working code, unclear valuation methodology
Inadequate: Non-functional code or major technical errors in bond analysis
Integration & Communication (20%)
Excellent: Seamless connection between bond theory and practical portfolio allocation decisions
Good: Clear connections made between valuation results and investment recommendations
Needs Work: Some integration but gaps in connecting theory to practice
Inadequate: No clear integration between mathematical analysis and practical implementation
Implementation Guide#
Fixed-Income Teaching Points:
Emphasize that bond math reveals true investment characteristics
Show practical application of duration for portfolio risk management
Connect present value concepts to real-world interest rate changes
Demonstrate yield calculations using actual market data
Common Student Errors:
Confusing current yield with yield to maturity
Misunderstanding inverse relationship between rates and prices
Overcomplicating duration calculations
Ignoring credit risk when focusing on interest rate risk
AI Collaboration Best Practices:
Require students to validate bond calculations against financial theory
Encourage exploration of different interest rate scenarios
Document assumptions underlying valuation models
Test sensitivity to key inputs (yields, credit quality, maturity)
Extension Activities#
Advanced Analysis:
Callable bond valuation with embedded options
Municipal bond tax-equivalent yield analysis
International bond analysis with currency risk
Mortgage-backed securities and prepayment risk
Real-World Applications:
Analyze Fed policy impact on different duration sectors
Compare bond mutual funds vs. ETFs vs. individual bonds
Investigate corporate credit analysis and rating changes
Explore inflation-protected securities (TIPS) valuation
Preparation for Session 6:
Review basic equity valuation concepts (P/E ratios, dividend yields)
Download historical stock price and dividend data for major companies
Explore financial statement fundamentals (income, balance sheet, cash flow)
Research dividend growth rates for blue-chip dividend-paying stocks