b2KIT

Bond Yield Calculator

Calculate current yield, yield to maturity, yield to call, and bond duration with price/yield curve visualization.

Tested tool guide Tested browser tools Checked August 16, 2026

What Bond Yield Calculator does, with a checked example

A bond's coupon rate is printed on the bond; its yield is not. The return you actually earn depends on the price you pay, and that is what this calculator solves for. Enter price, face value, coupon, and maturity, and it returns current yield, yield to maturity, yield to call, and duration, plus a price/yield curve showing how price responds to yield changes. The thing first-time users get wrong: a bond bought below par shows a yield to maturity well above its coupon, because YTM counts the price gain at maturity as part of the return. Buying above par flips it around.

Worked example

A concrete input and expected output from the current implementation.

Input

Face value $1,000; coupon 4% paid annually; 5 years to maturity; current price $960; callable at 103 after 3 years

Expected output

Current yield: 4.17% | Yield to maturity: 4.92% | Yield to call: 6.45% | Macaulay duration: 4.62 years (modified: 4.40) | Price/yield curve: price is 960 at a 4.92% yield and falls to about 957 at 5%

YTM is the discount rate that makes the cash flows, $40 per year for five years plus $1,000 at maturity, worth exactly $960 today, so it beats both the 4% coupon and the 4.17% current yield, which ignores the $40 principal gain. The call yield is higher still, 6.45%, because a call at 103 would pay $70 more than the purchase price within only three years.

How the result is produced

1

Solving for yield to maturity

YTM is the discount rate that makes the present value of every remaining payment, coupons and face value, equal the current price. There is no closed-form solution, so the calculator iterates: try a rate, price the bond, adjust until the computed price matches the entered price within a small tolerance. Current yield is simpler, annual coupon income divided by price, so it ignores any capital gain or loss at maturity.

2

Duration and the price/yield curve

Macaulay duration is the present-value-weighted average time to each cash flow: a 5-year coupon bond has duration below 5, while a zero-coupon bond's duration equals its maturity. Divided by 1 plus the per-period yield, it becomes modified duration, roughly the percentage price move per 1-point yield change. The price/yield curve plots price against yield, and because it bends, duration estimates hold only for small yield moves.

Good uses

  • Choosing between a bond trading at $960 and a 5-year CD at 4.5%: the bond's YTM of 4.92% is the comparable number, since current yield alone understates the return on a bond bought below par.
  • A holder of a callable bond judging whether an early call is likely: when the bond trades above its call price, the issuer can refinance cheaper, so yield to call, not yield to maturity, is the planning number.
  • Assessing interest-rate risk before buying: modified duration near 4.4 says a 1-point rate rise costs about 4.4% of the price, and the curve shows how much more a larger rise would cost.

Limits and checks

  • YTM is a promised rate, not a guaranteed one. It assumes you hold to maturity and reinvest every coupon at the same yield; if reinvestment rates fall, realized return comes in below the quoted figure.
  • Results depend on the coupon-frequency setting. Most US corporate bonds pay semi-annually, and the same bond can show slightly different YTM and duration under annual versus semi-annual settings, so match the input to the actual bond.
  • Duration is a small-change approximation, and the price/yield curve bends: for large rate moves the actual price change departs from the duration estimate. The whole snapshot is also only valid today, since yield, duration, and the curve all shift as the bond ages.

Common questions

Why is the yield to maturity higher than the coupon rate?

Because you are buying below par. The 4% coupon pays $40 a year, but you also bought $1,000 of principal for $960, gaining $40 at maturity. YTM is the single rate that turns all of those payments into today's price, so it reflects both income streams: 4.92% here. Buy the same bond above par and YTM would come in below the coupon instead.

Should I trust the yield to call or the yield to maturity?

The lower of the two is the safer planning figure. Issuers call when refinancing saves money, which shows up as the bond trading above its call price; above par, yield to call is usually the binding number. Not here: at 960 the bond sits below the 103 call price, calling would pay you $70 extra, so the issuer will not call and yield to maturity is the realistic expectation.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools