How to calculate Yield to Maturity of a Bond or NCD

by Shiv Kukreja on July 25, 2012

in Investments

This post is written by Shiv Kukreja

A few days back TCB, one of the regular visitors on OneMint, asked me about the process to calculate YTM of a bond. I wanted to tell him the whole process while replying but that would have been too much for the comments section and therefore I decided to write a post on it.

What is Yield to Maturity and how to calculate it?

Yield to Maturity (or YTM) is the annualised rate of return that an investor earns on a fixed income instrument such as bond or debenture, if the investor purchases the bond today and holds it until maturity. This yield incorporates the yield earned in the form of interest payments and the present value of the principal amount (or face value) of the bond.

In other words, it is the discount rate which equates the present value of coupon payments and maturity amount equal to the market price of the bond. The Yield to Maturity is actually the Internal Rate of Return (IRR) on a bond.

Market Price of the Bond = Present Value of Coupon Payments + Present Value of Maturity Amount of the Bond

Real Example: I’ll take the real case of 9.95% SBI 15-year bonds to present the process to calculate the YTM. Consider the below mentioned data of SBI bonds for the calculation:

Face Value: Rs. 10000
Maturity Amount: Rs. 10000
Tenure: 15 Years
Allotment Date: March 16, 2011
Maturity Date: March 16, 2026
Coupon/Interest: 9.95% p.a. payable annually (Rs. 995 on the Face Value of Rs. 10000)
Interest Payment Date: April 2nd every year
Market Price: Rs. 10788.56 (July 23, 2012)
Remaining Tenure: 13 Years and 236 Days (or approx. 13.65 Years)
YTM: To Be Calculated

YTM is the discount rate in percentage which is going to make the present value of Rs. 995 payable every year on April 2nd and the present value of Rs. 10000 payable on March 16, 2026 equal to the market price of Rs. 10788.56.

In equation terms:

Rs. 10788.56 = Rs. 995/(1+YTM)^0.65 + Rs. 995/(1+YTM)^1.65 + Rs. 995/(1+YTM)^2.65 + Rs. 995/(1+YTM)^3.65 + Rs. 995/(1+YTM)^4.65 + Rs. 995/(1+YTM)^5.65 + Rs. 995/(1+YTM)^6.65 + Rs. 995/(1+YTM)^7.65 + Rs. 995/(1+YTM)^8.65 + Rs. 995/(1+YTM)^9.65 + Rs. 995/(1+YTM)^10.65 + Rs. 995/(1+YTM)^11.65 + Rs. 995/(1+YTM)^12.65 + Rs. 10995/(1+YTM)^13.65.

The discount rate which makes LHS = RHS is the YTM of the bond. Now, we will have to use the “Trial and Error” method to determine this YTM.

There is an approximation formula to calculate YTM very close to the correct YTM:

Approximate YTM = [(Coupon Payment + ((Face Value – Price)/Years to Maturity)] / (Face Value + Price)/2

How to calculate YTM using a financial calculator?

We can also use a financial calculator or an excel sheet to calculate YTMs. Here is the link to one of the financial calculators:

You just need to feed your data in the boxes provided on the left hand side of this calculator and it will calculate YTM for you after just couple of clicks. You can observe here that you cannot make changes in the boxes on the right hand side and these boxes calculate the required figures on their own.

Maturity Date: 16/03/2026
Coupon: 9.95%
Coupon Payment Frequency: Annual
Maturity Value of bond: 100
Interest Accrual Start Date: 16/03/2012
Clean Price: 104.3656
Settlement Date: 23/07/2012
Ex-Dividend: No
Day Count Basis: Actual/Actual

“Settlement Date” is the date on which you are calculating the YTM. In our case, it is July 23, 2012 or July 25, 2012 (a couple of working days after today’s date) and click on “Calculate Bond Yield (YTM)” after filling the first five boxes of the financial calculator. “Dirty Price” should be equal to the “Market Price” of the bond but we cannot change it on our own. So, in order to change it, we need to change the “Clean Price”.

To calculate the correct clean price, we need to deduct the “Accrued Interest” of Rs. 3.52 from the market price Rs. 107.89. The resultant figure is Rs. 104.37 and when we put it in the sixth box and again click Calculate Bond Yield, we get the correct dirty price of Rs. 107.89. ‘Ex-Dividend’ box should remain ‘No’ and “Day Count Basis” should be “Actual/Actual”. Now we get the correct YTM as 9.3509%.

How to calculate YTM using excel?

We can calculate the required YTM using the ‘Yield’ function in an excel sheet also. As we did it using financial calculator, we just need to feed the data here in a similar way. Start by typing “=Yield” (without the quotes) and then enter the following parameters:

Settlement: “23/07/2012” (must be in quotes) [Note: This assumes that your Excel is setup to take date format in DD/MM/YYYY, if it doesn’t work, try MM/DD/YYYY)]
Maturity: “16/03/2026” (must be in quotes)
Rate: 9.95% (or 0.0995)
Pr: 104.3656 (Clean Price)
Redemption: 100 (Maturity Amount)
Frequency: 1 (Interest Payable Annually)
Basis: 1 (Actual Days since Last Interest Payment/Actual Days in a Year)

