Interest Rates

A worked-through tour of the interest rate zoo — compounding conventions, LIBOR vs LIBID, spot and forward rates, FRAs, and bond pricing, all with quiz solutions.

Quick quizzes first

Quiz 1. The bank rate is 14% per year, compounded quarterly. What’s the equivalent rate under (a) continuous compounding and (b) annual compounding?

a. Continuous: $R_c = m\ln(1 + R_m/m) = 4\ln(1.035) = 0.1376 = 13.76\%$.

b. Annual: $(1 + 0.14/4)^4 - 1 = 0.1475 = 14.75\%$.

Quiz 2. What kind of rates are LIBOR and LIBID? Which one is bigger?

LIBOR = London Interbank Offered Rate: the rate a bank charges when it lends to other banks. LIBID = London Interbank Bid Rate: the rate a bank pays when it takes deposits from other banks.

LIBOR > LIBID. (lending rate > deposit rate — duh, that’s how a bank makes money.)

(These notes follow the textbook of the time, when LIBOR was the benchmark. LIBOR has since been retired: its last settings were published at the end of September 2024, and markets now lean on rates like SOFR.)

Quiz 3. The 6-month and 1-year spot rates are both 10% per year. A bond with an 8% coupon and 18 months to maturity (coupon was just paid) has a yield of 10.4%. What’s the price? And what’s the 18-month spot rate? Everything is semiannual compounding.

If we set face value to $100, then the price is the future cash flows discounted at 10.4%, which gives $96.74.

Equation from the original notes

The 18-month spot rate $R$ (annual) comes from this equation:

Equation from the original notes

$\therefore R = 10.42\%$.

Quiz 4. You invest $1,000 today and get $1,100 a year later. What’s the annual return under (a) annual compounding, (b) semiannual, (c) monthly, (d) continuous?

Equation from the original notes

Quiz 6.

Equation from the original notes

Zero-coupon rates are in the table above. What’s the value of an FRA that lets the holder earn 9.5% per year on a $1,000,000 principal over the 3-month window starting 1 year from now? (The 9.5% is on a compounding basis.)

The forward rate is 9.0% continuous, or 9.102% with quarterly compounding. Plug into equation 4.9 — value of the FRA is $893.56.

Equation from the original notes

Quiz 7. The term structure slopes upward. Rank these from largest to smallest:

(a) the 5-year zero rate, (b) the yield on a 5-year coupon bond, (c) the forward rate from 4.75 to 5 years out.

What if the term structure slopes down instead? Upward: $c > a > b$. Downward: $b > a > c$.

OK now let’s actually back up and go through all the rates that show up in this world.

The zoo of interest rates

Treasury rates. What you earn investing in T-bills and T-bonds. Since the Treasury basically has zero chance of going bankrupt — well, that’s the assumption — the Treasury rate gets called the risk-free rate.

LIBOR (London InterBank Offered Rate). The rate a bank charges another bank when lending to it. (To even borrow at LIBOR, the borrowing bank has to be at least AA-rated.) Traditionally the British Bankers’ Association publishes LIBOR every business day at 11 a.m. for all maturities up to 12 months, in the major currencies.

LIBID (London Interbank Bid Rate). What a bank pays when accepting deposits from another bank. So there’s always a spread: LIBOR > LIBID.

Side note worth pinning down — derivatives folks don’t actually treat T-bill / T-bond rates as the risk-free rate. They use LIBOR as risk-free. Just go with it.

Repo rate. A financial institution sells a security today at price $x$ and contracts to buy it back later at a slightly higher price $y$. That’s a repurchase agreement. Functionally, the institution borrowed cash. The implied rate — based on the gap $y - x$ — is the repo rate.

Continuously compounded rate. OK so when we just say “interest rate,” every elementary schooler knows what we mean. 10% a year, you put 100 won in the bank, after a year you’ve got 10% extra growth.

So after 1 year: $100 + 100R = 100(1+R)$. After 2 years? Work it out:

$$100(1+R)^2$$

After $n$ years: $100(1+R)^n$. More generally, deposit $A$ for $n$ years and you’ve got $A(1+R)^n$.

