Tutorials › VEE Accounting and Finance › Deriving the Coupon-Bond Pricing Formula

VEE Accounting and Finance · Bond Cash Flows and Pricing · Tutorial 806 of 996

Deriving the Coupon-Bond Pricing Formula

Learn why a level-coupon bond’s price is the present value of its coupons and principal, and check the timing and rate assumptions before applying the formula.

Beginner 10 min read

What You'll Learn

  • Define the cash-flow timing and periodic required yield used in the level-coupon bond formula
  • Derive the formula by summing discounted coupons as a geometric series
  • Identify the assumptions needed to use one annuity factor and one principal discount factor
  • Apply the formula and verify it by discounting individual payments
  • Recognize the zero-yield case and a common principal-timing error

From Bond Cash Flows to a Pricing Formula

A level-coupon bond has a simple cash-flow pattern: it pays the same coupon at each scheduled payment date and repays its face value at maturity. Its price follows from a basic valuation principle: the value at the valuation date is the sum of the present values of the promised future cash flows. The formula is compact, but its timing assumptions matter. In particular, the face value is paid with the final coupon, not one period earlier.

The formula below uses equal coupon periods and a single required yield per period. It does not assume that every bond has the same coupon frequency or yield. The yield used in a calculation must correspond to the cash-flow period being discounted.

Definition: Let \(F\) be a bond’s face value, \(C\) its fixed coupon payment per period, and \(n\) the number of remaining coupon periods. Let \(i_p\) be the required effective yield per coupon period, and let \(P\) be the bond’s value immediately before the next coupon payment. The bond pays \(C\) at the end of each of periods \(1,\ldots,n\), and pays \(F\) at the end of period \(n\), together with the final coupon.

When coupon periods are annual, the required yield per period is the effective annual rate \(i\). For other coupon periods, use a yield stated for that period. The effective discount factor per period is \(v_p=1/(1+i_p)\). This notation makes explicit that the yield and the cash-flow period must match.

Deriving the Level-Coupon Bond Formula

Discount each promised payment from its payment date back to the valuation date. The coupon at the end of period \(k\) is discounted for \(k\) periods. The face value is discounted for \(n\) periods because it is paid at maturity, at the same time as coupon \(n\).

$$ P=\frac{C}{(1+i_p)}+\frac{C}{(1+i_p)^2}+\cdots+\frac{C}{(1+i_p)^n}+\frac{F}{(1+i_p)^n}. $$

The coupon terms form a finite geometric series. To see why it has the annuity-factor form, set \(v_p=1/(1+i_p)\). The coupon present value is \(C(v_p+v_p^2+\cdots+v_p^n)\). Multiplying the sum in parentheses by \(1-v_p\) cancels all the middle terms:

$$ (1-v_p)(v_p+v_p^2+\cdots+v_p^n)=v_p-v_p^{n+1}. $$

Therefore, for \(i_p\ne 0\), the sum is \((v_p-v_p^{n+1})/(1-v_p)\). Since \(1-v_p=i_p/(1+i_p)\), this is also \([1-(1+i_p)^{-n}]/i_p\). Adding the separately discounted face value gives the pricing formula.

$$ P=C\frac{1-(1+i_p)^{-n}}{i_p}+F(1+i_p)^{-n} $$

In actuarial annuity notation, the coupon part is \(C a_{\overline{n}|}\), with the per-period yield \(i_p\) understood. The principal part is \(Fv_p^n\). Thus the same result can be written \(P=C a_{\overline{n}|}+Fv_p^n\). The annuity factor represents the present value of \(n\) payments of one unit, while the second term represents one payment of \(F\) at the end of period \(n\).

Theorem: For a level-coupon bond with equally spaced payments, fixed coupon \(C\), face value \(F\) paid with the final coupon, and a constant required yield \(i_p\ne0\) per coupon period, its value immediately before the next coupon is \(P=C[1-(1+i_p)^{-n}]/i_p+F(1+i_p)^{-n}\). If \(i_p=0\), the value is \(P=nC+F\).

