Session 4: Bond Valuation

Contents

Session 4: Bond Valuation#

Understanding the price of a promise.


Section 1: The Financial Hook - The Treasury Dilemma#

You have $10,000 to invest safely for your emergency fund. The bank offers a 3-year CD paying 2.5% annually. But your finance-savvy friend suggests a different option: a 3-year U.S. Treasury bond with these terms:

  • Face value: $10,000 (what you get back at maturity)

  • Coupon rate: 4% annually (pays $400 per year)

  • Current market price: $10,500

Timeline Visualization:

Purchase: \$10,500 -----> \$400 -----> \$400 -----> \$400 + \$10,000
Today                  Year 1     Year 2     Year 3 (Maturity)
    |                    |          |            |
    |<------------- Bond Investment Period --------->|

vs.

CD: \$10,000 ---------> Guaranteed 2.5% annually ---------> \$10,769
    Today                                                3 Years

Your friend argues: “The Treasury pays $400 annually PLUS you get back $10,000. That’s way better than the CD!” But something feels off. Why would you pay $10,500 today to get back only $10,000 in three years?

This is where Session 2’s DDM framework saves you. Bonds are just another application of present value analysis—instead of uncertain dividends, you’re valuing guaranteed cash flows.


Section 1.5: Self-Test Quiz - Check Your Starting Point#

Instructions: Choose the best answer for each question. Don’t use AI - this is to check what you already know.

Question 1: What does YTM stand for?

  • a) Year to Maturity

  • b) Yield to Maturity

  • c) Yearly Total Money

  • d) Yield Time Measure

Question 2: A bond’s coupon payment is:

  • a) The final payment when the bond matures

  • b) The regular interest payment during the bond’s life

  • c) The price you pay to buy the bond

  • d) The bond’s market value

Question 3: When interest rates rise, bond prices:

  • a) Rise

  • b) Fall

  • c) Stay the same

  • d) Become unpredictable

Question 4: From Session 2, we learned that present value helps us:

  • a) Predict future stock prices

  • b) Value future cash flows in today’s dollars

  • c) Calculate past performance

  • d) Set dividend payments

Answers: 1-b, 2-b, 3-b, 4-b


Section 2: Foundational Concepts & Formulas#

Part I: Bonds as Contractual Cash Flows#

Bond Valuation Principle: A bond’s price equals the present value of all future cash flows: periodic coupon payments plus principal repayment at maturity.

Key Concepts:

  • Face Value (Par Value): The amount paid back at maturity (typically $1,000)

  • Coupon Rate: Annual interest rate stated on the bond (determines dollar coupon payment)

  • Coupon Payment: Periodic interest payment = Face Value × Coupon Rate

  • Yield to Maturity (YTM): The discount rate that makes PV of cash flows equal to current price

  • Maturity Date: When the principal is repaid and bond expires

Part II: The Bond Valuation Model#

Timeline for Bond Cash Flows:

Bond Price    Coupon     Coupon     Coupon + Principal
(Present Value)  |          |             |
Today         Year 1     Year 2     Year 3 (Maturity)
  |             |          |             |
  |<--------- Discount each coupon at YTM ----------->|

The Master Formula for Bond Valuation: $\(P_0 = \frac{C}{(1+r)^1} + \frac{C}{(1+r)^2} + \frac{C + FV}{(1+r)^n}\)$

Where \(P_0\) = bond price today, C = annual coupon payment, FV = face value, r = YTM, n = years to maturity

Simplified Notation: $\(P_0 = C \times \left[\frac{1 - (1+r)^{-n}}{r}\right] + \frac{FV}{(1+r)^n}\)\( \)\(P_0 = PV_{coupons} + PV_{principal}\)$

Part III: Bond Pricing Relationships#

Critical Bond Pricing Rules:

  • When YTM = Coupon Rate: Bond trades at par (price = face value)

  • When YTM > Coupon Rate: Bond trades at discount (price < face value)

  • When YTM < Coupon Rate: Bond trades at premium (price > face value)

Interest Rate Risk:

  • Rising rates → Bond prices fall (existing bonds become less attractive)

  • Falling rates → Bond prices rise (existing bonds become more attractive)

Part IV: Connection to Previous Sessions#

Pattern Recognition Across Sessions:

Session 1 (TVM):    PV = FV ÷ (1 + r)ⁿ        (Single cash flow)

Session 2 (Stocks): P₀ = Σ[Divₜ ÷ (1 + r)ᵗ]    (Variable cash flows)

Session 3 (Bonds):  P₀ = Σ[Cₜ ÷ (1 + r)ᵗ]     (Fixed cash flows)

All three sessions use identical present value logic. Bonds just offer the most predictable cash flows—fixed coupons and guaranteed principal repayment.

AI Learning Support - Fixed Income Concept Mastery

Learning Goal: Develop deep understanding of when bond valuation provides the most reliable investment analysis compared to equity valuation.

📊 Professional Prompt Sample A (Grade: A): “I’m studying the transition from equity to fixed income analysis and I’ve noticed that bond valuation seems more mechanically reliable than stock valuation because cash flows are contractually guaranteed rather than estimated. My hypothesis is that this makes bonds better suited for conservative portfolios and liability matching strategies. Can you challenge my thinking by exploring scenarios where this ‘safety’ might be misleading? I want to understand the hidden risks that even government bonds might carry and when DDM vs. bond valuation models break down.”

🏆 Why This Builds Your Fixed Income Career Value:

  • Cross-asset comparison: Shows sophisticated understanding of valuation differences

  • Risk awareness: Demonstrates understanding that guarantees have limits

  • Portfolio strategy thinking: Connects to real investment applications

  • Analytical skepticism: Questions assumptions about “safe” investments

📉 Weak Prompt Sample (Grade: D): “What’s the difference between bonds and stocks? Which one is safer?”

💸 Why This Damages Your Professional Prospects:

  • Superficial analysis: Shows no understanding of underlying complexity

  • Binary thinking: Misses nuanced risk-return relationships

  • No context awareness: Ignores market conditions and portfolio strategy

  • Amateur framing: Uses retail investor language instead of professional analysis

