Recent Posts

Tuesday, December 20, 2016

Primer: Understanding Inflation-Linked Bonds

Inflation-linked bonds (also known as index-linked bonds, or even linkers) are bonds that pay a guaranteed rate of return above inflation. Although the concept appears simple, the details of the implementation might be viewed as complex. This article explains how to understand the structure of these bonds, without being bogged down in technical details.

Canadian Model Linkers

In this article, I am trying to keep my comments fairly generic, but there are market convention differences between linkers issued by different countries. I am focusing on what is called the "Canadian model" for index-linked bonds, which is the structure of the Government of Canada's Real Return Bond programme.

The United Kingdom started regularly issuing index-linked debt earlier, using a different model. The old U.K. model was designed to deal with certain technical issues that were concerns at that time, but the bond pricing is extremely difficult to understand. (When I tried building a pricer for these bonds, even the U.K. Treasury did not put the pricing calculation for non-coupon dates in their introductory documentation as it was ridiculous.) The U.K. finally gave up and now issues Canadian model bonds.

Understanding the Bonds

I feel that the best way to understand these bonds is to break down their structure into three logical steps, which are described below.

The alternative is to look at the pricing formula, and/or play with a fixed income pricer to see how they act. The problem with memorisation of the formula is that it does not explain why the bonds are structured the way that they are. I will do some pricing examples here once I extend my "simplepricers" Python package to handle index-linked calculations. (That is not a high priority; I want to extend the functionality of my SFC model package first.)

The logic of these bonds work in three steps.
  1. The bonds act like plain vanilla bonds in a "real prices" world (or prices expressed relative to the price level of a fixed date). If you understand conventional pricing of bonds, it is exactly the same.
  2. We then imagine a world where the only time units are monthly, and we use the monthly inflation time series to translate prices from the "real prices" world to the real world, where prices are nominal. This translation is exactly like translating prices from one currency to another.
  3. We then have to accept the fact that we need to price bonds on a daily basis, and take into account publication delays in inflation data. We interpolate the monthly "currency conversion" series to a daily basis for calculations.
The rest of this article expands upon the above summary description.

Real Prices World

For the purposes of this article, I am largely assuming that the reader understands how conventional bonds work.

However, as a quick recapitulation, will use as an example a hypothetical $100 face value 10-year bond with a 2% coupon. We assume that "now" is December 2016, and the bond matures in December 2026. (I am ignoring the day of the month for now.)

If we are in a country where bonds pay semi-annually, the cash flows received are:
  • $1 coupon payment on every June and December up to and including December 2026. (We assume that the $1 coupon for December 2016 was already paid.)
  • Additionally, we are paid $100 principal at maturity (December 2026). This means that the final cash flow is $101.
If we live in a country where bonds pay annual coupons, the cash flows would be:
  • $2 every December, up to and including December 2026.
  • $100 principal payment on December 2026. (Making the total final payment $102.)
I am not going to explain bond pricing conventions, but they are based on what is called a clean price, which has the following property.
  • If the clean price is less than $100, the quoted yield-to-maturity is greater than the coupon rate (2% in this case).
  • If the clean price is greater than $100, the quoted yield-to-maturity is less than the coupon rate (2%).
In other words: price up, yield down, and vice-versa.

However, this clean price is theoretical. What we actually pay (the invoice price, also known as the dirty price) also includes accrued interest. When interest rates are positive, we want to get payments more quickly, and so the invoice price will be higher just before a coupon payment than after the coupon payment, if the rate of return is unchanged. (The yield on a bond can roughly be thought of as the internal rate of return on the bond, albeit expressed in a somewhat funky quote convention.)

For our purposes here, we need to realise that when we talk about a bond's value, we actually have three different concepts:
  1. the face value of the bond;
  2. the clean price of the bond;
  3. the invoice price of the bond.

We often discuss bonds in terms of their face values; for example, government statistics give the face value of debt issues outstanding. We then need to use some calculation method (a book of tables, software) to convert it to a clean price.

We then have another step -- another black box -- to convert the clean price to what we actually pay (the invoice price).

The only difference between an index-linked bond and a conventional bond is that the second black box (that converts the clean price to invoice price) is more complicated.

The Monthly World

The next stage is to imagine a world which conveniently only has months as the time axis (and inflation series are immediately available).

All actual cash flows in this world are equal to: the cash flows in the "real prices" world times the monthly indexation factor. The monthly indexation factor is a monthly time series, and can be thought of as an exchange rate between the "real prices" world and the cash flows seen by investors.

(In fact, option models on inflation-linked products are based on cross-currency options. That topic is well out of scope of this essay.)

 For a given bond, the indexation factor in a month equals the CPI level for that month, divided by the level of the CPI at the month of bond issuance.


To keep this example as simple as possible, I will look at a bond with one cash flow.
  • The current time is December 2016, and the CPI index level for December 2016 is 200.
  • The bond in question is a $100 one-year bond, with an annual coupon of 2%, that was issued in December 2016.
  • We buy the bond at auction (in December 2016) with a clean price of $100 (which also equals the dirty price).
  • Therefore, there is only one cash flow received: $102 in December 2017 in "real" dollars.
  • The level of CPI in December 2017 is 204.
There are two cash flows in this example:
  1. The initial purchase (at auction) in December 2016.
  2. The final coupon/principal payment in December 2017.
We examine these in turn.

Initial payment. The monthly indexation factor for December 2016 is equal to the CPI level at that date (December 2016) divided by the CPI level at issuance (also December 2016). Therefore, the indexation factor = 200/200 = 1.  Therefore, the invoice price (paid in actual dollars) does equal the clean price of $100.

(This is why we fix the indexation factor to match that of the bond issue date. In theory, we could just use the level of the CPI as the translation factor, but we would then have oddball invoice prices for auction buyers. The implication is that each bond will have its own private indexation factor, which somewhat mucks up portfolio calculations.)

Final Payment. The final payment in "real" dollars is $102. To translate that into actual dollars, we need to multiply by the indexation factor. In this case, the indexation factor is equal to the CPI level for December 2017 divided by that of the issue date, or 204/200 = 1.02. Therefore, the total dollar amount received is 1.02*($102) = $104.04. [Update: corrected typo spotted by commenter, thanks!]

This means that the annual interest rate is 4.04% (using an annual quote convention), while the rate of inflation was 2% (204/200=1.02). Although the quoted real yield (or indexed yield) of the bond was 2%, we actually received 2.04% more than the inflation rate. This is because of the interest-on-interest effect; subtracting the inflation rate from nominal returns is only an approximation of the true real return.

The Final Step: The "Actual" World

 In reality, we price bonds on the basis of the transaction settling on a particular calendar date, and not just the month of the year.

This is dealt with by interpolating the monthly indexation factor series described above to the day of the month.

We define the reference value for a calendar month to be the indexation value on the first day of the month. For the second or later day in a calendar month, the indexation factor is calculated by linearly interpolating between the reference value on the first of the month, and the reference value on the first day of the next month.

Since the CPI index for a month is only available with a time delay, the reference value for a month is the CPI index for the third preceding calendar month (for Canada at least; I think most countries follow the three month lag). 

For example, if we are in June (30 day month), the value of the indexation factor on the 16th is equal the average of the reference value on June 1st and July 1st (since there is an equal number of days between the two reference dates). Those reference values are equal to the monthly CPI index values on March and April.

CPI Index Used

In all the cases I am aware of, the CPI index used in calculations is all-items, and is not seasonally adjusted. People who follow economic commentary will note that economists mainly talk about core (ex-food and energy) seasonally adjusted inflation series. This can create a wedge between economist chatter and inflation strategy in the near term.

