US Real Mortgage Rate: 30-Year Mortgage Minus CPI Inflation, Monthly Since 1971

US Real Mortgage Rate — 30-year fixed mortgage rate minus CPI year-over-year inflation, in points of percentage. An Eco3min monthly composite since 1971, the ex-post measure of housing-credit cost. CSV download, free.

The US Real Mortgage Rate is an Eco3min-defined monthly composite measuring the inflation-adjusted cost of 30-year housing credit. Calculated as the Freddie Mac 30-year fixed mortgage rate (MORTGAGE30US) minus CPI year-over-year inflation, expressed in points of percentage, the US Real Mortgage Rate isolates what a borrower effectively pays over the life of the loan once general price-level changes are stripped out. The series runs monthly from April 1971 to present. When the real rate turns deeply negative (as in 2021–2022), nominal debt is eroded faster than it accrues interest; when sharply positive (as in 2023–2024), housing credit becomes genuinely restrictive. 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: US Real Mortgage Rate (1971–present) · Eco3min composite


US 30-Year Mortgage Rate — nominal component of the real rate
FRED chart — MORTGAGE30US

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 real rate itself — nominal rate minus CPI year-over-year inflation — is computed in the Python and R examples further down this page.


Macro Takeaway

The US Real Mortgage Rate is arguably the single most consequential interest rate for American households, since residential mortgages represent the largest debt class held by the household sector. Across the 1971–2026 sample, the real rate has spent roughly one-third of its history below zero, with two distinct negative-rate regimes: the late-1970s and early-1980s high-inflation episode, and the 2021–2022 post-pandemic episode. The regime transition from −4% in 2022 to +4% in 2023 was among the largest two-year shifts in the series.

Cross-referencing the US Real Mortgage Rate with the Real US Home Price Index and the 10-year Treasury yield situates housing credit within the broader real-rate regime. Historically, periods of sustained deeply negative real mortgage rates have coincided with the largest real housing-price appreciations — though the relationship is not causal in any narrow sense, since credit supply and demographic demand also matter.


Construction & Components

The US Real Mortgage Rate uses the standard ex-post Fisher decomposition: the nominal mortgage rate minus realized year-over-year CPI inflation. Both inputs are percentage points, and the result is also expressed in percentage points (not as an index level).

Formula:

Real Mortgage Rate = MORTGAGE30US − CPI YoY
                     (both in percentage points,
                      ex-post realized inflation)

Components:

  • Freddie Mac 30-Year Fixed-Rate Mortgage Average — FRED series MORTGAGE30US, weekly survey of conforming-loan originations, aggregated to monthly. The nominal cost of 30-year housing credit. Published every Thursday for the week. © Freddie Mac (citation required).
  • CPI-U All Items year-over-year change — derived from FRED series CPIAUCSL (BLS), monthly with ~2-week publication lag. The realized inflation rate used as the deflator. Public domain.

Frequency reconciliation: The Freddie Mac series is natively weekly; the construction averages weekly observations into a monthly figure on a calendar-month basis. CPI YoY is computed as the 12-month percentage change of CPIAUCSL. The two series are then matched on the month and subtracted, as implemented in the code below. No interpolation is used.

Coverage: April 1971 to present. The start date is constrained by the inception of the Freddie Mac Primary Mortgage Market Survey, which began in 1971. CPI-U has a longer history, so the binding constraint is mortgage data availability.


Dataset Overview

IndicatorUS Real Mortgage Rate (1971–present)
GeographyUnited States
FrequencyMonthly
Period1971–present
Variablesdate, mortgage_30y, cpi_yoy, real_mortgage_rate
FormatReproducible from public FRED components (code below)
SourcesFreddie Mac (MORTGAGE30US) & BLS (CPIAUCSL), via FRED
Last updatedMonthly with each CPI 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 real rate. 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.

