Bond Pricing: Roll PnL

This is a series of short posts examining the bond markets and some of the key pricing, risk and quoting concepts (with EXAMPLES!) –
        The Yield Curve
        Duration/Convexity and DV01
        Spread Quoting
        Z-Spread
        Roll PnL

Holding bonds leads to several sources of PnL. Bonds pay coupons periodically, and this must be set against your cost of financing (generally a cost if you are borrowing to buy, and a benefit if you sell short and take cash – although shorts will incur a borrowing cost). As we have seen before, interest rate and credit spread moves in the market will cause positional PnL according to your DV01. There are several other factors to think about (I’ll do a full ‘PnL Explain’ post soon), but one of the most interesting is what dealers call ‘Roll PnL’, since it comes from a position rolling down the yield curve (in this piece I discuss Roll PnL for bonds, but exactly the same principle applies for CDS contracts, which are effectively just a portfolio that is long a credit-risky bond and short the corresponding risk-free bond).

Holding a position with an upward-sloping yield curve causes market yield of the asset to fall, realising a cash PnL

Consider the yield curve above. The YtM for 3y is 3%, and the YtM for 2y is 2.2%. If we buy a bond with 3y to maturity and hold it for a year, its maturity will of course fall to 2y – so assuming the yield curve stays fixed, the yield of the bond set by the market will now be 2.2%, and as we’ve seen before a fall in yield means an increase in price.

Concretely, considering for simplicity a ZCB, ets imagine we borrow $100 at the 3y risk-free rate of 3% and buy a risk-free ZCB, which we hold for a year. The PnL over the year will be

(1)   \begin{align*} = & \frac{100}{(1 + 0.022)^2} - \frac{100}{(1 + 0.03)^3} - 3 \nonumber \\ = & \Bigl( \frac{100}{(1 + 0.022)^2} - \frac{100}{(1 + 0.03)^2} \Bigr) + \Bigl( \frac{100}{(1 + 0.03)^2} - \frac{100}{(1 + 0.03)^3} \Bigr) - 3 \nonumber \\ = & \Bigl( \frac{100}{(1 + 0.022)^2} - \frac{100}{(1 + 0.03)^2} \Bigr) + \Bigl( \frac{3}{(1 + 0.03)^3} \Bigr) - 3 \nonumber \\ \simeq & 100 * 2 * (0.03 - 0.022) \nonumber \end{align*}

leading to a Roll PnL of about $1.50 (after financing costs – on the tenuous assumption that we can borrow at the risk-free rate!)




Mathematically, increasing value with decreasing time means that a bond has a positive theta. We can calculate this using the chain rule

(2)   \begin{align*} \Theta = -\frac{\delta C(t)}{\delta t} & = \frac{\delta}{\delta t} \sum_{i=1}^N \frac{CF(t_i) }{(1 + r_y)^{t_i}} \nonumber \\ & = -\sum_{i=1}^N CF(t_i) \cdot \frac{\delta}{\delta t} \frac{1}{(1 + r_y)^{t_i}} \nonumber \\ & = -\sum_{i=1}^N CF(t_i) \cdot \Bigl( \frac{-\ln{(1 + r_y)}}{(1 + r_y)^{t_i}} - \frac{t_i}{1+r_y} \cdot \frac{\delta r_y}{\delta t_i} \Bigr) \nonumber \\ & \simeq \sum_{i=1}^N \frac{CF(t_i) \cdot r_y}{(1 + r_y)^{t_i}} + \sum_{i=1}^N \frac{CF(t_i) \cdot t_i}{1+r_y} \cdot \frac{\delta r_y}{\delta t_i}  \end{align*}

and from our concrete example in Eq. 1, we recognise the first of these terms as the ‘financing cost’ of the portfolio, and the second term as the Roll PnL (ie. proportional to the local derivative in the yield curve for each payment)

Bond Pricing: Z-Spread

