Monday, July 13, 2026probability mass ≠ 1.0
Machine-runLog-linearReceipted
THE REGRESSION DESKThe Stochastic Parrot
Regression // 031 // 2026-08-02 // the open-house line, checked

Is a house a good investment?
Stocks beat it 13.7 to 1.

The S&P/Case-Shiller national home price index against the S&P 500 (dividends reinvested), both in real (CPI-deflated) dollars, 1988-01 through 2026-05 — 460 months. Housing's real price appreciation: 1.35%/yr (1.67× total). Stocks: 8.51%/yr (22.8× total). The gap widens at 5.22%/yr and the 95% CI never comes near zero.

Editorial illustration: a two-pan balance scale, a small house sitting heavy on the low left pan, a tall tower of stacked gold coins and a rising arrow lifting the right pan high into the air.
Two-panel chart. Left: real value of $100 invested in 1988, log scale, two lines from a common start of 100 -- an amber housing line ending near 167, and a navy stocks line ending near 2,285. Right: the ratio of stocks to housing, rebased to 1.0, climbing on a log scale from 1 to about 15 with a dashed OLS trend line running through it.
Left: same real $100, Case-Shiller national home price index vs S&P 500 total return, log scale. Right: the ratio itself, stocks ÷ housing, with its own fitted trend.
38 years, same real dollar
1.67× vs 22.8×
real cumulative multiple, housing vs stocks, 1988-01–2026-05 · a 13.7-to-1 gap in the same inflation-adjusted dollars.
The gap's own trend
+5.22%/yr
stocks÷housing regressed directly against time: R²=0.83, 95% CI [4.99, 5.44] — widening, not a snapshot of one decade.

The line gets said in every open house and every family argument about renting: a house is the best investment most people ever make. It is also a testable claim, and the test does not require anything exotic — just the same national home-price index economists already use, deflated by the same CPI everyone already cites, set against the same S&P 500 every 401(k) statement already shows, with its dividends put back in instead of thrown away (a stock index that drops dividends is not measuring what an actual investor holds).

From January 1988 — as far back as the Case-Shiller national index goes — through May 2026, 460 months: a dollar of real (inflation-adjusted) home price growth turned into 1.67×, a 1.35%-a-year real return. The same dollar in the S&P 500, dividends reinvested, turned into 22.8×, 8.51% a year. Stocks beat housing by 13.7 to 1 over the same 38 years, in the same real dollars.

Fit a log-linear trend through all 460 months rather than just comparing the two endpoints, and housing's own real growth rate is 1.59%/yr (95% CI [1.49, 1.69], R²=0.68) against stocks' 6.89%/yr (CI [6.67, 7.11], R²=0.90). Both intervals are nowhere near each other, let alone near zero. The gap itself, fit directly as stocks÷housing over time, widens at 5.22%/yr (CI [4.99, 5.44], R²=0.83) — not a snapshot of one lucky decade, a persistent trend across four.

The trend-line rate and the endpoint-to-endpoint rate disagree with each other for both assets, and that disagreement is itself the most interesting number on the page. Stocks' realized CAGR (8.51%) runs above its own trend fit (6.89%) because the real S&P was flat for the entire 2000-2013 stretch (the dot-com crash into the financial crisis) and did almost all of its compounding in the thirteen years since — a curve, not a line. Housing runs the opposite way: its trend fit (1.59%) sits above its realized CAGR (1.35%) because the endpoint happens to land after the 2006 bubble and the 2012 bust roughly cancelled out. Read the table, not just the two headline multiples.

The housing side of that round trip is worth naming plainly. In real terms, the national home price index did not reclaim its January 1988 level until 1999 — twelve years in which a house, adjusted for inflation, was a flat or losing bet. It then ran up 71% in real terms by 2006, gave essentially all of it back by 2011 (real index 101, one point above where it started twenty-three years earlier), and has spent the fifteen years since climbing out of that hole. Stocks had their own lost decade in the same window and still out-ran housing through it.

