Covered interest rate parity: forward rates from interest rates
Investing at home must earn the same as converting to the foreign currency, investing there and locking in the conversion back with a forward, because both are risk free. That forces F(A/B) = S(A/B) × (1 + r_A τ) ÷ (1 + r_B τ). The currency with the higher interest rate trades at a forward discount.
Before this: Forward points, forward premiums and discounts, Returns of Financial Assets
On the exam
- Explain the arbitrage relationship between spot and forward exchange rates and interest rates, calculate a forward rate using points or in percentage terms, and interpret a forward discount or premium
Explain the arbitrage relationship between spot rates, forward rates and interest rates and calculate a forward rate. Expect a forward from spot and two rates with a day-count fraction, a forward-points question, the premium or discount call, and a dealer quote that departs from parity (which loop of trades earns the profit).
How deeply to learn each part
- Know the idea
- Understand it in general. It frames other topics, but you will not calculate with it.
- Use it
- Understand it well enough to solve a question with it. Recognize when it applies.
- Memorize
- Learn it by heart. The exam will not give it to you.
You know this one. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still do.
You tested strong here. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still know it.
Why must the forward match the two interest rates?
Two investors each hold one unit of currency B (the base currency of the A/B quote) and want the safest possible result over a period of length τ. Both have a risk-free choice.
- Deposit at home. Earn the B interest rate . End value: units of B.
- Convert, deposit abroad, convert back. Swap the unit of B into A at the spot rate S (S units of A), deposit at to get units of A, and sell those A forward at F, which gives back units of B. This route is called swap financing .
- Route 1: deposit B at home Use it one step
- Earn r_B end value 1 + r_B τ
-
- Route 2: swap financing Use it three steps, currency risk locked by the forward
- Convert B to A at spot S units of A
- Deposit A at r_A S (1 + r_A τ) units of A
- Convert back at the forward F divide by F to get units of B
-
- Equal returns Memorize solving for F gives the parity forward
Both routes carry no risk: the interest rates are risk free, and the forward removes the currency risk. Equal risk means equal return. That is covered interest rate parity .
Solve for F and you have the forward rate.
The day-count fraction τ converts an annual money-market rate into the rate for the period. Money-market rates use actual days over a 360-day year.
Exam tip Memory hook: the price currency’s rate goes on top, the base currency’s rate underneath. It mirrors the quote, with A over B.
The A/B spot rate is 1.065. The annual rate is 4.00% in currency A and 2.40% in currency B (actual/360). The 360-day forward A/B rate is closest to:
1.065 × 1.04 ÷ 1.024 = 1.08164
Forward rate, F (A/B)1.0816
- 1.065×(0.04×360÷360+1)÷(0.024×360÷360+1)=1.08164
- 1.065ENTER0.04ENTER360×360÷1+×0.024ENTER360×360÷1+÷1.08164
ENTER enter (on the HP, puts the number on the stack)
Try this 0 of 3
- Switch the term to 90 days
- Raise the EUR rate above the USD rate and see which currency is at a premium
- Set the dealer forward above the parity value and read the reversed trade
USD at a forward discount (USD pays the higher rate, 4.00% vs 2.40%).
Two risk-free routes for EUR 1.00, closing at the dealer's 1.07200
- Deposit at home
- DepositEUR at 2.40%EUR 1.0240
- Go abroad and come back
- Convertat spot 1.0650USD 1.0650
- DepositUSD at 4.00%USD 1.1076
- Convert backat dealer 1.07200EUR 1.0332
The routes differ by EUR 0.0092: that gap is the arbitrage.
360 days USD/EUR forward at USD 4.00% and EUR 2.40%: 1.0650 × 1.0400 ÷ 1.0240 = 1.08164 (forward points +166.4). EUR trades at a forward premium and USD, the higher-rate currency, at a discount. The dealer's 1.07200 is below parity, an arbitrage worth USD 0.009872 per EUR. The forward makes the two risk-free routes pay the same.
Dealer 1.07200 vs parity 1.08164: EUR is cheap forward, so buy it forward
- Borrow EUR 1 at 2.40%: you owe EUR 1.0240 at the end.
- Convert at spot 1.0650: USD 1.065000.
- Deposit it at 4.00%: it grows to USD 1.107600.
- Today, buy EUR 1.0240 forward at the dealer's 1.07200: it costs USD 1.097728.
- Repay the EUR loan. Keep USD 1.107600 − 1.097728 = USD 0.009872.
- Profit USD 0.009872 per EUR borrowed, with no capital and no risk.
Show working
F(USD/EUR) = S × (1 + r × τ) for USD ÷ the same for EUR: the price currency's rate on top, the base currency's below.
τ = 360 ÷ 360 = 1.0000
F = 1.0650 × 1.0400 ÷ 1.0240 = 1.0650 × 1.040000 ÷ 1.024000 = 1.08164
Forward points = (1.08164 − 1.0650) × 10,000 = +166.4
EUR (base) premium: F ÷ S − 1 = +1.563%
Traps: swapping the rates gives 1.04862.
- 1.04×1.065÷1.024=1.08164, the forward
- −1.065=×10000=+166.4, forward points
- 1.04ENTER1.065×1.024÷1.08164, the forward
- 1.065−10000×+166.4, forward points
ENTER enter (on the HP, puts the number on the stack)
How are forward points linked to the rates?
Use it
Subtract spot from the parity forward and the gap, the forward points, depends on the interest rate differential ().
Three things follow. The points have the sign of . They grow with the differential. And they grow with τ, only approximately in proportion, because τ also appears in the denominator.
- The higher-rate currency Memorize forward discount
- The lower-rate currency Memorize forward premium
- Dealer forward below parity Use it base currency B is cheap forward
- Borrow B, convert to A, invest at r_A then buy B forward at the dealer rate
-
- Dealer forward above parity Use it base currency B is dear forward
- Borrow A, convert to B, invest at r_B then sell B forward at the dealer rate
-
- Not a forecast Know the idea a pricing result of arbitrage, not a prediction of spot
What if a dealer quotes a forward away from parity?
Use it
Then a riskless arbitrage exists: compare the dealer’s forward with the parity value, buy the currency forward where it is cheap, and fund the other leg at the deposit rates.
Parity holds tightly in the major currencies because banks run this trade constantly. For the exam, treat any forward quoted away from parity as an arbitrage.
What does a forward not tell you?
Know the idea
A higher-rate currency at a forward discount is a pricing result. It is not a forecast that the currency will fall. If you do treat the forward as the expected future spot rate, you get an odd-looking result: the high-rate currency is expected to weaken.
In practice, forwards are poor predictors of future spot rates. The exchange rate responds to far more than the interest rate gap, so read a forward as a price set by arbitrage and nothing more.
Go deeper Why swap financing costs about the domestic rate
Know the idea
Because route 2 is tied by arbitrage to route 1, the all-in cost of borrowing one currency, converting it and hedging the repayment with a forward is close to the plain borrowing rate in that currency. Any gap is an arbitrage that traders remove.
Go deeper The same carry argument in Derivatives
Know the idea
Forward pricing in the Derivatives topic uses the same logic: a forward price equals the spot price grown at the cost of carrying the asset. Here the carry is the interest rate gap between two currencies. Once you can do this lesson’s calculation, forward pricing is the same step with different inputs.
Memorize this
MemorizeCovered interest rate parity
| Piece | Rule |
|---|---|
| Forward | |
| Rate on top | price currency A (the numerator of the quote) |
| Rate underneath | base currency B (the denominator) |
| Day-count fraction | = days ÷ 360 (actual/360 money-market rates) |
Memory hook The currency in front of the slash is the price currency, and its rate goes on top of the fraction. The base currency's rate sits underneath.
Know it cold Always multiply each rate by τ before adding 1. An annual rate used for a part-year forward is wrong.
MemorizePremium or discount from interest rates
| Currency | Interest rate | Forward position |
|---|---|---|
| higher rate | higher | discount |
| lower rate | lower | premium |
Memory hook The currency that pays more interest is cheaper forward: the forward takes the extra interest back.
Know it cold In A/B: means F > S, so the base currency B is at a premium and A at a discount.
MemorizeDealer forward against parity
| Dealer F vs parity | Base currency B | Loop |
|---|---|---|
| below | cheap forward | borrow B, convert, invest in A, buy B forward |
| above | dear forward | borrow A, convert, invest in B, sell B forward |
Memory hook Buy B forward where it is cheap, sell it forward where it is dear, and fund the other leg at the deposit rates.
Know it cold Profit per unit of B = the gap between the two end values. No capital and no risk.
- Route 1: deposit B at home Use it one step
- Earn r_B end value 1 + r_B τ
-
- Route 2: swap financing Use it three steps, currency risk locked by the forward
- Convert B to A at spot S units of A
- Deposit A at r_A S (1 + r_A τ) units of A
- Convert back at the forward F divide by F to get units of B
-
- Equal returns Memorize solving for F gives the parity forward
- The higher-rate currency Memorize forward discount
- The lower-rate currency Memorize forward premium
- Dealer forward below parity Use it base currency B is cheap forward
- Borrow B, convert to A, invest at r_A then buy B forward at the dealer rate
-
- Dealer forward above parity Use it base currency B is dear forward
- Borrow A, convert to B, invest at r_B then sell B forward at the dealer rate
-
- Not a forecast Know the idea a pricing result of arbitrage, not a prediction of spot
Quick example
CHF/EUR spot 0.9400, 180-day forward 0.93076, CHF rate 1.5%, EUR rate 3.5%. Deposit EUR: 1 + 0.035 × 0.5 = 1.0175. Swap route: 0.9400 × 1.0075 ÷ 0.93076 = 1.0175. Equal.
- 0.94×1.0075÷0.93076= 1.0175
- 0.94ENTER1.0075×0.93076÷ 1.0175
ENTER enter (on the HP, puts the number on the stack)
Quick example
CHF/EUR spot 0.9400, CHF rate 1.5%, EUR rate 3.5%, 180 days. F = 0.9400 × 1.0075 ÷ 1.0175 = 0.93076. The EUR (the higher-rate currency) trades at a forward discount.
- 0.94×(0.015×180÷360+1)÷(0.035×180÷360+1)= 0.93076
- 0.94ENTER0.015ENTER180×360÷1+×0.035ENTER180×360÷1+÷ 0.93076
ENTER enter (on the HP, puts the number on the stack)
Quick example
A 270-day forward has τ = 270 ÷ 360 = 0.75, so a 5% annual rate earns 5% × 0.75 = 3.75%.
- 270÷360= 0.75
- 270ENTER360÷ 0.75
ENTER enter (on the HP, puts the number on the stack)
Quick example
Same CHF/EUR inputs. F − S = 0.9400 × (0.015 − 0.035) × 0.5 ÷ 1.0175 = −0.009238, or about −92.4 points.
- 0.94×(0.015−0.035)×0.5÷1.0175= −0.009238
- 0.94ENTER0.015ENTER0.035−×0.5×1.0175÷ −0.009238
ENTER enter (on the HP, puts the number on the stack)
Quick example
If A pays 6.0% and B pays 2.0%, treating F as the expected spot implies (0.06 − 0.02) ÷ 1.02 = +3.92% for A/B: B is expected to appreciate. Forwards are poor forecasts in practice.
- 0.06−0.02=÷1.02= 0.0392
- 0.06ENTER0.02−1.02÷ 0.0392
ENTER enter (on the HP, puts the number on the stack)
How it is asked
-
Forward from rates, with days
EUR/USD spot 0.9160, EUR 2.10%, USD 6.00%, 120 days. What is the forward?
0.9160 × 1.007 ÷ 1.02 = 0.90433. Swapped rates (0.92783) or annual rates (0.88230) are the traps.
-
Which currency is at a premium?
Country X has higher interest rates than Country Y. What happens to X's currency in the forward market?
It trades at a forward discount. The lower-rate currency is at a premium.
-
Forward points from rates, yen
JPY/EUR spot 162.00, JPY 0.10%, EUR 3.60%, 180 days. How many forward points?
F = 162 × 1.0005 ÷ 1.018 = 159.22, points = (F − S) × 100 = −278.5.
-
Dealer quote against parity
Parity forward USD/GBP is 1.2340. A dealer quotes 1.2290. What is the trade?
B (here GBP) is cheap forward: borrow B, convert to A, invest, and buy B forward.
Exam traps
- Putting the base currency's rate in the numerator. The price currency's rate goes on top.
- Using annual rates for a 90-day forward. Multiply each rate by days ÷ 360 first.
- Concluding that the high-rate currency will appreciate because it pays more interest. Its forward is at a discount.
- Scaling points with the wrong power of ten, or forgetting that yen pairs use 100.
Checkpoint
5 exam-style questions. About 90 seconds each.
1GBP/EUR spot is 0.8550. The GBP rate is 5.00% and the EUR rate is 3.00% (both annual, actual/360). The 180-day forward GBP/EUR rate is closest to:
2If interest rates in Country X are higher than in Country Y, X's currency will most likely:
3CHF/GBP spot is 1.1200. The 1-year CHF rate is 1.0% and the GBP rate is 4.5%. The 1-year forward points are closest to:
4JPY/USD spot is 150.00. The 90-day rates (annualized, actual/360) are 0.50% for JPY and 5.00% for USD. The 90-day forward points are closest to:
5USD/EUR spot is 1.0850, the 1-year USD rate is 4.50% and the EUR rate is 3.00%, so parity gives a forward of 1.1008. A dealer quotes the 1-year forward at 1.0950. A riskless profit is available by:
Key takeaways
- F(A/B) = S × (1 + r_A τ) ÷ (1 + r_B τ). The price currency's rate goes on top.
- τ = days ÷ 360 for part-year forwards.
- The higher-rate currency trades at a forward discount; the lower-rate currency at a premium.
- A forward away from parity is a riskless arbitrage, closed by borrowing, converting, investing and locking the return with the forward.
Quick example
CHF/EUR spot 0.9400, 180-day forward 0.93076, CHF rate 1.5%, EUR rate 3.5%. Deposit EUR: 1 + 0.035 × 0.5 = 1.0175. Swap route: 0.9400 × 1.0075 ÷ 0.93076 = 1.0175. Equal.
- 0.94×1.0075÷0.93076= 1.0175
- 0.94ENTER1.0075×0.93076÷ 1.0175
ENTER enter (on the HP, puts the number on the stack)
Quick example
CHF/EUR spot 0.9400, CHF rate 1.5%, EUR rate 3.5%, 180 days. F = 0.9400 × 1.0075 ÷ 1.0175 = 0.93076. The EUR (the higher-rate currency) trades at a forward discount.
- 0.94×(0.015×180÷360+1)÷(0.035×180÷360+1)= 0.93076
- 0.94ENTER0.015ENTER180×360÷1+×0.035ENTER180×360÷1+÷ 0.93076
ENTER enter (on the HP, puts the number on the stack)
Quick example
A 270-day forward has τ = 270 ÷ 360 = 0.75, so a 5% annual rate earns 5% × 0.75 = 3.75%.
- 270÷360= 0.75
- 270ENTER360÷ 0.75
ENTER enter (on the HP, puts the number on the stack)
Quick example
Same CHF/EUR inputs. F − S = 0.9400 × (0.015 − 0.035) × 0.5 ÷ 1.0175 = −0.009238, or about −92.4 points.
- 0.94×(0.015−0.035)×0.5÷1.0175= −0.009238
- 0.94ENTER0.015ENTER0.035−×0.5×1.0175÷ −0.009238
ENTER enter (on the HP, puts the number on the stack)
Quick example
If A pays 6.0% and B pays 2.0%, treating F as the expected spot implies (0.06 − 0.02) ÷ 1.02 = +3.92% for A/B: B is expected to appreciate. Forwards are poor forecasts in practice.
- 0.06−0.02=÷1.02= 0.0392
- 0.06ENTER0.02−1.02÷ 0.0392
ENTER enter (on the HP, puts the number on the stack)
Questions about this lesson?
Where this comes back
- Pricing and Valuing Forward Contracts and FRAs Derivatives
- Arbitrage, Replication and the Cost of Carry Derivatives
- Pricing and Valuing Interest Rate Swaps Derivatives
Questions candidates ask
What is covered interest rate parity?
It is the no-arbitrage link between spot, forward and interest rates. Deposit at home, or convert, deposit abroad and lock the conversion back with a forward: both are risk free, so both must earn the same. It gives F = S × (1 + r_A τ) ÷ (1 + r_B τ) for an A/B quote.
How do you calculate a forward exchange rate from interest rates?
Multiply the spot A/B rate by (1 + r_A τ) ÷ (1 + r_B τ), where A is the price currency, B the base currency and τ is days ÷ 360. Put the price currency's rate on top. For a 90-day forward, τ = 0.25.
Why does the higher interest rate currency trade at a forward discount?
The forward price must offset the extra interest, or investors could earn the higher rate and hedge at no cost. So the higher-rate currency is cheaper for forward delivery than for spot delivery. This is a pricing result, not a prediction that the currency will weaken.
Spotted an error? Tell us and we will fix it.