🎯 Your Professional Development Challenge: Transform this into a prompt that demonstrates the sophisticated fixed income analysis skills that institutional portfolio managers and credit analysts possess.

Bond Finder (if the url is broken, Research!)#

Corporate Bond in Depth#


Section 3: The Gym - Partner Practice#

Round 1: Solo Python Practice (15 minutes)#

Problem 1 (Simple Bond Valuation): A 2-year bond pays $60 annually and $1,000 at maturity. If the YTM is 5%, what should you pay?

Timeline:

P₀ = ? -----> \$60 -----> \$60 + \$1,000
Today       Year 1     Year 2
  |           |            |
  |<------- 5% YTM ------->|

Your Python Implementation:

# IMPORTANT: This code is a starting point - understand the logic, don't copy-paste
# Work through the logic step by step. Code may contain errors - debug with AI copilot.

# Step 1: Define bond terms
face_value = 1000
annual_coupon = 60
years_to_maturity = 2
ytm = 0.05

# Step 2: Calculate present values
pv_coupon_1 = annual_coupon / (1 + ytm)
final_payment = annual_coupon + face_value
pv_final_payment = final_payment / (1 + ytm)**2

# Step 3: Sum for bond fair value
bond_fair_value = pv_coupon_1 + pv_final_payment

print(f"Bond fair value: ${bond_fair_value:.2f}")

AI Learning Support - Fixed Income Code Development

Learning Goal: Build systematic coding skills for bond valuation while understanding the financial logic behind each calculation step.

💻 Professional Prompt Sample A (Grade: A): “I’m implementing bond valuation and my approach is: calculate PV of each coupon separately, calculate PV of principal payment, sum for total bond value. My code structure follows the mathematical logic of discounting cash flows at YTM. Before I finalize this, I want to validate my understanding: What are the most common errors in bond valuation coding? How can I build in checks to ensure my timing and cash flow assumptions are correct? What validation steps do fixed income professionals use?”

🏅 Why This Shows Professional Fixed Income Skills:

  • Clear calculation logic: Demonstrates systematic approach to valuation

  • Error anticipation: Shows professional quality control mindset

  • Validation awareness: Seeks to verify assumptions and timing

  • Industry practices inquiry: Connects to professional standards

🤦 Weak Prompt Sample (Grade: D): “Write bond valuation code for me that works correctly.”

💀 Why This Destroys Your Finance Career Prospects:

  • Zero technical contribution: Shows no coding or financial thinking

  • Complete delegation: Cannot explain valuation logic

  • No learning objective: Misses skill development opportunity

  • Interview disaster: Cannot defend or modify code

🚀 Your Technical Excellence Mission: Redesign this prompt to demonstrate the coding competency and financial reasoning that fixed income analysts must possess.

Problem 2 (Premium Bond Analysis): A 3-year bond with 8% coupon rate ($1,000 face value) trades at $1,050. What’s the YTM?

Timeline:

\$1,050 -----> \$80 -----> \$80 -----> \$80 + \$1,000
Today       Year 1     Year 2     Year 3
  |           |          |            |
  |<------- YTM = ? ----->|            |

Your Python Implementation:

# Before coding: Explain why we need to solve for YTM instead of bond price
# What does YTM represent in practical investment terms?

# Step 1: Define known bond parameters
face_value = 1000
coupon_rate = 0.08
annual_coupon = face_value * coupon_rate  # \$80
years_to_maturity = 3
current_market_price = 1050

# Step 2: YTM calculation requires trial-and-error or numerical methods
# We'll use approximation method for learning purposes
def bond_price_at_ytm(ytm):
    """Calculate bond price given a YTM"""
    pv_coupons = 0
    for year in range(1, years_to_maturity + 1):
        if year < years_to_maturity:
            pv_coupons += annual_coupon / (1 + ytm)**year
        else:
            # Final year includes coupon + principal
            pv_coupons += (annual_coupon + face_value) / (1 + ytm)**year
    return pv_coupons

# Step 3: Trial-and-error approach to find YTM
# Since price > face value, YTM < coupon rate (8%)
test_yields = [0.05, 0.06, 0.07, 0.08]
print(f"Finding YTM for bond priced at ${current_market_price}:")
print("YTM    Calculated Price    Difference")
print("-" * 40)

closest_ytm = None
smallest_difference = float('inf')

for ytm_test in test_yields:
    calculated_price = bond_price_at_ytm(ytm_test)
    difference = abs(calculated_price - current_market_price)
    print(f"{ytm_test:.1%}    ${calculated_price:.2f}           ${difference:.2f}")
    
    if difference < smallest_difference:
        smallest_difference = difference
        closest_ytm = ytm_test

print(f"\nApproximate YTM: {closest_ytm:.1%}")
print(f"Key insight: Premium bond (price > par) has YTM < coupon rate")

# Verification: Does this make financial sense?
print(f"\nVerification:")
print(f"Coupon rate: {coupon_rate:.1%}")
print(f"Estimated YTM: {closest_ytm:.1%}")
print(f"Logic check: {'PASS' if closest_ytm < coupon_rate else 'FAIL'}")

AI Learning Support - YTM Analysis and Professional Intuition

Learning Goal: Develop professional-level intuition for bond pricing relationships and yield calculations.

📈 Professional Prompt Sample A (Grade: A): “I’m working through YTM calculations and I’ve observed that when bond prices trade above par (premium), the YTM falls below the coupon rate. My understanding is that investors accept lower yields because they’re paying extra for above-market coupon rates. I want to develop stronger intuition: What market conditions drive bonds to trade at premiums? How do fixed income professionals use this price-yield relationship in their investment strategies? What questions should I ask myself when I see significant premiums or discounts?”

💼 Why This Builds Your Investment Analysis Credibility:

  • Pattern recognition: Shows understanding of fundamental relationships

  • Market context awareness: Connects pricing to market conditions

  • Strategic thinking: Links analysis to investment applications

  • Professional inquiry: Seeks market practitioner insights

😬 Weak Prompt Sample (Grade: D): “Help me calculate YTM. Why is it different from the coupon rate?”