Now, what if the rate is 10% per year but interest gets paid twice a year? Same as saying you get 5% every 6 months. So: deposit $A$ for $n$ years, with interest paid $m$ times per year. After $n$ years you’ve got:

Equation from the original notes

That’s it. Pretty obvious, but it’s a small enough calculation that you should probably just work it through yourself once.

Now — the move we’re about to do — take $m$, the number of compounding periods per year, and crank it up to infinity. We’re looking at the limiting case. The maximum.

So the moment one second passes — no, shorter than that — 0.000000000001 seconds — no wait, 0.0000000000000000000000000001 — no no no no, just every single instant, you receive interest of $R/\infty$. After $n$ years, $A$ has become:

Equation from the original notes

There’s an exponential lurking in there. The definition of $e$ is

Equation from the original notes

and that same definition is sitting inside

Equation from the original notes

right here.

Equation from the original notes

So: at rate $R$ paid $\infty$ times per second, $\infty$ times over $n$ years, with each payment being $R/\infty$ — what you end up with is just $A$ multiplied by $\exp(Rn)$.

OK now let’s talk about “equivalence.”

Equation from the original notes

What this is asking is: you’re getting 10% with semiannual compounding — what continuous compounding rate gives you the same result as semiannual at 10%?

Or flip it: you’re getting 10% continuously compounded — what semiannual rate gives the same thing? Or quarterly? That’s why I’m calling it “equivalence.” You see what we’re doing here.

The relationship between a continuously compounded rate $R_c$ and an $m$-times-per-year rate $R_m$ — you can solve it for $R_c$, or you can solve it for $R_m$. I’ll write both forms:

Equation from the original notes

This relationship is going to come up a lot. Going from “I’m thinking in continuous compounding” to “the equivalent quarterly rate.” Going from semiannual to continuous. It’s going to show up in every direction, so we’d better get used to it. (T_T)

Zero-coupon rate (n-year spot rate, n-year zero rate)

The return you earn on an investment that starts today, has no intermediate payments, and pays out principal-plus-interest at the end of year $n$.

For example: if the 5-year zero-coupon rate on a Treasury bond is quoted at 5% continuous, that means $100 invested for 5 years at the risk-free rate becomes $128.40.

Equation from the original notes

But — in the real world, almost nothing is a zero-coupon bond. Most bonds are coupon bonds.

So how do we theoretically slap a “value” on those?

Easy enough in principle: discount every cash flow the bond throws off, using the appropriate zero-coupon rate (the risk-free rate) for each one.

Let’s run a 2-year Treasury, face $100, semiannual coupon at 6%, using continuous-compounded zero rates. If we’re handed the zero-coupon rates, we can pin down an “appropriate,” “fair” value. Suppose the zero rates look like this:

Maturity (y) Treasury zero rate (%)
0.5 5.0
1 5.8
1.5 6.4
2.0 6.8

Our bond ($n=2$, $F=100$, $c=6\%$) is a Treasury, so it pays $3 every 6 months. Discount every cash flow over those 2 years at its appropriate rate, sum ’em up — that’s the present value:

Equation from the original notes

But wait. That table — that’s kind of absurd, right? Nobody is handing you that table from on high.

There’s gotta be some principle for constructing it, right?

The construction method is the bootstrap method, which we’ll get to in a sec. But there are still a few more rates I want to introduce first.

Yield to maturity

The discount rate that makes the present value of the bond’s cash flows equal to its market value. In other words — the yield of a coupon bond.

Example: some coupon bond’s market price is 98.39. (6% coupon, 2-year maturity, face 100.) The question is: “Hey, this bond throws off cash flows of 3, 3, 3, 103 over 2 years — at what discount rate do those PV out to 98.39?” Find that rate. Call the unknown rate $y$. Then:

Equation from the original notes

We need the $y$ that satisfies this (continuous compounding). But… try solving it. Go on.

Yeah… it’s hard. So there’s no choice but trial and error. (T_T) sob sob.

Par yield

The coupon rate that makes the bond’s price equal its face value.