You can check that the data we have entered here is quite similar to the data we entered using financial calculator. Actually the financial calculator uses excel itself in the background to calculate YTM. Here we get the YTM as 9.3571%, a bit different than we calculated above. That is probably due to the rounding-off differences of “Accrued Interest” while working on the financial calculator.

You can similarly calculate “Yield to Call” and “Yield to Put” also, which are regular features of corporate bonds issued in the developed markets. But, here in India, call/put options are not used extensively so I’ll try to write a post on them whenever the need arises. If I missed something here or there is something which is incorrect or require explanation, please leave a comment.

{ 24 comments… read them below or add one }

Sivaraj July 28, 2012 at 3:46 am

Hi Shiv,

Thanks for this post. There is so minimal info about NCD and this YTM in web world.
I am novice in NCD, and just now bought Shriram Transport NCD from BSE through my demat account in HDFC securities.

The problem here is this NCD is having 3 years maturity period, and 10.5% interest. It started on Aug 2009 and matures on Aug 2012. I bought it at July 2012, thinking that in 1 month I will get a 10.5% interest. But Now only I noticed that it says record date as 15-March 2012. So is that means 15-Mar 2012 itself the interest has been paid out, and I would get nothing on Aug 2012. Please clarify me this doubt, and it would be huge help for me, since I planned to buy more NCDs from market. Thanks in Advance.


Shiv Kukreja July 28, 2012 at 10:54 pm

Hi Sivaraj… If I’m not wrong, the rate of interest is 10.75% p.a. and not 10.50% and the date of redemption is 26th August, 2012. On maturity, you’ll get the interest for a period of approximately 5 months i.e. from April 1, 2012 till August 26, 2012. I think you’ll end up getting close to Rs. 1043.59 per bond. Next interest record date is August 10th, 2012.


Sivaraj July 30, 2012 at 2:18 am

That’s a good news. Thanks. And the interest rate is pretty good for me after tax deductions. Seems like NCD is a very gud investment if we calculate the interest rate return after tax deduction…


Shiv Kukreja July 30, 2012 at 12:12 pm

Yes, it seems so… 🙂

Opportunities are there in both stock as well as bond markets but you should be active, quick, smart and bold.


sivaraj August 6, 2012 at 11:03 pm

Hi Shiv,
One more favour, I am looking to buy some more NCDs as well. Could you please tell me where can I look for record date and redemtion date for some other NCDs.

And usually, all NCDs will have 15 days between record date and redemption date (or Interest pay date), Am I correct?

Thanks in Advance,


Shiv Kukreja August 7, 2012 at 12:00 am

Hi Sivaraj… Please check these links:

You’ll find most of the info required from these two links. If you require some other info also, please let me know. Also, yes you are right that all these NCDs carry record date 15 days in advance. I’m not aware of any NCD issue which follows it differently.


Krunal September 12, 2012 at 3:48 pm

I have a doubt on what is clean price and dirty price and the difference between dirty price and market price.
Thank you


Shiv Kukreja September 12, 2012 at 5:26 pm

A bond, which is not a zero-coupon bond, pays interest on every interest payment date. In between two interest payment dates, the bond keeps earning some interest which gets accrued. Dirty Price of a bond includes this accrued interest since the last interest payment date whereas Clean Price excludes this accrued interest.

Market Price is the present value of bond’s future cashflows including all of the interest and principal payments, discounted at its current yield to maturity or YTM. While calculating the Dirty Price, YTM is ignored.


Krunal September 13, 2012 at 1:02 pm

Thank you shiv
a little clarification….so the clean price is the market price rite?
and if the calculated clean price is higher than the market price…does it mean that we shud buy the bond @CMP.

and also can u share some links where this can be expalined clearly..
thank you


Shiv Kukreja September 13, 2012 at 6:09 pm

Different markets use different price conventions, so it is not necessary that the Clean Price is also the Market Price of a bond in all the markets.

Bond purchase should be based on the YTM the bond is trading at and the risk involved. Market Price or Clean Price should not matter much.

There must be many sites having details about them. You can try investopedia or wikipedia. I haven’t checked many sites for this, it was in my CFA curriculum.


VikasG September 20, 2012 at 3:42 pm

Hi Shiv,

I was trying to calculate the approximate YTM of this bond

using this formula:

