What is Bond Relative Value?
Bond relative value (RV) analysis is the process of determining whether a specific bond is cheap, rich, or fairly priced compared to comparable instruments. Unlike equities where value is debated endlessly, bonds have more structured frameworks for assessing value because their cash flows are contractually defined — you know exactly when and how much a bond will pay (assuming no default). The core concept is spread analysis. Every bond’s yield can be decomposed into a risk-free component (what a government bond of the same maturity yields) and a spread (the extra yield compensating for credit risk, liquidity risk, and other factors). RV analysis asks: “Is this spread appropriate for this bond’s risk profile, and how does it compare to similar bonds?” There are multiple ways to measure spreads, each capturing different things. The G-spread (Government spread) is the simplest: the bond’s yield minus the interpolated government yield at the same maturity. The Z-spread (zero-volatility spread) is the constant spread added to the entire risk-free zero-coupon curve to make the present value of the bond’s cash flows equal its market price. The OAS (Option-Adjusted Spread) goes further by removing the value of embedded options (like call provisions), giving the “true” credit spread for callable bonds.Why It Matters
RV analysis is the bread and butter of fixed income portfolio management. Every bond purchase or sale decision at a hedge fund, asset manager, or bank trading desk involves some form of RV assessment. Is this bond cheap enough to buy? Has it richened enough to sell? Is there a better alternative in the same credit quality and maturity range? Spread decomposition is particularly important because it separates what you can control from what you cannot. If a bond’s total spread is 150bp, and 120bp is explained by the credit curve and 30bp is residual, that 30bp residual is where the opportunity lies — it represents liquidity premium, technical supply/demand factors, or genuine mispricing.Key Concepts
| Term | Definition |
|---|---|
| G-spread | Bond yield minus the government yield at the same maturity — the simplest spread measure |
| Z-spread | The constant spread over the entire zero-coupon government curve that prices the bond correctly |
| OAS | Option-Adjusted Spread — the Z-spread minus the value of embedded options; the “true” credit spread for callable bonds |
| Residual Spread | The portion of a bond’s spread not explained by the credit curve — represents liquidity, technicals, or mispricing |
| Rich / Cheap | A bond is “rich” if its spread is tighter (lower) than fair value; “cheap” if wider (higher) |
| Scenario Analysis | Testing how a bond’s price and P&L change under hypothetical rate movements (e.g., +100bp parallel shift) |
| Duration | The bond’s sensitivity to interest rate changes — a bond with duration of 5 loses ~5% of value for every 100bp rate increase |
| Convexity | The curvature of the price-yield relationship — positive convexity means the bond gains more from rate drops than it loses from rate rises |
How It Works
Price the Bond(s)
Call
bond_price for target and comparison bonds. Extract yield, Z-spread, duration, convexity, DV01.Get Risk-Free Curve
Call
interest_rate_curve (list then calculate). Interpolate at bond maturity to compute G-spread.Get Credit Curve
Call
credit_curve for the issuer’s country and type. Extract credit spread at the bond’s maturity. Compute residual = G-spread minus credit curve spread. Positive residual = cheap; negative = rich.Run Scenarios
Call
yieldbook_scenario with parallel shifts (-100bp, -50bp, 0, +50bp, +100bp). Extract price changes and P&L.Historical Context
Call
tscc_historical_pricing_summaries to assess where current spread sits vs. history.Worked Example: Corporate Bond Relative Value
Setup
You are evaluating a 5-year investment-grade corporate bond from a US industrial company. The portfolio manager wants to know if this bond is cheap or rich relative to its peers and the credit curve.Bond Details
| Field | Value |
|---|---|
| Issuer | Acme Manufacturing Corp |
| ISIN | US00000XYZ12 |
| Coupon | 4.75% |
| Maturity | March 15, 2030 |
| Rating | BBB+ / Baa1 |
| Clean Price | 99.25 |
| Dirty Price | 100.82 (includes $1.57 accrued interest) |
| YTM | 4.92% |
| Z-spread | 62bp |
| Modified Duration | 4.28 years |
| DV01 | 100 face |
| Convexity | 0.22 |
Step 1: Spread Decomposition
Risk-Free Curve (US Treasury):- 5-year UST yield (interpolated): 4.18%
- G-spread: 4.92% - 4.18% = 74bp
- 5-year BBB+ Industrial credit spread: 58bp
- Residual spread: 74bp (G-spread) - 58bp (credit curve) = +16bp
| Component | Spread (bp) | % of Total |
|---|---|---|
| G-spread (total over govt) | 74bp | 100% |
| Credit curve spread (BBB+ 5Y) | 58bp | 78% |
| Residual (liquidity + technicals) | 16bp | 22% |
Step 2: Why Is the Residual Positive?
Possible explanations for the 16bp residual:- Liquidity premium: Acme is a smaller issuer ($500M outstanding) vs. the mega-cap issuers that anchor the credit curve. Smaller issues trade with wider spreads due to lower liquidity.
- Recent new issue: The bond was issued 3 months ago. New issues sometimes trade wide initially and tighten as they season.
- Company-specific risk: There may be a credit concern (pending litigation, earnings miss) that the credit rating does not yet reflect.
- Genuine mispricing: Supply/demand technical — a forced seller may have pushed the spread wider than fundamentals justify.
Step 3: Scenario Analysis
| Scenario | Rate Change | Price Change | P&L per $100 face | Spread Assumption |
|---|---|---|---|---|
| Rates -100bp | -100bp parallel | +$4.39 | +$4.39 | Spread unchanged |
| Rates -50bp | -50bp parallel | +$2.17 | +$2.17 | Spread unchanged |
| Base | 0bp | $0.00 | $0.00 | — |
| Rates +50bp | +50bp parallel | -$2.10 | -$2.10 | Spread unchanged |
| Rates +100bp | +100bp parallel | -$4.14 | -$4.14 | Spread unchanged |
| Spread tightens 10bp | 0bp rates | +$0.43 | +$0.43 | -10bp spread |
| Spread widens 20bp | 0bp rates | -$0.86 | -$0.86 | +20bp spread |
Step 4: Historical Context
| Metric | Current | 3M Average | 6M Average | 1Y Average | Percentile (1Y) |
|---|---|---|---|---|---|
| G-spread | 74bp | 68bp | 65bp | 70bp | 72nd |
| Z-spread | 62bp | 56bp | 52bp | 58bp | 75th |
| Residual | +16bp | +10bp | +7bp | +12bp | 80th |
Recommendation
Buy / Overweight. The Acme Manufacturing 4.75% 2030 bond is trading 16bp wide of the BBB+ credit curve, at the 80th percentile of its 1-year residual spread range. The likely explanation is a combination of smaller issue size (liquidity premium) and recent issuance (not yet seasoned).- Expected outcome: If the residual normalizes from 16bp to the 6-month average of 7bp (a 9bp tightening), the expected price gain is ~100 face, plus 4.92% running yield.
- Risk: If a credit-specific event causes further widening, the spread could move to 90-100bp (an additional 16-26bp wider from current levels). With 4.28 years of duration, a 20bp widening costs 100 face — manageable for a modest overweight.
- Position sizing: Buy $5M face value as a 2% portfolio overweight vs. the benchmark.
- Catalyst: Next earnings report in 6 weeks will either confirm the credit story or explain the residual. Stop-loss at G-spread of 90bp (+16bp from current).
Daily Workflow for Bond RV Analysis
Morning (Pre-Market): Review overnight spread changes for the portfolio’s holdings and watchlist. Flag any bonds where spreads moved more than 5bp (significant for IG) or 20bp (significant for HY). Mid-Day: Price any bonds under consideration for purchase or sale. Run the full spread decomposition (G-spread, credit curve, residual). Compare to the portfolio’s existing spread and duration profile. Afternoon: Run scenarios for any proposed trades. Assess the risk/reward profile. Update the portfolio’s aggregate spread, duration, and credit quality if the trade were executed. Weekly: Run a comprehensive RV screen across the investable universe. Identify the cheapest and richest bonds by residual spread. Compare to last week’s screen for changes.Practice Exercise
You are comparing two bonds for a portfolio addition. Both are 7-year BBB-rated utility bonds. Bond A: MidWest Power 5.25% Mar 2032- Clean price: 101.50, YTM: 5.02%, Z-spread: 85bp, Duration: 5.82, DV01: $5.82
- Clean price: 96.75, YTM: 5.15%, Z-spread: 98bp, Duration: 5.95, DV01: $5.95
- 7-year UST yield: 4.25%
- 7-year BBB Utility credit curve spread: 78bp
- Bond A issued 2 years ago, $1.5B outstanding (liquid)
- Bond B issued 6 months ago, $500M outstanding (less liquid)
- Calculate the G-spread for each bond.
- Calculate the residual spread (G-spread minus credit curve spread) for each.
- Which bond is cheaper on a residual basis? Why might the cheaper bond trade wide?
- Run a scenario analysis: what is the P&L per $100 for each bond under +50bp and -50bp parallel rate shifts?
- If you could only buy one, which would you choose? Justify with reference to residual spread, liquidity, and duration.
- How many bp would the cheaper bond need to tighten for you to switch your recommendation to the other bond?
Common Mistakes
- Using G-spread for callable bonds. G-spread does not account for embedded options. A callable bond with a 100bp G-spread may have only 70bp of OAS — the other 30bp is the cost of the call option. Always use OAS for callable bonds.
- Comparing bonds at different points on the credit curve. A 3-year BBB bond and a 10-year BBB bond have different credit spreads even if the rating is identical. Always compare residual spreads after stripping out the credit curve.
- Ignoring liquidity. A bond that appears cheap on spread may be illiquid — the wide spread is fair compensation for the difficulty of exiting the position. Assess bid-ask spreads and issue size before concluding that a bond is mispriced.
- Not stress-testing with scenarios. A bond may look cheap on spread but have poor convexity or high duration risk. Run scenarios to confirm that the risk/reward profile is attractive under multiple rate environments.
- Using stale prices. Bond markets are less liquid than equity markets. Quoted prices may be stale, especially for smaller issues. Verify that the prices you are using are current before making RV conclusions.
- Comparing residual spread to absolute levels rather than its own history. A 20bp residual may be normal for a less liquid issue. Compare the residual to its own historical range, not to zero.
- Ignoring the curve shape in scenario analysis. Parallel shifts are a simplification. In reality, curves can steepen, flatten, twist, or butterfly. For longer-duration bonds, consider non-parallel scenarios (bear flattener, bull steepener).
- Not considering new supply. If the issuer has a new bond coming to market, the existing issue may cheapen as the market makes room for the new supply. Check for upcoming issuance.
- Forgetting about convexity. Two bonds with the same duration but different convexity will perform differently in a large rate move. The bond with higher convexity is worth a tighter spread because it gains more in rallies and loses less in sell-offs.
- Making RV calls without a time horizon. A bond may be cheap today but could stay cheap for months. Specify a time horizon for the trade and a catalyst for convergence (earnings, technical factor, seasonal pattern).
How to Add to Your Local Context
Best Practices
- Always decompose total spread into risk-free + credit + residual components — the residual reveals true richness or cheapness
- Stress test with scenarios to confirm the view holds under different rate environments
- For callable bonds, use OAS rather than G-spread or Z-spread
- Compare residual spread to its own history, not just to absolute levels
- Quantify how many bp of spread move would change the recommendation
- Consider liquidity, issue size, and bid-ask spread as part of the RV assessment
- Always have a catalyst hypothesis — why should the bond’s spread converge to fair value?
- Document the analysis with specific metrics and thresholds for the compliance and risk team