0
$\begingroup$

From my point of view, to calculate the price of a bond, we just need to add the discounted cash flows.

The discount factor calculation is as follows:

enter image description here

In my theory knowing the z-spread of a bond I can recalculate bond price price by calculating the discount factor as follows:

enter image description here Typo in there (r+ZSpread)

For me, the Z-Spread should be added to each tenor of my swap curve (US DOLLAR SWAPS (30/360, S/A) CURVE.)

Using a bootstrap method we convert the curve to a forward curve.

Bond DES ;

Coupon : 2.999
Z-Spread : 270
Maturity date : 01/22/2032

Below are the cash flows of the above bond:

Payment Date    Interest    Principal   Spot Rates  Z-Spread + Spot Year Frac   DF (Z-Spread + Spot)    Actualized cashflows : 
01/22/2023      14,995.00   0           3.214085    5.914085        0.480555556 0.971979598                 14,574.83
07/22/2023      14,995.00   0           3.35687     6.05687         0.980555556 0.942338266              14,130.36
01/22/2024      14,995.00   0           3.289998    5.989998        1.480555556 0.915133568                 13,722.43
07/22/2024      14,995.00   0           3.159455    5.859455        1.980555556 0.890430913                 13,352.01
01/22/2025      14,995.00   0           3.050788    5.750788        2.480555556 0.867056193                 13,001.51
07/22/2025      14,995.00   0           2.984593    5.684593        2.980555556 0.844143772                 12,657.94
01/22/2026      14,995.00   0           2.93197     5.63197         3.480555556 0.821992634                 12,325.78
07/22/2026      14,995.00   0           2.896597    5.596597        3.980555556 0.800294373                 12,000.41
01/22/2027      14,995.00   0           2.882752    5.582752        4.480555556 0.778693079                 11,676.50
07/22/2027      14,995.00   0           2.876007    5.576007        4.980555556 0.757511829                 11,358.89
01/22/2028      14,995.00   0           2.884586    5.584586        5.480555556 0.73633777              11,041.38
07/22/2028      14,995.00   0           2.895551    5.595551        5.980555556 0.715592051                 10,730.30
01/22/2029      14,995.00   0           2.916294    5.616294        6.480555556 0.69491409              10,420.24
07/22/2029      14,995.00   0           2.937327    5.637327        6.980555556 0.674680021                 10,116.83
01/22/2030      14,995.00   0           2.964055    5.664055        7.480555556 0.654618418                 9,816.00
07/22/2030      14,995.00   0           2.990264    5.690264        7.980555556 0.635009906                 9,521.97
01/22/2031      14,995.00   0           3.023403    5.723403        8.480555556 0.61546551              9,228.91
07/22/2031      14,995.00   0           3.055618    5.755618        8.980555556 0.596374489                 8,942.64
01/22/2032      14,995.00   1,000,000   3.098086    5.798086        9.480555556 0.577128251                 585,782.29

But the following gives me a bond price of : 79.1 where the market quote 83.67.

Is my calculation methodology correct, or did I miss understood the use of z-spread ?

$\endgroup$
4
  • 1
    $\begingroup$ Did you try using the treasury yield curve instead? What made you decide to use the swap rate? Z-spread definitions: en.wikipedia.org/wiki/Z-spread. investopedia.com/terms/z/zspread.asp $\endgroup$
    – Lsvob
    Jul 29, 2022 at 10:07
  • $\begingroup$ I need to use the z-spread, so i can't pass by the treasury yield curve ? $\endgroup$
    – TourEiffel
    Jul 29, 2022 at 10:18
  • 1
    $\begingroup$ After you shift the swap curve by Z-spread, you unfortunately cannot just read off the discount factors this easily. Rather, you need to bootstrap. Try these exercises on your terminal: go to YAS, enter Z-spread 0, see what the price would be, reproduce by discounting CSHF cash flows with original unshifted swap curve. (Don't forget also, the quoted clean price is dirty price minus accrued coupon.) Once this part works, use the terminal to shift the swap curve by Z-spread and get new discount factors. $\endgroup$ Jul 29, 2022 at 10:18
  • $\begingroup$ @DimitriVulis It allows me to see that there is a problem with my swap curve: I find 101.7 vs 104.23. Is there any reprocessing to do on this curve? The curve that I use now can be loaded on excel thanks to : =BCurve("s23"). Thanks a lot. $\endgroup$
    – TourEiffel
    Jul 29, 2022 at 10:44

1 Answer 1

1
$\begingroup$

Your methodology is correct. 2 comments: (1) the Z-Spread = 270bp is calculated by Bloomberg over your default discount curve; you could check whether it is the SOFR curve or the LIBOR curve; (2) if your spot rates are semiannually compounded, the discount factors should actually be calculated as (1 + y/2)**(-2*t), where y = (Spot + Z-Spread) and t = (Year Frac) (impact here: 0.67% of principal).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.