So: face 100, 2-year maturity, no coupon rate yet — we’re finding the coupon rate. Question: “What coupon rate makes the price come out to face value?” Answer that.

Discount each coupon over 2 years at the appropriate zero rate (that table from before), sum them up, and find the coupon rate that makes the total equal 100. So:

Equation from the original notes

Just find the coupon rate that satisfies this.

Bootstrapping the table

Now — how do we build the table

Maturity (y) Treasury zero rate (%)
0.5 5.0
1 5.8
1.5 6.4
2.0 6.8

in the first place?

We need data. Some kind of data. Only then can we infer the risk-free rate at 0.5y, 1y, 2y, etc. What data? Something like this:

Principal Maturity (y) Annual coupon ($) Price
100 0.25 0 97.5
100 0.50 0 94.9
100 1.00 0 90.0
100 1.50 8 96.0
100 2.00 12 101.6

(Half the annual interest gets paid every 6 months.)

With data like this, we can build out the Treasury zero-coupon (= risk-free) rate for any maturity we want. The 6-month and 1-year zero rates? Trivial! Look at the table — invest 94.9 today, get 100 with certainty 6 months later. That’s a risk-free rate, no question:

Equation from the original notes

One row down. And also, also, also — we can grab the 1-year too.

Equation from the original notes

Two rows down.

Now — how do we get 1.5 years from this table?

If you lock up 96.0 for 1.5 years, you get $4 every 6 months plus the principal back. Discount each of those at the appropriate rate, set the sum equal to 96.0, solve for the 1.5-year risk-free rate.

Equation from the original notes

(Continuous compounding throughout.)

Keep doing this and the table just keeps extending. And when we run out of raw data but still want more points? In that case, analysts assume the risk-free rate curve is linear, take two known points, draw a line, and read off whatever maturity they need — that’s what the book said anyway. In practice they collect as much data as possible and just fit a curve to it.

Forward rates

The interest rate for some future window, implied by today’s spot rates.

How do we calculate one? Apparently you just need a LIBOR zero-coupon table. Ah — so what we’re doing right now —

Equation from the original notes

Like I said up top, LIBOR gets published at 11 a.m. for major currencies across maturities. So the LIBOR for each maturity is already pinned down.

Equation from the original notes

Using that as the foundation, we can pin down the forward rate — the red part in the figure.

So how does the forward rate get computed?!

Simple.

Equation from the original notes

Like that. And looking at the equation, the principle is: the “total rate” is the average of the rates over each sub-period — and that defines the forward rate.

$0.03 + 0.05 + x = 3 \times 0.046$

What’s the principle, in plainer language?

The value you get under “use the forward rate over the future window” must equal the value you get under “just use today’s spot rates over the whole stretch.” Whichever way you slice it, the result has to come out the same.

If they didn’t, you’d have an arbitrage opportunity — and the market kills it (or, well, it shifts over time, but you get the idea). Choosing “3% in year 1, 5% in year 2” versus choosing “4% for 2 years” — these two have to land in the same place. Therefore:

Equation from the original notes

Forward rate agreements (FRAs)

There’s a transaction called a forward rate agreement (FRA). Who uses these? Anyone who thinks the actual future rate is going to differ from the forward rate that today’s market implies.

Plain version: “Oh god!!! What if Korea hits zero rates too?!?! Oh god!!! Let me lock in a contract at the forward rate — even if rates collapse to zero, I get to grow my money at the rate I locked in!!! I gotta lock this in!!!”

OK OK, let’s go go go. Let’s learn about FRAs. (From here on I’ll just treat LIBOR as the risk-free rate.) First, the terminology, in picture form:

Equation from the original notes

You get the gist, right? OK, so when there’s a gap between $R_K$ and $R_M$, the company gets to earn off the difference! Here’s how it shakes out.

You were supposed to receive interest at rate $R_M$, but a profit pops up because you actually receive at the higher $R_K$. Or: you were supposed to pay at $R_M$, but a loss pops up because you have to pay the higher $R_K$ instead. Or: you were supposed to receive at $R_M$, but a loss pops up because you only get the lower $R_K$. Or: you were supposed to pay at $R_M$, but a profit pops up because you only have to pay the lower $R_K$.

