Bond pricing, yield and duration

Premieur InstituteRead time: 17 minutes

Price a coupon bond, separate clean and dirty price, solve for yield to maturity, and measure rate risk with Macaulay and modified duration, DV01 and convexity.

A bond is a promise to pay fixed amounts on fixed dates: coupons through its life and the face value at maturity. Because the promised cash flows are fixed, the price is the only thing that moves, and it moves in the opposite direction to yields. Pricing a bond is therefore the time value of money applied to a known schedule, and measuring how far its price moves when yields change is the core of fixed income risk management.

These tools are not only for bond desks. Private credit funds, insurers and pension plans hold fixed rate debt; a buyout sponsor that issues high yield bonds needs to know what its debt is worth; and duration is how any investor compares the rate exposure of a bond, a loan book or a pension liability on one scale.

This topic covers pricing a coupon bond, clean and dirty prices and accrued interest under US day count conventions, yield to maturity and current yield, Macaulay and modified duration, DV01, convexity, and a worked estimate of the price change from a given rate move, checked against full repricing.

Key takeaways

  • A bond's price is the present value of its coupons and face value, discounted at the yield per period; price and yield move in opposite directions.
  • Bonds are quoted at a clean price; the buyer pays the dirty price, which adds interest accrued since the last coupon (30/360 for US corporates, actual/actual for Treasuries).
  • Yield to maturity is the single discount rate that equates the price with the cash flows, and it assumes coupons are reinvested at that same yield.
  • Modified duration is the approximate percentage price change for a one point change in yield; DV01 is the dollar change for one basis point.
  • Longer maturity and lower coupons mean higher duration; a zero coupon bond's Macaulay duration equals its maturity.
  • Convexity corrects the duration estimate: for an ordinary bond, prices rise more when yields fall than they fall when yields rise.

Pricing a coupon bond

A standard US fixed rate bond pays half its annual coupon every six months and returns its face value at maturity. Prices are quoted per $100 of face value. A 6 percent bond therefore pays $3 every six months on each $100, and a five-year bond has ten coupon payments, the last of them paid with the $100 of principal.

To price it, discount each payment at the yield per period, which for a semiannual bond is the annual yield divided by two, over the number of half-year periods. The coupons form an annuity and the face value is a single sum, so the price is the annuity formula plus the present value of the face. When the yield equals the coupon rate, the bond prices at par ($100). When the yield is below the coupon, it prices above par, at a premium; when the yield is above the coupon, below par, at a discount.

The relationship between price and yield is not a straight line. It is curved, convex toward the origin, and the curvature is stronger for long bonds. The table below shows that a 30-year bond swings much more than a 5-year bond for the same change in yield, which is the first sign of what duration measures.

Price of a fixed coupon bond on a coupon date
Price = (C / k) x [1 - (1 + y/k)^-(n x k)] / (y/k) + F / (1 + y/k)^(n x k)
C
Annual coupon in dollars (coupon rate x face value).
F
Face value, $100 for quoting.
y
Yield to maturity, quoted annually on a bond equivalent basis.
k
Coupon payments per year, 2 for US Treasuries and most US corporates.
n
Years to maturity.
Worked example

Pricing a 5-year 6 percent bond at a 5 percent yield

  • A hypothetical issuer, Marlow Industrial, has a 6 percent semiannual coupon bond with exactly 5 years to maturity. Face $100. Market yield 5.00 percent.
  1. 1. Coupon per period
    6% x 100 / 2
    $3.00
  2. 2. Yield per period and number of periods
    5.00% / 2; 5 x 2
    2.50%; 10
  3. 3. Discount factor for period 10
    1.025^-10
    0.781198
  4. 4. Annuity factor
    (1 - 0.781198) / 0.025
    8.7521
  5. 5. PV of coupons
    3.00 x 8.7521
    $26.26
  6. 6. PV of face value
    100 x 0.781198
    $78.12
  7. 7. Price
    26.26 + 78.12
    $104.38

The bond is worth $104.38 per $100 of face, a premium, because its 6 percent coupon is above the 5 percent the market requires.

Price of a 6 percent semiannual bond at different yields (per $100 face)
Yield5-year bond30-year bond
3.00%113.83159.07
4.00%108.98134.76
5.00%104.38115.45
6.00%100.00100.00
7.00%95.8487.53
8.00%91.8977.38
At a yield equal to the coupon both bonds price at par. Moving the yield from 6 to 3 percent lifts the 5-year bond 13.8 percent and the 30-year bond 59.1 percent.

Clean price, dirty price and accrued interest

Bonds rarely trade on a coupon date. Between coupons, the seller has earned part of the next coupon but will not receive it, because the whole coupon goes to whoever holds the bond on the record date. The buyer therefore compensates the seller for accrued interest, the portion of the coupon earned since the last payment.

Bond prices are quoted clean, without accrued interest, so the quote does not jump every time a coupon is paid. The amount actually paid is the dirty price (also called the full or invoice price): clean price plus accrued interest. The dirty price is the true present value of the remaining cash flows; the clean price is a quoting convention.