🔥 Why This Signals Amateur Status:

  • Basic conceptual gap: Shows no understanding of pricing fundamentals

  • Computational focus: Misses market relationship insights

  • No strategic context: Cannot connect to investment decisions

  • Helpless dependency: Cannot develop professional intuition

🏆 Your Professional Excellence Challenge: Transform this into a prompt that demonstrates the market understanding and analytical intuition that bond portfolio managers possess.

Round 2: Peer Code Review (15 minutes)#

  • Person A: Walk through Problem 1, explaining each step of bond valuation logic

  • Person B: Walk through Problem 2, explaining why premium bonds have YTM < coupon rate

  • Both: Identify how bond analysis differs from stock DDM analysis

  • Challenge: What happens to bond prices when interest rates change? Test in your code

Round 3: Advanced Bond Analysis (15 minutes)#

Problem 3 (Zero-Coupon Bond): A 5-year Treasury STRIP pays no coupons, just $1,000 at maturity. If YTM is 6%, what’s the price?

Timeline:

P₀ = ? ---------> \$0 ---------> \$0 ---------> \$1,000
Today           Year 1        Year 3        Year 5
  |               |             |             |
  |<------------- 6% YTM ------------------>|

Your Python Implementation:

# Before coding: Explain why zero-coupon bonds are simpler to value
# How does this connect to Session 1's single cash flow analysis?

# Step 1: Zero-coupon bond parameters
face_value = 1000
years_to_maturity = 5
ytm = 0.06
annual_coupons = 0  # No periodic payments

# Step 2: Apply simple PV formula (back to Session 1!)
# Zero-coupon bond = pure present value calculation
zero_coupon_price = face_value / (1 + ytm)**years_to_maturity

print(f"Zero-Coupon Bond Analysis:")
print(f"Face value: ${face_value}")
print(f"Years to maturity: {years_to_maturity}")
print(f"YTM: {ytm:.1%}")
print(f"Fair price: ${zero_coupon_price:.2f}")

# Step 3: Calculate implied annual return
total_return = (face_value / zero_coupon_price) - 1
annualized_return = ((face_value / zero_coupon_price)**(1/years_to_maturity)) - 1

print(f"\nReturn Analysis:")
print(f"Total return over {years_to_maturity} years: {total_return:.1%}")
print(f"Annualized return: {annualized_return:.1%}")
print(f"Verification: {annualized_return:.1%} should equal YTM {ytm:.1%}")

# Sanity check: Zero-coupon bonds trade at deep discounts
discount_percentage = (1 - zero_coupon_price/face_value) * 100
print(f"Trading at {discount_percentage:.1f}% discount to face value")

AI Learning Support - Zero-Coupon Bond Analysis

Learning Goal: Master the connection between complex bond types and fundamental present value principles from Session 1.

🎯 Professional Prompt Sample A (Grade: A): “I’m analyzing zero-coupon bonds and realize they’re essentially Session 1’s single cash flow problems in disguise - just PV = FV/(1+r)^n with no intermediate payments. This makes them simpler mathematically but more sensitive to interest rate changes. I’m curious about their role in professional portfolios: Why do institutions use STRIPS? How does the absence of reinvestment risk change their strategic value? What questions should I ask when comparing zero-coupon bonds to coupon-bearing bonds for specific investment objectives?”

💡 Why This Shows Advanced Fixed Income Understanding:

  • Cross-session integration: Connects current learning to foundational concepts

  • Risk characteristic analysis: Understands interest rate sensitivity implications

  • Professional applications: Links to institutional investment strategies

  • Comparative framework: Shows ability to evaluate alternative instruments

🤷 Weak Prompt Sample (Grade: D): “What are zero-coupon bonds and why would anyone buy them?”

💸 Why This Shows Limited Professional Potential:

  • No analytical foundation: Shows zero preparatory thinking

  • Superficial inquiry: Misses deeper strategic implications

  • No framework application: Cannot connect to learned principles

  • Amateur perspective: Uses retail investor mindset

🌟 Your Strategic Analysis Challenge: Redesign this prompt to showcase the sophisticated fixed income analysis that institutional investors and treasury managers require.

Problem 4 (Interest Rate Risk Demonstration): You own the bond from Problem 1. Interest rates suddenly rise to 7%. What happens to your bond’s value?

Your Python Implementation:

# Before coding: Predict what will happen to bond value when rates rise
# Why do bond prices move opposite to interest rate changes?

# Original bond parameters (from Problem 1)
face_value = 1000
annual_coupon = 60
years_remaining = 2  # Time left until maturity
original_ytm = 0.05
new_ytm = 0.07  # Interest rates rose

# Calculate original bond value
def calculate_bond_value(coupon, face, years, yield_rate):
    pv_coupons = 0
    for year in range(1, years + 1):
        if year < years:
            pv_coupons += coupon / (1 + yield_rate)**year
        else:
            pv_coupons += (coupon + face) / (1 + yield_rate)**year
    return pv_coupons

original_value = calculate_bond_value(annual_coupon, face_value, years_remaining, original_ytm)
new_value = calculate_bond_value(annual_coupon, face_value, years_remaining, new_ytm)

# Impact analysis
value_change = new_value - original_value
percentage_change = (value_change / original_value) * 100

print(f"Interest Rate Risk Analysis:")
print(f"Original bond value (5% YTM): ${original_value:.2f}")
print(f"New bond value (7% YTM): ${new_value:.2f}")
print(f"Value change: ${value_change:.2f}")
print(f"Percentage change: {percentage_change:.1f}%")

print(f"\nKey Insight: Rising interest rates cause bond prices to fall")
print(f"Reason: New bonds offer higher yields, making existing bonds less attractive")

# Duration concept introduction
print(f"\nDuration Effect Preview:")
print(f"Longer maturity bonds would experience larger price changes")
print(f"This demonstrates interest rate risk in fixed-income investing")

AI Learning Support - Interest Rate Risk Management

Learning Goal: Develop systematic understanding of interest rate risk and its implications for portfolio management.