ColumnTypeDescription
dateDate (YYYY-MM-DD)First day of the reference month
mortgage_30yFloat30-year fixed mortgage rate, monthly average of weekly PMMS observations (%)
cpi_yoyFloatCPI year-over-year inflation (%)
real_mortgage_rateFloatReal mortgage rate: mortgage_30y minus cpi_yoy (%)

FRED Direct CSV Access — Source Components

Both components of the US Real Mortgage Rate are publicly available from FRED:

https://fred.stlouisfed.org/graph/fredgraph.csv?id=MORTGAGE30US
https://fred.stlouisfed.org/graph/fredgraph.csv?id=CPIAUCSL

Both endpoints return the raw component data in CSV format — no download or API key required.


Reproducing the Real Rate 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=".")
cpi = pd.read_csv(base + "CPIAUCSL",     parse_dates=["observation_date"], na_values=".")

# Weekly mortgage rate -> calendar-month average
m30m = (m30.set_index("observation_date")["MORTGAGE30US"]
           .resample("MS").mean())

# CPI year-over-year inflation
cpi_yoy = (cpi.set_index("observation_date")["CPIAUCSL"]
              .pct_change(12) * 100)

df = pd.concat({"mortgage_30y": m30m, "cpi_yoy": cpi_yoy}, axis=1).dropna()
df["real_mortgage_rate"] = df["mortgage_30y"] - df["cpi_yoy"]

print(df.tail())
print(df["real_mortgage_rate"].describe())

Reproducing the Real Rate in R

library(readr)
library(dplyr)
library(lubridate)

base <- "https://fred.stlouisfed.org/graph/fredgraph.csv?id="
m30 <- read_csv(paste0(base, "MORTGAGE30US"), na = ".")
cpi <- read_csv(paste0(base, "CPIAUCSL"),     na = ".")

m30m <- m30 |>
  mutate(date = floor_date(observation_date, "month")) |>
  group_by(date) |>
  summarise(mortgage_30y = mean(MORTGAGE30US, na.rm = TRUE))

cpi_yoy <- cpi |>
  mutate(date = observation_date,
         cpi_yoy = (CPIAUCSL / lag(CPIAUCSL, 12) - 1) * 100) |>
  select(date, cpi_yoy)

df <- inner_join(m30m, cpi_yoy, by = "date") |>
  mutate(real_mortgage_rate = mortgage_30y - cpi_yoy) |>
  filter(!is.na(real_mortgage_rate))

summary(df$real_mortgage_rate)

Both examples pull the components directly from FRED and reproduce the full monthly real-rate series since 1971 — no download or API key required.


Methodology

The US Real Mortgage Rate combines MORTGAGE30US (weekly) and CPIAUCSL (monthly). Weekly mortgage observations are averaged into a monthly figure on a calendar-month basis; CPI YoY is computed as the 12-month percentage change of CPIAUCSL. The two series are then aligned and subtracted to yield the monthly real rate. 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; re-running the code against the live FRED endpoints automatically propagates any component revisions.

This is an ex-post real rate — it uses realized inflation, not survey-based or market-implied inflation expectations. An ex-ante real rate would substitute, for example, the University of Michigan median 12-month inflation expectation or 1-year TIPS breakeven for CPI YoY; the two measures can diverge meaningfully around inflation turning points.


Data Quality & Provider Notes

Latency for the US Real Mortgage Rate is dictated by the CPI release calendar (~2-week lag after the reference month). Mortgage rate data is available almost in real time at weekly frequency, so the binding constraint is inflation publication.

BLS occasionally revises CPI-U for prior periods during its annual benchmark cycle. Because the recipe pulls the live FRED endpoints, any such revisions are automatically reflected the next time the code is run.

No direct equivalent series exists on FRED or Bloomberg — the real mortgage rate must be constructed, which is the entire point of this composite. Survey-based real rate measures using inflation expectations exist but are less widely cited than the ex-post measure used here. The methodology mirrors the academic-standard ex-post Fisher decomposition.


What This Index Captures (And What It Doesn’t)

