Boneyard Tools

Bond Yield to Maturity Calculator

Work out the yield to maturity on a bond. Enter the face value, coupon rate, current price and years left to see the YTM, current yield and how the price compares to par.

How to calculate yield to maturity

  1. Enter the bond's face value and annual coupon rate.
  2. Enter the current market price, years to maturity and coupon frequency.
  3. Read the yield to maturity, current yield and discount, par or premium label.

Examples

A 5% bond bought below par

Face 1000, coupon 5%, price 950, 10 years, annual coupons
Yield to maturity is about 5.67% and current yield is 5.26%

Frequently asked questions

What is yield to maturity?

Yield to maturity is the single annual rate that makes a bond's future coupons and face value, once discounted, add up to its current price. It is the total return you earn if you buy at that price and hold to maturity, assuming coupons are reinvested at the same rate.

How is YTM different from current yield?

Current yield is just the annual coupon divided by the price, so it only measures income. Yield to maturity also includes the capital gain or loss from buying below or above face value, which is why a discount bond's YTM is higher than its current yield and a premium bond's is lower.

Why does a discount bond have a higher yield than its coupon?

When you pay less than face value you collect the coupon and also pocket the difference between your price and the face value repaid at maturity. That extra capital gain lifts the yield to maturity above the stated coupon rate.

How is the YTM solved?

There is no closed-form solution, so the calculator uses bisection: it repeatedly prices the bond at a trial yield and narrows a 0 to 100 percent range until the computed price matches the price you entered, to well within a cent.

Does this work for semiannual bonds?

Yes. Choose annual or semiannual coupons. With semiannual coupons each period pays half the annual coupon and is discounted at half the periodic yield, and the result is reported as an annualized rate.

Do you store the numbers I enter?

No. The calculation runs entirely in your browser. Nothing you type is sent to a server, logged or stored.

Related tools