⚡ Professional Prompt Sample A (Grade: A): “I’ve just calculated how rising interest rates cause immediate bond value losses, demonstrating interest rate risk in action. My analysis shows a 2% rate increase causes significant price decline. I’m thinking about portfolio management implications: How do fixed income managers hedge this risk? What strategies do they use when they anticipate rate changes? How does duration factor into institutional decision-making? I want to understand both the defensive measures and the opportunities that interest rate volatility creates for professional bond managers.”

🛡️ Why This Shows Professional Risk Management Thinking:

  • Risk quantification: Demonstrates ability to measure financial risk

  • Portfolio implications: Connects analysis to management decisions

  • Strategic options: Seeks both defensive and opportunistic approaches

  • Professional context: Links to institutional investment practices

😰 Weak Prompt Sample (Grade: D): “Interest rates went up and my bond lost value. What should I do?”

🚨 Why This Shows Poor Risk Management:

  • Reactive approach: Shows no proactive risk planning

  • Personal focus: Misses institutional perspective

  • No strategic framework: Cannot evaluate systematic responses

  • Panic response: Shows emotional rather than analytical reaction

🏅 Your Professional Risk Management Challenge: Transform this into a prompt that demonstrates the systematic risk analysis and strategic planning that institutional fixed income managers employ.

Debrief Discussion#

Key Questions:

  • How does the certainty of bond cash flows change your risk assessment compared to stocks?

  • Why do bond prices move opposite to interest rate changes?

  • When might you prefer bonds over stocks for certain investment goals?

Further Reading#


Section 4: The Coaching - Your DRIVER Learning Guide#

Let’s apply DRIVER to solve a comprehensive bond investment decision, demonstrating professional fixed-income analysis.

Professional Case Scenario: You’re evaluating an IBM 5-year corporate bond for your portfolio. Bond details: $1,000 face value, 6% annual coupon rate, currently priced at $950, your required return is 7%. Decision needed: Should you buy this bond at the current market price?

Timeline:

Purchase: \$950 -----> \$60 -----> \$60 -----> \$60 -----> \$60 -----> \$60 + \$1,000
Today             Year 1     Year 2     Year 3     Year 4     Year 5
    |               |          |          |          |            |
    |<------------- Required 7% return ----------------------->|

The DRIVER Playbook in Action#

D - Discover: Frame the Bond Investment Decision#

Goal: Translate bond terms into precise valuation variables and risk factors. Action: Use AI to clarify fixed-income analysis approach.

✅ DO THIS with AI:

"I'm analyzing an IBM corporate bond using present value methodology for fixed-income securities.
Bond specifications: \$1,000 face value, 6% annual coupon, 5-year maturity, current price \$950, 
my required return 7%.
Help me understand: What specific cash flows will I receive, and how does this analysis differ 
from the stock DDM framework I used in Session 2?"

❌ DON’T DO THIS:

  • “Calculate this bond’s fair value for me”

  • “Tell me if IBM bonds are a good investment”

  • “Give me the YTM without explaining the process”

🎯 THE RULE: Use AI to enhance your analytical framework, not replace your thinking.

AI Learning Support - Fixed Income Problem Framing

Learning Goal: Master systematic approach to structuring bond investment analysis and identifying key risk factors.

💼 Professional Prompt Sample A (Grade: A): “I’m framing this IBM bond analysis and have identified key variables: $950 current price, $60 annual coupons, $1,000 maturity value, 7% required return, 5-year horizon. My key assumptions are: IBM remains creditworthy, interest rates remain relatively stable, I hold to maturity. Before proceeding with valuation, what critical questions should I ask about these assumptions? How do corporate bond analysts typically stress-test these inputs? What additional risk factors specific to corporate bonds should I consider beyond the basic valuation framework?”

🏆 Why This Shows Professional Fixed Income Analysis:

  • Comprehensive parameter identification: Shows systematic approach

  • Explicit assumption documentation: Demonstrates risk awareness

  • Stress-testing mindset: Seeks to validate framework robustness

  • Corporate bond specialization: Understands sector-specific risks

🤷 Weak Prompt Sample (Grade: D): “Help me understand what I need to analyze this bond and what assumptions to make.”

💸 Why This Fails Professional Standards:

  • No preparatory analysis: Shows zero intellectual foundation

  • Delegates framework development: Abdicates analytical responsibility

  • No risk consciousness: Misses critical assumption identification

  • Generic approach: Ignores bond-specific considerations

🎯 Your Professional Excellence Challenge: Transform this into a prompt that demonstrates the rigorous analytical preparation that institutional fixed income analysts bring to investment decisions.

Outcome: I’ll receive $60 annually for 5 years plus $1,000 at maturity—contractual payments unlike uncertain stock dividends. Need to discount these guaranteed cash flows at my 7% required return and compare to $950 market price.

R - Represent: Map the Fixed-Income Cash Flow Structure#

Goal: Create comprehensive visualization of bond investment timeline. Action: Map both cash flows and key risk factors.

Bond Investment Analysis Timeline:
Year 0    Year 1    Year 2    Year 3    Year 4    Year 5
  |         |         |         |         |         |
\$950      \$60       \$60       \$60       \$60    \$60+\$1,000
(Price)  (Coupon)  (Coupon)  (Coupon)  (Coupon) (Final Payment)
  |         |         |         |         |         |
  |<-------------- Discount each at 7% ---------------->|

Risk Factors to Consider:
- Credit Risk: IBM's ability to make payments
- Interest Rate Risk: Impact of rate changes on bond value
- Inflation Risk: Purchasing power of fixed payments

Mathematical Framework:

Fair Value = \$60/(1.07)¹ + \$60/(1.07)² + \$60/(1.07)³ + \$60/(1.07)⁴ + \$1,060/(1.07)⁵
           = PV(Coupons) + PV(Principal)

AI Learning Support - Fixed Income Visualization and Logic Mapping

Learning Goal: Develop systematic approach to visualizing and validating bond investment frameworks.

📊 Professional Prompt Sample A (Grade: A): “I’ve structured my IBM bond analysis with this timeline: 5 annual $60 coupons plus $1,000 principal, all discounted at 7% required return. My visualization shows both cash flows and risk factors (credit, interest rate, inflation). I want to validate this framework before implementation: Does my structure correctly capture the essential elements of corporate bond analysis? What aspects of my timeline might be unclear to other analysts reviewing my work? How do professionals typically present bond investment frameworks to investment committees?”