Approximate YTM = [(Coupon Payment + ((Face Value – Price)/Years to Maturity)] / (Face Value + Price)/2

Here is my calculation at today’s price of 1034

(12.25 + (1000-1034)/2)/((1000+1034)/2)

Google calculator is showing the value as 0.103 which is 10.3%

Did I understand the formula correctly or made a mistake somewhere?



Shiv Kukreja September 23, 2012 at 1:47 pm

Hi Vikas… There is no problem with your calculation or understanding. Actually, I’ve failed here to explain the approximation formula properly. When “(Face Value – Price)/Years to Maturity)” is calculated, it should never be a negative figure when added to the “Coupon Payment”.

In the above case, it should either be “(12.25 – (1000-1034)/2)/((1000+1034)/2)” or (12.25 + (1034-1000)/2)/((1000+1034)/2)” to provide you the correct approximation.


meabhi March 5, 2013 at 1:02 pm

Hi Shiv,
I have been a regular follower for your posts. They are very informative.
I had a question related to NCD.

I have be NCD wth coupon 9.62% half-yearly payment is available at YTM (Yield to Maturity) 10.34%. FV= 1000Rs Current trading price = 1034.67Rs As per IT rules, TDS will be deducted above interest payment of 5000/yr. To avoid TDS complications, what should be my investment amount in the NCD? I plan to hold the NCD till maturity.

Thanks in advance.


Shiv Kukreja March 5, 2013 at 10:24 pm

Hi meabhi… In order to avoid TDS, you should not buy more than 51 bonds. So, your investment amount would be Rs. 52768.17 (Rs. 1034.67 * 51). You’ll get Rs. 4906.20 as the interest (Rs. 2453.10 half-yearly * 2).


meabhi March 6, 2013 at 12:35 am

Thanks a lot Shiv.

Request you to please the calc for earning interest of 4906.20Rs (Or 2453.10 half yearly)? This gives a coupon of 9.29% on 52768.17 while YTM is 10.34% and original stated coupon is 9.62%. Is current price 1034.67 dirty price (price including interest + premium) and needs to be divided further to come to 9.29%?

Thanks in advance.


meabhi March 7, 2013 at 2:37 am

Hello Shiv,

Can you please explain me your calc for interest of 4906.20Rs/Yr? I am unable to calc the same via coupon rate and YTM.



Shiv Kukreja March 7, 2013 at 11:20 am

Hi meabhi… Interest is always calculated on the face value of the bond i.e. Rs. 1000 in your case. So, it will be like this: 51 Bonds * Rs. 1000 Face Value * 9.62% = Rs. 4906.20 yearly (or Rs. 2453.10 half-yearly).


meabhi March 7, 2013 at 12:10 pm

Thanks Shiv.

Sorry to be naive but does 34.67Rs (1034.67-1000) mean accrued interest + bond appreciation OR it is just accrued interest? Which of the following case 1,2 is correct?

Case1: 34.67Rs mean ONLY accrued interest
Opinion 1: With interest payout would get back the 34.67Rs . No loss in capital

Case 2: 34.67Rs mean accrued interest + bond appreciation
Opinion 2: Interest payout would give only fraction of 34.67Rs back while the bond will continue to trade at more than face value.. say 1002Rs etc. Loss of capital in this case.



Shiv Kukreja March 7, 2013 at 1:12 pm

It depends on the dates of interest payment. When do you get your half-yearly interest payments? Yours is 9.62% L&T Finance NCD?


meabhi March 7, 2013 at 1:22 pm

Yes. It is.
L&T FINANCE LTD NCD2-9.62% Half yearly
maturity date 1,000.00
CMP 1,034.67
YTM 10.34%
Payment date: 31MAR/30SEP


Shiv Kukreja March 7, 2013 at 1:42 pm

It is trading at a notional loss as the current YTM is more than 9.62%. Accrued interest should approximately be Rs. 41.64 per bond considering 158 days have gone by since the last interest payment date.


meabhi March 7, 2013 at 1:56 pm

Interest would it be 41.64Rs or 42.22Rs. I am assuming 360days for trading for NCD/bond. Please correct me if I am wrong.
I understand that the price of the bond can trade less but how do we attribute to lesser accrued interest of 6.97Rs/7.55Rs?


Shiv Kukreja March 7, 2013 at 5:06 pm

No, it would be 365 days becuase the interest is paid for the whole year and not just 360 days. Also, there are approx. 250 trading days in a year and not 360.

In this case, the Dirty Price is Rs. 1034.67 and the Clean Price should be Rs. 993.03 (Rs. 1034.67 – Rs. 41.64). As the Clean Price of Rs. 993.03 is trading below the face value of Rs. 1000, that is why the YTM of 10.32% is trading above the coupon rate of 9.62%.

Accrued interest can never be less than what it should be. Only the Clean Price can trade below its face value.


meabhi March 8, 2013 at 1:04 am

Thanks Shiv. This clears all.
On a side note, I guess that for calc purpose in bonds, 300 days are considered instead of 365. I am unaware of the reason for the same but have heard it from people who work on capital markets. I understand you logical explanation for 250 days which seems to be more correct but just wanted to indicate what I have heard from various people.


Leave a Comment

Previous post:

Next post: