---
title: "What held up when bond yields spiked? 20 episodes since 1963"
url: https://portfolio-terminal.com/blog/portfolio-when-bond-yields-rise
author: "Julien Esnault"
publisher: "Portfolio Terminal"
published: 2026-09-29
type: market note
tags: ["Research", "Treasury Yields", "Portfolio", "Market Data"]
summary: "Since 1963 the 10-year Treasury yield jumped 1 point or more in a year 20 times. In the 7 when stocks fell, 10-year Treasuries lost money every time and T-bills made money every time; a 60/40 with Treasuries lost a median 6.6%, one with T-bills 2.5%."
---

> **Source:** Julien Esnault, "What held up when bond yields spiked? 20 episodes since 1963", Portfolio Terminal, 2026-09-29. https://portfolio-terminal.com/blog/portfolio-when-bond-yields-rise
> When you use a figure from this article, cite it with the line above and link to the URL. Figures are checked against the primary data named in the Sources line at the end.

## In short

- In the 7 episodes from 1963 to 2026 when the 10-year Treasury yield rose 1 point or more in a year and the S&P 500 fell, 10-year Treasuries lost money all 7 times (median −5.5%) and 1-month Treasury bills gained all 7 times (median +6.1%).
- In those 7 episodes a 60/40 portfolio of US stocks and 10-year Treasuries lost a median 6.6%, barely less than the 7.4% lost by US stocks alone; the same 60/40 holding Treasury bills instead of Treasuries lost a median 2.5%.
- Across all 20 yield spikes from 1963 to August 2026, Treasury bills beat 10-year Treasuries 20 times out of 20; 10-year Treasuries finished positive only once, in the 12 months to February 1989 (+1.3%).
- During the 7 bad episodes, Treasury bills beat US inflation 4 times, gold 2 times, and US stocks and every stock-bond mix never.
- In the 12 months after the sharpest month of each spike, 10-year Treasuries gained 18 times out of 20, a median 8.3%, and beat Treasury bills 14 times out of 20.

# What held up when bond yields spiked? 20 episodes since 1963

**The short version:** in the 7 episodes since 1963 when the 10-year Treasury yield jumped 1 point or more in a year and the S&P 500 fell, 10-year Treasuries lost money all 7 times. One-month Treasury bills made money all 7 times. A 60/40 portfolio with Treasuries lost a median **6.6%**, barely less than stocks' **7.4%**; the same 60/40 holding T-bills lost **2.5%**.