What this regression does not measure, on purpose: it prices two indices, not a financed purchase. A buyer with a mortgage puts down a fraction of the price and gets the full price's appreciation on that sliver of equity — leverage this fit does not model, because turning it into a number requires a down-payment fraction, an interest rate, and a holding period this desk would have to assume rather than pull from a source, and this desk does not invent inputs to get to a headline. Leverage also cuts the other way: mortgage interest, property tax, insurance, and maintenance are real, recurring costs a stock index does not carry, and this comparison excludes those too, along with the imputed value of not paying rent. What it does measure honestly: the price of the asset itself, in the same real dollars, over the same 38 years, for both. On that measure alone, the house did not win, and the gap between the two is not closing.

The math

log(real index) ~ year · 1988-01 – 2026-05, monthly · n = 460
housing trend =+1.59%/yr, 95% CI [+1.49, +1.69] · R²=0.678 · p=9.9e-115
stocks trend =+6.89%/yr, 95% CI [+6.67, +7.11] · R²=0.902 · p=3.2e-233
the gap trend =+5.22%/yr, 95% CI [+4.99, +5.44] · R²=0.828 · p=3.3e-177
realized (endpoint) =housing +1.35%/yr (1.67×) · stocks +8.51%/yr (22.8×) · ratio 13.68×

Both indices, real terms, year by year (1988-01 = 100)

Year (Dec, or latest)Real home price index (1988-01=100)Real S&P 500 TR index (1988-01=100)Stocks ÷ housing
1988102.5107.51.05×
1989102.3135.31.32×
199095.6123.41.29×
199192.7156.41.69×
199290.8163.41.80×
199390.2175.01.94×
199490.1172.81.92×
199589.5231.92.59×
199688.6275.83.11×
199790.7361.73.99×
199895.0457.74.82×
199999.6539.55.41×
2000105.3474.14.50×
2001110.6411.23.72×
2002118.3312.52.64×
2003127.3394.23.10×
2004140.0422.93.02×
2005153.8429.42.79×
2006152.7485.03.18×
2007138.9491.43.54×
2008122.4309.72.53×
2009114.7380.93.32×
2010108.5432.13.98×
2011101.3428.14.23×
2012106.0488.04.60×
2013115.5636.45.51×
2014119.8718.86.00×
2015125.1724.25.79×
2016128.9794.56.16×
2017134.0947.77.07×
2018137.4888.46.47×
2019139.31141.68.19×
2020152.11334.18.77×
2021168.91602.19.49×
2022167.81233.07.35×
2023171.81507.18.77×
2024173.71831.610.54×
2025171.22103.312.28×
2026167.02284.613.68×

Method. Home prices: S&P/Case-Shiller U.S. National Home Price Index (CSUSHPISA), not seasonally adjusted, monthly, from FRED's keyless CSV endpoint. Deflator: CPI-U (CPIAUCSL), same source. Stocks: the S&P 500 TOTAL RETURN index (ticker ^SP500TR, price plus reinvested dividends — not the bare price index, which would understate stock returns by omitting the single largest component of long-run equity return), daily closes via yfinance, resampled to month-end. All three series merged on calendar month; both home-price and stock indices deflated by the same CPI series to a common January-1988 real-dollar base. Trend fits are OLS of log(real index) on decimal year. The realized ("endpoint") CAGR is simply the first and last row's ratio, annualized over the elapsed years — reported alongside the trend fit because the two disagree here, and hiding either one would be reporting a number without the table it came from.

Limits, stated plainly. This prices two national indices, not a financed purchase or a specific house. It excludes mortgage leverage (which multiplies a buyer's return on their down payment), mortgage interest, property tax, insurance, and maintenance (which are real, recurring costs a stock index does not carry), the imputed rental value of living in the house, transaction costs on either asset, and taxes on either asset's gains. The Case-Shiller national index begins in 1987, which sets the start date; an earlier start (the series most home-price myths implicitly imagine) is not available at this frequency and is not substituted with an estimate. Monthly observations within each trend fit are serially correlated, so the p-values shown are optimistic in the usual way trend-fit p-values on a smooth index are — the 95% CIs, not the p-values, are the number to read.

The data (one row per month)

housing_vs_stocks.csv (460 months: Case-Shiller index, CPI, S&P 500 TR, both real-dollar series) · fit output (JSON).

Sources. FRED CSUSHPISA (S&P/Case-Shiller U.S. National Home Price Index) · FRED CPIAUCSL (CPI-U, both BLS/S&P Dow Jones originals via FRED) · S&P 500 Total Return index via Yahoo Finance / yfinance.

← The Regression Desk