The zero-yield case follows directly from the cash flows: when \(i_p=0\), no future payment is reduced by discounting, so the value is the sum of all \(n\) coupons and the face value. The expression containing division by \(i_p\) is not evaluated at zero; its limiting coupon factor is \(n\).

Worked Examples

Worked Example: Price a Bond and Check the Maturity Timing

A hypothetical bond has face value \(\$1{,}000\), pays a fixed coupon of \(\$40\) per period, and has three periods remaining. The required yield is \(5\%\) per period. Find its value immediately before the next coupon. Round only the final price to cents.

Method and assumptions check. The three coupons are equal and equally spaced, the yield is given per coupon period, and the \(\$1{,}000\) face value is paid with the third coupon. The level-coupon formula therefore applies.

First calculate the discount factor for the maturity payment: \(v_p^3=(1.05)^{-3}=1/1.157625=0.863837599\). The coupon annuity factor is \([1-(1.05)^{-3}]/0.05=(1-0.863837599)/0.05=2.723248029\).

The present value of the coupons is \(\$40(2.723248029)=\$108.929921\). The present value of the face value is \(\$1{,}000(0.863837599)=\$863.837599\). Thus \(P=\$108.929921+\$863.837599=\$972.767520\), or \(\$972.77\) to the nearest cent.

Check and common mistake. Discounting each coupon separately gives \(\$40/1.05=\$38.095238\), \(\$40/1.05^2=\$36.281179\), and \(\$40/1.05^3=\$34.553504\); these sum to \(\$108.929921\), as above. A timing error would discount the face value for only two periods, giving \(\$1{,}000/1.05^2=\$907.029478\) and a mistaken total of \(\$1{,}015.96\). The face value is paid at the end of period three, so it must be discounted for three periods.

Worked Example: Verify the Formula by Discounting Each Payment

A hypothetical bond has face value \(\$1{,}000\), pays \(\$50\) at the end of each of two periods, and repays face value with the second coupon. The required yield is \(10\%\) per period. Find the price using the formula and verify it using the individual payments. Round only the final price to cents.

Method. There are two coupon payments, and principal is paid at the end of period two. With \(i_p=0.10\), the period discount factor is \(v_p=1/1.10=10/11\), and \(v_p^2=100/121=0.826446281\).

The coupon annuity factor is \([1-v_p^2]/0.10=(1-0.826446281)/0.10=1.735537190\). The coupon present value is \(\$50(1.735537190)=\$86.776860\). The face-value present value is \(\$1{,}000(0.826446281)=\$826.446281\). So the formula gives \(P=\$86.776860+\$826.446281=\$913.223140\), or \(\$913.22\).

For an independent check, discount the payments separately: \(\$50/1.10=\$45.454545\) for the first coupon, and \((\$50+\$1{,}000)/1.10^2=\$1{,}050(0.826446281)=\$867.768595\) for the final coupon and principal together. Their sum is \(\$45.454545+\$867.768595=\$913.223140\), the same price. This check also confirms that the last coupon and face value share the same discount period.

Worked Example: Handle a Zero Required Yield

A hypothetical bond has face value \(\$500\), pays \(\$18\) at the end of each of six periods, and pays the face value at the end of period six. The required yield is \(0\%\) per period. Find its value. Round only the final answer to cents.

Method and trap avoided. The expression \([1-(1+i_p)^{-n}]/i_p\) cannot be substituted into directly when \(i_p=0\), because it would divide by zero. Instead, use the zero-yield case or sum the undiscounted cash flows.

The six coupons total \(6(\$18)=\$108\). The principal is \(\$500\), paid at maturity. At a zero yield, each payment has a discount factor of \(1\), so the bond value is \(P=\$108+\$500=\$608\). The same result follows from \(P=nC+F=6(\$18)+\$500=\$608.00\).

