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


1 Answer 1


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:


  • 1
    $\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
    Commented Oct 14, 2017 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$
    – Olórin
    Commented Jun 24, 2019 at 11:13
  • $\begingroup$ Any Idea why this equation does not work for swap curve (S23) ? If you want help, you can find my question there @Helin $\endgroup$
    – TourEiffel
    Commented Aug 18, 2022 at 10:35

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.