How accrued interest is counted depends on the day count convention. US corporate, agency and municipal bonds use 30/360, which treats every month as 30 days and every year as 360. US Treasuries use actual/actual, counting the actual days elapsed over the actual days in the coupon period. On the same dates the two methods can give slightly different accrued interest.

Accrued interest and the dirty price
Accrued interest = (C / k) x Days since last coupon / Days in coupon period Dirty price = Clean price + Accrued interest Dirty price = Sum of CFj / (1 + y/k)^(j - 1 + w), with w = Days to next coupon / Days in coupon period
30/360
US corporates: each month counts as 30 days, so a semiannual period is 180 days.
Actual/actual
US Treasuries: actual days elapsed over actual days in the period (181 to 184 for a half year).
j
Index of each remaining cash flow, 1 for the next coupon.
Worked example

Marlow Industrial between coupons, 30/360

  • The Marlow 6 percent bond pays coupons on March 15 and September 15 and matures on September 15, 2030. Trade settles June 15, 2026. Yield 5.00 percent.
  • Nine coupons remain, the next on September 15, 2026. Day count 30/360.
  1. 1. Days since last coupon (Mar 15 to Jun 15)
    3 months x 30
    90 days
  2. 2. Days in coupon period
    6 months x 30
    180 days
  3. 3. Accrued interest
    3.00 x 90 / 180
    $1.50
  4. 4. Fraction of period to next coupon
    90 / 180
    w = 0.5
  5. 5. Value of 9 remaining flows one period before the next coupon
    Price of 9 periods at 2.50%
    $103.99
  6. 6. Dirty price
    103.9854 x 1.025^0.5
    $105.28
  7. 7. Clean price
    105.2772 - 1.50
    $103.78

The screen shows 103.78. A buyer of $1m face pays the dirty price, $1,052,772 (105.2772 percent), of which $15,000 is accrued interest that flows back to the buyer when the September coupon is paid.

Yield to maturity and current yield

Yield to maturity (YTM) is the single discount rate that makes the present value of a bond's cash flows equal to its dirty price. It is the bond's IRR, and like IRR it is solved by trial and error. In the US it is quoted on a semiannual bond equivalent basis: twice the yield per half year.

YTM is the realized return only if three things hold: the bond is held to maturity, every payment is made in full, and every coupon is reinvested at the YTM itself. The last assumption is the same reinvestment problem as IRR. If rates fall after purchase, coupons are reinvested at lower rates and the realized return falls short of the YTM, which is called reinvestment risk.

Current yield is a much cruder measure: the annual coupon divided by the price. It ignores the gain or loss as the price converges to par at maturity, so for a discount bond it understates the true return and for a premium bond it overstates it. For callable bonds, investors also compute yield to call and quote the lower of the two as yield to worst.

Yield measures
Dirty price = Sum of CFt / (1 + YTM/2)^t, solved for YTM (t in half years) Current yield = Annual coupon / Clean price Effective annual yield = (1 + YTM/2)^2 - 1
Worked example

Solving for the yield of a discount bond

  • A hypothetical 10-year bond from Corbel Health pays a 4 percent semiannual coupon and trades at $92.00 on a coupon date.
  1. 1. Try 5.00%
    Price at 2.50% per period over 20 periods
    $92.21
    Above $92.00, so the yield must be higher.
  2. 2. Try 5.10%
    Price at 2.55% per period over 20 periods
    $91.47
    Below $92.00, so the yield is between 5.00 and 5.10 percent.
  3. 3. Solve numerically
    Price = 92.00
    YTM = 5.03%
  4. 4. Current yield
    4.00 / 92.00
    4.35%
  5. 5. Effective annual yield
    1.025139^2 - 1
    5.09%

The bond yields 5.03 percent to maturity. The current yield of 4.35 percent understates the return because it ignores the $8.00 gain as the price rises to par over ten years.

Macaulay and modified duration

Macaulay duration is the weighted average time until a bond's cash flows are received, each time weighted by the share of the price that cash flow represents. A zero coupon bond pays everything at maturity, so its duration equals its maturity. A coupon bond returns some value earlier, so its duration is shorter than its maturity, and the higher the coupon, the shorter the duration.

Modified duration turns that time measure into a price sensitivity. It equals Macaulay duration divided by one plus the yield per period, and it gives the approximate percentage change in price for a one percentage point change in yield. A bond with modified duration of 4.30 loses about 4.30 percent of its value if its yield rises by one point.

Duration grows with maturity and falls with coupon and with the level of yields. This is what makes it so useful: a pension plan can compare its liabilities, an insurer its assets and a credit fund its loan book on one number, and match or hedge them. The approximation holds well for small moves; for large ones convexity matters, as the next section shows.

Duration
Macaulay duration (years) = Sum of [t x PV(CFt)] / Price, with t in years Modified duration = Macaulay duration / (1 + y/k) % price change = -Modified duration x Change in yield
PV(CFt)
Present value of the cash flow at time t, discounted at the YTM.
y/k
Yield per coupon period.
Worked example

