What Is the 2s10s Spread? The Yield Curve in Real Data
What the 2s10s spread is, how the Treasury yield curve works, and what past inversions looked like — every chart built from auditable market data.
The 2s10s spread is the gap between the 10-year US Treasury yield and the 2-year US Treasury yield: the 10-year rate minus the 2-year rate. When the number is positive, longer-term borrowing pays more than shorter-term borrowing — the usual state of affairs. When it turns negative, the yield curve is inverted, a condition that has come before most modern US recessions and that traders check daily.
Every figure on this page is pulled from a stored query against real Treasury yield data — expand any panel below to see the exact SQL behind it.
What is the yield curve?
A bond's yield is the annualized return you lock in by buying it at today's price and holding it to maturity — the bond-market counterpart of the income stocks distribute as cash dividends. The US Treasury borrows at many maturities at once, from one month out to 30 years, and each maturity trades at its own yield. The yield curve is that full menu at a single point in time: yields plotted from the shortest maturity on the left to the longest on the right.
The two ends of the curve answer different questions. Short maturities sit close to the Federal Reserve's policy rate — a 1-month bill mostly prices where overnight money is right now. Long maturities bundle a decade or more of expected short rates plus a term premium, the extra yield investors demand for tying money up longer and living with bigger price swings along the way.
How to read the yield curve: normal, flat, and inverted
Three shapes cover most of what you will hear about:
- Normal (upward-sloping): each longer maturity yields a little more than the one before it.
- Flat: short and long yields sit nearly on top of each other.
- Inverted: short maturities out-yield long ones — the line slopes downward.
Here is the actual curve, using the most recent published yield for each maturity:
The exact SQL behind every number
SELECT
m.1 AS maturity,
round(m.2, 2) AS yield_pct
FROM
(
SELECT arrayJoin([
('1 month', argMaxIf(yield_1_month, date, isNotNull(yield_1_month))),
('3 month', argMaxIf(yield_3_month, date, isNotNull(yield_3_month))),
('1 year', argMaxIf(yield_1_year, date, isNotNull(yield_1_year))),
('2 year', argMaxIf(yield_2_year, date, isNotNull(yield_2_year))),
('5 year', argMaxIf(yield_5_year, date, isNotNull(yield_5_year))),
('10 year', argMaxIf(yield_10_year, date, isNotNull(yield_10_year))),
('30 year', argMaxIf(yield_30_year, date, isNotNull(yield_30_year)))
]) AS m
FROM global_markets.treasury_yields
WHERE date >= today() - INTERVAL 30 DAY
)As of the latest data, the 1-month bill yielded 3.67% while the 30-year bond yielded 4.97% — an upward slope from left to right, the "normal" shape.
How is the 2s10s spread calculated?
Take the 10-year yield, subtract the 2-year yield. That is the whole formula. The result is usually quoted in basis points (bps) — one basis point is one one-hundredth of a percentage point, so a spread of 0.50 percentage points is 50 bps.
The word "spread" just means a gap between two rates or prices. It is the same idea as the bid-ask spread on a stock, applied to two points on the Treasury curve instead of two quotes on one ticker.
Why these two maturities? The 2-year concentrates the market's view of Fed policy over the next couple of years, while the 10-year is the benchmark long rate that sits behind mortgage and corporate borrowing costs. Their difference compresses the slope of the whole curve into one number.
Is the yield curve still inverted? The 2s10s today
The exact SQL behind every number
SELECT
date AS as_of,
round(yield_2_year, 2) AS two_year_pct,
round(yield_10_year, 2) AS ten_year_pct,
round(yield_10_year - yield_2_year, 2) AS spread_pct,
round((yield_10_year - yield_2_year) * 100) AS spread_bps
FROM global_markets.treasury_yields
WHERE isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date DESC
LIMIT 1As of 2026-07-01, the 2-year Treasury yielded 4.17% and the 10-year yielded 4.48%, putting the 2s10s spread at 0.31 percentage points, or 31 bps. That reading is positive — on the latest close in this data, the curve was not inverted.
Twenty years of the 2s10s spread, month by month
A single day's spread is a snapshot; the story lives in the series. The chart below averages the daily 2s10s by month over the last 20 years. The line that matters most is zero: every dip below it is an inversion.
The exact SQL behind every number
SELECT
toStartOfMonth(date) AS month,
round(avg(yield_10_year - yield_2_year), 2) AS spread_pct
FROM global_markets.treasury_yields
WHERE date >= toStartOfMonth(now()) - INTERVAL 20 YEAR
AND date < toStartOfMonth(now())
AND isNotNull(yield_10_year)
AND isNotNull(yield_2_year)
GROUP BY month
ORDER BY monthThe window opens slightly below zero, at -0.03 percentage points — the tail end of the mid-2000s inversion. The long stretch under the zero line on the right side of the chart is the 2022–2024 episode, the one most readers will remember. The most recent full month in the window averaged 0.36 percentage points.
Every 2s10s inversion in the data: dates, depth, duration
Chart pages make you eyeball the crossings; a query can list them precisely. Here, an inverted close is any day the 10-year finished below the 2-year, and inverted closes separated by more than 60 calendar days are treated as separate episodes.
The exact SQL behind every number
WITH inverted_closes AS
(
SELECT
date,
round((yield_10_year - yield_2_year) * 100) AS spread_bps
FROM global_markets.treasury_yields
WHERE isNotNull(yield_10_year) AND isNotNull(yield_2_year)
AND yield_10_year < yield_2_year
),
flagged AS
(
SELECT
date,
spread_bps,
if(dateDiff('day', lagInFrame(date, 1, date) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), date) > 60, 1, 0) AS starts_new_episode
FROM inverted_closes
),
episodes AS
(
SELECT
date,
spread_bps,
sum(starts_new_episode) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS episode_id
FROM flagged
)
SELECT
min(date) AS first_inverted_close,
max(date) AS last_inverted_close,
count() AS inverted_closes,
min(spread_bps) AS deepest_bps
FROM episodes
GROUP BY episode_id
ORDER BY first_inverted_closeThe table holds 11 episodes, back to the late 1970s. The deepest came first: the 1978–1980 episode bottomed at -241 bps. The longest is the most recent: between 2022-07-06 and 2024-09-05, the 2s10s closed inverted on 539 trading days, reaching a deepest close of -108 bps. At the other extreme, the August 2019 episode lasted just 3 closes, and an early-April 2022 dip only 2.
Inversions and recessions: what the record shows
The 2s10s is widely tracked as a recession indicator, so it is worth being precise about what the record does and does not show. Recession start dates are not market data — they come from the NBER's business-cycle chronology, not from a query. Per that chronology, US recessions began in January 1980, July 1981, July 1990, March 2001, December 2007, and February 2020. Each of those start dates followed a period in the table above during which the 2s10s closed inverted.
The record is messier in the other direction. The mid-1998 episode (27 inverted closes) was followed by almost three more years of expansion before the 2001 recession began. The 2022–2024 episode — the longest in the table — had been followed by no declared US recession through mid-2026. And the lead time between a first inverted close and a recession start has varied widely: the mid-2000s inversions began on 2005-12-27, roughly two years before the recession dated to December 2007.
Put plainly: in this data, every modern US recession followed an inversion, and not every inversion was followed by a recession. The spread is a summary of bond-market pricing, not a countdown clock.
Steepening, flattening, and un-inversion
Three more terms complete the vocabulary:
- Flattening — the 2s10s narrows toward zero; short and long yields converge.
- Steepening — the 2s10s widens; the gap between long and short yields grows.
- Un-inversion — a negative spread crosses back above zero.
In this data the curve un-inverted after 2024-09-05, and the monthly averages have printed above zero since — 0.36 percentage points in the latest full month. A steepening out of inversion can happen two ways: short yields falling faster than long yields (traders call this a bull steepener), or long yields rising faster than short yields (a bear steepener). The labels describe which leg of the trade moved; the spread itself only records the size of the gap.
What an inverted yield curve means for a portfolio
An inversion changes the arithmetic of holding cash versus holding long bonds: with short yields above long ones, T-bills and money-market funds out-yield long maturities without the same price swings. That is a statement about yields on offer, not a recommendation — long bonds can still outperform if yields fall from there, and cash re-prices lower whenever short rates come down.
What an inversion does not do is dictate the direction of stocks. Equities have risen through parts of past inversions and fallen through others.
FAQ
What is a normal yield curve supposed to look like?
Upward-sloping: each longer maturity yields more than the one before it. The current curve above runs from 3.67% at 1 month up to 4.97% at 30 years, which fits that shape.
Is the 2s10s spread positive or negative right now?
As of 2026-07-01, it measured 31 bps — positive, meaning the 10-year out-yielded the 2-year and the curve was not inverted on that close.
Does an inverted yield curve always mean a recession is coming?
No. In this data, every US recession since the late 1970s followed an inversion, but the reverse does not hold: the 1998 episode was followed by three more years of expansion, and the 2022–2024 episode — 539 inverted closes deep — had no declared recession after it through mid-2026.
Why would a 2-year Treasury ever yield more than a 10-year?
The 2-year hews to where the Fed's policy rate is now and where the market expects it over the next couple of years. When the market prices in much lower short rates further out, the average expected short rate over ten years can sit below today's 2-year yield — enough to pull the 10-year underneath it. That pricing is exactly what a negative 2s10s records.
What is the difference between the 2s10s and the 3-month/10-year spread?
Only the short leg. The 3-month/10-year version swaps the 2-year for a 3-month bill, which hugs the current policy rate even more tightly, and it is the variant used in some academic recession models. Both are slices of the same curve shown at the top of this page.
Check the numbers yourself
Every panel above is a stored query result — the chart, the table, and the SQL are the same object, and none of it was typed in by hand. To rerun any of these against the full Treasury history, or change a maturity and build your own spread, you can paste the SQL straight into the Strasmore terminal.