*Part 2 of a series on rising yields and your portfolio. [Part 1](https://portfolio-terminal.com/blog/do-stocks-fall-when-bond-yields-rise) found the 20 yield spikes and showed that stocks fell only when inflation was 3% or more. This part asks what, in the same 20 episodes, held up.*

The usual answer to "what do I own when yields rise?" is a bond fund, because the 60/40 portfolio counts on bonds to rise when stocks fall. That works when stocks fall because the economy is slowing and yields drop. A yield spike is the opposite case: the bonds are what is falling.

In the table, "bad 7" are the spikes when the S&P 500 fell, "hot 14" those with inflation at 3% or more, "cool 6" those under 3%. Each count is how many finished their 12 months up.

| 12 months of the spike | Up, bad 7 | Median, bad 7 | Up, hot 14 | Up, cool 6 | Up, all 20 |
|---|---|---|---|---|---|
| US stocks (total return) | 1 | −7.4% | 7 | 6 | 13 |
| 10-year Treasury | 0 | −5.5% | 1 | 0 | 1 |
| 1-month T-bills | 7 | +6.1% | 14 | 5 | 19 |
| Gold | 3 | 0.0% | 9 | 4 | 13 |
| 60/40 stocks / 10-year Treasuries | 1 | −6.6% | 7 | 5 | 12 |
| 60/40 stocks / T-bills | 2 | −2.5% | 9 | 6 | 15 |
| 60/30/10 stocks / 10-year / gold | 1 | −7.0% | 8 | 5 | 13 |

![Grid of the 20 yield spikes since 1963, one row per asset or portfolio: the 10-year Treasury finished up in 1 of 20 and in none of the 7 when stocks fell, T-bills in 19 of 20 and all 7, gold and stocks in 13 of 20](https://portfolio-terminal.com/blog-sources/portfolio-when-bond-yields-rise-hit-grid.png "Each square is one spike, filled when the asset or portfolio finished its 12 months up; pink columns are the 7 when the S&P 500 fell. Source: Ken French Data Library, FRED (DGS10, CPI), World Bank Pink Sheet; Portfolio Terminal calculations.")

## The 7 bad years, one by one

Each row is the 12 months ending at the sharpest point of the climb, the same windows as in part 1. "60/40 + 10y" is 60% US stocks and 40% 10-year Treasuries; "60/40 + bills" holds T-bills instead. Inflation over these windows ran from 3.5% (1966) to 11.8% (1974).

| 12 months to | Stocks | 60/40 + 10y | 60/40 + bills | 10y | T-bills | Gold |
|---|---|---|---|---|---|---|
| Aug. 1966 | −7.2% | −5.7% | −2.5% | −3.8% | +4.4% | 0.0% |
| Sept. 1969 | −8.4% | −8.0% | −2.6% | −8.1% | +6.1% | +2.5% |
| Oct. 1974 | −31.3% | −19.5% | −16.9% | −0.2% | +8.0% | +59.0% |
| June 1978 | +4.7% | +2.2% | +5.4% | −1.9% | +6.0% | +30.5% |
| Sept. 1981 | −2.0% | −3.9% | +4.7% | −7.5% | +14.8% | −34.1% |
| May 1984 | −7.4% | −6.6% | −0.9% | −5.5% | +9.3% | −13.9% |
| Oct. 2022 | −17.5% | −17.3% | −10.1% | −17.9% | +0.8% | −6.4% |

The 60/40 with Treasuries beat stocks alone in 5 of the 7, but by little: in the 12 months to October 2022 it lost 17.3% against 17.5%. Swapping the 40% of Treasuries for T-bills did better than the Treasury version in all 7, and in all 20 episodes.

June 1978 is the one year stocks come out positive here while part 1 counts it as a loss: part 1 used the S&P 500 price index, this table counts dividends and the whole US market, and that is the difference.

## Why Treasuries couldn't cushion this fall

A bond's price moves against its yield. Over a 1-point rise, the price a 10-year Treasury lost outweighed the year of coupon it paid in 19 of the 20 episodes. It finished positive once, in the 12 months to February 1989 (+1.3%). The median was −6.4%.

So the thing a 60/40 relies on, bonds up while stocks are down, needs yields to fall. In a spike, both sides lose together. That is what happened in 2022, and it is the same mechanism our [study of long-term Treasuries at 5%](https://portfolio-terminal.com/blog/treasury-bonds-rising-yields-risk-hedge-2026) measured on the 30-year bond. Today's level is on the [10-year Treasury yield page](https://portfolio-terminal.com/markets/10-year-treasury-yield) and the whole curve on [Treasury yields](https://portfolio-terminal.com/markets/treasury-yields).

## Cash won the spike, not the inflation

T-bills are what the rising rate is paid on, so they rise with it: +14.8% in the 12 months to September 1981. They never lost money in the 20 episodes (the lowest was 0.0%, in 2013).

After inflation it is a different score. In the 7 bad episodes T-bills beat US inflation 4 times, with a median real return of +0.4%. In the 12 months to October 2022 they returned 0.8% while prices rose 7.8%. Nothing held its purchasing power every time: gold beat inflation in 2 of the 7, US stocks and every stock-bond mix in none.

## Gold: the biggest wins and the biggest loss

Gold's median in the bad 7 is 0.0%, and that median hides the widest spread in the table: +59.0% in the 12 months to October 1974, −34.1% in the 12 months to September 1981. It rose in 3 of the 7. Adding 10% of it to a 60/40 (60/30/10) did not change the median loss in the bad years (−7.0%). Before 1968 the price was fixed at $35, so 1966 shows no move. Our [oil-shock study](https://portfolio-terminal.com/blog/russia-saudi-oil-gold-portfolio) found the same pattern over weeks: gold helps, then gives it back. The fund most people hold it through is [GLD](https://portfolio-terminal.com/analyse/gld); [GLD vs TLT](https://portfolio-terminal.com/compare/gld-vs-tlt) puts it next to long Treasuries.

## Which stocks held up

Ken French's 12 US industry portfolios, same 7 bad episodes:

| Industry | Median, bad 7 | Up, bad 7 | Median, hot 14 |
|---|---|---|---|
| Consumer non-durables (food, tobacco, apparel) | +0.5% | 4 | +3.7% |
| Utilities | −0.7% | 3 | +2.0% |
| Health care | −2.2% | 3 | +5.7% |
| Energy | −7.8% | 2 | +13.3% |
| Business equipment (tech) | −10.3% | 2 | +2.0% |
| Finance | −10.9% | 2 | +7.0% |
| Retail and wholesale | −15.4% | 2 | +6.2% |

Staples came closest to holding flat; the usual fund for them is [XLP](https://portfolio-terminal.com/analyse/xlp). Energy is the trap: it led across the 14 high-inflation spikes, with a median of +13.3%, and still lost 7.8% in the ones where the market fell.

## And after the spike

The loss on bonds was mostly deferred income. In the 12 months after the sharpest month of each spike, 10-year Treasuries gained 18 times out of 20, a median **8.3%**, and beat T-bills 14 times. The two exceptions were the 12 months to March 2022 (−3.6%) and to October 2023 (−2.5%).

![Paired bars for each of the 20 yield spikes since 1963: the 10-year Treasury's total return during the 12 months of the spike, negative in 19 of 20, and over the next 12 months, positive in 18 of 20 with gains of 42% after 1981 and 38% after 1984](https://portfolio-terminal.com/blog-sources/portfolio-when-bond-yields-rise-after-the-spike.png "Pink: the 12 months to the sharpest month of each spike; green: the 12 months after. Source: FRED DGS10, a par 10-year bond repriced monthly; Portfolio Terminal calculations.")

The catch is timing. The sharpest month is only known afterwards; in 2021 the next year brought a bigger spike, not a rebound. Nobody we tested could call the turn in yields: in [our walk-forward test](https://portfolio-terminal.com/blog/treasury-bonds-rising-yields-risk-hedge-2026) no model beat "no change".

## What it means for a portfolio today

On September 24, 2026 the 10-year yield was 5.18%, up 1.02 points on the year, with US inflation at 3.4% in August: the high-inflation side of the table, where the 7 bad episodes sit. The S&P 500 was still up 16.7% on the year. This is not a forecast, and it is not investment advice.

What the 20 episodes say about a portfolio is narrower: in a yield spike, the part meant to cushion a stock fall is only as good as its maturity. Long bonds ([TLT](https://portfolio-terminal.com/analyse/tlt)) and a total bond fund ([BND vs TLT](https://portfolio-terminal.com/compare/bnd-vs-tlt)) carried the loss; T-bills didn't. To see what your own holdings would have done, [replay 2022 on your portfolio](https://portfolio-terminal.com/crash-test), and check how much of it sits in long bonds and rate-sensitive funds with the [portfolio X-ray](https://portfolio-terminal.com/x-ray). Every study in the series is on the [research page](https://portfolio-terminal.com/research).

## How we measured

Monthly returns from February 1962 to August 2026. US stocks are the CRSP value-weighted US market with dividends (Ken French's Mkt-RF plus RF); T-bills are the 1-month Treasury bill (Ken French RF). The 10-year Treasury is built from FRED's DGS10: each month a par 10-year bond is bought at last month's close and repriced at this month's, one month shorter, plus a month of coupon. On calendar years it returns −7.1% for 1994 and −16.4% for 2022. Gold is the World Bank Pink Sheet monthly average price, so it smooths month-end swings. Industries are Ken French's 12 value-weighted portfolios. Portfolios are rebalanced every month, with no fees or taxes. Real returns deduct CPI (FRED CPIAUCSL) over the same 12 months.

The 20 episodes are part 1's: runs of months when the 10-year yield was up 1 point or more on the year, each measured over the 12 months ending at its sharpest month. "Bad" means the S&P 500 price index fell over those months. What would change the result: the episodes are chosen in hindsight, so a live strategy would enter late and leave late; a shorter bond than 10 years would lose less in each spike and earn less after it.

## Reproduce it

The headline counts, T-bills up in 7 of the 7 bad episodes and the 10-year Treasury in 0, in about 60 lines of Python on public data only: FRED for the 10-year yield and CPI, Yahoo Finance for the S&P 500, Ken French for stocks and T-bills, month-ends through August 2026. Gold is left out, because the Pink Sheet is an Excel file. We ran it on September 29, 2026; it finds part 1's 20 episodes, then prints the counts.

```python
# Reproduces https://portfolio-terminal.com/blog/portfolio-when-bond-yields-rise
# pip install pandas yfinance
# Month-ends through August 2026. Gold is left out: its source is an Excel file.
import pandas as pd
import yfinance as yf

END = "2026-08"
FRED = "https://fred.stlouisfed.org/graph/fredgraph.csv?id={}&coed=2026-09-25"
FRENCH = "https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_CSV.zip"

def month_end(s):
    return s.groupby(s.index.to_period("M")).last()

def fred(series):
    s = pd.read_csv(FRED.format(series), index_col=0, parse_dates=True, na_values=".").iloc[:, 0]
    return month_end(s.dropna())

y10, cpi = fred("DGS10"), fred("CPIAUCSL")  # 10-year yield in %, CPI
spx = yf.Ticker("^GSPC").history(start="1960-01-01", end="2026-09-01", auto_adjust=False)["Close"]
spx = month_end(spx.tz_localize(None))

ff = pd.read_csv(FRENCH, skiprows=3, index_col=0)  # monthly block, then annual
ff = ff[ff.index.astype(str).str.strip().str.fullmatch(r"\d{6}")].astype(float) / 100
ff.index = pd.PeriodIndex(ff.index.str.strip(), freq="M")

# Par 10-year bond bought at last month's yield, repriced a month later, plus a month of coupon.
c, y, t = y10.shift(1) / 100, y10 / 100, 10 - 1 / 12
v = (1 + y / 2) ** (-2 * t)
bond = c / y * (1 - v) + v - 1 + c / 12

r = pd.DataFrame({"stocks": ff["Mkt-RF"] + ff["RF"], "T-bills": ff["RF"], "10y Treasury": bond}).loc["1962-02":END]
r["60/40 Treasuries"] = 0.6 * r["stocks"] + 0.4 * r["10y Treasury"]
r["60/40 T-bills"] = 0.6 * r["stocks"] + 0.4 * r["T-bills"]

# Part 1's episodes: runs of months with the yield up 1 point or more on the year
# (gaps under a quarter joined), each taken at its sharpest month.
m = pd.DataFrame({"dy": y10 - y10.shift(12), "spx": spx / spx.shift(12) - 1, "cpi": cpi / cpi.shift(12) - 1}).loc[:END].dropna()
hits = m[m["dy"] >= 1]
run = (pd.Series([p.ordinal for p in hits.index]).diff() > 3).cumsum().values
peaks = hits.groupby(run)["dy"].idxmax()

def pct(p, first, last):
    return ((1 + r.loc[p + first:p + last]).prod() - 1).mul(100).round(1)

ep = pd.DataFrame({p: pct(p, -11, 0) for p in peaks}).T
after = pd.DataFrame({p: pct(p, 1, 12) for p in peaks}).T
bad = m.loc[peaks, "spx"].values < 0
print(f"{len(ep)} episodes, {(m.loc[peaks, 'cpi'] >= 0.03).sum()} with inflation at 3%+, stocks fell in {bad.sum()}")
print("During the 12 months of the spike:")
for col in r.columns:
    print(f"  {col:17} up in {(ep[col][bad] > 0).sum()} of {bad.sum()} bad episodes (median {ep[col][bad].median():.1f}%),"
          f" up in {(ep[col] > 0).sum()} of {len(ep)}")
print(f"  T-bills beat the 10y Treasury in {(ep['T-bills'] > ep['10y Treasury']).sum()} of {len(ep)}")
print(f"In the 12 months after: 10y Treasury up in {(after['10y Treasury'] > 0).sum()} of {len(after)}"
      f" (median {after['10y Treasury'].median():.1f}%), beat T-bills in {(after['10y Treasury'] > after['T-bills']).sum()}")
```

```text
20 episodes, 14 with inflation at 3%+, stocks fell in 7
During the 12 months of the spike:
  stocks            up in 1 of 7 bad episodes (median -7.4%), up in 13 of 20
  T-bills           up in 7 of 7 bad episodes (median 6.1%), up in 19 of 20
  10y Treasury      up in 0 of 7 bad episodes (median -5.5%), up in 1 of 20
  60/40 Treasuries  up in 1 of 7 bad episodes (median -6.6%), up in 12 of 20
  60/40 T-bills     up in 2 of 7 bad episodes (median -2.5%), up in 15 of 20
  T-bills beat the 10y Treasury in 20 of 20
In the 12 months after: 10y Treasury up in 18 of 20 (median 8.3%), beat T-bills in 14
```

Sources: [FRED, 10-year Treasury constant maturity rate (DGS10)](https://fred.stlouisfed.org/series/DGS10) · [FRED, consumer price index (CPIAUCSL)](https://fred.stlouisfed.org/series/CPIAUCSL) · [Kenneth R. French Data Library](https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html) · [World Bank commodity prices (Pink Sheet)](https://www.worldbank.org/en/research/commodity-markets) · [S&P 500 index history, Yahoo Finance](https://finance.yahoo.com/quote/%5EGSPC/history/)

## Questions and answers

**What should you invest in when bond yields rise?**

History gives a narrow answer. In the 20 episodes from 1963 to August 2026 when the 10-year Treasury yield rose 1 point or more within a year, 1-month Treasury bills gained 19 times and beat 10-year Treasuries all 20 times. In the 7 of those episodes when the S&P 500 fell, Treasury bills gained all 7 times, a median 6.1%. Nothing else did.

**Do bonds protect a portfolio when stocks fall?**

Only when stocks fall for a reason that pushes yields down. In the 7 yield spikes since 1963 when the S&P 500 fell, 10-year Treasuries lost money every time, and a 60/40 portfolio of US stocks and 10-year Treasuries lost a median 6.6% against 7.4% for stocks alone. In the 12 months to October 2022 it lost 17.3%, stocks 17.5%.

**Is cash a good hedge against rising interest rates?**

In nominal terms, yes: 1-month Treasury bills rose in 19 of the 20 yield spikes since 1963 and in all 7 when stocks fell. After inflation it is thinner: they beat US inflation in 4 of those 7 episodes and 11 of the 20. In the 12 months to October 2022, T-bills returned 0.8% with inflation at 7.8%.

**Does gold protect against rising bond yields?**

Not reliably. In the 7 yield spikes since 1963 when the S&P 500 fell, gold rose 3 times, with a median of 0.0%: +59.0% in the 12 months to October 1974, −34.1% in the 12 months to September 1981. Before 1968 its price was fixed at $35 an ounce, so the 1966 episode shows no move at all.

**Which stock sectors hold up when yields rise?**

Consumer staples came closest. In the 7 yield spikes since 1963 when the S&P 500 fell, Ken French's consumer non-durables industry (food, tobacco, apparel, toys) returned a median +0.5% and rose 4 times; utilities −0.7% and health care −2.2%. Retail and wholesale lost a median 15.4%. Energy led across the 14 high-inflation spikes (median +13.3%) but lost 7.8% in the bad 7.

**What happens to bonds after yields stop rising?**

They tend to earn it back. In the 12 months after the sharpest month of each of the 20 yield spikes since 1963, 10-year Treasuries gained 18 times, a median 8.3%, and beat Treasury bills 14 times. The two losses were the 12 months to March 2022 (−3.6%) and to October 2023 (−2.5%). The catch: the sharpest month is only known afterwards.
