# Rate Converstion Using Different Day Count and Frequency

Can anyone help on this question? I failed to find any public material discussing this topic.

I have rate, say 5%, quoted in Monthly payment, using Actual/360 basis. Now, I need to convert it to an equivalent rate, quoted in Semi-Annual payment, using 30/360 basis. How should I tackle this? How about convert semi-Annual payment, actual/365 basis?

• The idea to convert from one convention to the other is to write the discount or capitalization factor's expression using both conventions, and equate both expressions. Did you try this? Where are you stuck exactly? – byouness May 15 '18 at 18:10
• i am stuck in how to convert a rate based on 30/360 to a rate based on actual/360. – Quant2015 May 15 '18 at 18:57
• I think this can hardly be answered in a general form. The exact conversion between rates with different day count conventions depends on the concrete starting date and end date. I think you can do this only numerically with some kind of software (e.g. QuantLib) for a concrete numerical case. – Bernd May 15 '18 at 19:01
• I think you what you need is a textcourse on the topic, maybe the relevant chapter in Hull's book - options futures and other derivatives will be useful. There are maybe day count conventions and many compounding possibilities. – byouness May 15 '18 at 22:05

Act/360 and 30/360 is the 'day count convention'. It is used to determine the 'year fraction'. Computing this year fraction for different day count conventions gives different values depending on the concrete starting date and end date of the considered period.

Example:

print( ActualActual().yearFraction(Date(15,1,2016), Date(15,1,2017)) )
print(    Thirty360().yearFraction(Date(15,1,2016), Date(15,1,2017)) )
print(    Actual360().yearFraction(Date(15,1,2016), Date(15,1,2017)) )
1.000104798263343
1.0
1.0166666666666666


Start and end dates one year later:

print( ActualActual().yearFraction(Date(15,1,2017), Date(15,1,2018)) )
print(    Thirty360().yearFraction(Date(15,1,2017), Date(15,1,2018)) )
print(    Actual360().yearFraction(Date(15,1,2017), Date(15,1,2018)) )
1.0
1.0
1.0138888888888888


What you could do is converting a monthly compounding rate into a quarterly-compounding or so.

1. Take this equation from Brigo/Mercurio (2006), page 8: rate = k / ( P^(1/(k*tau)) ) - k

2. Set tau according to concrete number computed above

3. Set k equal to the compounding type k you are interested (monthly=1/12)

4. Set rate equal to the rate you want to convert, e.g. 5%

5. Solve for P

6. Write down the equation above for the P you got and the other compounding type you want to convert to (quarterly=1/4).