Heads up — this is a perspective you’ll really get when we hit swaps in Chapter 7 — but you can re-read the situation above as:

Receive the fixed rate $R_K$, pay $R_M$, over $T_1$ to $T_2$ (where $R_M$ is the actual realized rate). Or: pay the fixed $R_K$ on the principal over $T_1$ to $T_2$, receive the actual $R_M$.

In other words — this whole thing can also be reinterpreted as an interest rate swap. Cool.

Well, well, well — let’s see how the value of an FRA gets pinned down, theoretically. It’s theory, so there are assumptions, but the assumptions are pretty natural.

First: we calculate “as if the forward rate definitely realizes.” Second: we discount to PV at the risk-free rate (LIBOR, in our case).

Equation from the original notes

Hey!!! Right now, the forward rate set for the window $T_1$ to $T_2$ is 5.12%, but — I’m going to enter an FRA to receive 6% over that window!!! 100 million won!!! Suppose someone enters that contract.

Since we’re assuming the forward rate definitely realizes, and we discount at the risk-free rate, the present value of those cash flows is the value of the FRA.

Both obvious and simple, right? (Thanks to the assumptions… A peaceful household sets all things in order, a peaceful household sets all things in order… gotta stay on good terms with my assumptions.) Sorry, lame joke.

So — over that window —

Equation from the original notes

this profit/loss arises, and the present value just gets computed by slapping that red bit straight onto the value:

Equation from the original notes

Right? And the 0.04 is the risk-free rate hehhh.

Prob 4.8

The cash prices of the 6-month and 1-year T-bills are 94.0 and 89.0. A 1.5-year T-bond pays $4 every 6 months and trades at $94.84. A 2-year T-bond pays $5 every 6 months and trades at $97.12. Find the 6-month, 1-year, 1.5-year, and 2-year zero rates.

Invest 94.0 in the 6-month T-bill and you get 100 for sure. So the 6-month return is $6/94 = 0.0638$, and as an annual rate (semiannual compounding) that’s 12.766%.

Invest 89.0 in the 1-year T-bill and you get 100 for sure. So the 1-year return is $11/89 = 0.1236$, which is directly 12.36% annualized (annual compounding).

For the 1.5-year zero rate, use the info that the 1.5-year T-bond paying $4 semiannually is at 94.84:

Equation from the original notes

So this relationship holds, and as an equation:

Equation from the original notes

Punch it into a calculator: $R = 0.115$. The 1.5-year zero rate is 11.5%!!! Squeal!

For the 2-year — pays $5 semiannually, price 97.12 — I’ll skip the diagram and just write the equation:

Equation from the original notes

Punch it: $R = 0.113$. So the 2-year zero rate is 11.3%, hehh.

Prob 4.12

A bond has 3 years to maturity, an 8% annual coupon (paid semiannually), and a cash price of 104. What’s the bond’s yield?

Hehh.. yield of the bond.. yield of the bond? Yield to maturity, that’s what it’s asking. So: discount every cash flow the bond throws off, sum them up, and find the rate that makes the total equal the bond’s price.

Equation from the original notes

Like I said, this… is a pain to actually solve. It’d really be easier to just write code for this — but I tried approximating it as a quadratic via Taylor expansion.

(Figured the answer would come out around 0.0~~ something, so the approximation should be fine.)

Equation from the original notes

The solution manual says 6.40%. Error: 0.05%… 0.0005 in absolute terms, so I’m pretty pleased. hehhh.

Prob 4.13

The continuous-compounded spot rates are below. Compute the forward rates.

Maturity (y) Treasury zero rate (%)
1 2.0
2 3.0
3 3.7
4 4.2
5 4.5

Just write ’em out next to it:

Maturity (y) Treasury zero rate (%) Forward rate (%)
1 2.0 .
2 3.0 $6 - 2 = 4.0$
3 3.7 $3.7 \times 3 - 6 = 5.1$
4 4.2 $4.2 \times 4 - 3.7 \times 3 = 5.7$
5 4.5 $4.5 \times 5 - 4.2 \times 4 = 5.7$

Prob 4.15

Value an FRA on $1,000,000 of principal for the third year, using the spot rates above. Let’s set it up so that we pay a fixed 5% for that year and receive the floating rate, settled at the end of year 3. Just assume the forward rate realizes, then discount the future cash flow back to today. One little diagram:

Equation from the original notes

That diagram is my original shortcut, and it gives 894.94. But careful: it subtracts 5% straight from 5.1%, and the 5.1% is a continuously compounded rate, while an FRA pays plain interest on the principal for its period. The two rates have to be on the same basis first.

FRA rates are quoted as simple interest over the period, which for one year is the same as annual compounding. In those terms the forward rate for the third year is $e^{0.051} - 1 = 5.232\%$. With the fixed 5% read the same way, we receive 5.232% and pay 5% of the principal at the end of year 3, and today that is worth

$$(e^{0.051} - 1 - 0.05) \times 1{,}000{,}000 \times e^{-0.037 \times 3} \approx 2{,}078.85$$

(If the 5% were instead a continuously compounded rate, the payment would be $1{,}000{,}000\,(e^{0.051} - e^{0.05})$, worth about 941.29 today. For the side that receives the fixed 5%, flip the sign. Which case a problem means depends on how its contract is worded.)

Prob 4.16

A coupon bond, 10-year maturity, 8% coupon, currently priced at $90. Another coupon bond, 10-year maturity, 4% coupon, currently priced at $80. What’s the 10-year spot rate (annual) (= zero-coupon rate)?

Hint: think of it as a long position in 2 of the 4%-coupon bond and a short position in 1 of the 8%-coupon bond.

OK OK OK OK — this is asking us to find the spot rate, the zero-coupon rate, the risk-free rate.

What’s the role of the risk-free rate again?

It’s the floor — money left alone grows by at least the risk-free rate. So when we PV something at the risk-free rate, we’re saying “at most, the present value is this much.” So: assume the PVs of the two bonds, when each cash flow is discounted at its appropriate zero rate, are 90 and 80 respectively. (That’s the setup, right? Cool?)

The $90 one first:

Equation from the original notes

And the $80 one:

Equation from the original notes

Hmm — looks like it might link up with the first one, doesn’t it? Multiply both sides by 2:

Equation from the original notes

Whoa! If we line up the first equation with this doubled second one — everything cancels except the 10th-year term!

(That’s literally what the hint meant — buy 2 of one, sell 1 of the other, hehh.)

Combining the two:

Equation from the original notes

QED.


Heads-up. The figures here are the original notes, slips and all. A few things to watch for:

  • In the 18-month spot-rate equation the first two terms should be divided by $1.05$ and $1.05^2$ (10% a year is 5% per half year); the picture writes 1.052. The answer, $R = 10.42\%$, is the one that 1.05 gives.
  • In the Quiz 4 answers, line (d) should read $1000e^R = 1100$; the picture writes 1000 on the right. $R = \ln 1.1 = 9.53\%$ as stated.
  • In the par-yield equation the 1-year term should be discounted with $e^{-0.058\times 1}$ (5.8% in the zero-rate table); the picture writes 0.0558.
  • In the FRA value picture the red discount factor should be $e^{-0.04\times T_2}$: the payoff arrives at $T_2$ and we value it today, so it is discounted over the whole stretch from $T_2$, not only over the window $T_2 - T_1$.
  • In Problem 4.8 the pictures put the 6-month and 1-year rates (12.766% with semiannual compounding, 12.36% with annual compounding) into $e^{-Rt}$ as if they were continuously compounded. Converted, they are 12.38% and 11.65%. The answers, 11.5% and 11.3%, come out the same.
  • In the handwritten cash-flow diagram for the 2-year bond, the last term should be $103e^{-0.068\times 2}$ (the final coupon plus the principal); the picture writes 3, but the total 98.39 uses 103.
  • The Problem 4.15 diagram subtracts 5% straight from the continuously compounded forward rate 5.1%; the text redoes the calculation on one consistent basis.

Comments

Discussion happens via GitHub Discussions. You'll need a GitHub account to comment.