Mortgage Spread: 30-Year Mortgage Rate Minus 10-Year Treasury Yield Weekly Since 1971
The Mortgage Spread is an Eco3min weekly composite that measures the premium of the 30-year fixed mortgage rate over the 10-year Treasury yield, isolating the credit, prepayment, and liquidity premium baked into US housing finance since 1971.
The Mortgage Spread is an Eco3min-defined weekly composite that measures the premium of the 30-year fixed mortgage rate over the 10-year Treasury yield. Calculated as MORTGAGE30US (Freddie Mac Primary Mortgage Market Survey) minus DGS10 (US Treasury constant-maturity yield) and converted to basis points, the Mortgage Spread isolates the credit, prepayment, and MBS market premium embedded in US housing finance. Historically anchored in a 150–200 bps range, it widened to over 300 bps in 2022–2023 — a level not seen since the early 1980s — as the Federal Reserve shifted from MBS buyer to net seller. Because the Freddie Mac component is provider-copyrighted, Eco3min publishes the full construction recipe rather than a mirrored file: the series is reproducible in a few lines of code from the two public FRED components below.
Indicator: Mortgage Spread — 30Y Mortgage vs 10Y Treasury (1971–present) · Eco3min composite

Source: Federal Reserve Bank of St. Louis (FRED). Chart generated and served by FRED.
The chart above shows the nominal mortgage-rate component, generated and served by FRED. The spread itself — MORTGAGE30US minus DGS10 — is computed in the Python and R examples further down this page.
Macro Takeaway
The Mortgage Spread measures something the 10-year Treasury yield alone cannot: the cost of borrowing for housing after intermediaries, MBS investors, and prepayment hedgers extract their compensation. Two equally moving forces — the Fed’s balance sheet composition and primary dealer balance-sheet capacity — determine whether the spread sits at its 150–200 bps long-run norm or expands into stress territory.
When the spread widens while the 10-year Treasury yield is stable, the marginal mortgage borrower faces a tighter financial condition than the Treasury curve alone would suggest. The 2022–2023 episode — during which the spread crossed 300 bps for the first time since 1981 — coincided with the Fed’s MBS runoff, the largest realignment of MBS demand in a generation.
Construction & Components
The Mortgage Spread isolates the premium baked into 30-year mortgage pricing once the risk-free Treasury yield is removed. By construction, it captures the residual: MBS investor compensation, prepayment optionality, primary-dealer profit, and credit/liquidity risk.
Formula:
Mortgage Spread (bps) = (MORTGAGE30US − DGS10) × 100
Components:
- 30-Year Fixed Mortgage Rate — FRED ticker
MORTGAGE30US— weekly, published Thursdays by Freddie Mac via the Primary Mortgage Market Survey (PMMS). Represents the conforming 30-year fixed-rate offer rate to qualified borrowers. © Freddie Mac (citation required). - 10-Year US Treasury Constant-Maturity Yield — FRED ticker
DGS10— daily, published by the US Treasury via H.15 Selected Interest Rates. Constant-maturity interpolation of the on-the-run Treasury curve. Public domain.
Frequency reconciliation: MORTGAGE30US is weekly Thursday; DGS10 is daily. The construction aligns to the MORTGAGE30US release calendar, pairing each weekly mortgage observation with the same-day (Thursday) DGS10 close — an inner join on the observation date, as implemented in the code below. No interpolation is applied to either component.
Coverage: 1971-04-02 to present, limited by the start of the Freddie Mac PMMS survey. The earliest decade (1971–1981) reflects pre-securitization mortgage pricing and is comparatively thin in observation density.
Dataset Overview
| Indicator | Mortgage Spread — 30Y Mortgage vs 10Y Treasury (1971–present) |
|---|---|
| Geography | United States |
| Frequency | Weekly |
| Period | 1971–present |
| Variables | observation_date, MORTGAGE30US, DGS10, spread_bps |
| Format | Reproducible from public FRED components (code below) |
| Sources | Freddie Mac (MORTGAGE30US) & US Treasury (DGS10), via FRED |
| Last updated | Weekly with each PMMS release — see FRED |
Licensing note: the MORTGAGE30US component is © Freddie Mac and flagged “Copyrighted: Citation Required” on FRED, so Eco3min does not host a pre-merged file of the spread. Both components are freely downloadable from FRED, and the composite is a pure arithmetic transformation reproduced by the code below.
Dataset Variables
Running the code below produces a table with the following columns.
| Column | Type | Description |
|---|---|---|
observation_date | Date (YYYY-MM-DD) | Weekly observation date (Thursday) |
MORTGAGE30US | Float | 30-year fixed mortgage rate (%) |
DGS10 | Float | 10-year Treasury yield, same-day close (%) |
spread_bps | Float | Mortgage spread in basis points |
FRED Direct CSV Access — Source Components
The Mortgage Spread is constructed from two FRED series that can be downloaded individually:
https://fred.stlouisfed.org/graph/fredgraph.csv?id=MORTGAGE30US https://fred.stlouisfed.org/graph/fredgraph.csv?id=DGS10
Both endpoints return the raw component data in CSV format — no download or API key required.
Reproducing the Spread in Python
import pandas as pd base = "https://fred.stlouisfed.org/graph/fredgraph.csv?id=" m30 = pd.read_csv(base + "MORTGAGE30US", parse_dates=["observation_date"], na_values=".") t10 = pd.read_csv(base + "DGS10", parse_dates=["observation_date"], na_values=".") # Inner join on the date: each Thursday PMMS release paired # with the same-day DGS10 close (no interpolation) df = m30.merge(t10, on="observation_date", how="inner").dropna() df["spread_bps"] = (df["MORTGAGE30US"] - df["DGS10"]) * 100 print(df.tail()) print(df["spread_bps"].describe())
Reproducing the Spread in R
library(readr) library(dplyr) base <- "https://fred.stlouisfed.org/graph/fredgraph.csv?id=" m30 <- read_csv(paste0(base, "MORTGAGE30US"), na = ".") t10 <- read_csv(paste0(base, "DGS10"), na = ".") df <- inner_join(m30, t10, by = "observation_date") |> filter(!is.na(MORTGAGE30US), !is.na(DGS10)) |> mutate(spread_bps = (MORTGAGE30US - DGS10) * 100) summary(df$spread_bps)
Both examples pull the components directly from FRED and reproduce the full weekly spread series since 1971 in a few lines — no download or API key required.
Methodology
The Mortgage Spread pairs the latest Freddie Mac PMMS observation (MORTGAGE30US) with the matching Thursday DGS10 close, joins the two series on the date key, and computes (MORTGAGE30US − DGS10) × 100 to express the result in basis points. No smoothing, interpolation, or proprietary adjustment is applied to the underlying data — the composite is a pure arithmetic transformation of two public FRED series, which is why it is published here as a reproducible recipe rather than a hosted file.
Historical revisions to either component propagate automatically each time the recipe is re-run against the live FRED endpoints.
Data Quality & Provider Notes
The Mortgage Spread inherits the release timing of its slowest component. MORTGAGE30US is published weekly on Thursdays by Freddie Mac, so the composite cannot be fresher than a Thursday-of-the-week observation, even though DGS10 is updated daily. Users seeking intra-week dynamics should refer to the 10-year Treasury yield directly.
MORTGAGE30US is a survey-based offer rate (the rate lenders are quoting), not an executed transaction rate. Effective borrower cost can differ by 10–30 bps through points and fees, independently of the headline rate. DGS10 revisions are infrequent but can occur when the Treasury restates settlement-day data; such revisions propagate to the composite on the next re-run of the recipe.
No alternative public series replicates this exact construction. Bankrate, Optimal Blue, and the MBA Weekly Applications Survey offer adjacent mortgage rate measures but each defines the rate differently (Bankrate is daily, Optimal Blue is locked-rate, MBA is application-weighted), making direct substitution non-trivial.
What This Indicator Captures (And What It Doesn’t)
The Mortgage Spread is a useful diagnostic for the housing finance channel, but it conflates several distinct risk premia. Reading it as a single signal can be misleading. The cleaner read separates the layers in the mortgage-Treasury spread, decomposed component by component.
What it captures:
- The aggregate premium MBS investors require above risk-free Treasuries to hold callable mortgage cashflows.
- Prepayment optionality: the cost of the borrower’s right to refinance, which is highest when rate volatility is high.
- Shifts in the marginal MBS buyer — particularly the Federal Reserve’s transition between net purchaser, holder, and net seller of agency MBS.
- Primary dealer balance-sheet capacity to warehouse and securitize new originations.
What it does NOT capture (common misinterpretations):
- Effective borrower cost. MORTGAGE30US excludes points, lender fees, and locked-vs-offered differentials. Two periods with identical headline spreads can differ by 20–40 bps in true borrower cost.
- Credit risk on the underlying loans. Conforming mortgages eligible for agency securitization carry a US government implicit guarantee. The spread reflects MBS market dynamics, not borrower default risk.
- Housing affordability. Affordability depends on the level of mortgage rates, home prices, and income jointly. A compressing spread can coexist with worsening affordability if the Treasury yield rises.
- A timing signal for housing activity. The relationship between the spread and home sales operates with variable lags and is conditioned on inventory, demographics, and the regional concentration of refinanceable loans. Spreads have widened during both expansions and downturns.
Used in combination with the underlying 10-year Treasury yield and the 10Y–2Y spread, the Mortgage Spread helps decompose housing finance stress into its risk-free and risk-premium parts — without claiming to be a single-number summary of the housing cycle.
Historical Regimes
Five episodes define the Mortgage Spread distribution since 1971.
- 1971–1981 — Pre-securitization baseline: the spread oscillated between 100 and 250 bps in a market where MBS issuance was nascent and depository institutions held the vast majority of mortgage credit. Volatility of the spread was lower than the volatility of either component.
- 1981–1982 — Volcker shock peak: the spread briefly exceeded 300 bps as the Fed Funds rate spiked past 19% and Treasury volatility hit historical highs, making mortgage prepayment options nearly worthless and forcing extreme compensation for MBS holders.
- 1990s–2007 — Securitization normalization: the Mortgage Spread stabilized in a 150–200 bps range as MBS markets deepened, prepayment models matured, and primary dealer intermediation became routine.
- 2008–2021 — QE compression era: the Fed’s QE1, QE2, QE3, and pandemic-era MBS purchases drove the spread to durably low levels, frequently below 150 bps and at times below 130 bps. The Fed became the marginal MBS buyer.
- 2022–2024 — Quantitative tightening repricing: the spread crossed 300 bps in October 2022 for the first time since 1981 and remained elevated through 2024 as the Fed shifted to MBS runoff, banks reduced duration exposure after the SVB episode, and primary dealer warehousing capacity tightened. Cross-referencing the 10-year Treasury yield over the same window shows that approximately half of the rise in mortgage rates came from the spread itself, not from the Treasury curve.
Related Macroeconomic Datasets
The Mortgage Spread sits within the US Treasury complex: it depends on the 10-year yield as a base, on the Fed Funds rate via duration positioning, and on the yield curve slope via prepayment dynamics. The datasets below cover the rate environment in which the spread operates.
- US 10-Year Treasury Yield — The risk-free base rate from which the Mortgage Spread is measured
- US 2-Year Treasury Yield — Short-end policy expectations affecting mortgage origination economics
- US 3-Month Treasury Bill — Money-market benchmark for primary dealer funding costs
- US 30-Year Treasury Yield — Long-duration benchmark closer in maturity to MBS cashflows
- Federal Funds Rate History — Policy rate that anchors the Treasury curve and MBS hedge costs
- Yield Curve Spread (10Y–2Y) — Slope measure that conditions prepayment expectations
Macroeconomic Dataset Hub
This dataset is part of the Eco3min macro-financial data repository.
Explore the Eco3min Dataset Hub
Sources
- Freddie Mac — Primary Mortgage Market Survey, MORTGAGE30US series, weekly (Thursdays), via FRED
- US Treasury — H.15 Selected Interest Rates, DGS10 constant-maturity yield, daily, via FRED
- Eco3min Research — composite definition and reproducible construction recipe
Dataset Reference
Last updated — 4 August 2026
Disclaimer – Financial Information: The analyses, commentary, and content published on eco3min.fr are provided for informational and educational purposes only. They do not constitute investment advice or a solicitation to buy or sell financial instruments. Past performance is not indicative of future results. All investment decisions involve risk and are the sole responsibility of the reader.
