# Bloomberg terminal swap zero curve calculation

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.

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:

• It's $\leq 1$Y, not $<1$Y. (I've been already asked what is happening for a year fraction equal to $1$ so ... ) – ujsgeyrr1f0d0d0r0h1h0j0j_juj Jun 24 at 11:13