Duration of the Marlow 5-year bond at 5 percent

  • Ten semiannual cash flows: $3.00 at each half year from 0.5 to 4.5 years, and $103.00 at 5.0 years. Yield 5.00 percent, 2.50 percent per period. Price $104.3760.
  1. 1. PV of the first coupon, weighted by time
    (3.00 / 1.025) x 0.5
    2.9268 x 0.5 = 1.4634
  2. 2. PV of the final flow, weighted by time
    (103.00 / 1.025^10) x 5.0
    80.4634 x 5.0 = 402.3172
  3. 3. Sum of time weighted PVs, all ten flows
    1.4634 + 2.8554 + 4.1787 + 5.4357 + 6.6289 + 7.7607 + 8.8333 + 9.8490 + 10.8098 + 402.3172
    460.1321
  4. 4. Macaulay duration
    460.1321 / 104.3760
    4.41 years
  5. 5. Modified duration
    4.4084 / 1.025
    4.30

The bond behaves like a 4.41-year zero for timing, and its price moves about 4.30 percent for each one point change in yield.

Duration, DV01 and convexity at a 5 percent yield (semiannual, per $100 face)
BondPriceMacaulay durationModified durationDV01Convexity
6% coupon, 2 years101.881.921.870.01904.5
6% coupon, 5 years104.384.414.300.044922.1
6% coupon, 10 years107.797.767.570.081670.6
6% coupon, 30 years115.4515.2814.910.1721331.7
Zero coupon, 10 years61.0310.009.760.059599.9
10% coupon, 10 years138.977.116.930.096462.1
Duration rises with maturity and falls with coupon. The 10% bond has a lower duration than the 6% bond of the same maturity but a higher DV01, because DV01 is in dollars and its price is higher.

DV01 and convexity

DV01, the dollar value of a basis point (also called PV01 or PVBP), converts duration into money: it is the change in a bond's price for a one basis point change in yield. Traders and risk managers use it because it adds across positions. A portfolio's DV01 is the sum of the DV01s of its bonds, and a hedge is sized so that the DV01 of the hedge offsets the DV01 of the position.

Duration treats the price yield curve as a straight line. It is really curved, and convexity measures the curvature. For an ordinary bond convexity is positive: as yields fall the price rises faster than duration predicts, and as yields rise it falls more slowly. The duration estimate therefore understates the price after any move, in either direction, and adding the convexity term corrects it.

Convexity matters most for long bonds and large moves. Holders value it, because it means gains outrun losses for equal moves either way, so bonds with more convexity tend to trade at slightly lower yields. Callable bonds and mortgage-backed securities can show negative convexity, where the issuer's right to repay early caps the price gain when yields fall.

DV01, convexity and the price change estimate
DV01 = Modified duration x Dirty price x 0.0001 Convexity = Sum of [t(t+1) x PV(CFt)] / [Price x (1 + y/k)^2 x k^2], with t in periods Change in price = Price x [-Modified duration x dy + 0.5 x Convexity x dy^2]
dy
Change in yield as a decimal (100bp = 0.01).
k
Coupon periods per year; dividing by k^2 expresses convexity in years squared.
Worked example

Marlow Industrial: estimating a 100bp rise in yield

  • Price $104.3760 per $100 face at a 5.00 percent yield. Modified duration 4.3009. Convexity 22.08.
  • Yields rise from 5.00 percent to 6.00 percent (dy = 0.01). An investor holds $10m face.
  1. 1. DV01 per $100 face
    4.3009 x 104.3760 x 0.0001
    $0.0449
  2. 2. DV01 on $10m face
    0.044891 / 100 x 10,000,000
    $4,489
  3. 3. Duration effect
    -4.3009 x 0.01 x 104.3760
    -$4.4891
  4. 4. Convexity effect
    0.5 x 22.08 x 0.01^2 x 104.3760
    +$0.1152
  5. 5. Estimated price change
    -4.4891 + 0.1152
    -$4.3739
  6. 6. Actual price at 6.00%
    Reprice: yield equals coupon
    $100.0000
  7. 7. Actual change
    100.0000 - 104.3760
    -$4.3760

Duration alone predicts a $4.49 fall per $100 face; adding convexity predicts $4.37, within $0.0021 of the actual $4.3760. On $10m face the position loses about $437,600, and each basis point is worth about $4,489.

Estimate against full repricing for the Marlow bond (per $100 face, from $104.3760)
Yield moveDuration onlyDuration plus convexityActual
-100bp (to 4.00%)+4.4891+4.6043+4.6066
+100bp (to 6.00%)-4.4891-4.3739-4.3760
+200bp (to 7.00%)-8.9782-8.5173-8.5343
The duration estimate is symmetric; the actual moves are not. Convexity closes most of the gap, and the remaining error grows with the size of the move.

Templates for this lesson

Included with a Premieur membership.

  • ExcelBond pricing and durationPrice, Macaulay and modified duration, DV01 and convexity, and the estimated against the full price change for a yield shock.Download
Go deeper with Membership →