This is a series of short posts examining the bond markets and some of the key pricing, risk and quoting concepts (with EXAMPLES!) –
        The Yield Curve
        Duration/Convexity and DV01
        Spread Quoting
        Z-Spread
        Roll PnL

An alternative to the spread-to-benchmark for a credit-risky bond that tries to capture the full shape of the yield curve is the Z-Spread.

Since govvies are ‘risk-free’, we should be able to recover the market price of a govvie by discounting each of its cashflows using the discount factor coming from the point on the yield curve that the payment occurs*. If we perform the same calculation for a higher-yielding corporate bond, but offset the yield curve that we use for discounting by a fixed amount \Delta at each cashflow payment such that the sum of the PVs of the cashflows matches the bond’s traded price, then this \Delta is the bond’s Z-Spread (in this case, interpolation IS used to find discount factors at each time).

A yield curve implied from govvies, and another offset by a constant Z-Spread of 1.1%. On the right axis, the corresponding discount curves

In the graph above, we show the effect of this parallel shift of the yield curve on the discount factors that we use to discount the payments at each time coming from the risky coupon. A larger spread between the two yield curves leads to a more rapidly falling discount curve and lower prices for credit bonds.

Putting this together, we can find the Z-Spread by fixing \Delta to solve the equality

(1)   \begin{align*} C(t) &= \sum^{N}_{i=1} CF(t_i) \cdot \frac{1}{\Bigl(1 + ( r_{gy}(t_i) + \Delta ) \Bigr)^{t_i}} \end{align*}

where C(t) is the market price of the bond, CF(t_i) are the cashflows at each time t_i, and r_{gy}(t_i) is the govvie yield at time t_i interpolated from the yield curve (compare this to the equality we had to solve to calculate YtM, discussed in an earlier post).




What is the advantage of the Z-Spread over the plain spread to benchmark? Firstly, as we interpolate discount factors to each coupon payment date, we come up with a measure that behaves continuously as maturity and coupon payment dates increase, where spreads jump as benchmarks bonds change along the curve. Secondly, the Z-Spread gives us some measure of how much pickup we are getting over the risk-free payment we would receive for our bond, so Z-Spread gives us a good quantity for comparing similar maturity bonds from different issuers or bonds at different points on the curve from a single issuer (‘Relative Value’ ideas involving going long one bond and short another are often quoted in terms of the Z-Spread pickup that the Asset Manager will achieve). Practically, as seen below, spread and Z-Spread are typically fairly similar when maturity date and payment date of the benchmark and the corp bond are close to overlapping.

*Note the subtle implication here – the yield curve shows the return for a zero coupon bond, coupon-bearing bonds will display a slightly different yield than the yield curve implies for their maturity, as discussed in an earlier post. This effect is very, very small except for long-dated bonds with large coupons, as shown in the example.

Example: assuming the yield curve for USD has the values shown in the table in the image below, calculate the Z-Spread for a BB-rated corp bond paying a 6% coupon with 4 years left to maturity and trading at $104 (paying biannual coupons, assume it recently paid a coupon and this is reflected in the pricing).

Data to go with the Z-Spread example

Answer: Since the bond pays bi-annual coupons, we’ll need to discount a $3 payment at each 6m interval out to 4 years. The table is missing a 3.5y point so let’s interpolate linearly between 3y and 4y, giving 3.1% ytm for that point. Discount factors can be approximated as (1+r_y+\Delta)^t where t is time in years, and the sum-product of these with the relevant cashflow payments should be the traded price of $104, which hopefully leads you to a calibrated Z-Spread of \Delta=1.804%

Bonus: Consider the govvies used to build the yield curve. Imagine that they all paid 5% coupons (biannual payments). Discount each payment according to the yield curve to determine what their traded price should be today, and then use the YtM formula from the Yield Curve post to determine their yield to maturity. Observe that is is close to, but not the same as, the yield curve’s yield (eg. for the bond maturing in 3y, the YtM should be 2.96% – so note that coupon bearing bonds should have a YtM BELOW that of a ZCB for an upward-sloping yield curve, reflecting that these bonds return a portion of your investment earlier than maturity as coupons, which the market is pricing ass less risky).

