A bond is an IOU: an investor lends principal to a government, municipality, or company, receives periodic coupon payments, and usually gets the principal back at maturity. Unlike stocks, bonds represent debt rather than ownership. section 1.2.2 section 1.6
Evaluate a bond through the terms that define its cash flows and repayment risk:
- Borrower identifies the party receiving the money. section 5.2
- Maturity date specifies when the issuer must repay the principal, with terms ranging from months to decades. section 5.2
- Coupon rate determines the annual interest payment and may be fixed or floating; payment modalities specify when and how often payments arrive. section 5.2
- Risk rating estimates default risk through agencies such as Moody’s and S&P; riskier issuers typically offer higher yields. section 1.2.2 section 5.2
Investors can hold a bond to maturity and receive its face value or sell earlier on the open market. An early sale may produce a gain or loss because market prices change. Interest rates affect bond values, and even assets conventionally treated as risk-free are not literally free of risk. section 1.2.2 section 5.5
Monitoring bonds with structured data
A bond-monitoring workflow identifies each issuance with a unique identifier such as an ISIN rather than relying on a stock-style ticker. Stored yields can then be merged into a holdings DataFrame, where total yield is calculated as total value multiplied by yield divided by 100. The same workflow can retrieve government-bond data through an API and plot price history, while recognizing that bond identifiers and terms vary by issuance. section 6.5.3 section 5.2
Table 5.1 Rating of bonds
|
Rating tier
|
Moody’s
|
S&P
|
Fitch
|
Meaning
|
|---|---|---|---|---|
|
Investment Grade
|
||||
|
Highest quality
|
Aaa
|
AAA
|
AAA
|
Prime credit quality, lowest risk
|
|
High quality
|
Aa1, Aa2, Aa3
|
AA+, AA, AA-
|
AA+, AA, AA-
|
Very high credit quality
|
|
Upper medium grade
|
A1, A2, A3
|
A+, A, A-
|
A+, A, A-
|
Strong capacity to meet financial commitments
|
|
Lower medium grade
|
Baa1, Baa2, Baa3
|
BBB+, BBB, BBB-
|
BBB+, BBB, BBB-
|
Adequate capacity, some susceptibility to conditions
|
|
Speculative grade
|
||||
|
Upper speculative
|
Ba, Ba, Ba3
|
BB+, BB, BB-
|
BB+, BB, BB-
|
Higher risk of default, but financial commitment met
|
|
Highly speculative
|
B1, B2, B3
|
B+, B, B-
|
B+, B, B-
|
Material default risk, but financial obligations still met
|
|
Substantial risk
|
Caa1, Caa2, Caa3
|
CCC+, CCC, CCC-
|
CCC+, CCC, CCC-
|
Very high risk, substantial vulnerability to default
|
|
Near default
|
Ca
|
CC, C
|
CC, C
|
Highly vulnerable to default
|
|
Default
|
C
|
D
|
RD, D
|
In default
|
Compare Moody’s, S&P, and Fitch rating tiers from investment grade through default to inspect how credit quality and default vulnerability are classified. section 5.2
bond_rates = all_offline_assets[
all_offline_assets[COL_ASSET_TYPE].isin(['BOND'])
][["yield"]]
bond_df_merged_rates = all_bonds_held.merge(bond_rates, on=COL_TICKER)
bond_df_merged_rates[COL_TOT_YIELD] = (
bond_df_merged_rates[COL_TOT_VALUE]
* bond_df_merged_rates[COL_YIELD]
/ 100)
Inspect a compact calculation that merges stored bond yields with holdings and derives total yield for an asset monitor. section 6.5.3
