mcpbeat

Fixed Income Corporate

joellewis/fixed-income-corporate

Analyze corporate bonds and credit instruments including investment grade and high yield debt. Use when the user asks about corporate bonds, credit spreads (OAS, Z-spread, G-spread), credit ratings, default probabilities, callable bonds, or private credit. Also trigger when users mention 'junk bonds', 'fallen angel', 'yield-to-worst', 'covenant analysis', 'CDS spreads', 'recovery rates', 'direct lending', 'mezzanine debt', 'BBB downgrade risk', or ask how to evaluate corporate credit risk.

6k tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
161
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/JoelLewis/finance_skills --skill fixed-income-corporate

What comes with it

18 655 bytes besides the instruction
scripts/fixed_income_corporate.py

The instruction itself

17 sections, as written by the author

Fixed Income — Corporate

Core Concepts

Credit Spreads

Compensation for default risk, liquidity risk, and downgrade risk above the risk-free rate. Multiple spread measures exist with increasing precision:

G-spread (Government Spread): Bond yield minus interpolated Treasury yield of the same maturity. Simple but assumes a flat term structure between benchmark maturities.

Z-spread (Zero-Volatility Spread): The constant spread added to each point on the risk-free spot rate curve such that the sum of discounted cash flows equals the bond's market price. Superior to G-spread because it accounts for the full shape of the term structure.

OAS (Option-Adjusted Spread): For bonds with embedded options, OAS = Z-spread minus the value of the embedded option. OAS represents the "true" credit compensation after removing the option component. Requires an interest rate model to compute.

Credit Ratings

AAA/AA/A/BBB are investment grade. BB/B/CCC/CC/C/D are high yield (speculative grade). The BBB/BB boundary is the most consequential threshold — many institutional mandates prohibit sub-investment-grade holdings. A downgrade across this boundary ("fallen angel") forces selling by constrained investors.

Migration Matrix

A transition matrix shows the probability of moving from one rating to another over a 1-year horizon. A BBB-rated issuer has roughly 85-90% probability of remaining BBB, 4-5% chance of upgrade, 4-5% chance of downgrade, and a small probability (~0.2%) of default. Migration matrices are published annually by rating agencies.

Default Probability, Loss Given Default, and Recovery Rate

  • PD = Probability of Default over a given horizon
  • LGD = Loss Given Default (percentage of exposure lost)
  • Recovery Rate (RR) = 1 - LGD
  • Expected Loss: EL = PD × LGD × EAD (Exposure at Default)

Recovery rates vary by seniority: senior secured (60-65%), senior unsecured (40-50%), subordinated (20-30%).

Callable Bonds

The issuer can redeem the bond early. Call schedules specify prices and dates. Yield-to-call (YTC) is calculated using the call date and call price. Yield-to-worst (YTW) is the minimum of YTM and all possible YTCs. For callable bonds, OAS is the appropriate spread measure (not G-spread or Z-spread).

Covenants

Maintenance covenants: Tested periodically (e.g., quarterly). Issuer must maintain financial ratios at all times. Common in bank loans.

Incurrence covenants: Tested only when the issuer takes a specific action (e.g., issues new debt). Common in bond indentures. Key covenants include leverage ratio (Debt/EBITDA), interest coverage (EBITDA/Interest), and restricted payments.

Private Credit

Direct lending by non-bank lenders to middle-market companies. Offers an illiquidity premium of 150-400bp over comparable syndicated loans. Typically features stronger covenant protection than public market deals. Valuations are mark-based (quarterly), which smooths reported volatility.

CDS (Credit Default Swaps)

A derivative where the protection buyer pays a periodic spread and receives payment upon a credit event. CDS spreads can be used to derive market-implied default probabilities. CDS spreads are often more responsive to credit deterioration than bond spreads.

Key Formulas

| Formula | Expression | Use Case |

|---------|-----------|----------|

| G-spread | Bond Yield - Interpolated Treasury Yield | Simple spread measure |

| Z-spread | Constant spread s: P = sum CF_t / (1+s_t+s)^t | Full curve spread |

| OAS | Z-spread - Option Cost | Spread for callable bonds |

| Expected Loss | EL = PD × LGD × EAD | Credit loss estimation |

| Recovery Rate | RR = 1 - LGD | Recovery from default |

| Yield-to-Worst | min(YTM, YTC_1, YTC_2, ...) | Conservative yield measure |

Worked Examples

Example 1: Compare Z-spread vs G-spread

Given: A 7-year corporate bond yields 5.8%. The 7-year interpolated Treasury yield is 4.5%. The Z-spread (computed using the full spot curve) is 118bp.

Calculate: G-spread and compare to Z-spread

Solution:

G-spread = 5.8% - 4.5% = 1.30% = 130bp

Z-spread = 118bp

The G-spread (130bp) exceeds the Z-spread (118bp) by 12bp. This difference arises because the G-spread uses a single interpolated benchmark point while the Z-spread properly accounts for the shape of the entire yield curve. In a steep curve environment, G-spread tends to overstate the true spread.

Example 2: Expected Loss Calculation

Given: PD = 2% (annual), LGD = 60%, EAD = $1,000,000

Calculate: Expected annual loss

Solution:

EL = PD × LGD × EAD

EL = 0.02 × 0.60 × $1,000,000

EL = $12,000

The expected annual credit loss is $12,000, or 1.2% of the exposure. This represents the actuarial cost of credit risk — the spread must at least cover this expected loss, with additional compensation for unexpected losses and risk aversion.

Common Pitfalls

  • Using G-spread for callable bonds — use OAS instead, which removes the option component
  • Ignoring liquidity premium in spread analysis — part of the spread compensates for illiquidity, not just default risk
  • Rating agency lag vs market-implied credit quality — CDS spreads often move before rating actions
  • Assuming recovery rates are constant — they vary significantly by seniority and economic cycle (lower in recessions)

Cross-References

  • fixed-income-sovereign (wealth-management plugin): the Treasury curve used as the risk-free benchmark
  • fixed-income-structured (wealth-management plugin): CLOs and structured credit products
  • alternatives (wealth-management plugin): private credit as an alternative investment
  • asset-allocation (wealth-management plugin): credit allocation in multi-asset portfolios

Running the Script

uv run scripts/fixed_income_corporate.py            # run the demo (uses PEP 723 inline deps)
uv run scripts/fixed_income_corporate.py --verify   # check demo outputs against the worked examples (exit 1 on mismatch)
python3 scripts/fixed_income_corporate.py            # alternative (requires: pip install numpy scipy)

The demo prints the calculations covered above; its values match the worked examples in this skill. Run --help for a list of the classes and functions. For programmatic use, import the module rather than running it — the demo only executes under python fixed_income_corporate.py.

How to use it

Copy the folder

Take joellewis/fixed-income-corporate from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip. Without those the skill loads but fails at the first command.