Below is a Long-Run Yield Curve tool. It charts the gap between the 10-year US Treasury yield and a blended short-term rate – the classic "long minus short" spread – for every month back to 1871. When the line drops below zero the curve is inverted, the signal that has led most US recessions.

The long-run US yield curve

Reading the chart

  • The filled area is the spread – the 10-year Treasury yield minus the short rate. It's blue when the curve is normal and turns red below zero when the curve is inverted.
  • The gray bands are US recessions (from NBER). Line the red, inverted stretches up against them and the lead-lag pattern jumps out visually.
  • Tick Show the 10-year and short-rate yields to drop the two underlying series onto the chart, so you can see whether a given inversion came from short rates spiking, long rates falling, or both.
  • Drag the handles on the slider beneath the chart to zoom into any stretch; it opens on the full 1871-to-today range.
  • Save image downloads the chart as a PNG, and Download data grabs the underlying monthly series as a CSV.
  • Hover any point for the month and the exact values, but note – these are monthly averages, not single-day prints.

What an inverted yield curve means

Normally, you'd expect that lending to the government for ten years pays more than lending for a few months – you want to be paid for tying your money up for a longer period of time. When that flips and short rates climb above long rates, the market is effectively betting that rates (and growth) will be lower down the road. Since World War I that inversion has been mostly a reliable – if early and sensitive – recession warning.

There are two big caveats here worth keeping in mind:

  • First, it's an early signal, not an immediate one – the gap between inversion and recession has often run a year or more.
  • Second, the omen is a modern-ish phenomenon: before the Federal Reserve and routine government bond issuance, short-term commercial paper frequently ran above long-term yields without a recession following, which is why the pre-1914 stretch shows so many inversions. (The long-run yield curve inversions post digs into that history.)

And the other, more theoretical problem going forward – the indicator is well-known now. There's a name for the risk: Goodhart's Law, which holds that "when a measure becomes a target, it ceases to be a good measure" – and fittingly, it came out of monetary economics.

Once everyone is watching an indicator, it's ripe for weird second-order effects, or even manipulation, from participants positioning around it. So, even though there is good theoretical grounding for why this one works: past performance is not a guarantee of future results.

Methodology and sources

This is the long-history, two-point view. For the daily, full-curve picture from 1990 to today – every maturity from 1 month to 30 years, in rotatable 3D – see the 3D Treasury Yield Curve.

On this page is a Stocks vs Bonds Historical Returns Calculator. It puts the S&P 500, Dow Jones Industrial Average, NASDAQ Composite, the 10-year US Treasury, short-term cash (3-month T-bill), and a classic 60/40 portfolio on the same chart, so you can see how each one performed over history.

The Stocks vs Bonds Historical Returns Calculator

Using the calculator

The default view grows $10,000 in each asset from 1972, where the NASDAQ data starts. Everything recomputes in real time as you change a setting.