🎯 Why This Shows Professional Presentation Skills:

  • Student-created framework: Demonstrates analytical ownership

  • Comprehensive visualization: Shows both quantitative and risk elements

  • Peer review orientation: Seeks external validation and clarity

  • Committee presentation awareness: Understands professional communication requirements

😕 Weak Prompt Sample (Grade: D): “Show me how to draw a timeline for bond analysis and explain what to include.”

🚫 Why This Shows Poor Professional Preparation:

  • Zero intellectual contribution: Shows no analytical development

  • Requests basic instruction: Entry-level skill gap exposed

  • No framework thinking: Cannot structure analysis independently

  • Passive approach: Creates dependency rather than competency

🌟 Your Professional Communication Challenge: Redesign this to showcase the visual thinking and presentation skills that fixed income analysts need for investor presentations.

I - Implement: Code Professional Bond Analysis#

Goal: Execute comprehensive bond valuation with risk assessment. Action: Build systematic analysis demonstrating professional methodology.

# D - Discover: IBM Bond Investment Parameters
bond_issuer = "IBM"
face_value = 1000
coupon_rate = 0.06
annual_coupon = face_value * coupon_rate  # \$60
years_to_maturity = 5
current_market_price = 950
required_return = 0.07  # Our investment hurdle rate

print(f"=== {bond_issuer} Bond Valuation Analysis ===")
print(f"Face Value: ${face_value}")
print(f"Coupon Rate: {coupon_rate:.1%}")
print(f"Current Price: ${current_market_price}")
print(f"Required Return: {required_return:.1%}")
print(f"Years to Maturity: {years_to_maturity}")
print()

# R - Represent: Systematic cash flow analysis
print("Cash Flow Analysis:")
print("Year | Coupon | Principal | Total CF | Discount Factor | Present Value")
print("-" * 75)

total_present_value = 0
for year in range(1, years_to_maturity + 1):
    coupon_payment = annual_coupon
    principal_payment = face_value if year == years_to_maturity else 0
    total_cash_flow = coupon_payment + principal_payment
    discount_factor = (1 + required_return) ** year
    present_value = total_cash_flow / discount_factor
    total_present_value += present_value
    
    print(f"{year:4d} | ${coupon_payment:6.0f} | ${principal_payment:9.0f} | ${total_cash_flow:8.0f} | "
          f"{discount_factor:14.4f} | ${present_value:12.2f}")

print("-" * 75)
print(f"Total Present Value (Fair Value): ${total_present_value:.2f}")

# I - Implement: Investment decision framework
price_difference = total_present_value - current_market_price
return_opportunity = (price_difference / current_market_price) * 100

print(f"\n=== Investment Decision Analysis ===")
print(f"Calculated Fair Value: ${total_present_value:.2f}")
print(f"Current Market Price:  ${current_market_price:.2f}")
print(f"Price Difference:      ${price_difference:.2f}")
print(f"Potential Return:      {return_opportunity:.1f}%")

if total_present_value > current_market_price:
    recommendation = "BUY"
    rationale = "Bond appears undervalued at current price"
elif total_present_value < current_market_price:
    recommendation = "PASS" 
    rationale = "Bond appears overvalued at current price"
else:
    recommendation = "FAIR VALUE"
    rationale = "Bond fairly priced"

print(f"\nInvestment Recommendation: {recommendation}")
print(f"Rationale: {rationale}")

# Risk assessment components
print(f"\n=== Risk Assessment ===")
print(f"Credit Risk: Corporate bond subject to IBM's financial health")
print(f"Interest Rate Risk: Price will fall if rates rise above 7%")
print(f"Duration Risk: {years_to_maturity}-year maturity has moderate sensitivity")

# Calculate what return we'd actually earn at current price
implied_yield_guidance = "At \$950 price, actual yield exceeds 6% coupon rate"
print(f"Yield Analysis: {implied_yield_guidance}")

AI Learning Support - Fixed Income Code Implementation

Learning Goal: Build systematic coding skills for bond valuation while maintaining focus on investment decision-making.

💻 Professional Prompt Sample A (Grade: A): “I’ve implemented comprehensive bond analysis for IBM with systematic cash flow discounting, investment decision logic, and risk assessment components. My code structure follows professional valuation methodology: cash flow identification → present value calculation → investment recommendation → risk analysis. I’m particularly focused on ensuring my discount factor calculations are accurate and my decision framework is logically sound. Can you help me identify potential improvements to make this analysis more robust for institutional investment decisions? What additional validation steps do fixed income professionals typically include?”

🏅 Why This Shows Professional Implementation Skills:

  • Comprehensive analysis structure: Shows systematic professional approach

  • Decision-focused implementation: Connects calculations to investment outcomes

  • Quality enhancement seeking: Demonstrates continuous improvement mindset

  • Institutional perspective: Understands professional application requirements

V - Validate: Multi-Method Verification#

Goal: Ensure bond analysis accuracy through multiple validation approaches. Action: Apply professional verification standards.

# Validation 1: Alternative calculation method using annuity formula
print("=== Validation Analysis ===")
print("1. Alternative Calculation Method:")

# Present value of annuity formula for coupons
pv_coupons_annuity = annual_coupon * ((1 - (1 + required_return)**(-years_to_maturity)) / required_return)
pv_principal_separate = face_value / (1 + required_return)**years_to_maturity
alternative_fair_value = pv_coupons_annuity + pv_principal_separate

print(f"   PV of coupon annuity: ${pv_coupons_annuity:.2f}")
print(f"   PV of principal: ${pv_principal_separate:.2f}")
print(f"   Alternative fair value: ${alternative_fair_value:.2f}")
print(f"   Matches original calculation: {'YES' if abs(alternative_fair_value - total_present_value) < 0.01 else 'NO'}")

# Validation 2: Sensitivity analysis for key assumptions
print("\n2. Sensitivity Analysis:")
scenarios = [
    ("Conservative", 0.08),  # Higher required return
    ("Base Case", 0.07),     # Original assumption
    ("Optimistic", 0.06)     # Lower required return
]