The US Real Mortgage Rate measures the realized inflation-adjusted cost of 30-year fixed-rate housing credit at the moment of origination. It is a powerful summary of the housing-credit regime, but it does not directly translate into household affordability or transaction outcomes.

What it captures:

  • The realized real cost of 30-year fixed housing credit, ex post
  • The relative attractiveness of refinancing or new origination across cycles
  • The real-rate component of the housing affordability equation (the other components being real prices and real income)
  • Macro regime shifts in housing finance, particularly across high- and low-inflation eras

What it does NOT capture (common misinterpretations):

  • Forward-looking borrowing cost. Households deciding whether to take a mortgage care about expected real cost, not realized real cost. Ex-post and ex-ante real rates can diverge meaningfully when inflation surprises (positively or negatively).
  • Borrower-level affordability. A monthly mortgage payment is a function of the nominal rate, the loan principal, and household income — not the real rate. Two periods with the same real rate but different nominal rates produce very different monthly cash flows.
  • Mortgage-spread effects. The composite uses the headline 30-year rate, which is the Treasury rate plus a credit spread that varies with mortgage-backed securities market conditions. A widening of the mortgage spread raises the real mortgage rate even when the real Treasury yield is unchanged.
  • Causal direction with housing prices. Historical correlation between negative real rates and price appreciation is consistent across cycles, but credit supply, demographic demand, and supply elasticity also drive prices. Real rates are one input among several.

The US Real Mortgage Rate is best used as a regime-identification gauge and as one component when assessing housing-credit conditions, not as a standalone affordability metric.


Historical Regimes

The US Real Mortgage Rate spans more than five decades and several distinct interest-rate regimes, each defined by a specific configuration of inflation, monetary policy, and credit availability.

  • 1971–1980 — The negative-rate era. Sustained CPI inflation above mortgage rates kept the real rate negative for most of the decade, reaching below −6% in 1979. A historically unique environment for housing finance.
  • 1981–1986 — The Volcker positive shock. Aggressive Fed tightening pushed nominal mortgage rates above 16% while inflation receded, producing real rates above +8% — the highest in the series. Coincided with severe stress in housing finance and the S&L crisis precursors.
  • 1987–2000 — Normalization. The US Real Mortgage Rate stabilized in a +3% to +6% band as inflation expectations anchored. Mortgage finance gradually deepened.
  • 2001–2007 — Pre-crisis compression. The real rate fell to +1% to +3% as global savings flows compressed long rates faster than inflation declined. Coincided with the expansion of subprime lending and the housing boom.
  • 2009–2019 — Post-GFC near-zero. The real rate spent most of the decade between +1% and +3%, supported by sustained Fed accommodation and low realized inflation.
  • 2021–2022 — Deeply negative again. Nominal mortgage rates remained below 4% while CPI inflation surged above 8%, pushing the real rate below −5% — the most negative reading since 1980. Coincided with the post-pandemic real housing-price surge documented in the Real US Home Price Index.
  • 2023–2026 — Rapid positive reversal. Within roughly 18 months, the real rate moved from below −5% to above +4% as nominal rates rose and CPI YoY declined. One of the fastest real-rate regime shifts in the post-1971 sample.

For analytical context on how real mortgage rates interact with real housing prices to determine affordability, see the rates vs prices housing affordability study.


Related Macroeconomic Datasets

The real mortgage rate is the housing-credit pivot. It anchors the long end of household borrowing cost and connects directly to Treasury yields, credit spreads, and real housing prices. The nominal side of that anchor breaks into the split between the 10-year Treasury and the mortgage spread.

Related Research

Housing affordability is the joint outcome of real prices and real rates; the trade-off between the two defines what households actually pay each month.


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, 30-Year Fixed-Rate Mortgage Average (FRED: MORTGAGE30US)
  • US Bureau of Labor Statistics, Consumer Price Index for All Urban Consumers (FRED: CPIAUCSL)

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.