In Calculation Options:

  • Asset toggles – click any asset to show or hide it, including the 60/40 (composed of 60% S&P 500, 40% 10-year Treasury, rebalanced monthly) option which is off by default. Drop NASDAQ and the start year reaches back to 1897 (Dow) or 1872 (S&P 500 and 10-year Treasury); drop the equities and Cash and Treasury go back to 1858.
  • Reinvest Dividends – on by default. Off switches the equity indices to price-only (although the bond series are total-return by construction, so they don't change).
  • Adjust for Inflation – restates every series in CPI-adjusted terms.
  • Start year – any year from the selected set's earliest shared year forward.

Three views are toggleable across the top:

  • Growth of $10K – each asset's running balance from the start year, with a brush below the chart for date-range zoom and a log-scale toggle. Underneath is a Performance & risk table: end value, CAGR, standard deviation, Sharpe, Sortino, maximum drawdown, best and worst calendar year, and correlation to the S&P 500.
  • Rolling Returns – the rolling annualized total return for each asset over a holding period you pick (1, 3, 5, 10, 20, or 30 years), overlaid so you can see how the ranking shifts by era.
  • Win-rate Heatmap – for each start year and holding period, the cell is colored by the asset that 'won' that window. Cells gray out when the period runs past today.

Methodology and sources

Each asset starts from a monthly-average price (or yield) series, then is mapped to total-return level the way an investor would experience it. The five series:

  • S&P 500 back to January 1871, from Robert Shiller's compiled dataset. See the S&P 500 Return Calculator for my construction.
  • Dow Jones Industrial Average back to May 1896, blended from FRED DJIA and DQYDJ's historical reconstruction. See the Dow Jones Return Calculator.
  • NASDAQ Composite back to February 1971, prices from FRED NASDAQCOM; recent dividends estimated from the spread between the price and total-return NASDAQ indices. See the NASDAQ Return Calculator for the full derivations and estimates.
  • 10-Year US Treasury back to January 1871, on the long-history 10-year yield series from Shiller's dataset. Each month the model holds a freshly-issued par bond at the prevailing yield, ages it a month, and reprices it at the new yield with full present-value bond math. It uses the constant-maturity engine behind our Treasury Return Calculator.
  • Cash (3-Month T-Bill) back to January 1858, as a blended series. The modern era uses FRED TB3MS (3-month T-bill, secondary market). 1920–1934 uses the NBER short-term US securities series (M1329AUSM193NNBR) with a +22.046 bps adjustment; pre-1920 uses NYC commercial paper rates (M13002US35620M156NNBR) with a −62.267 bps adjustment to a T-bill-equivalent. These adjustments are explained in our 2018 long-run yield curve inversions post. Cash compounds monthly at the prevailing short rate, and also serves as the risk-free rate in the Sharpe and Sortino calculations.
  • CPI for the real adjustment comes from Shiller's dataset, scaled to the most recent month, with infill from FRED.

What the Performance & risk columns mean

  • End value – what a $10,000 investment grew to by the end of the window.
  • CAGRcompound annual growth rate, the annualized rate that turns the start value into the end value.
  • Standard deviation – annualized volatility of the monthly returns; a higher number is a rougher ride.
  • Sharpe – return per unit of total risk: the annualized return above the risk-free rate (our Cash series/3-Month T-Bill proxy) divided by standard deviation. Higher is better.
  • Sortino – like Sharpe, but it penalizes only downside volatility, so it rewards assets whose swings are mostly to the upside.
  • Max DD – maximum drawdown, the worst peak-to-trough decline over the window, measured on the monthly path.
  • Best / worst yr – the best and worst single calendar-year return (December over December) in the window.
  • Corr S&P – correlation to the S&P 500: how closely an asset's monthly moves track it, from +1 (lockstep) through 0 (no relationship) to −1 (opposite)

Below is an interactive 3D treasury yield curve chart showing U.S. Treasury yields from 1977 to the present. Watch rates rise, fall, and even invert over decades of economic history.

Drag to rotate, scroll to zoom. Use the timeline slider or play button to animate through history.

How to use the 3D yield curve tool

The tool loads with the last 10 years of data by default. Here's where to explore:

Basic controls

3D Treasury Yield Curve basic controls
3D Treasury Yield Curve basic controls
  • Camera: Switch between 3D (default perspective), Front (yields over time), and Side (current curve shape) views
  • Jump to: Quick presets for notable dates: Latest, '23 Inversion, '08 Crisis, '06 Inversion, and '00 Peak
  • Date Range: Choose Last 2 Years, 5 Years, 10 Years, or All (~1977 to present)
  • Timeline slider: Drag to scrub through time, or hit the play button to animate
  • Export: Save the current view as a PNG image

On desktop, drag to rotate the 3D view and scroll to zoom. Hover over the surface to see exact yields for any date and maturity.

Advanced options

3D Treasury Yield Curve advanced controls
3D Treasury Yield Curve advanced controls

Click Advanced Options to access additional settings:

  • Color By: Switch between Yield Level (blue = low, red = high) and 10Y-2Y Spread (red = inverted, blue = steep). The spread view makes inversions immediately visible.
  • Surface Style: Choose Smooth, Wireframe, or Both
  • Data Sampling: Weekly (faster loading) or Daily (more detail, slower)
  • Recession Shading: Toggle red bands showing official NBER recession periods

Exploring the 3D view

Sample yield curve (and history) on 12/22/2025
Sample yield curve on 12/22/2025

Drag, zoom, and pan to find the best angle:

  • Drag to rotate the view and see the surface from different angles
  • Scroll to zoom in on specific time periods or maturities, hover for a date preview
  • Right-click + drag to pan the view (two-finger drag on mobile)
  • Camera presets snap you back to curated angles if you get lost

The 2D curve view

Below the 3D chart, a traditional 2D yield curve shows the current date's rates across all maturities. The 10Y-2Y spread indicator on the right shows whether the curve is normal (positive, blue) or inverted (negative, red).

What is the yield curve?

The yield curve plots interest rates on U.S. Treasury securities across different maturities, from 1-month T-bills to 30-year bonds. Normally, longer-term bonds pay higher rates (an upward-sloping yield curve) because investors demand more compensation for locking up their money longer.

When short-term rates exceed long-term rates, the curve inverts. An inverted yield curve has preceded every U.S. recession since the 1970s; the signal isn’t perfect, with a notable mid‑1960s inversion that didn’t lead to a recession. Its success predicting recessions makes it one of the most watched indicators in economics.

(And yes, an inversion predicting a recession somehow included the recession that coincided with COVID-19 going worldwide in 2020.)

This 3D visualization adds a time dimension, letting you see how the entire curve shape evolves: not just today's snapshot, but decades of shifting rates, inversions, and recoveries.

Why 10Y-2Y? (Not 10Y-3M?)

You might notice that our tool highlights the 10-year minus 2-year spread, not the 10-year minus 3-month spread or some other combination. Here's why:

The yield curve's recession-predicting power was first documented by Campbell Harvey in his 1986 dissertation at the University of Chicago (as an aside, his dissertation committee included three future Nobel laureates: Eugene Fama, Lars Hansen, and Merton Miller!). Harvey originally used the 5-year minus 90-day spread. Later, Arturo Estrella and Frederic Mishkin at the NY Fed popularized the 10Y-3M spread in their influential 1996 paper, and that's what the Fed's official recession probability model still uses today.

The Chicago Fed's research found that academics prefer 10Y-3M while practitioners prefer 10Y-2Y, and both "produce qualitatively similar results." So why show 10Y-2Y?

  • The 2-year yield better reflects market expectations of where the Fed will set rates over the next couple years. That is, it's more about anticipated policy than current policy.
  • The 3-month yield mostly just tracks wherever the Fed has rates right now. The Fed generally does a good job telegraphing how rates will move over the next few months – and the CME's FedWatch is a better indicator than I can host here on DQYDJ!
  • The 10Y-2Y spread is what financial media typically reports, so it's more useful for following the news cycle
  • Both spreads have signaled every recession since the 1970s (with occasional false positives), so the practical difference is marginal

If you want to track the Fed's preferred 10Y-3M spread, FRED has it here: T10Y3M. The Cleveland Fed also publishes a yield curve recession probability model.

Why 3D for yield curves?

3D charts have a bad reputation in data visualization (usually for good reasons – they're pretty terrible visualizations, most of the time). But yield curves are genuinely three-dimensional data: time × maturity × yield. A 2D chart can only show one dimension at a time (for example, the curve on a date... like, you know, the view under the 3D chart).

This visualization was inspired by The New York Times' 2015 piece by Amanda Cox and Gregor Aisch, which was highlighted by the Information is Beautiful Awards. As Gregor explained in a Data Stories podcast interview, the key to making 3D work is creating "a 3D chart that people can actually read" with optimal camera views and good narrative – my nod to that is the camera presets and historical jump points.

Data source and methodology

The yield data comes from the Federal Reserve Economic Data (FRED) database, updated daily. We pull all 11 constant maturity Treasury rates, and cross them with the official NBER recession indicator from FRED.

With the 3D surface, I interpolate between maturities for visual smoothness – exact yields (well, CMT yields, anyway) are shown in tooltips and the 2D chart below the 3D graph.

For broader market context:


The yield curve isn't going to tell you exactly when a recession will hit. But that's not the goal – watching it evolve in 3D should give you a better feel for the economic terrain than any single shock headline trying to grab your attention. Enjoy the 3D navigation!

This Treasury Return Calculator uses long-run 10-year Treasury data from the US Treasury Department and Robert Shiller to compute the total return of a 10 Year Treasury – coupon income plus the price change as yields move – for any period from 1871 until today.

(We have a similar calculator for the S&P 500, Dow Jones Industrial Average, NASDAQ, Gold, and Daily Inflation. Or, compare stocks, bonds, and short-term investments with the Stocks vs Bonds Historical Returns tool.)

Using the Treasury Return Calculator

Pick a starting and ending month and the calculator updates in real time. Here's what it shows:

  • Total 10 Year Treasury Return – the cumulative total return over the period you chose.
  • Annualized 10 Year Treasury Return – the same total return expressed as a return per year.
  • Adjust for Inflation (CPI)? – restates every value in real, CPI-adjusted terms using Shiller's CPI series.
  • Show legacy return calculation – adds two rows for an older "3-year ladder" method of calculating total returns. (The methodology is explained below.)
  • Show Chart – draws the growth of a $10,000 investment over your window. Tick Log scale for a logarithmic vertical axis, which keeps long, multi-decade windows readable.

Methodology for the Treasury Return Calculator

The 10-year yield comes from Robert Shiller's compiled data, which runs back to 1871, with infill from the Treasury and FRED.

Each month's figure isn't a single day's price – it's the blended average of that month's daily 10-year constant-maturity yields. In other words these are "fake" numbers – a monthly average of the yield at which a new 10-year note could have been issued, not a price you could have transacted at on a given day. Because it's a monthly average rather than a month-end snapshot, returns here differ slightly from year-end-based sources – that is, returns are not based on an individual investment and sale date but a blended average.

Default return algorithm: constant-maturity total return

By default, the calculator uses the par-bond method for turning constant-maturity yields into total returns (see Swinkels, 2019 for the canonical writeup). Each month you hold a freshly-issued par 10-year bond – coupon equal to the prevailing yield and priced at par – earn the coupon, and a month later reprice that now-slightly-older bond at the new yield using full present-value bond math. The monthly total return is the coupon you earned plus that price change; then you roll into a fresh par bond and repeat.

Because the bond is fully repriced every month, this captures convexity exactly – no duration or convexity coefficient to fit. It's the method behind most published Treasury total-return indices.

And yes, this model uses the same general engine behind our Bond Convexity and Bond Pricing calculators.

The legacy 3-year ladder

This calculator originally had a different performance methodology which built a bond ladder. The legacy algorithm would buy a 10-year note, collect its semiannual coupons, and sell it after three years (holding, effectively, a 7-year bond). The model would then roll any proceeds into a new 10-year note assuming bonds are bought at face value with no transaction fees and a 0% tax rate.

While I've maintained the model for comparability across time (via Show legacy return calculation), there are two big caveats.

  1. Assuming you can sell a 7-year bond at the 10-year yield assumes a flat yield curve. To see how much real curves vary, play with my 3D Treasury Yield Curve visualization.
  2. The face-value roll ignores mark-to-market price changes... and that cuts both ways. In a rising-rate stretch the ladder overstates returns, while in a falling-rate stretch it misses the price gains instead. Over a full cycle the errors partly wash, but over any window dominated by one rate trend the ladder can be off by a point or more a year.

The constant-maturity method has neither problem because it marks to market every month... which is why it's the default now.

How to use this data

It's worth internalizing: the 10 year Treasury total return is not its yield at purchase. Indexes like the one I've constructed here try to keep your maturity at roughly ten years. When rates rise, the price of existing bonds falls, and that capital loss can swamp the coupon.

Models like this one approximate how you would have done if you – in some magical, frictionless way – constantly turned over 10-year treasuries just to purchase newly issued ones. Treat the output as a decent approximation of how an investor would have fared, not the ultimate arbiter of returns. And always remember that, just like with stocks, the time of day, the weather, general sentiment, daily inflation, and countless other factors move the real price of a security at any point in time, including the moment you'd actually have bought it.

Thank yous

To Robert Shiller, of course, for posting his data publicly. To Laurens Swinkels, whose 2019 paper documents the constant-maturity return method cleanly. And to Jim at Free By 50, who assisted with some of the original assumptions.

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

On this page is a bond convexity calculator. It will compute a bond's convexity as the second derivative of the bond's price in relation to the interest rate. Optionally, it will show the price and yield relationship estimate from duration and convexity.

You can input either the market yield or yield to maturity, or the bond's current price and coupon and par, and the tool will compute the bond duration and convexity.

Bond Convexity Calculator

Convexity Calculator Inputs

Our convexity tool will run the math starting from either the bond's market price or if you know the current yield to maturity. (Choose whichever is easier for you.)

Compute Convexity Based on the Market Price of a Bond

If you prefer to start from the bond's current market price, ensure You Know Market Price is depressed.

Calculator Inputs
  • Current Bond Trading Price ($) - The bond's current trading price on the market. (For new issues, put the par value in this field.)
  • Bond Face Value/Par Value ($) - Face or par value of the bond.
  • Years to Maturity - Years that are left until the bond matures.
  • Annual Coupon Rate (%) - The annual interest rate paid on the bond's face value.
  • Coupon Payment Frequency - How often the bond pays out interest every year.
Calculator Outputs
  • Yield to Maturity (%): The yield you'd recognize holding the bond until maturity (assuming you receive all payments).
  • Macaulay Duration (Years) - Weighted average time (in years) for a payout from the bond's cash flows.
  • Modified Bond Duration (Δ%/1%) - A linear estimate of the bond's trading price's sensitivity to the market rate. Measured as a percentage change (in price) per percentage change in interest rate.
  • Bond Convexity - Measure of the "curvedness" or degree of curve the bond's price would take at different interest rates.
Graph Output

Optionally, if you click the "Draw Price vs. Yield Graph", the tool will show the estimates change in price if the market yield moves.

Bond Price vs. Yield with Convexity and Duration
Sensitivity estimates for bond price vs. market yield using duration (blue) and convexity (green)

The above graph shows the relationship for price and yield using the default values in the tool. Note the following outputs:

  • Current YtM: Computed current yield to maturity
  • Current Price: Current bond trading price
  • X-Axis: Plus and minus 3% changes in market yield
  • Y-Axis: Estimated price based on change in market yield, based on duration (blue) and convexity (green)

If you are on desktop, you can hover your cursor for a point estimate of price. On mobile or tablet, if you click you will see a tool-tip.

If you click the "hamburger" menu in the graph's upper right corner, you can download the price sensitivity graph in svg or png format. You can also download the backing data in csv format.

Compute Convexity Based on Yield to Maturity

Ensure the "You Know Yield to Maturity" button is depressed if you'd prefer to enter the bond's par value and yield to maturity to compute convexity.

Calculator Inputs
  • Bond Face Value/Par Value ($) - The par or face value of the bond.
  • Years to Maturity - Years that are left until the bond matures.
  • Annual Coupon Rate (%) - Annual interest rate paid out by the bond.
  • Yield to Maturity (Market Yield) (%) - Yield of the bond if held until maturity, assuming no missed payments.
  • Days Since Last Bond Payout - How many days ago was the last payment made? (0 means there isn't any accrued interest on the bond - see our bond pricing calculator for an explanation.)
  • Coupon Payment Frequency - Number of times annually the bond pays interest.
Calculator Outputs
  • Current Market Price ($): The market price of the bond.
  • Macaulay Duration (Years) - The weighted average time for the cash flows on the bond to pay out, measured in years.
  • Modified Bond Duration (Δ%/1%) - Linear sensitivity of the bond's price to the yield to maturity. Measured in percentage price change per unit interest rate change – and improved by convexity.
(Optional) Graph Output

See the above section for Graph Output where you know bond price - behind the scenes it's the same function. The only difference is:

  • Current YtM: The yield to maturity for the bond you entered in the tool
  • Current Price: Computed bond market price

What is Bond Convexity?

Bond convexity is a measure of the curve's degree when you plot a bond's price (on the y-axis) against market yield (on the x-axis). As the market yield changes, a bond's price does not move linearly – convexity is a measure of the bond price's sensitivity to interest rate changes.

It's built off the convexity work of Hon-Fei Lai, and started to gain popularity after Stanley Diller's 1984 paper Parametric analysis of fixed income securities.

(...a paper which I can't find online – please get in touch if you can) 

Bond Convexity vs. Duration

Bond duration is also a measure of a bond's sensitivity to interest rate changes. Modified duration is the estimate of the price change of the bond for a 1% move in interest rates.

However, the duration is only a linear approximation. Specifically, the duration is the first derivative of the bond's price as it relates to interest rate changes. Convexity is the second derivative.

Drawn on a graph with bond price and yield, duration is tangent to convexity at the current price and interest rate.

At 'small' changes in interest rates, duration is a fine estimate of a bond's price change. For larger changes, using convexity will better approximate the real-world behavior of the bond.

Formula for Bond Convexity

The bond convexity formula (written as a series) is:

(\frac{coupon}{price}*
(\frac{1*(1+1)}{(1+ytm)^{1+2}}+\frac{2*(2+1)}{(1+ytm)^{2+2}}+...\\~\\+
\frac{(n-1)*((n-1)+1)}{(1+ytm)^{(n-1)+2}}+\frac{n*(n+1)}{(1+ytm)^{n+2}}) )+\\~\\
\frac{face\ value}{price}*\frac{n*(n+1)}{(1+ytm)^{n+2}}

And note that if the bond pays out multiple coupons per year, you can either:

  • Divide ytm by the number of periods (or)
  • Divide the final result by the payouts per year squared

Where:

  • coupon: The annual payout of the bond
  • face value: Payout at maturity when the bond matures, or the par or face value
  • n: The total number of bond payouts in the future
  • ytm: The yield to maturity of the bond
  • price: The market price of the bond

There are a lot of factors, but it's reasonably straightforward. Next, let's manually compute the convexity of a made-up bond and walk through the calculation.

Bond Convexity Estimate Formula

Sometimes you need a guess at convexity instead of working through the full formula. Don't worry, there's a way to reasonably estimate a bond's convexity with fewer terms.

The bond convexity approximation formula is:

Bond\ Convexity\approx\frac{Price_{+1\%}+Price_{-1\%}-(2*Price)}{2*(Price*\Delta yield^2)}

Where:

  • Price+1%: Bond price when yield increases by 1%
  • Price-1%: Bond price when yield decreases by 1%
  • Price: Current trading price
  • Δyield: Percentage point change in yield (note that it's squared; sign doesn't matter)

But – stick with the better convexity formula if you have time to calculate it (or come back and visit this page!).

Example: Compute the Convexity for a Bond

In the bond duration example, we computed the duration for a made up bond. Let's use the same example and compute convexity:

  • Par Value: $1000
  • Coupon: 5%
  • Current Trading Price: $960.27
  • Yield to Maturity: 6.5%
  • Years to Maturity: 3
  • Coupon Payouts: One a Year
  • Duration, Modified Duration: 2.856, 2.682 (Note: this calculation is in the bond duration article)
(\frac{50}{960.27}*
(\frac{1*(1+1)}{(1+.065)^{1+2}}+\frac{2*(2+1)}{(1+.065)^{2+2}}+\frac{3*(3+1)}{(1+.065)^{3+2}}))+\\~\\
\frac{1000}{960.27}*\frac{3*(3+1)}{(1+.065)^{3+2}}=\\~\\

(\frac{50}{960.27}*
(\frac{2}{(1.065)^3}+\frac{6}{(1.065)^4}+\frac{12}{(1.065)^5}))+\\~\\
\frac{1000}{960.27}*\frac{12}{(1.065)^{5}}=\\~\\

(0.05206868901 * 15.0782067672 ) + (1.04137378029 * 8.75857003825)=\\~\\

Bond\ Convexity \approx{9.906}

For this bond, the Bond Convexity is roughly 9.906. Next, let's look at how you can use that information.

Use Bond Convexity to Estimate Bond Price Changes

Now you know how to compute a bond's duration as well as its convexity. Now that you have those numbers, you can use them to predict a bond's price after a given interest rate movement.

Bond Price Change Formula Using Convexity and Duration

The formula for estimated price change for a given interest rate move is:

\frac{price*convexity*(\Delta yield)^2}{2}-(price*modified\ duration*\Delta yield)

Where:

  • Δyield - The change in interest rates
  • modified duration - Our computed modified duration for the bond
  • convexity - Our computed convexity for the bond
  • price - The current trading price of the bond

Example: Compute Price Movement of a Bond Using Duration and Convexity

Let's continue working with the same made-up bond from above.

How much would the price change for a market rate change from 6.5% to 8%? How about from 6.5% to 5%?

We'll use the following computed values (and the same fantasy bond):

  • Modified Duration: 2.682
  • Convexity: 9.906
  • Annual Coupon: 5%
  • Current Trading Price: $960.27
Yield Rises from 6.5% to 8%
\frac{960.27*9.906*(.015)^2}{2}-(960.27*2.682*.015) = \\~\\

1.07014889475 - 38.6316621\approx -37.561

If interest rates rise 1.5% to 8%, we'd expect the bond price to fall $37.561 to around $920.59.

(You can verify it's close in the bond pricing calculator – which estimates $922.69.)

Yield Falls from 6.5% to 5%
\frac{960.27*9.906*(-.015)^2}{2}-(960.27*2.682*-.015) = \\~\\

1.07014889475-(-38.6316621)\approx 39.702

If interest rates fall 1.5% to 5%, we'd expect the bond price to rise $39.702 to around $999.97.

(We don't need the bond price calculator here – we essentially reverse engineered the par value of $1000. Pretty close!)

Using the bond convexity calculator above, we can create a line chart showing the price estimates using convexity and duration:

Yield vs. Price for an Example Bond, using Duration and Convexity
Bond Price vs. Yield estimate for the current bond.

Zero Coupon Bonds

In the duration calculator, I explained that a zero coupon bond's duration is equal to its years to maturity. However, it does have a modified (dollar) duration and convexity.

Zero Coupon Bond Convexity Formula

The formula for convexity of a zero coupon bond is:

zero\ coupon\ convexity=\frac{ttm^2+\frac{ttm}{2}}{(1+\frac{rate}{2})^{(2+(2*ttm))}}

Where:

  • ttm: years to maturity
  • rate: current market yield

Why Care About a Bond's Convexity 

Convexity and duration both help you estimate your interest rate risk for bonds in your portfolio. As bonds with different characteristics will have different values for duration and convexity, they're important numbers to know so you know your exposure to market yield changes.

Are they a panacea? No. 

As with many models, they assume a responsible bond issuer and continued payments through maturity. You'll nearly always see different prices in practice than those implied by bond price models. That is: convexity and duration are just decent estimates.

But – while they may be wrong, they're often useful. They give us a quick check on interest rate sensitivity at a glance and help construct portfolios hardened for different theoretical scenarios.

Also, if you see any issues in the tool let me know. Lotta ins, lotta' outs, lotta' what have yous in this one. (I tested many scenarios, but can't guarantee it works for every corner case!).

In the mood for other bond calculators? Try the following:

On this page is a bond duration calculator. It will compute the mean bond duration measured in years (the Macaulay duration), and the bond's price sensitivity to interest rate changes (the modified duration).

You can input either the market yield or yield to maturity, or the bond's price, and the tool will compute the associated durations.

Macaulay and Modified Bond Duration Calculator

Duration Calculator Inputs

This bond duration tool can calculate the Macaulay duration and modified duration based on either the market price of the bond or the yield to maturity (or the market interest rate) of the bond.

Since you'll have one or the other, choose the easier path to compute the duration.

Compute Duration Based on Market Price of a Bond

If you have all of the details of the bond and know the market price, click the blue "You Know Market Price" button.

Calculator Inputs
  • Current Bond Trading Price ($) - The bond's trading price on the secondary market. (If it's new, match the par value you enter below.)
  • Bond Face Value/Par Value ($) - The face or par value of the bond.
  • Years to Maturity - How many years are left until the bond matures.
  • Annual Coupon Rate (%) - The annual interest rate paid on the bond's face value.
  • Coupon Payment Frequency - How often the bond pays interest per year.
Calculator Outputs
  • Yield to Maturity (%): The yield until the bond matures, as computed by the tool. See the yield to maturity calculator for more details.
  • Macaulay Duration (Years) - The weighted average time (in years) for the bond's cash flows to pay out.
  • Modified Bond Duration (Δ%/1%) - The sensitivity of the bond's trading price to the market interest rate. Measured in percentage change (in price) per percentage change (in interest rate/yield to maturity).

Compute Duration Based on Market Yield (or YTM) of a Bond

If you have all of the details of the bond and know the market yield or the bond's yield to maturity, use the "You Know Yield to Maturity" option.

Calculator Inputs
  • Bond Face Value/Par Value ($) - The face or par value of the bond.
  • Years to Maturity - How many years are left until the bond matures.
  • Annual Coupon Rate (%) - The annual interest rate paid on the bond.
  • Yield to Maturity (Market Yield) (%) - The yield of the bond if held until maturity (assuming no missed payments), as implied by the market.
  • Days Since Last Bond Payout - How many days ago was the last payment made? (0 means no accrued interest - see the bond pricing calculator for more information.)
  • Coupon Payment Frequency - How often the bond pays interest annually.
Calculator Outputs
  • Current Market Price ($): The market price or implied price of the bond.
  • Macaulay Duration (Years) - Weighted average time for the bond's cash flows to pay out, measured in years.
  • Modified Bond Duration (Δ%/1%) - Sensitivity of the bond's price to the yield to maturity. Measured in percentage price change per unit interest rate change.

What is the Macaulay Duration?

The Macaulay duration of a bond is the weighted average payout of the bond, measured in years.

Practically, a longer Macaulay duration shows at a glance (and relative to another bond) a bond's interest rate risk. Longer duration bonds are more volatile – they are more sensitive to interest rate changes.

It was first introduced by Frederick Macaulay.

Formula for Macaulay Duration

The Macaulay duration formula (written as a series) is:

\frac{
1*\frac{Payment_1}{(1+yield)^1} + 2*\frac{Payment_2}{(1+yield)^2} +...+
(n-1)*\frac{Payment_{n-1}}{(1+yield)^{n-1}} + n*\frac{Payment_n+Par\ Value}{(1+yield)^n}
}
{Current\ Price}

Where:

  • Payment_x: The payout of the bond at point x
  • Par Value: The payout at maturity when the bond matures, or the par or face value
  • n: The total number of bond payouts in the future (assuming no missed payment)
  • yield: The yield of the bond at point x (remember yields are often annualized, this yield must be adjusted for periods per year)
  • Current Price: The market price of the bond (if you only know yield to maturity, you can work this out. See the yield to maturity calculator)

From the series, you can see that a zero coupon bond has a duration equal to it's time to maturity – it only pays out at maturity.

Example: Compute the Macaulay Duration for a Bond

Let's compute the Macaulay duration for a bond with the following stats:

  • Par Value: $1000
  • Coupon: 5%
  • Current Trading Price: $960.27
  • Yield to Maturity: 6.5%
  • Years to Maturity: 3
  • Coupon Payouts: One a Year
\frac{
1*\frac{50}{(1+.065)^1}+2*\frac{50}{(1+.065)^2}+3*\frac{50 + 1000}{(1+.065)^3}
}{960.27} =
\\~\\
\frac{46.948 + 88.166 + 2607.72}{960.27}  =
\\~\\
2742.834/960.27 = 2.856\ years

For this bond, the Macaulay duration is 2.856 years, heavily weighted towards maturity (3 years).

What is the Modified Duration?

The modified duration of a bond is a measure of the sensitivity of a bond's market price to a change in interest rates. It's the percentage change of a bond's price based on a one percentage point move in market interest rates.

Bond prices move in an inverse direction from interest rates.

For a one percent increase in interest rates, the bond's market price will decrease by the percentage shown by the modified duration. For a one percentage point decrease in interest rates, the bond price will increase by the percentage shown by the modified duration.

Modified Duration Formula

The modified duration formula is:

\frac{Macaulay\ Duration}{1+\frac{YTM}{Annual\ Payments}}

Where:

  • Macaulay Duration: The duration of the bond as measured in years (see how to compute it above)
  • YTM: The calculated yield to maturity of the bond
  • Annual Payments: How many coupon payments the bond makes a year

Example: Compute the Modified Duration for a Bond

Let's extend the above example (from the Macaulay section) for a bond with the following characteristics:

  • Par Value: $1000
  • Coupon: 5%
  • Current Trading Price: $960.27
  • Yield to Maturity: 6.5%
  • Years to Maturity: 3
  • Coupon Payouts: One a Year
  • Macaulay Duration: 2.856 years
\frac{2.856}{1+\frac{.065}{1}}=\\~\\2.856/1.065 =\\~\\2.682

Remember, the modified duration is a measure of sensitivity to interest rate changes at a point in time. Here's the relationship:

  • Interest rate/yield to maturity increases by 1%: bond price decreases by 2.682%
  • Interest rate/yield to maturity decreases by 1%: bond price increases by 2.682%
Bond duration calculator showing the Macaulay and modified duration
Outputs for the example bond.

Bond Convexity

Bond duration is a linear estimate of a bond's price sensitivity to changes in market yield. It's the first derivative of price with respect to market yield. However – the relationship between yield and price isn't linear, it's a curve.

Bond convexity is the second derivative, and a measure of the "curvedness" of the relationship. Here's how the price estimate looks for the example bond in this post:

Yield vs. Price for an Example Bond, using Duration and Convexity
The duration-based estimate is in blue, the convexity estimate in green

The difference is slight – for small changes in yield – but it is real. Using convexity gives you a better measure.

Why Know a Bond's Duration (Plus Other Bond Basics)

Duration helps you understand, at a glance, how sensitive your bond portfolio is to interest rate changes.

Shorter duration bonds will be relatively price stable; they will pay out most of their promised cash flow in the near future. Longer duration bonds are less stable; long duration bonds have all the risk of taking longer to pay out their funds, including a shift in the market's demanded yield.

So, to insulate yourself from interest rate risk pick shorter duration bonds. If you want to take on more interest rate risk, pick longer. (You can also compute the Macaulay and modified duration of an entire portfolio by summing cash flow).

For other bond calculators, check out the following:

On this page is a bond yield to put calculator. It automatically calculates the annual yield earned on a puttable bond assuming you put it back to the issuer at the first possible time. Importantly, it assumes all payments and coupons are on time (no defaults).

Also, find the approximate yield to put formula. Like with Yield to Maturity (YTM), Yield to Put is calculated iteratively.

Bond Yield to Put Calculator

Yield to Put Calculator Inputs

  • Current Bond Trading Price ($) - Today's bond trading price.
  • Bond Face Value/Par Value ($) - The par or face value of the bond.
  • Price to Put ($) - Usually, bonds trading with a put option have some discount to the current price. Enter the price here.
  • Years to Put - The numbers of years until the bond can be putted back to the issuer.
  • Annual Coupon Rate (%) - The annual interest paid on the bond based on the par value.
  • Coupon Payment Frequency - Frequency the bond makes coupon payments.

Bond YTP Calculator Outputs

  • Yield to Put (%): The converged upon solution for the yield to put of the current bond (the internal rate of return assuming you put the bond).
  • Current Yield (%): The simple calculated yield which uses the current trading price and face value of the bond. See the bond yield calculator for explanation.

Bond Yield to Put Formula

The calculation for Yield to Put is very similar to Yield to Maturity – and equal to the Yield to Call calculation (just with the incentives flipped).

The calculator assumes you will put the bond back to the issuer at your first chance – although, of course, you only want to do that if you would make money on the trade (and assuming all payments are made). And just like how callable bonds usually have a call price higher than par value, puttable bonds generally have a put value below face value.

Estimated Yield to Put Formula

However, that doesn't mean we can't estimate and come close. The formula for the approximate yield to put on a bond is:

\frac{(Annual\ Interest)+((Price\ to\ Put-Current\ Price)/(Years\ to\ Put))}{(Price\ to\ Put+Current\ Price ) / 2}

Estimating Yield to Put for the Calculator Scenario

Let's solve the default yield to put calculation inside the tool:

  • Current Price: $920
  • Par Value: $1000
  • Price if Put: $970
  • Years to Put: 5
  • Annual Coupon Rate: 10%
  • Coupon Frequency: 2x a Year
\frac{(100)+((970-920)/5)}{(970+920 ) / 2}=\\~\\\frac{100+10}{945}=11.640\%

Exact Yield to Put Formula

If you actually run the scenario in the tool, you'll find that yield to put is actually 11.700% – what's going on there?

As mentioned, the above formula is just an estimate. A real calculation would sum the present value of all future cash flows in almost the same way you calculate yield to maturity.

Here is the summation:

Price = Coupon\ Payment/(1+rate)^{-1} + Coupon\ Payment/(1+rate)^{-2} +\\ ... +  Coupon\ Payment/(1+rate)^{-n}+Price\ to\ Put/(1+rate)^{-n}

Internally, the tool adapts the method from Github user ndongo. See the yield to maturity calculator's methodology discussion for more.

Why Does Yield to Put Matter?

As mentioned, bonds with options (calls and puts) introduce a wrinkle into price calculations. Depending on who is able to exercise, it gives that party an option to either call back the bond or put it back to the issuer for a set price.

In this case, a bond with a put option means at some time in the future you can put it back to the issuer if the price is right (and assuming all other incentives are aligned).

Read more in the yield to call discussion (just flip the incentives!).

Other Financial Basics Calculators

Use the Yield to Put as you would use other measures of bond valuation: a factor in your decision to buy or avoid. Bonds with put options usually have the deck stacked against them in terms of face value vs. put price, but sometimes when bonds trade at a discount the put option can be worth it for you to exercise.

Here are some other bond calculators:

Here you'll find a tax equivalent yield calculator, sometimes called a TEY calculator. When presented with investments that are free from taxation at the state, federal, and/or local level, you can use your tax rate to determine the equivalent taxable yield using this tool.

Tax Equivalent Yield Calculator

Current Yield to Maturity Calculator Inputs

  • Investment Yield (%) - The tax-free yield on the account or bond (or the interest rate).
  • Federal Marginal Tax Rate (%) - Your current marginal tax rate at the federal level.
  • State (and/or Local) Marginal Tax Rate (%)* - Your current marginal tax rate at the state level.
  • Yield Free From: - Whether the investment is free from federal tax, state tax, or both.

*If you live in a location with local tax (for example, New York City) and a security is exempt from tax there as well, add it here. Additionally, note that due to the maximum state tax exemption of $10,000, the calculator adds marginal tax at the state and local level to the federal marginal tax. If you have tax cap space, omit this field.

Bond Yield Calculator Outputs

  • Tax Equivalent Yield (%): If the investment was taxable, what would the yield be? (You can use this number to directly compare a taxable investment to the tax-free investment you are considering.)

What is tax equivalent yield (TEY)?

Tax equivalent yield is the yield you would need on a taxable investment to match the return you receive on a tax-advantaged investment.

Since most investments are taxable, you have to pay for any dividends, capital gains, coupon payments, and interest you receive at the end of the year. By applying tax "in reverse" such as with this tool, you normalize payouts on tax free investments to other potential investments.

Tax Free Investment Examples

It's impossible to list every tax-advantaged or tax-free investment in the United States, especially since some are only tax-free under certain conditions (for example, sometimes the alternative minimum tax (AMT) cancels tax-advantaged treatment).

Always consult with your tax advisor if you have any doubts – but here are examples of nominally tax-advantaged investments:

Note that for most securities, the interest might be tax-advantaged, while any capital gains (or, in the case of TIPS, inflation adjustments) are probably not. Again, check with your tax advisor with any questions.

Tax Equivalent Yield Formula

The tax current yield formula is:

\frac{yield}{1-marg\_tax}

Where:

  • yield - Interest rate or yield of the bond, account, or security
  • marg_tax - Your marginal tax rate which the security is exempt from

Example: Calculating the Current Yield on a Bond

Let's say you live in California and are evaluating a municipal bond which pays 1.2% and is exempt from taxes at the Federal and State level.

Your Federal marginal tax rate is 37% and you would owe an additional 3.8% Medicare surcharge on taxable interest, for a total of 40.8%. Your California marginal rate is 12.3%, for a total marginal tax rate of 53.1%.

What would yield more after tax – a bank savings account at 2.15% or the municipal bond?

  • yield – 1.2%
  • marg_tax = 53.1%
\frac{yield}{1-marg\_tax} = \\~\\\frac{.012}{1-.531}=\\~\\0.025586 = 2.56\%

In this case, the Municipal Bond would provide as much income as a savings account paying 2.56%, handily defeating the 2.15% account.

(Note, however, there are other considerations than yield – liquidity, default risk vs. FDIC insurance, etc. Always consult your advisor with any questions.)

Other Financial Basics Calculators

Taxes are very complex. Since there are so many security types and tax systems even in the United States, it's important to compare like to like when evaluating your asset allocation. Normalizing every security to the taxable-equivalent is good practice for your own portfolio.

Note that it's not the only way to "increase" your tax equivalent yield, however. By investing in tax-advantaged account types – such as IRAs, HSAs, 401(k)s, and 529s – you can defer or eliminate tax even on taxable accounts.

For other retirement account posts, plus financial basics and bond calculators, please see:

On this page is a bond yield calculator to calculate the current yield of a bond. Enter the bond's trading price, face or par value, time to maturity, and coupon or stated interest rate to compute a current yield.

The tool will also compute yield to maturity, but see the YTM calculator for a better explanation plus the yield to maturity formula.

Bond Yield Calculator

Current Yield to Maturity Calculator Inputs

  • Current Bond Trading Price ($) - The price the bond is trading at today.
  • Bond Face Value/Par Value ($) - The par value or face value of the bond.
  • Years to Maturity - The numbers of years until bond maturity. (You can enter decimals to represent months and days.)
  • Annual Coupon Rate - The interest rate paid on the bond.
  • Coupon Payment Frequency - How often the interest is paid out on the bond.

Bond Yield Calculator Outputs

  • Current Yield (%): The simple yield of the bond computed from the trading price and the coupon payments.
  • Yield to Maturity (%): The converged solution for yield to maturity of the bond (its IRR)

What is a bond's current yield?

The current yield of a bond is the annual payout of a bond divided by its current trading price. That is, you sum up all coupon payments over one year and divide by what a bond is paying today.

Bond Current Yield vs. Yield to Maturity

A bond's yield to maturity is the annual percentage gain you'll make on a bond if you hold it until maturity (assuming it doesn't miss payments). It's expressed in an annual percentage, just like the current yield. However, YTM is not current yield – yield to maturity is the discount rate which would set all bond cash flows to the current price of the bond.

You can find more information (including an estimated formula to calculate YTM) on the yield to maturity calculator page.

Current Yield Formula

The bond current yield formula is:

\frac{ACF}{P}

Where:

  • ACF - Annual cash flow of the bond
  • P - Current market trading price

Example: Calculating the Current Yield on a Bond

Let's work through an example and compute the current yield for an example bond. We'll use the example in the tool's defaults.

  • Face value: $1000
  • Annual interest rate: 10% (for $100, $1000 * 10%)
  • Current trading price: $920
\frac{ACF}{P} = \\~\\ \frac{100}{920} = 10.87\%

So, a bond trading at $920 with a face value of $1000 and a 10% interest rate has a 10.87% current yield, higher than the one stated by the bond.

Other Financial Basics and Bond Calculators

Current yield gives you a quick read of how a bond compares in the market. It is inferior to yield to maturity, although YTM does come with the risk that a bond may stop paying out (while your next year of payments is more certain). In almost all cases you should compute both, though.

For other financial basics and bond calculators, please see:

On this page is a zero coupon bond calculator, to calculate the market price or fair value of a zero coupon bond of known time to maturity, par or face value, and interest rate.

Zero Coupon Bond Calculator

Zero Coupon Bond Calculator Inputs

  • Bond Face Value/Par Value ($) - The face or par value of the bond – essentially, the value of the bond on its maturity date.
  • Annual Interest Rate (%) - The interest rate paid on the zero coupon bond.
  • Years to Maturity - The numbers of years until the zero coupon bond's maturity date.
  • Months to Maturity - The numbers of months until bond maturity (not this adds to the years value if you enter both fields).

Zero Coupon Bond Calculator Outputs

  • Market Price ($): The market price of the bond, or its true value to fit the input criteria.

What is a zero coupon bond?

A zero coupon bond is a bond which doesn't pay any periodic payments. Instead it has only a face value (value at maturity) and a present value (current value). The entire face value of the bond is paid out at maturity.

It is also known as a deep discount bond.

Benefits and Drawbacks of Zero Coupon Bonds

Zero coupon bonds have a duration equal to their time until maturity, unlike bonds which pay coupons.

Duration of a bond is a length of time representing how sensitive a bond is to changes in interest rates. Since zero coupon bonds have an equal duration and maturity, interest rate changes have more effect on zero coupon bonds than regular bonds maturity at the same time. (Whether that's good or bad is up to you!)

Zero coupon bonds are particularly sensitive to interest rates, so they are also sensitive to inflation risks. Inflation both erodes the value of the dollars the bond will eventually pay.

In the United States, you need to impute the interest for some zero coupon bonds to pay taxes in the current year (possibly also for state or local taxes). One tax workaround is to purchase zero coupon bonds in tax-free accounts such as IRAs, or to purchase zero coupon municipal bonds with no tax obligations. Consult your tax advisor for a full breakdown.

What's the zero coupon bond pricing formula?

The zero coupon bond price formula is:

\frac{P}{(1+r)^t}

where:

  • P: The par or face value of the zero coupon bond
  • r: The interest rate of the bond
  • t: The time to maturity of the bond

Zero Coupon Bond Pricing Example

Let's walk through an example zero coupon bond pricing calculation for the default inputs in the tool.

  • Face value: $1000
  • Interest Rate: 10%
  • Time to Maturity: 10 Years, 0 Months

Substituting into the formula:

\frac{P}{(1+r)^t} = \\~\\ \frac{1000}{(1+.1)^{10}} = \\~\\ \frac{1000}{2.5937424601} = \\~\\ \$385.54

So a 10 year zero coupon bond paying 10% interest with a $1000 face value would cost you $385.54 today.

In the opposite direction, you can compute the yield to maturity of a zero coupon bond with a regular YTM calculator.

Other Financial Basics Calculators

Zero coupon bonds are yet another interesting security in the fixed income world. For other bond calculators, check out the following:

Don't Quit Your Day Job...

DQYDJ may be compensated by our partners if you make purchases through links. See our disclosures page. As an Amazon Associate we earn from qualifying purchases.
Sign Up For Emails
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram