I would like to ask about swap zero curve calculation algorithm by Bloomberg terminal. This is a plain vanilla CZK interest rate swap, fixing the Prague IBOR. My task is to calculate zero rates from market rates, however I have only managed to get accurate zero rates from 2 years onwards. I tried to bootstrap spot rates from FRAs (CKFR0F1 is FRA 6x12 and CKFR011 is 12x18) with this formula:

$(1+r_{0;t_{0}}\frac{t_{0}}{360})*(1+r_{t_{0};t_{0}+t{u}}\frac{t_{u}}{360})= (1+r_{0;t_{0}+t{u}}\frac{t_{u}+t_{0}}{360})$

Where $r_{0;t_{0}}= 0.0056$, $r_{t_{0};t_{0}+t{u}} = 0.0095$, $t_{0}=182$ and $t_{u}=183$. By solving this equation I get $r_{0;t_{0}+t{u}}=r_{0;1}= 0.007568827$, which is off only by a tiny fraction. I guess the mistake will be in day count conventions, however this is the closest I have come to the correct solution. Can someone explain how the calculation should be done?

I have also attached screenshots of the swap yield curve and cash-flows.

Swap cash-flows

Swap zero curve screenshot


It looks like you should use a different convention for the zero rates. I tried the following:

$$\left(1+r_{0;t_{0}}\frac{t_{0}}{360}\right) \times \left(1+r_{t_{0};t_{0}+t{u}}\frac{t_{u}}{360}\right) = \left(1+r_{0;t_{0}+t{u}}\right)^{\frac{t_{u}+t_{0}}{360}}$$

Solving with the same input gives $r_{t_{0};t_{0}+t{u}}=0.00756843$, in agreement with Bloomberg.

The right hand side convention kicks in because $(t_u+t_0)/360 > 1~year$. It's a convention used for zero rates, and it looks Bloomberg is using it.

The only source I'm aware of which treats this convention is Brigo and Mercurio:


| improve this answer | |
  • $\begingroup$ Excellent diagnostics. In general, <1y is calculated using the money market convention (i.e., simple interest), and >1y typically uses compounded interest. $\endgroup$ – Helin Oct 14 '17 at 21:24
  • $\begingroup$ It's $\leq 1$Y, not $<1$Y. (I've been already asked what is happening for a year fraction equal to $1$ so ... ) $\endgroup$ – Olorin Jun 24 '19 at 11:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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