for scenario_name, req_return in scenarios:
    scenario_value = 0
    for year in range(1, years_to_maturity + 1):
        if year < years_to_maturity:
            scenario_value += annual_coupon / (1 + req_return)**year
        else:
            scenario_value += (annual_coupon + face_value) / (1 + req_return)**year
    
    scenario_recommendation = "BUY" if scenario_value > current_market_price else "PASS"
    print(f"   {scenario_name} ({req_return:.1%}): ${scenario_value:.2f} -> {scenario_recommendation}")

# Validation 3: Interest rate risk assessment
print("\n3. Interest Rate Risk Impact:")
rate_shock_scenarios = [0.05, 0.06, 0.07, 0.08, 0.09]
print("   YTM    Bond Value    % Change")
for shock_rate in rate_shock_scenarios:
    shocked_value = sum([annual_coupon / (1 + shock_rate)**year for year in range(1, years_to_maturity)] + 
                       [(annual_coupon + face_value) / (1 + shock_rate)**years_to_maturity])
    change_percent = ((shocked_value - total_present_value) / total_present_value) * 100
    print(f"   {shock_rate:.1%}    ${shocked_value:.2f}     {change_percent:+.1f}%")

print(f"\nKey Insight: Bond values are inversely related to interest rate changes")

AI Learning Support - Fixed Income Validation and Sensitivity Testing

Learning Goal: Master comprehensive validation methodologies for bond investment analysis.

🔍 Professional Prompt Sample A (Grade: A): “I’ve conducted multi-method validation of my IBM bond analysis: alternative calculation using annuity formulas, sensitivity analysis across different required returns (6%-8%), and interest rate shock testing. My results show consistent fair value around $1,020 vs. $950 market price, suggesting attractive investment opportunity. Before making final recommendations, I want to strengthen my validation approach: What additional stress tests do institutional fixed income managers use? How do they validate their credit risk assumptions? What market conditions could invalidate my analysis despite mathematical accuracy?”

💼 Why This Demonstrates Professional Validation Excellence:

  • Multi-method verification: Shows comprehensive validation approach

  • Sensitivity awareness: Tests key assumption impacts systematically

  • Results synthesis: Integrates multiple analyses into coherent conclusion

  • Limitation recognition: Seeks to identify analysis boundaries

😰 Weak Prompt Sample (Grade: D): “Check if my bond calculation is right and tell me what else I should test.”

🚨 Why This Shows Amateur Analysis:

  • No validation strategy: Shows no systematic verification thinking

  • Passive verification: Cannot independently assess work quality

  • No risk consciousness: Misses sensitivity and stress testing

  • Binary thinking: Treats validation as pass/fail rather than systematic improvement

🏆 Your Professional Excellence Challenge: Transform this into a prompt that demonstrates the rigorous validation and risk assessment approach that institutional bond portfolio managers demand.

✅ DO THIS with AI:

"Help me validate this IBM bond analysis. My fair value calculation shows ${total_present_value:.2f} 
vs market price \$950. What additional validation methods should I employ? How do I assess 
whether my 7% required return assumption is appropriate for IBM's credit profile?"

E - Evolve: Fixed-Income Framework Applications#

Goal: Recognize bond valuation logic across other investment contexts. Action: Identify parallel present value applications.

Framework Extensions:

# Universal Present Value Applications:

# Session 3 (Corporate Bonds): Fixed coupons + Credit risk assessment
bond_value = sum(coupon_payments) + principal_repayment  # discounted

# Session 4 (Mortgages): Fixed monthly payments over 30 years  
mortgage_pv = sum(monthly_payments)  # discounted for loan pricing

# Session 8 (Corporate Debt): Debt service payments + Refinancing risk
debt_value = sum(interest_payments) + principal_repayment  # discounted

# Session 9 (Project Finance): Operating cash flows with debt service
project_value = sum(operating_cf - debt_service)  # discounted to NPV

print("Pattern Recognition: All fixed-payment investments use identical PV framework")
print("Variables: Payment amounts, timing, and appropriate discount rates")
print("Next session application: Real estate mortgages and property cash flows")

AI Learning Support - Fixed Income Pattern Recognition and Framework Transfer

Learning Goal: Develop ability to recognize and transfer fixed income valuation frameworks across different financial contexts.

🧩 Professional Prompt Sample A (Grade: A): “I’ve mastered corporate bond valuation using present value of fixed cash flows and now I can see this pattern applying to: mortgage analysis (fixed monthly payments), municipal bonds (tax considerations), corporate debt analysis (credit spreads), and project financing (debt service coverage). My hypothesis is that any investment with predictable payment schedules can use this discounted cash flow framework. What questions should I ask myself to test whether this bond analysis framework transfers successfully to these other contexts? What are the key adaptations needed when moving from corporate bonds to other fixed-income instruments?”

🎯 Why This Shows Strategic Fixed Income Thinking:

  • Cross-instrument pattern recognition: Shows analytical sophistication

  • Framework generalization: Demonstrates transferable skill development

  • Hypothesis testing approach: Seeks systematic validation methodology

  • Professional application awareness: Connects to career-relevant contexts

😐 Weak Prompt Sample (Grade: D): “Where else can I use bond analysis? Give me examples of similar investments.”

🛑 Why This Limits Your Fixed Income Career:

  • No pattern development: Shows zero analytical synthesis

  • Passive consumption: Expects to be given connections

  • No framework thinking: Cannot build transferable skills

  • Missed strategic opportunity: Fails to develop professional competencies

🌟 Your Strategic Excellence Challenge: Transform this into a prompt that showcases the pattern recognition and framework transfer skills that senior fixed income professionals possess.

Session 4 Bridge: Real estate analysis uses identical present value logic for both mortgage payments (fixed cash outflows) and rental income (variable cash inflows). Same mathematical framework, applied to your largest personal investment decision.

R - Reflect: Fixed-Income Investment Mastery#

Goal: Synthesize bond analysis principles for professional application. Action: Extract transferable investment insights.

