You buy a bond for $1,000. It pays 5% annually. You hold it for ten years, collect your coupons, get your principal back. Simple. Except the moment you try to sell that bond before maturity, the price isn't $1,000 anymore. It might be $920. It might be $1,080. And if you don't understand why, the bond market will feel like it's behaving irrationally.
It isn't. The math is precise. It just runs in a direction that's counterintuitive if you've never worked through it.
The inverse relationship between price and yield
Here's the core concept. You hold a bond that pays 5% on a $1,000 face value, so $50 per year. Now imagine interest rates rise to 6%. New bonds being issued pay $60 per year on the same $1,000 face value. Nobody wants your $50 bond at full price when they can buy a $60 bond for the same money. So your bond's price drops until its effective yield matches the market rate.
How far does it drop? If your bond has 10 years remaining, the price falls to roughly $926. At that price, the buyer gets $50 per year in coupons plus a $74 capital gain at maturity, which together produce an effective yield of about 6%.
When rates fall, the reverse happens. Your 5% bond becomes more valuable because new issuances pay less. The price rises above par.
This is why bond investors obsess over interest rate movements. A 1% rate change on a 30-year Treasury can move the price by 15% or more.
The present value formula
Bond pricing is a textbook present value calculation. The price equals the sum of all future cash flows, each discounted back to today at the current market yield:
Price = C/(1+y)^1 + C/(1+y)^2 + ... + C/(1+y)^n + F/(1+y)^n
Where C is the coupon payment, y is the yield to maturity (per period), n is the number of periods, and F is the face value.
For a bond with a $1,000 face value, 5% coupon, 10 years to maturity, and a market yield of 6%:
Price = 50/1.06 + 50/1.06^2 + ... + 50/1.06^10 + 1000/1.06^10
Price = 368.00 (coupon PV) + 558.39 (principal PV)
Price = $926.40
The coupon stream is an annuity, so you can use the annuity formula: C * [1 - (1+y)^-n] / y. The principal payback is a simple present value: F * (1+y)^-n. Together they give you the clean price.
Duration: how sensitive is your bond to rate changes
Duration measures how much a bond's price moves for a given change in yield. A bond with a duration of 7 means that a 1% increase in yield causes roughly a 7% decrease in price.
There are two types you'll encounter. Macaulay duration is the weighted average time until you receive the bond's cash flows, measured in years. Modified duration adjusts Macaulay duration to estimate the actual price sensitivity: Modified Duration = Macaulay Duration / (1 + y).
Longer maturity means higher duration. Lower coupon means higher duration. This is why zero-coupon bonds are the most interest-rate-sensitive: all of the cash flow comes at the end, so the weighted average time is equal to the maturity itself. A 30-year zero-coupon Treasury has a duration of 30. A 1% rate increase moves its price by roughly 30%.
This is the reason your bond fund can lose 20% in a year even though no bonds in the portfolio defaulted. It's not credit risk. It's duration risk.
Five mistakes bond investors make
Confusing yield to maturity with coupon rate. The coupon rate is fixed at issuance. Yield to maturity changes daily based on the market price. If you buy a 5% coupon bond at a discount for $950, your YTM is higher than 5% because you're also making a capital gain.
Ignoring reinvestment risk. Yield to maturity assumes you reinvest every coupon payment at the same yield. In practice, if rates fall, you're reinvesting coupons at lower rates. Your actual return will be lower than the YTM you calculated at purchase. This risk is highest for high-coupon, long-maturity bonds.
Treating all bonds as safe. Treasury bonds have near-zero default risk. Corporate bonds don't. A BBB-rated corporate bond yields more than a Treasury specifically because there's a meaningful probability you won't get all your money back. That spread is compensation for credit risk, not free money.
Not accounting for tax treatment. Municipal bond interest is typically exempt from federal income tax, and often from state tax if you buy bonds from your own state. A muni yielding 3.5% can be equivalent to a taxable bond yielding 5% or more, depending on your bracket. The formula: Tax-Equivalent Yield = Muni Yield / (1 - Marginal Tax Rate).
Buying long-duration bonds without understanding the bet you're making. If you buy a 30-year bond, you're making a bet about the direction of interest rates for three decades. If rates rise 2% after you buy, you're looking at a ~40% paper loss. You'll get par value back at maturity, but that's 30 years of holding an underperforming asset.
Current yield vs. yield to maturity
Current yield is the simple ratio: annual coupon / current price. For a 5% bond priced at $926, current yield is $50 / $926 = 5.40%. It tells you your cash income as a percentage of what you paid.
Yield to maturity is the more complete measure. It incorporates the coupon income, the capital gain or loss at maturity, the time to maturity, and the compounding effect. It's the internal rate of return if you hold to maturity and reinvest all coupons at the same rate. YTM is what you should compare across bonds.
For quick bond math -- pricing, yield to maturity, duration, and current yield -- I built a calculator at zovo.one/free-tools/bond-calculator that lets you plug in the variables and see how they interact.
The bond market is twice the size of the stock market. It moves more slowly, the math is more explicit, and the relationships between variables are deterministic rather than speculative. Understanding how bond pricing works gives you a real edge, whether you're evaluating your own portfolio or building financial tools for others.
I'm Michael Lip. I build free developer tools at zovo.one. 350+ tools, all private, all free.
Top comments (0)