FRM Exam Part I · Pricing Conventions, Discounting, and Arbitrage
Pricing Forwards and Swaps Using No-Arbitrage
Updated 11 October 2026 · Fact-checked
Pricing by no-arbitrage means setting a forward price or swap rate so the contract has zero value at the start, because any other price lets you lock in a risk-free profit. A forward price is spot grossed up at the net carry cost. A par swap rate is (1 − final discount factor) ÷ the sum of discount factors.
Understand Pricing Forwards and Swaps via No-Arbitrage
No-arbitrage pricing rests on one idea: two ways of getting the same cash flows must cost the same. If they do not, you buy the cheap one, sell the expensive one and keep the difference with no risk.
For a forward, compare two routes to owning an asset at time T. Route one: enter a forward and pay the forward price F at T. Route two: borrow money, buy the asset today and hold it. Route two costs the spot price S0 grown at the financing rate, less any income the asset pays. Setting the two equal gives the cost of carry formula. Income (dividends, coupons) lowers the forward price. Storage costs raise it.
A forward's price at inception is the delivery price that makes its value zero. Later, the contract has value because the market forward price moves away from the original delivery price K. The value of a long forward is the present value of the difference between the new forward price and K.
For a swap, treat it as two bonds. The fixed-rate payer is short a fixed-rate bond and long a floating-rate bond. A floating-rate bond is worth par on each reset date, because it pays the market rate. So with notional 1, the floating leg is worth 1 − DF(n) today, where DF(n) is the discount factor to the last payment date. The fixed leg is the fixed rate times the sum of accrual-weighted discount factors. The par swap rate is the fixed rate that makes the two legs equal.
The same logic works in reverse. Given a set of par swap rates, you can bootstrap discount factors. The exam usually asks for the forward direction: given discount factors or spot rates, find the forward price, the par rate or the swap value.
Key formulas to remember
- Forward price, no income (continuous compounding)
- F = S0 × e^(rT)
- With annual compounding use F = S0 × (1 + r)^T. Use the compounding the question gives.
- Forward price with known cash income
- F = (S0 − I) × e^(rT), where I = PV of income
- Discount each income payment at the risk-free rate to today before subtracting.
- Forward price with known yield q
- F = S0 × e^((r − q)T)
- q is the continuously compounded yield. For a commodity with storage cost u, use e^((r + u)T).
- Value of a long forward at time t
- f = S_t − PV(income) − K × DF(t, T)
- Equivalent to (F_t − K) × DF(t, T). A forward has zero value at inception when K = F.
- Discount factor from a spot rate
- DF(T) = 1 ÷ (1 + z)^T, or e^(−zT) if continuous
- z is the spot (zero) rate for maturity T.
- Par swap rate
- c = (1 − DF_n) ÷ Σ(τ_i × DF_i)
- τ_i is the accrual fraction of each period (1 for annual, 0.5 for semi-annual). Sum runs over all fixed payment dates.
- Value of a swap to the fixed payer
- V = N × [(1 − DF_n) − K × Σ(τ_i × DF_i)]
- Valid on a reset date. The fixed receiver's value is the negative of this.
- Forward rate from discount factors
- f(t1, t2) = (DF(t1) ÷ DF(t2) − 1) ÷ (t2 − t1)
- Simple-compounded forward rate over the period. The par swap rate is a weighted average of these forward rates.
How to solve Pricing Forwards and Swaps via No-Arbitrage questions
Use this method for any forward or swap pricing question. Always work from the cash flows and the discounting, not from memory of a result.
- 1Identify the contract and the date: forward or swap, inception or later, long or short, fixed payer or receiver.
- 2List the inputs and their compounding: spot price, rate, time in years, income, yield, storage cost, or the discount factors and accrual periods.
- 3If rates are given as spot rates, convert them to discount factors with DF = 1 ÷ (1 + z)^T, or e^(−zT) if continuous.
- 4For a forward, apply the cost of carry: grow the spot price, net of PV of income, at the risk-free rate to maturity.
- 5For a swap rate, compute the numerator 1 − DF_n and the denominator Σ(τ × DF), then divide.
- 6For the value of an existing contract, compute the PV of what the contract pays minus what it receives. For a swap, that is the floating leg (1 − DF_n) minus the fixed leg (K × annuity), times notional.
- 7Check the sign and direction: who pays fixed, who is long. Then sanity-check the size: a par rate should sit near the average of the spot rates, and a forward should sit above spot when carry is positive.
- 8If an option list offers a price that differs from your answer, think of the arbitrage that exploits the gap. It confirms which side is mispriced.
Quickest way: Annuity shortcut for par swap rates and forward value
When to use it: Use when discount factors are given and you need a par swap rate or a swap value. It avoids building the legs separately.
- Add up the discount factors for all fixed payment dates. Multiply by τ if the periods are not annual. This is the annuity A.
- Par rate = (1 − last DF) ÷ A.
- Swap value to the fixed payer = N × [(1 − last DF) − K × A]. Equivalently N × A × (par rate − K).
- For forwards, write F = (S0 − PV income) × e^(rT) in one line and use the calculator's e^x key.
- Do a quick check: if K is below the par rate, the fixed payer has a positive value.
Common mistakes in Pricing Forwards and Swaps via No-Arbitrage
Forgetting to discount the income before subtracting it from spot.
Students subtract the face amount of the dividend or coupon because it looks simpler.
Fix: Subtract the present value of the income, discounted from its payment date to today. Then grow the result to maturity.
Using the swap's last payment discount factor as the whole denominator, or leaving out DF_n in the numerator.
The par swap formula is half-remembered.
Fix: Numerator is 1 − DF_n. Denominator is the sum of τ × DF across every fixed payment date.
Mixing compounding bases, for example using e^(rT) when the rate is annually compounded.
Question text gives a rate without stating the basis and students default to one method.
Fix: Read the compounding statement first. Convert the rate or use the matching formula. Do not mix bases within one answer.
Reversing the sign of a swap's value.
Confusing which party pays fixed.
Fix: Fixed payer value = PV(floating) − PV(fixed). If market par is above the contract rate, the fixed payer gains.
Treating the forward value at a later date as F − K without discounting.
The forward payoff is S_T − K, so students skip the discount step.
Fix: Value = (F_t − K) × DF(t, T). The difference is only paid at T.
Applying a semi-annual swap formula with τ = 1.
Accrual fractions are ignored.
Fix: Set τ = 0.5 for semi-annual payments, and use DFs for each half-year date.
Worked examples
Example 1
An asset trades at $100. It will pay a single income of $3 in three months. The risk-free rate is 4% per year, continuously compounded. What is the no-arbitrage price of a six-month forward on the asset?
Show the solution
- Formula: F = (S0 − I) × e^(rT), where I is the PV of the income.
- PV of income = 3 × e^(−0.04 × 0.25) = 3 × e^(−0.01) = 3 × 0.990050 = 2.97015.
- Net spot = 100 − 2.97015 = 97.02985.
- Growth factor = e^(0.04 × 0.5) = e^(0.02) = 1.020201.
- F = 97.02985 × 1.020201 = 98.990.
Answer: The forward price is about $98.99. If the market quoted a higher forward, you would sell the forward, borrow, buy the asset and lock in a profit.
Example 2
A three-year annual-pay interest rate swap has discount factors of 0.9615 (1 year), 0.9246 (2 years) and 0.8890 (3 years). (a) Find the par swap rate. (b) A company pays fixed at 3.5% on a notional of $10,000,000 under an existing three-year swap on a reset date. What is the value of its position?
Show the solution
- (a) Annuity = 0.9615 + 0.9246 + 0.8890 = 2.7751.
- Numerator = 1 − DF3 = 1 − 0.8890 = 0.1110.
- Par rate = 0.1110 ÷ 2.7751 = 0.04000, so about 4.00%.
- (b) Floating leg PV per unit of notional = 0.1110.
- Fixed leg PV per unit = 0.035 × 2.7751 = 0.0971285.
- Value per unit to the fixed payer = 0.1110 − 0.0971285 = 0.0138715.
- Value = 10,000,000 × 0.0138715 = 138,715.
Answer: (a) The par swap rate is about 4.00%. (b) The fixed payer's position is worth about +$138,715, because it pays 3.5% when the market rate is 4.00%.
Exam tips
- Check the compounding basis before any calculation. Many wrong answers come from using the wrong form of the growth factor.
- For a swap valued on a reset date, the floating leg is always 1 − DF_n per unit of notional. Do not discount a set of floating coupons one by one.
- Questions often give spot rates, not discount factors. Convert first, then use the annuity formula.
- Use your financial calculator for powers and e^x. Keep at least four decimals in discount factors to avoid rounding mismatches with the answer options.
- Read the sign convention: fixed payer versus receiver, long versus short. Decide the direction using the sanity check before you finish.
Practice questions from Pricing Conventions, Discounting, and Arbitrage
- A bond pays 50 in one year and 1,050 in two years. The continuously compounded rate is 4% per annum for both maturities. What is the bond's …
- The EUR/USD spot rate is 1.2000 USD per EUR. The continuously compounded risk-free rates are 3% in USD and 1% in EUR. What is the no-arbitra…
- Annual-pay discount factors are 0.9700 for 1 year, 0.9300 for 2 years and 0.8900 for 3 years. What is the 3-year par yield with annual coupo…
- An investment earns an effective annual rate of 5%. What is the equivalent continuously compounded annual rate?
- The one-year spot rate is 3.00% and the two-year spot rate is 4.00%, both annually compounded. What is the implied one-year forward rate sta…
Pricing Forwards and Swaps via No-Arbitrage in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
Pricing Forwards and Swaps via No-Arbitrage: frequently asked questions
How do I calculate the par swap rate from spot rates?
Convert each spot rate to a discount factor with DF = 1 ÷ (1 + z)^T. Then compute (1 − DF_n) ÷ Σ(τ × DF). The result is the fixed rate that gives the swap zero value at inception.
Why is a floating-rate leg worth par on a reset date?
The floating coupon is set at the market rate for the period, so a floating-rate bond is priced at par right after each reset. Its present value per unit of notional is therefore 1 minus the discount factor to the final date, once the final notional is netted against the initial exchange.
Does the forward price equal the expected future spot price?
No. The forward price comes from no-arbitrage and the cost of carry, not from expectations. It uses today's spot, the financing rate and the income or storage costs. Expected spot price is a separate concept.
How does a dividend or coupon change the forward price?
Known income lowers the forward price. You subtract the present value of the income from the spot price and then grow the remainder at the risk-free rate. With a continuous yield q, the growth rate becomes r − q.