As a check, the total promised cash flow is \(\$18+\$18+\$18+\$18+\$18+\$18+\$500=\$608\). No payment is discounted, so the sum verifies the price.

When the Formula Applies

The formula is a shortcut for a specific cash-flow pattern and discounting model. Before using it, check that the bond and yield satisfy the conditions below. These conditions explain both why the formula works and when discounting the cash flows individually is necessary instead.

1
Confirm the payment pattern.
There must be \(n\) equal coupon payments \(C\), one at the end of each equally spaced period. A changing coupon or an irregular payment schedule does not have this level-coupon pattern.
2
Locate principal repayment.
The face value \(F\) is paid at the end of period \(n\), together with coupon \(n\). Its present value is \(F(1+i_p)^{-n}\), not \(F(1+i_p)^{-(n-1)}\).
3
Match yield units to periods.
Use the effective required yield for one coupon period. If the yield is stated for a different time unit, convert it consistently before discounting; using an annual rate as though it were a per-period rate can change every present value.
4
Apply one rate to each period.
The formula assumes the same required yield applies to all coupon and principal cash flows. If cash flows are instead valued using different period-specific rates, discount each cash flow at its applicable rate and add the present values.

The calculation also treats the promised payments as fixed and assumes they are paid in full. It does not adjust for default, taxes, a call feature, or other terms that change the amount or timing of payments. The stated value is immediately before the next coupon; a valuation between coupon dates requires attention to the actual timing of the next payment and any accrued interest convention. These assumptions define the model, rather than guaranteeing that a traded bond will sell at the formula’s value.

Why the Formula Is Useful—and Where Errors Arise

The formula separates a bond’s cash flows into two familiar pieces: a level annuity of coupons and a single maturity payment. This makes repeated calculations faster and clarifies the source of each part of the value. The derivation also supplies a reliable check: the formula must equal the sum obtained by discounting every promised cash flow at the same per-period yield.

Common errors usually concern inputs or timing, not algebra. A rate quoted per year is not automatically the rate per coupon period. The number \(n\) counts remaining payment periods, not necessarily years. And the principal is not an extra payment one period before maturity: it is discounted for the full \(n\) periods. When any of these conditions is uncertain, write down the payment timeline first, then discount each cash flow according to its actual payment date.

Key takeaway: A level-coupon bond’s value is the present value of \(n\) equal coupons plus the present value of face value paid with the final coupon. The formula is valid when the cash-flow periods and the single per-period required yield are consistent with those assumptions.

Check Your Understanding

For each problem, check the payment dates and the yield period before calculating.

  1. A hypothetical bond has face value \(\$700\), pays \(\$24\) at the end of each of three periods, and repays principal with the last coupon. The required yield is \(4\%\) per period. Find the price to the nearest cent. (Answer: \(\$688.90\))
  2. A hypothetical bond has face value \(\$450\), pays \(\$17\) per period for five periods, and has a zero required yield per period. What is its value? (Answer: \(\$535.00\))
  3. A hypothetical bond has face value \(\$900\), pays \(\$32\) at the end of each of two periods, and pays principal with the second coupon. The required yield is \(8\%\) per period. Find the price to the nearest cent. (Answer: \(\$828.67\))
  4. A bond has equal coupons every period, but the required discount rate is specified separately for each payment date rather than as one constant rate. Should the level-coupon formula with one annuity factor be applied unchanged? (Answer: No. Discount each payment using the rate applicable to its payment date, then sum the present values.)
  5. A hypothetical bond has face value \(\$1{,}000\), pays \(\$40\) at the end of each of four periods, and repays principal with the fourth coupon. The required yield is \(5\%\) per period. What is its price to the nearest cent, and how many periods should the principal be discounted? (Answer: \(\$964.54\); discount principal for four periods.)
Clinical Biostats