The *Treasury Return Calculator* below uses long run 10-year Treasury Data from Robert Shiller to compute returns based on reinvesting the coupon payments. You can see the *total returns* for the 10 Year Treasury for any arbitrary period from 1871 until today.

(If you are looking for a similar calculator for the S&P 500 with Dividends Reinvested, Gold, or Daily Inflation we’ve got that too.)

*Editor: Last data is 9/11/2019 closing price. *

## The 10-Year Treasury Return Calculator (With Inflation Adjustment and Coupon Payment Reinvestment)

*especially*when it comes to bonds and treasuries. In the case of the 10-Year Treasury, investors will eyeball a chart of historic yields but past that point it’s hard to figure out what the returns for ‘staying in the market’ would be without, at minimum, a spreadsheet program. Let’s fix that today.

Here are the values the tool computes:

**Reinvested 10 Year Treasury Return**– The total price return of 10 Year Treasuries over the time-frame you chose. So if you buy and sell the same month, it’ll be 0.**Annualized 10 Year Treasury Return**– The total price return of 10 Year Treasuries (as above), annualized. This number basically gives your ‘return per year’ if your time period was compressed or expanded to a 12 month timeframe.**Inflation Adjusted (CPI)? –**Whether the calculation you did is using CPI adjusted values gathered by Shiller, or showing return before inflation. Hit the checkbox above the buttons to turn on or off the inflation adjustment, and rerun the calculator for the opposite adjustment.

## Methodology for the Treasury Return Calculator

Professor Shiller lists his methodology on his site – all values internal to this tool use the values he provided. One thing to note is that the month’s ’10-Year Yield Price’ isn’t the price on a particular day, but the blended average of daily yields, comparable to the 10 Year Yields (also known as ‘*constant maturity*‘) which you can find at the Treasury’s site.

What does that mean? It means, in short, these numbers are ‘fake’ – they are a blend of the yields available throughout the months (on ‘average’), had a new 10 year note even been sold that month.

You can reproduce the monthly values using St. Louis FRED and the 10 Year Constant Maturity yield. Try: https://fred.stlouisfed.org/

A 10 Year Treasury note pays a coupon every 6 months. The calculator assumes bonds are bought at face value with no transaction fees and a tax rate of 0%. Since we only have a 10-year yield number, we had to take some liberties when calculating bond prices – we properly compute dirty and clean prices of the bonds, but we are assuming that bonds are sold at the 7 year mark asking for the 10 year yield. Why does that matter? Using the 10 year yield at the 7 year mark *assumes a flat yield curve.* For an example of this method breaking down, see the constant maturity series for 1/02/2013 – the 10 year prevailing yield was 1.86%, but the 7 year yield was 1.25%. If you have yield curve data going back to 1871 feel free to excoriate me (just be sure to release that data into the public domain so I can use it!)… otherwise, deal with it.

## How to Use This Data

As we mentioned above, there isn’t much in the way of good Treasury Yield Curve data going back to 1871 – so we don’t have a great way of determining how, exactly, to price 10 year treasuries with roughly 7 years to maturity. With that in mind, this data is best used as an approximation of how an investor would have fared, than the ultimate arbiter of investor returns. However – you should have guessed that anyway, since the resolution is only one month.

Considering these shortcomings, please look at this data as a ‘decent approximation’ of returns from the past. Remember, just like with stocks, the time of day, the weather, general sentiment, daily inflation, and numerous other factors would affect the price of a security at any point in time – including the actual purchase of that security.

## Thank Yous

To Robert Shiller, of course, for posting his data publicly.

To Jim at Free By 50, who assisted with some assumptions.

*Is this a useful tool? Anything else you’d like to see added to the Treasury Return Calculator*?

freeby50 says

Cool.

PK says

Thanks for the help on this one – do you like the methodology section? My favorite line is the ‘deal with it’.

AvgJoeMoney says

If you could make a good yield to maturity calculator for bonds and preferred stocks, that’d be awesome. There’s my request! This is great.

PK says

Of course, that wouldn’t be too bad of a calculator. There is actually one inside of this calculator, believe it or not – but it’s based on 10 years and coupon payments every 6 months. I’ll try to get a more generic one up at some point.

Jonathan Berthet says

I’m wondering, why does the July 2012 to July 2013 give me a -6.891% Reinvested and Annualized return?

PK says

Prices and yields moving in different directions – the 10 year note you bought in July 2012 would be worth less today than it paid out in interest. Here’s one chart: http://www.marketwatch.com/investing/bond/10_year

Carl says

Perhaps is it because my intelligence is lower than average, but I have a hard time getting the figures to add up. Would it be possible to simply give an example of how one particular monthly return is calculated from the yield.

