There are many available definitions of Z (zero volatility) spread e.g.:

**Quote [Investopedia]:
***"The constant spread that will make the price of a security equal to the present value of its cash flows when added to the yield at each point on the spot rate Treasury curve where a cash flow is received . In other words, each cash flow is discounted at the appropriate Treasury spot rate plus the Z-spread."*

**Quote [Wikipedia]: **

*"The Z-spread, ZSPRD, Zero-volatility spread or Yield curve spread on a simple mortgage-backed security (MBS) is the flat spread over the treasury yield curve required in discounting a pre-determined coupon schedule to arrive at its present market price."*

The purpose of this article is give a visual (graphical) representation of a z-spread. I will go over the procedure of building a graph in excel. This should help your understanding of the z-spread. Towards the end of this article you should see a graph that is similar to:

Before getting into the steps of building the graph, I want to quickly point out what the z-spread is in figure above. Notice that, at any point in the graph, the vertical distance between the green and blue line is exactly the same. This constant distance is really the z-spread. In other words: **z-spread is the constant vertical shift of each point on the base curve.**

**Z-Spread using excel**

In this section, I will show a step-by-step procedure on building a graphical representation of a z-spread as well as finding the a bond price given z-spread and vice-versa. I want to point out that I will be using some fixed-income/mathematical concepts (e.g. zero coupon bond, coupon bond, bond pricing using discounting cash flows, yield to maturity, treasury yield curve, interpolation) without going into much details of them. I will be using an example to explain z-spread. In this example we will be pricing a bond that pays *5%* coupon annually and has a face value of *$1000*. The bond matures in 30 years. We will use discounted cash flow mechanism to price the bond. In order to get a discounted value for each cash flow (coupon payment/principal), we need yield (rate) values. We will use a hypothetical yield curve (along with interpolation). We can add a constant value (z-spread) to each cash flow yield see how that affects the price of the bond.

To make it more interesting, I will work on two objectives:

- Bond price changes due to change in z-spread
- Finding a z-spread for a bond price

**1. Bond price changes due to change in z-spread**

First, we need to set the stage for calculating a bond price:

In this step we are setting up the discounted cash flow table for pricing the bond. Since, this is a 5% annual pay bond, there are 30 rows for cash-flow. Only the last cash flow is special because we receive the coupon + principal on period (year) 30. In order to get the discounted cash flows we need the yield for each period. We will use the hypothetical US treasury yields for that. Suppose the treasury yields are:

Now that we have the yields, we can plug them into our bond pricing cash flow table:

Looking at the previous table, we notice that there are many values missing in the 'Yield' column. Now, if we want to calculate the discounted cash flows then we have to come up with some estimated values. In order to do that we will use interpolation to come up with approximate values to fill in the gaps. More specifically, we will use xyz interpolation to estimate all the remaining yields. I will use the excel trendline + equation to find out the values of the missing points. To get the equation of the trendline, use the following steps:

- In the 'US treasury yields' tab, select the cell range B2:C8
- Click on Insert -> Scatter -> Scatter with only Markers
- On the chart, right-click on one of the points and click 'Add Tendline...'
- Select 'Logarithmic' and check the box labeled 'Display Equaltion on chart' and click Close

The result of the above steps give us the equation that we can use to interpolate the missing yields as shown below:

We will use the equation: y = 0.0065 ln(x) + 0.0076 to fill in the yields in our bond pricing cash flow table to get the following:

Next, we will get individual discounted cash flows and sum up these discounted cash flows to get the price of the bond as shown below:

At this point I want to point out the the price of the bond is *$1,449.73*, which is higher than the face value *$1000*. This is called a bond selling at 'premium'. This can also be attested by the fact that the YTM (yield to maturity) is lower than the coupon rate, i.e. YTM (2.77%) < Coupon (5.00%) as shown in the following image:

Now that we have the bond pricing in place, I want to add the concept of z-spread. Like I said earlier, z-spread is that constant number added to each point in the yield curve. In our example we have 30 points in our yield curve. I will add a column in our bond pricing to show this clearly. Normally, the spread is expressed in basis points. I am using percentage for the consistency of this example.

In the image above, you will see that I have added a chart that displays 2 lines: red and blue. The blue line refers to the yields and the red line refers to the yield + z-spread. Note that the vertical distance between the blue and red line is the same all across the curves.

To incorporate the z-spread into my bond pricing, I will update the 'Discounted Value' formula as shown below.

Now, if I change the value for my z-spread cell then you will see that the bond price changes. If I increase the z-spread value then the price goes down e.g. for a z-spread of *3.00%* the bond price comes out to be *$901.31*. Similarly, if I lower the z-spread then the price of the bond increases.

**2. Finding a z-spread for a bond price**

Lets extend our excel model to now find the z-spread given that we have a bond price, e.g. I want to find the z-spread for a bond price of *$1105.30*. In order to do this, we will have to goal-seek (or trial-error approach). This really means that we keep changing the value of the z-spread until we see the the bond price equal to *$1105.30*. Luckily, excel provides a tool that does these iterations of goal-seeking for us. The tool is called solver. In the following steps, I will show to get up solver so that we find the z-spread for the price of *$1105.30*.

To bring up the solver click on Data -> Solver (Note: if solver is not available in the Data tab then you will have to install it. It is free to install solver in excel). Once the solver screen comes up, set it up as the following:

Now, if you click 'Solve' the solver will come up with a solution of z-spread of *1.63%*. This means that if we apply a z-spread of *1.63%* on top of our yield curve, we will get a price of *$1105.30* for our bond.

I hope this helps in your understanding of the z-spread. Please post your questions in the comments section. You can post comments only if you sign up for an account on this website.

## Comments

Also, capturing this data (z-spread) historically might offer some observable trading patterns.

1. When calculating the discounted value (w/o z-spread), are you assuming annual compounding?

-> Yes.

2. Why is that the bond is considered be selling at a premium? is it because the discounted value/bond price calculated would be the face value of this bond if yield remained a constant through maturity?

-> 'Selling at premium' means that the bond is selling for a price greater than the face value (or par value).

3. In this case, wouldn't analyst be interested in knowing what is the z-spread that will bring the price to face value (which would be 2.286?

-> I'm not sure which case you are referring to. Need more information on this. It is possible that an analyst could be interested in a z-spread for a price equal to the face value.

1. When calculating the discounted value (w/o z-spread), are you assuming annual compounding?

2. Why is that the bond is considered be selling at a premium? is it because the discounted value/bond price calculated would be the face value of this bond if yield remained a constant through maturity?

3. In this case, wouldn't analyst be interested in knowing what is the z-spread that will bring the price to face value (which would be 2.286?

RSS feed for comments to this post