Skip to content

FRM Exam Part I · Pricing Conventions, Discounting, and Arbitrage

Discount Factors and Spot Rates for FRM Part I

Updated 11 October 2026 · Fact-checked

A discount factor d(t) is today's value of 1 paid at time t. A spot (zero) rate z(t) is the annual rate on a zero-coupon bond maturing at t. They link as d(t) = 1 ÷ (1 + z/m)^(m×t). To price a bond, discount each cash flow at its own spot rate and add.

Understand Discount Factors and Spot Rates

Money received later is worth less than money received today. A discount factor measures this. The discount factor d(t) is the price today of a bond that pays exactly 1 at time t and nothing else. If d(2) = 0.9070, then 1 paid in two years is worth 0.9070 today.

A spot rate, also called a zero rate, is the same information stated as an annual interest rate. It is the yield on a zero-coupon bond that matures at t. Each maturity has its own spot rate. The collection of spot rates across maturities is the spot curve. The collection of discount factors across maturities is the discount function.

Because a bond is a bundle of cash flows, each paid at a different date, each cash flow should be discounted at the spot rate for its own date. Bond price = Σ cash flow(t) × d(t). This is the core pricing idea. A single yield to maturity is only one average rate that gives the same price. It is not the rate that applies to each cash flow.

A par rate is different. It is the coupon rate at which a bond prices exactly at par (face value). Par rates come from a coupon bond, so they mix several spot rates. When the curve slopes upward, the par rate at a given maturity is below the spot rate at that maturity, because the early coupons are discounted at lower rates.

Bootstrapping extracts spot rates from coupon bond prices. Start with the shortest maturity, which is usually a zero-coupon instrument. Use its rate to discount the early coupons of the next bond. Then solve for the one unknown discount factor at the final maturity. Repeat for each longer maturity.

Key formulas to remember

Discount factor from spot rate
d(t) = 1 ÷ (1 + z(t)/m)^(m×t)
m is compounding periods per year. Use m = 2 for semiannual, as most bond questions do. Annual: d(t) = 1 ÷ (1 + z)^t.
Continuous compounding
d(t) = e^(−z×t)
Use only when the question states continuous compounding.
Spot rate from discount factor
z(t) = m × [d(t)^(−1/(m×t)) − 1]
Annual compounding: z = d^(−1/t) − 1. Continuous: z = −ln d(t) ÷ t.
Bond price using spot rates
P = Σ C(t) × d(t) + F × d(T)
C is each coupon, F is face value, T is maturity. Each cash flow uses its own discount factor.
Par rate from discount factors
c = m × [1 − d(T)] ÷ Σ d(t_i)
Sum the discount factors at every coupon date up to T. Gives the annual coupon rate for a par bond.
Bootstrapping the final discount factor
d(T) = [P − Σ C × d(t) for earlier dates] ÷ (C + F)
C + F is the final coupon plus principal. All earlier discount factors must already be known.

How to solve Discount Factors and Spot Rates questions

Use this order for any question on discount factors, spot rates, pricing or bootstrapping.

  1. 1Identify what is given: spot rates, discount factors, or bond prices. Note the compounding convention (annual, semiannual, continuous).
  2. 2List every cash flow with its date. Coupons per period = annual coupon ÷ m.
  3. 3Convert each spot rate to a discount factor with d = 1 ÷ (1 + z/m)^(m×t). Count periods, not years, in the exponent when m = 2.
  4. 4Multiply each cash flow by its discount factor.
  5. 5Add the results to get the price. If asked for yield, solve separately for the single rate that gives that price.
  6. 6For bootstrapping, work from the shortest maturity. Price known flows with known discount factors, then solve for the single unknown final discount factor.
  7. 7Convert the new discount factor back to a spot rate if the question asks for one, using the same compounding convention.
  8. 8Check: a normal upward curve should have falling discount factors and a bond price near par if coupon is near the par rate.

Quickest way: Discount factor table method

When to use it: Use when a question gives several spot rates or discount factors and asks for a price, a par rate or a missing rate.

  1. Write a two-column list: date and discount factor. Fill it from the given data at once.
  2. Compute price as the sum of cash flow × factor. Do not compute a yield unless asked.
  3. For a par rate, use c = m × (1 − d(T)) ÷ Σ d. You need no price.
  4. For bootstrapping, subtract the known coupon values from price first. Then divide by the final cash flow to get d(T).
  5. Eliminate answer options that break logic, such as a discount factor above 1 or a spot rate below the par rate on an upward curve.