In advance, thanks

Carl

PK says

Sure – Sep 2012 – Sep 2013, -8.077%.

September 2012 dividends buy you March 2013 reinvested bonds, and September 2013 bonds (which sell immediately, so sort of cancel out).

My calculations, using my dirty pricing function (I use $1000 in the beginning – not that it matters, but you can use that to figure out the return):

Sep 2012 coupon 1.72, current yield: 2.96, 9 years to maturity (value 902.6556678331992)

Mar 2013 coupon 1.96, current yield 2.96, 9.5 years to maturity (value 7.892343273873696)

Sep 2013 coupon 2.96, current yield: 2.96, 10 years to maturity (value 2.96 – these bought using $2.96 in Sep 2013, so they really cancel out here)

902.6556678331992 + 7.892343273873696 + 2.96 = 919.2322911070729, started with $1,000, over one year.

Carl says

Perfect, that’s a great help. Thanks a lot!

Carl says

Hi again,

Unfortunately, I am not getting the exact same figures as you do. I would assume it is due to the fact that all payments are discounted using 2.96, but I am unable to figure out where your discount rate comes from. I can of course also have done some other mistake.

The Sep 13 value of the bonds bought in Sep 2012:

Mar -14: 1.72/2*exp(-2.96%*0.5)=0.847548

…

Mar -22: 1.72/2*exp(-2.96%*8.5)=0.671144

Sep -22: (1.72/2+100)*exp(-2.96%*9)=77.27214

All in all this leads to a total sum of 901.0254 and not the 902.6556678331992 you calculated.

Best,

Carl

PK says

It’s not a function of dirty price (since no interest is accrued) so you’re computing the clean price differently than me. Here’s the math on Sep-12 (for Sep-13, again):

I put it in OpenOffice and got this for the sell price:

=PRICE(“2013-9-1″;”2022-9-1”;0.0172;0.0296;100;2;1) (‘Bought’ 9/1/13, matures 9/1/2022) = 90.2655667833

Mine is in Javascript though, let me step it through to clear it up. If you see any errors, let me know:

Face Value: 1000

Coupon: 1.72

Yield: 2.96

Months Remaining: 108

Then I calculate:

Coupon Payment: 8.6

Required Yield: 0.0148

Payments Left: 18 (20 total, 1 assumed to have just paid to buy the Sep-13s)

Factor one: (1- (1/ (1 + Required Yield)^ Payments Left)) / Required Yield = (15.700698736580765)

Factor two: Face Value / (1 + Required Yield) ^ Payments Left = (767.6296586986047)

Clean Price = (Coupon Payment * Factor One) + Factor Two = (902.6556678331992)

Hope this helps – it might be easier to do it in a spreadsheet; I’m emulating them for US as best I can (360 day calendar, etc, etc).

Carl says

Thanks again, the figures are now adding up for me, just had to change the interest convention to semi yearly compounding.

Just one thing that might confuse readers is third component of 2.96 in your first answer. This should really be 0.868. 0.86 (the coupon from the bond bought in sep 12) + 0.0084 (The coupon of the bond bought in mar 13 with the first coupon from the first bond (0.98*0.86/100)).

PK says

Ahh, good point – blame Freud?

For anyone who stumbles upon this out of context – look at the second answer for the math.

Malin says

Hi!

I have read your examples, but unfortunately can’t get it to add up using your calculator.

If I for instance look at the return between sep12-mar13 return:

In my calculations, the Sep12 bond (with a coupon of 1.72) using 1.96 as disc factor is 1.72/2/100/(1+1.96/100/2)^0+1.72/2/100/(1+1.96/100/2)^1…+1.72/2/100/(1+1.96/100/2)^19+1/(1+1.96/100/2)^19=0.987889024.

This would correspond to a return of 1.21%, but your calculator returns 1.011%

I can’t really figure out what I am missing. Could you please help?

Thanks!

M

PK says

I’m glad you trusted your instincts there – it was wrong.

Not sure when that bug was introduced (likely one of the monthly updates; since I was in the code anyway I added the June ’14 data) but we were off-by-one (year) when we were calculating the number of months left. Using 114 months remaining (the correct number for 9/12 to 3/13), a single dividend/repurchase on that 6th month, and the rest of the assumptions the calculator agrees with your return of -1.211%.

Thank you for commenting – I appreciate it!

Joe says

Been searching for one of these calculators for a long time. Thanks. How about a Barclay’s aggregate bond index or total bond market calculator?

PK says

You’ve accurate predicted some of my queue (well, the second part). Stay tuned!