The non-seasonally adjusted series take some getting used to. There is a fairly stable ripple in the CPI series, and this creates period of high and low carry for index-linked bonds (link to article that discusses this). In turn, this can mean that the standard breakeven inflation rate can be misleading for short-term bonds, if one is thinking in terms of the seasonally adjusted series.

(The reason why seasonal adjustments cannot be used is that seasonal adjustment is only an approximation, and could change as a result of algorithm changes, or if the seasonal adjustment factor is re-calibrated in response to new data. The government does not want to face off against investors in court as a result of duelling seasonal adjustment algorithms.)

Principal Put

 In some markets (notably the United States), the bond structure has an added feature that benefits investors: a principal put.

With this feature, the indexation factor on the principal payment is guaranteed to be no lower than 1; that is you will always get at least $100 for every $100 face value of bonds you own. This guarantee does not extend to coupon payments, including the last one.

That is, the indexation factor for the principal = max(1, coupon indexation factor).

For those of you interested in the wild world of fixed income derivatives, you will recognise the max operation as a form of option (a put). This means that if we want to be very careful about bond pricing, we need to take into account the value of the principal put.

That said, the principal put is only in-the-money if the CPI index falls over the life of the bond. We have not seen that behaviour in the United States in the post-World War II world, although Japan's price index has been largely stable and would have historically triggered a hypothetical principal put at some points in time if such bonds existed. (Working from memory, Japanese linkers do not have a principal put in their structure anyway.)

Tax Treatment

The tax treatment of index-linked bonds is somewhat brutal; in the cases that I am aware of, the government imposes a tax based on the inflation uplift on the principal. This means that you are paying taxes on a market value change, but not on actual cash flows. (Otherwise, the taxes would be back-weighted, as the inflation compensation on the principal is a major component of the bond's total return.)

I certainly cannot give tax advice, but it is safe to say that you want to hold index-linked bonds in tax-deferred vehicles (retirement savings plans, like RRSPs in Canada). Otherwise, you probably need a good accountant. 

The Hyperinflation Disclaimer

If you are paranoid, one should note a disclaimer about such bonds protecting investors from inflation. (And all good fixed income analysts are paranoid.) In a hyperinflation, the delay in the indexation calculation means that payments will be based on what are highly out-of-date index values, and the real value of the bond cash flows would still be largely inflated away.

Only real-time indexation into a hard currency or commodity could protect against a hyperinflation.

Concluding Remarks

The calculations are somewhat complex, but we see that they allow index-linked bonds to give investors a guaranteed rate-of-return above inflation (under normal circumstances). They achieve this via creating an "exchange rate" between "real cash flows" and actual cash flows.

Calculation References:
(c) Brian Romanchuk 2016


  1. OT, but just a quick note to say how instructive I find this blog and how much I appreciate your efforts. Keep up the good work! :)

    Merry Christmas and Happy New Year!


  2. I think you mean December 2017 instead of December 2016, in the following sentence:
    Final Payment. The final payment in "real" dollars is $102. To translate that into actual dollars, we need to multiply by the indexation factor. In this case, the indexation factor is equal to the CPI level for December 2017 divided by that of the issue date, or 204/200 = 1.02. Therefore, the total dollar amount received is 1.02*($102) = $104.04.

    1. Yes, oops. (It took me awhile to see the problem. I looked at what you wrote, but you fixed the sentence for me already!)


  3. This comment has been removed by a blog administrator.

  4. This comment has been removed by a blog administrator.

  5. This comment has been removed by a blog administrator.

  6. This comment has been removed by a blog administrator.

  7. This comment has been removed by a blog administrator.

  8. This comment has been removed by a blog administrator.


Note: Posts are manually moderated, with a varying delay. Some disappear.

The comment section here is largely dead. My Substack or Twitter are better places to have a conversation.

Given that this is largely a backup way to reach me, I am going to reject posts that annoy me. Please post lengthy essays elsewhere.