Common mistakes in Discount Factors and Spot Rates

  • Using years instead of periods in the exponent under semiannual compounding.

    The rate is quoted annually, so students plug t in years while still dividing the rate by 2.

    Fix: Use (1 + z/2)^(2t). For 1.5 years the exponent is 3.

  • Discounting all cash flows at one yield and calling it a spot-rate price.

    Yield to maturity is the more familiar tool.

    Fix: Use a separate discount factor for each date when spot rates are given.

  • Treating the par rate and the spot rate as the same thing.

    Both are quoted as annual percentages for a maturity.

    Fix: Remember a spot rate belongs to a zero-coupon bond. A par rate belongs to a coupon bond priced at par and averages earlier spot rates.

  • Forgetting to add the principal to the final coupon when bootstrapping.

    Students solve for d(T) using only the coupon.

    Fix: The final cash flow is coupon plus face value. Divide by that.

  • Dividing the annual coupon by the full rate frequency incorrectly, for example using the full annual coupon each half year.

    Rushing through the cash flow list.

    Fix: Semiannual coupon = annual coupon rate × face ÷ 2.

  • Mixing compounding conventions between given rates and the formula.

    The stem states the convention once and students overlook it.

    Fix: Circle the convention first and use the matching formula throughout.

Worked examples

Example 1

Semiannual-compounded spot rates are: 0.5 year 4.0%, 1.0 year 4.4%, 1.5 years 4.8%. Price a 1.5-year bond with face value 100 and a 6% annual coupon paid semiannually.

Show the solution
  1. Coupon each period = 6% × 100 ÷ 2 = 3.
  2. d(0.5) = 1 ÷ (1 + 0.04/2)^1 = 1 ÷ 1.02 = 0.980392.
  3. d(1.0) = 1 ÷ (1 + 0.044/2)^2 = 1 ÷ 1.022² = 1 ÷ 1.044484 = 0.957411.
  4. d(1.5) = 1 ÷ (1 + 0.048/2)^3 = 1 ÷ 1.024³ = 1 ÷ 1.073742 = 0.931323.
  5. PV of coupons: 3 × 0.980392 = 2.941176; 3 × 0.957411 = 2.872232.
  6. Final flow = 103; 103 × 0.931323 = 95.9263.
  7. Price = 2.9412 + 2.8722 + 95.9263 = 101.7397.

Answer: Price ≈ 101.74

Example 2

A 0.5-year zero-coupon bond has a semiannual spot rate of 3.0%. A 1-year bond with face 100 and a 4% annual coupon (paid semiannually) trades at 100.50. Find the 1-year spot rate (semiannual compounding).

Show the solution
  1. d(0.5) = 1 ÷ (1 + 0.03/2) = 1 ÷ 1.015 = 0.985222.
  2. Coupon = 4% × 100 ÷ 2 = 2. Final cash flow at 1 year = 102.
  3. PV of first coupon = 2 × 0.985222 = 1.970443.
  4. Remaining value = 100.50 − 1.970443 = 98.529557.
  5. d(1.0) = 98.529557 ÷ 102 = 0.965976.
  6. z(1) = 2 × [d^(−1/2) − 1]. d^(−1/2) = 1 ÷ √0.965976 = 1 ÷ 0.982841 = 1.017458.
  7. z(1) = 2 × 0.017458 = 0.034916, about 3.49%.

Answer: 1-year spot rate ≈ 3.49% (semiannual compounding)

Exam tips

  • Read the compounding convention first. Most wrong answers on this topic come from mismatched compounding.
  • Keep at least six decimals in discount factors. Rounding to three decimals can move you to a different option.
  • On a financial calculator, use the power function: store 1.022, raise to 2 with y^x, then take 1/x. Do not re-enter intermediate values by hand.
  • If a question asks which curve shape makes the par rate lower than the spot rate, the answer is an upward-sloping curve.
  • Bootstrapping questions usually need only one or two steps. Do not build the whole curve if only one rate is asked.

Practice questions from Pricing Conventions, Discounting, and Arbitrage

Discount Factors and Spot Rates in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Discount Factors and Spot Rates: frequently asked questions

How do you calculate a discount factor from a spot rate?

Use d(t) = 1 ÷ (1 + z/m)^(m×t), where m is the compounding frequency. For continuous compounding use d(t) = e^(−z×t). For example, a 5% annual spot rate for 2 years gives 1 ÷ 1.05² = 0.907029.

What is the difference between a zero rate and a par rate?

A zero rate is the yield on a zero-coupon bond for one maturity. A par rate is the coupon rate that makes a coupon bond price at par, so it blends several zero rates. On an upward-sloping curve the par rate is below the zero rate of the same maturity.

How does bootstrapping spot rates work?

Start with the shortest maturity, where the spot rate is known. Discount the earlier coupons of the next bond with known factors. Then solve for the one unknown discount factor from the bond's price, and repeat for longer maturities.

Is the discount factor always less than 1?

With positive rates, yes, and it falls as maturity increases. With negative rates, a discount factor can exceed 1, which appears in some markets.