Bond Pricing: Duration/Convexity and DV01

This is a series of short posts examining the bond markets and some of the key pricing, risk and quoting concepts (with EXAMPLES!) –
        The Yield Curve
        Duration/Convexity and DV01
        Spread Quoting
        Z-Spread
        Roll PnL

For dealers who buy and sell bonds, the change of a value of a portfolio as market rates change will be extremely important. As we discussed in the previous post, yields of bonds will typically rise and fall along with market-implied yields coming from risk-free treasuries, and having some quantities that capture the first-order magnitude of this change is useful – such first order measures are especially easy to handle as they sum linearly across a portfolio.

If market yields fall, the price of already-issued bonds will typically rise. To measure this, we define the ‘Duration’ of a bond to be the percentage decrease in a bond’s price as yields rise by 1%. From before, the value of a bond expressed in terms of YtM is

(1)   \begin{align*} C(t) &= \sum_{i=1}^N CF(t_i) \cdot \frac{1}{(1 + r_y)^{t_i}} \nonumber \\ \text{Duration} = \frac{1}{V} \frac{\delta C(t)}{\delta r_y} &= \frac{1}{V} \sum_{i=1}^N CF(t_i) \cdot \frac{\delta}{\delta r_y} \Bigl( \frac{1}{(1 + r_y)^{t_i}} \Bigr) \nonumber \\ & = \frac{1}{V \cdot (1 + r_y)} \sum_{i=1}^N \frac{CF(t_i) \cdot t_i}{(1 + r_y)^{t_i}} \nonumber \end{align*}

This last term looks complicated, but all it is is the duration-weighted sum of cash-flows, discounted by the YtM (and divided by 1+r_y, but this is likely to be very close to 1), so we see why ‘Duration’ is a sensible name for this risk measure!




Very often, rather than the relative change in the bond price due to the yield change, we will be interested in the absolute, dollar-value of the change (ie. the PnL of the portfolio). The measure often used here is DV01 – the dollar value of a 1bp (ie \frac{1}{100} of 1%) move in YtM

(2)   \begin{align*} \text{DV01} &= V \cdot \text{Duration} \cdot \frac{1}{10000} \nonumber \\ & = \frac{1}{10000 \cdot (1 + r_y)} \sum_{i=1}^N \frac{CF(t_i) \cdot t_i}{(1 + r_y)^{t_i}}\nonumber \end{align*}

which is very close to the discounted duration-weighted present value of the cashflows.

If a portfolio is constructed with DV01 close to 0, it will be fairly insensitive to YtM changes. However, note that we haven’t specified where the yield change came from – it could be coming from a change in the yield curve coming from govvie prices changing, or from a widening credit spread for corporate bonds. Changes in just the credit spread, for example, will affect the yields of some bonds more than others and a crudely hedged portfolio might suddenly show PnL.

Example: a portfolio is constructed made up of positions on two bonds A and B, both United States Treasuries paying bi-annual coupons. A has 3.5 years left to run, pays 2.5% annually and is priced at $99 on the market; B has 2 years left to run, pays 3% annually and is priced at $101 on the market. The portfolio is made up of $1MM face value of bond A. How large a short position should the portfolio manager hold in position B for the portfolio to be DV01-flat? What risk remains in the portfolio? (as usual, assume bonds have recently paid a coupon and that’s already reflected in the pricing)

First, we calculate the yield for each bond as described in the previous post (not forgetting that as coupons are bi-annual, they are each half of the annual total). A trades at YtM of 2.82%, and B trades at YtM of 2.5%.

Next we use these YtMs to calculate the unit DV01 of the bonds fromthe equation above. A has a DV01 of 0.00325 $/bp, while bond B has a DV01 of 0.00193. Since the ratio of these is 1.68, a short position of $1.68MM face value of bond B is required to flatten the DV01 of the portfolio.

Because we have used DV01 with bonds of different maturity to flatten the risk, we are immune to parallel shifts in the yield curve – ie. those that increase or decrease the yield of both bonds by the same amount. However, if the yield moves to become steeper or shallower, this will increase/decrease the yield of one bond more than the other, and our simple hedge will not be sufficient to prevent PnL.

Bond Pricing: The Yield Curve

This is a series of short posts examining the bond markets and some of the key pricing, risk and quoting concepts (with EXAMPLES!) –
        The Yield Curve
        Duration/Convexity and DV01
        Spread Quoting
        Z-Spread
        Roll PnL

As discussed in a previous post, bonds give investors a way to lock up their capital in return for a stream of coupon payments, with the full initial payment returned at maturity. Mathematically, the undiscounted payoff is very straightforward:

    \[\text{Payoff} = \sum_{i=1}^N CF(t_i)\]

where the cashflows CF(t_i) are typically annual or bi-annual, fixed percentages of the notional – and include the return of the notional at expiry.

After issuance, bond markets set the prices of bonds at each maturity. Typically government bonds – ‘govvies’ – in each currency set the overall ‘Yield Curve’ for the currency, which is the relationship between the rate of return against the length of investment (govvies are usually thought to be ‘risk free’ if denominated in the local currency as the government can print money to make repayments). Corporate bonds in each currency will trade at higher prices than govvies, with the ‘spread’ between a bond and a govvie determined by the market’s view of its credit-riskyness.

Bonds with higher coupons will typically be worth more to investors as they result in larger payments. However, if markets are efficient we expect that regardless of the coupons, $100 invested in two bonds from the same issuer that mature at the same time should yield the same return (otherwise, investors would pile out of one and into the other). The ‘Yield-to-Maturity’ (YtM) is a concept that captures this – it is the annually compounded rate of return expected from buying a given bond:

    \[C(t) = \sum_{i=1}^N CF(t_i) \cdot \frac{1}{(1 + r_y)^{t_i}}\]

Where C(t) is the market price of the bond, and r_y is the YtM of the bond, calibrated to satisfy the equality. Note that if the price of a bond traded on the market goes up, its calibrated YtM will fall, and vice versa.




Example: a United States Treasury (UST) has 2 years remaining until maturity, pays bi-annual 3% coupons and returns $100 at maturity. It is currently trading at $102.50. What is its YtM (assume it has already paid out its most recent coupon)?

This bond generates four payments of $1.5 in 6m, 12m 18m and 24m, and additionally returns $100 notional at 24m. The YtM is chosen to satisfy this equality:

    \[\$101.50 = \frac{\$1.50}{(1 + r_y)^{0.5}} + \frac{\$1.50}{(1 + r_y)} + \frac{\$1.50}{(1 + r_y)^{1.5}} + \frac{\$101.50}{(1 + r_y)^2}\]

Plugging this in to a root solver (eg. via excel) we find that this price implies a r_y of 1.731%. Note that, if this bond was trading at par (ie. $100) its YtM would equal its coupon rate of 3%. As the price is above par, the calculated YtM is below this.

When trading govvies, rather than quoting the price of a particular bond, dealers will usually quote the price in terms of its YtM, so that the return expected from a bond is more easily compared to other securities. Typically bonds with longer maturities will trade with a higher YtM, and for each currency we can use the liquidly-traded govvies to create a yield curve for this currency.

Because of this relationship, one way a portfolio manager can increase the yield of her portfolio is to increase its maturity profile by trading shorter-dated bonds for longer-dated bonds which will have a higher yield (although as we will see later, this also increases the interest rate risk of the portfolio).

An example Yield Curve is shown below for USD as of 22nd December 2017 from the US Treasury website:

Yield curves for USTs in early and late December 2017, built from US Treasury data