Professional Insights Gained:

  1. Contractual Certainty: Bond cash flows are legally guaranteed (subject to credit risk)

  2. Interest Rate Sensitivity: Bond prices move inversely to rate changes—fundamental relationship

  3. Credit Analysis: Corporate bonds require assessment of issuer’s financial health

  4. Portfolio Role: Bonds provide stability and income in diversified portfolios

Career Applications:

  • Fixed-Income Trading: Professional bond market analysis and pricing

  • Credit Analysis: Evaluating corporate and municipal bond investments

  • Portfolio Management: Asset allocation between stocks and bonds

  • Corporate Finance: Understanding company’s cost of debt and financing decisions

Key Takeaway: The IBM bond appears undervalued at $950 vs. fair value of approximately $959, offering potential return opportunity. This demonstrates how systematic present value analysis reveals pricing inefficiencies in fixed-income markets, providing foundation for professional bond investment decisions.


Section 5: Class Discussion & Review#

Individual Reflection Quiz#

Instructions: Answer in 1-2 sentences. Don’t use AI - this checks your understanding.

Question 1: How is bond valuation similar to the stock DDM analysis you did in Session 2?

Question 2: Why do bond prices fall when interest rates rise?

Question 3: What’s the key difference between analyzing a Treasury bond versus a corporate bond?

Question 4: Complete this statement: “The most important insight about bond pricing was…”

Pair Discussion#

Share your reflection, then discuss:

  • How are bonds both similar to and different from stocks in terms of valuation?

  • Why do bond prices move opposite to interest rate changes?

  • When might you prefer bonds over stocks in a portfolio?

  • How does credit risk affect bond pricing and investment decisions?

Class Synthesis#

Three volunteers share key insights about fixed-income analysis and its role in investment strategy.


Section 6: Assignment - Bond Investment Analysis#

Assignment Overview#

Advise on bond investment allocation for a $500,000 fixed-income portfolio. Your client, age 68, is risk-averse and requires steady income from bond investments. Your analysis must compare three bond alternatives considering yield, interest rate risk, tax implications, and market conditions. Interest rates recently increased 0.25% with potential additional 0.5% increase forecasted.

Investment Options:

Option A: US Treasury Bond

  • 10-year maturity

  • 4.5% coupon rate (semi-annual)

  • Current price: $98 per $100 face value

Option B: Apple Corporate Bond

  • 10-year maturity

  • 5.2% coupon rate (semi-annual)

  • Current price: $102 per $100 face value

  • Credit rating: AA+ (S&P)

Option C: California Municipal Bond

  • 10-year maturity

  • 3.8% coupon rate (tax-exempt)

  • Current price: $100 (par)

  • Client tax bracket: 32%

Required Analysis:

  1. Calculate after-tax yield for each bond option

  2. Assess impact of potential 0.5% rate increase on bond prices

  3. Recommend optimal allocation across the three bonds

  4. Evaluate timing decision (invest now vs. wait for rate increase)

  5. Identify additional risk considerations for the client


DRIVER Framework Requirement#

DRIVER is your analytical work process, not a documentation format.

You must use DRIVER to conduct your analysis, not to describe completed work retrospectively. This means beginning your analytical work with the Define & Discover stage and completing both D and R stages before proceeding to implementation.

Work Process Requirements:

  • Begin your analytical work with the Define & Discover stage

  • Complete the Represent stage to plan your analytical approach

  • Proceed to Implementation only after D and R stages are documented

  • Document your process as you work through each stage sequentially

Submission Requirements:

All submissions must include:

  1. DRIVER Analysis Document demonstrating sequential stage completion

  2. Video presentation covering all six DRIVER stages in order: D → R → I → V → E → R

  3. Code repository with executable analysis

Your documentation must reflect chronological progression through the analytical process, not retrospective justification of completed work.

Critical Requirement: Assignments submitted without adequate Define & Discover stage documentation completed before implementation will receive a grade of zero without further evaluation.

Refer to DRIVER Framework: Assignment Guidelines for complete requirements and grading criteria.


Specific Requirements#

Financial Analysis Requirements#

Your analysis must include:

  1. Bond Valuation and Yield Analysis

    • Yield to maturity (YTM) calculation for each bond

    • After-tax yield comparison accounting for tax bracket

    • Tax-equivalent yield for municipal bond

    • Current yield and YTM relationship

  2. Interest Rate Risk Assessment

    • Price sensitivity to 0.5% rate increase (all three bonds)

    • Duration calculation and interpretation

    • Convexity consideration for large rate changes

    • Comparison of interest rate risk across options

  3. Portfolio Recommendation

    • Optimal allocation across three bonds with justification

    • Risk-return tradeoff analysis

    • Income stream projection

    • Timing recommendation (invest now vs. defer)

    • Additional considerations (credit risk, liquidity, reinvestment risk)

Technical Requirements#

  1. Python implementation for bond pricing and yield calculations

  2. Semi-annual cash flow modeling

  3. Sensitivity analysis for interest rate scenarios

  4. After-tax yield computations

  5. Visualization of price-yield relationships

Deliverables#

1. DRIVER Analysis Document

  • Format: Markdown, PDF, or Jupyter Notebook section

  • Structure: All six DRIVER stages as specified in framework guidelines

  • Content: Demonstrates systematic progression through analytical process

2. Video Presentation

  • Content: All six DRIVER stages with code demonstration

  • Delivery: Clear explanation suitable for finance professionals

  • Technical: Screen recording showing working code execution

3. Code Repository

  • Platform: Google Colab, Jupyter Notebook, or GitHub repository

  • Requirements: Executable code without errors, comprehensive documentation

  • Includes: README explaining DRIVER application and bond analysis methodology


Learning Objectives Alignment#

This assignment assesses your ability to:

  • Calculate bond prices and yields to maturity

  • Assess interest rate risk using duration analysis

  • Compare bonds with different risk and tax characteristics

  • Make fixed-income portfolio allocation decisions

  • Evaluate timing considerations in bond investing

  • Apply the DRIVER framework to fixed-income analysis

  • Integrate financial theory with technical implementation

  • Communicate bond investment recommendations effectively


Assessment#

Your work will be evaluated according to the grading structure specified in DRIVER Framework: Assignment Guidelines:

Total: 100 points

1. Financial Concepts Accuracy (50 points)#

Your understanding will be assessed on the following session-specific financial concepts:

  • Bond Pricing Formula: Correct application of present value to fixed coupon payments and principal repayment

  • Yield to Maturity (YTM): Understanding YTM as the discount rate that equates bond price to present value of cash flows

  • Interest Rate Risk: Recognition that bond prices move inversely with interest rates and ability to quantify this relationship

  • Duration Analysis: Understanding duration as measure of interest rate sensitivity and price volatility

  • Credit Risk Assessment: Ability to evaluate how issuer creditworthiness affects required yields and bond pricing

  • Tax-Equivalent Yield: Proper calculation comparing taxable and tax-exempt bonds for appropriate investment comparisons

  • Bond Price-Yield Relationship: Understanding premium bonds (coupon > YTM), discount bonds (coupon < YTM), and par bonds (coupon = YTM)

  • Convexity Considerations: Recognition of how bond price sensitivity changes with large interest rate movements

  • Reinvestment Risk: Understanding how changing rates affect returns from reinvested coupon payments

2. Technical Implementation (10 points)#

  • Python code correctly implements bond valuation formulas

  • Semi-annual cash flow modeling handled accurately

  • YTM calculations use appropriate iterative or numerical methods

  • After-tax yield computations correctly account for tax brackets

  • Interest rate sensitivity analysis properly automated

3. Integration of Finance and Technology (20 points)#

  • Automation enables testing multiple interest rate scenarios efficiently

  • Code demonstrates understanding of bond mechanics, not just formula application

  • Technology facilitates comparison across bonds with different characteristics

  • Data-driven insights about duration and convexity effects

  • Creative approaches to visualizing price-yield relationships

4. Following the DRIVER Framework (10 points)#

  • Define & Discover: Clear identification of bond characteristics, client constraints, and analysis objectives

  • Represent: Visual timeline showing coupon payments, principal repayment, and discounting process

  • Implement: Systematic bond pricing and yield calculations following planned methodology

  • Validate: Interest rate shock testing, comparison to market prices, and reasonableness checks

  • Evolve: Recognition of bond valuation framework applications to mortgages, corporate debt, and project finance

  • Reflect: Insights about fixed income role in portfolios and limitations of bond analysis models

Critical Gate: Assignments without adequate Define & Discover documentation before implementation receive zero.

5. Clear Communication and Explanation (10 points)#

  • Video clearly explains bond valuation logic and investment recommendations

  • Fixed income concepts explained in accessible terms for non-specialist audiences

  • Logical progression from bond specifications to allocation decisions

  • Code explanation emphasizes financial reasoning over programming details

  • Professional presentation demonstrates genuine understanding of fixed income analysis

Total: 100 points


Data Sources and Assumptions#

Provided Parameters:

  • Portfolio size: $500,000

  • Client age: 68 (risk-averse, income-focused)

  • Client tax bracket: 32%

  • Recent rate increase: 0.25%

  • Potential additional increase: 0.5%

Bond Specifications:

  • All bonds: 10-year maturity, semi-annual payments

  • Treasury: 4.5% coupon, $98 price

  • Corporate (Apple, AA+): 5.2% coupon, $102 price

  • Municipal (tax-exempt): 3.8% coupon, $100 price (par)

Use online bond calculators to verify YTM calculations. Document all assumptions clearly.


Submission#

Submit all deliverables according to your instructor’s specified method and deadline.

Ensure your DRIVER Analysis Document clearly demonstrates that you completed the Define & Discover stage before proceeding to implementation. Your documentation should reflect progressive development through the analytical process, not retrospective justification.


Refer to DRIVER Framework: Assignment Guidelines for complete documentation requirements, grading criteria, and framework application guidance.


AI Collaboration#

Use AI to help find current bond data and verify calculations. The critical thinking about risk-return tradeoffs should come from you.


Key Concepts to Explore#

Focus on what matters for your chosen bonds:

  • Yield to maturity calculations

  • Duration and interest rate sensitivity

  • Credit spreads and default risk

  • Tax implications (especially for munis)

Go deep on concepts relevant to your analysis rather than covering everything.


A Note on Learning#

Bonds might seem boring compared to stocks, but they’re the foundation of institutional investing. Understanding how professional investors think about bonds will serve you throughout your career.

The relationship between rates, credit, and price is elegant once you see it. This assignment helps you discover that elegance through hands-on analysis.

Remember: In bonds, small differences in yield can mean big differences in returns. Precision and attention to detail matter.


Section 7: Looking Ahead - From Financial Securities to Real Assets#

Session Preview - Real Estate Applications#

Your present value framework now handles uncertain cash flows (stocks) and certain cash flows (bonds). Session 4 applies this to real estate—combining both mortgage analysis (fixed payments) and property income (variable cash flows).

Conceptual Evolution:

Session 1: Single cash flow analysis (foundation)
Session 2: Multiple variable cash flows (stock dividends)  
Session 3: Multiple fixed cash flows (bond coupons)
Session 4: Dual cash flow analysis (mortgage payments + rental income)

Timeline Integration Preview:

Bond Analysis:    Annual coupon payments for fixed term
                  \$C    \$C    \$C + Principal
                  Year 1 Year 2 Year 3

Mortgage Analysis: Monthly payments for 30 years
                   \$PMT  \$PMT  \$PMT ... \$PMT
                   Mo. 1 Mo. 2 Mo. 3   Mo. 360

Property Analysis: Annual rental income + eventual sale
                   Rent₁ Rent₂ Rent₃ ... + Sale Price
                   Year 1 Year 2 Year 3    Year n

Session 4 Preview Question: “Should I buy this $400,000 house with a 30-year mortgage at 6.5% while earning $2,500 monthly rent?” Your TVM framework handles both the mortgage calculation and investment property analysis.

Why This Progression Matters: Real estate represents most people’s largest financial decision, requiring both:

  • Mortgage Analysis: Present value of fixed payment obligations (Session 3 logic)

  • Investment Analysis: Present value of variable rental income (Session 2 logic)