MACRO · DASHBOARD FIELD GUIDE
Build Alpha · FRED + Treasury → TradeStation

Reading the macro dashboard, one series at a time

A field guide to the 25 economic series your notebook fetches and feeds into TradeStation. For each: what it is, how it's calculated, its typical range and why, when it updates, and how to read it beside a monthly S&P 500 chart.

25 series7 themesFRED + US Treasurydata as of 2026-06-15
01 — Orientation

Before the tables: how to actually read this stuff

The pipeline, and the three habits that separate signal from noise.

Every series flows the same way: FRED / US Treasury API → the fetch notebook → a TradeStation-format CSV → an overlay on your monthly S&P chart. The CSV columns are Date, Time, Open, High, Low, Close, Vol, OI; for most series only Close carries the value, but a few pack several numbers into O/H/L (see §02).

Habit 1 — Level vs. rate-of-change

This is the one that trips people up. Index levels — CPI, Core CPI, Core PCE, PPI, the home-price index, M2 — only ever rise. Plotting the raw level tells you almost nothing; the signal is the slope (the year-over-year % change). Rates, spreads and ratios — yields, the curve, HY spread, VIX, the gas ratio — are mean-reverting, so the level itself is the signal.

Why this matters for your charts

Your CPI.csv, Core CPI.csv, Core PCE.csv and PPI.csv plot the index level (a smooth up-and-to-the-right line). To read inflation you want the YoY %: (value / value 12 months ago − 1) × 100. If you'd rather chart that directly, the notebook can output a YoY version — it's one extra row in the config.

Habit 2 — Lead, coincident, or lag?

Group the dashboard by when each series moves relative to the market and the economy:

  • Leading (move first): yield-curve inversion, HY/credit spreads, NFCI, initial claims, breakevens, consumer sentiment, net liquidity.
  • Coincident (move with): VIX, unemployment, GDP/GDI, Fed Funds, the 10Y.
  • Lagging / confirming (move after): CPI/PCE/PPI levels, the Buffett valuation, household-credit data.

Habit 3 — Mind the release lag

Release-date alignment

Monthly inflation prints (CPI, Core CPI, Core PCE, PPI) are plotted shifted +1 month so the data point lands near when the market actually traded on it, not the reference month. Daily series (yields, spreads, VIX) are real-time; quarterly series (GDP/GDI, household credit, Buffett) carry a 1–3 month reporting lag baked in.

02 — The OHLC cheat sheet

What's packed into each file's O/H/L/C

Most series put the value in Close and zero the rest. Four derived files cleverly pack multiple inputs into the OHLC slots so you can plot all of them from one symbol — read them like this:

How to read the multi-value files in TradeStation
FileOpenHighLowClose (the headline)
Net Liqduity.csvBalance Sheet ($B)Reverse Repo ($B)TGA ($B)Net Liquidity ($B)
GDP GDI.csv0GDP ($B)GDI ($B)GDP − GDI
Gas Prices.csv0Premium ($/gal)Regular ($/gal)Premium ÷ Regular ratio
HH-M2Stock.csv0HH Credit ($M)Real M2 ($B)YoY HH − YoY M2 (pp)
All other series000the value (yield, %, index, spread…)

Tip: in TradeStation, plot the packed files as bars/candles to see all four numbers at once, or reference High/Low in an indicator to pull a component out.

03 — Inflation

Inflation & price expectations

Sets the Fed's reaction function. For a multiple-driven index like the S&P, the rate of change — and whether it's accelerating — matters more than the level.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
CPI & Core CPI
CPIAUCSL · CPILFESL
plots index level
Consumer Price Index, urban consumers — avg price of a fixed basket. Core strips out food & energy (the volatile bits). Inflation rate = (CPI/CPI₋₁₂ − 1)×100. Level only rises (≈335, base 1982-84=100). Watch YoY: ~2% = comfort, 3–4% = hot, >5% = problem (2022 hit ~9%), <0 = deflation (rare). Unbounded because it's cumulative. Monthly · BLS · ~2nd week, prior month Accelerating YoY → higher-for-longer Fed → P/E headwind. Cooling surprise → risk-on. Core is the trend, headline is the noise.
Core PCE
PCEPILFE
plots index level
Personal Consumption Expenditures price index, ex food/energy — the Fed's official 2% target gauge. Broader basket than CPI, reweights as people substitute. YoY ~2% target; >3% = restrictive bias. Structurally runs ~0.3–0.5pp below Core CPI. Monthly · BEA · ~end of month (later than CPI) What the Fed actually targets → cleanest read on cut/hike odds. SPX reacts to PCE surprises for the policy path.
PPI
PPIACO
plots index level
Producer Price Index, all commodities — prices producers receive. Pipeline inflation that often precedes CPI. Level rises; YoY far more volatile than CPI (−5% to +20%), swinging with commodities. Monthly · BLS · ~same week as CPI Leading tell for CPI & margins. PPI rising faster than CPI = margin squeeze → earnings risk.
10Y Breakeven
T10YIE
Market-implied avg inflation over 10y = 10Y nominal − 10Y TIPS yield. Plots % directly. 1.5–2.5% normal; <1.5% = deflation/growth scare (2008, 2020); >2.5% = inflation fear (2022). Bounded by expectations + Fed credibility. Daily (business days) Forward-looking & daily — moves before CPI. Falling sharply = growth scare (usually with SPX selloffs).
5y5y Fwd Inflation
T5YIFR
Expected avg inflation over the 5-year window starting 5 years out — strips near-term noise; the cleanest expectations anchor. 2.0–2.5% = "anchored." De-anchoring (>2.75 or <1.5) is what the Fed fears most. Daily Long-run credibility gauge. Un-anchoring forces the Fed's hand regardless of growth → bad for multiples.
04 — Rates & the yield curve

Rates & the yield curve

The risk-free curve is the denominator under every valuation — and the market's best recession barometer.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
Fed Funds
FEDFUNDS
Effective federal funds rate — the overnight rate banks lend reserves; the Fed's policy lever. Plots % (monthly avg). 0% (ZIRP) to ~5.25–5.5% (2023-24); historically ~20% (1981). Bounded by policy. Monthly avg · target changes only at the 8 FOMC meetings/yr The policy anchor. Hikes compress multiples & raise the cash hurdle vs stocks; cuts are risk-on — unless cutting into recession.
10-Year Treasury
DGS10
10-year constant-maturity Treasury yield — the global discount rate. Plots %. 0.5% (2020) to ~5% (2023); historically ~15% (1981). Daily Rising 10Y = higher discount rate → pressure on long-duration / growth names. The speed matters more than the level — fast spikes break things.
10Y−3M & 10Y−2Y spreads
T10Y3M · T10Y2Y
Yield-curve slope = long − short. 3M version = Fed's preferred recession model; 2Y version = the classic. FRED computes the spread. ~−1% to +3%. Negative = inversion. Inversions preceded every recession since 1970 (long, variable lags). Daily Inversion = warning (6–18mo lead). The re-steepening after inversion often coincides with the recession actually starting and SPX topping.
05 — Credit & financial conditions

Credit & financial conditions

Credit markets sniff trouble before equities. Spreads widening = the bond market repricing default risk.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
Baa Corporate Yield
DBAA
Moody's Baa (lowest investment-grade) corporate bond yield. Plots %. The credit spread = Baa − 10Y (use your 10Y file). ~3–7% recent. The spread over Treasuries (~1.5–3%) is the stress signal; widens in recessions. Daily Rising Baa spread = credit stress, usually before/with SPX drawdowns. Level alone conflates with the rate cycle — watch the spread.
High-Yield (Junk) Spread
BAMLH0A0HYM2
ICE BofA US High-Yield Option-Adjusted Spread — extra yield junk bonds pay over Treasuries. Plots the spread itself (%). <3% = complacency; 3–5% = normal; >6–8% = stress; >10% = crisis (2020 ~11%, 2008 ~20%). Daily The single best market-based risk gauge here. Blowouts confirm risk-off. Divergence (HY widening while SPX rises) = warning.
NFCI
NFCI
Chicago Fed National Financial Conditions Index — 105 indicators (money, debt, equity, leverage) distilled to one z-score. 0 = average conditions (since 1971). Negative = looser than average; positive = tighter. Crisis spikes >+1 (2008 ~+3). Weekly (Wed, prior week) One number for "tailwind or headwind." Crossing above 0 = tightening regime caution; deeply negative = liquidity-fuelled melt-ups.
06 — Liquidity & money

Liquidity & money

Liquidity is the tide. Net Liquidity in particular has tracked the S&P's big swings since 2020.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
Net Liquidity
WALCL − RRP − TGA
derived, $B
Fed balance sheet − Reverse Repo − Treasury cash (TGA) — the cash actually sloshing in markets. O=Bal Sheet, H=RRP, L=TGA, C=Net Liq. No fixed range — trends with QE/QT (~$5–6T era). Direction is the signal, not the level. Effectively daily (RRP & TGA daily; WALCL weekly Thu) Rising = tailwind for SPX (the post-2020 correlation is striking); draining (QT, TGA rebuild, RRP rising) = headwind. One of the highest-value overlays here.
M2 YoY
M2SL
Nominal M2 money supply, year-over-year: (M2/M2₋₁₂ − 1)×100. Plots %. Normally +3 to +7%. Spiked ~+27% (2021 stimulus); went negative (~−4%, 2023) — first contraction since the 1930s. Monthly (~4-wk lag) Money-growth impulse. Surges precede inflation & asset melt-ups (12–18mo lag); contraction is disinflationary and historically risky.
HH Credit − M2
HCCSDODNS − M2REAL
derived, pp
YoY household credit − YoY real M2. H=HH Credit, L=real M2, C=the YoY spread. Oscillates around 0. Positive = credit expanding faster than money (late-cycle leverage); negative = deleveraging. Quarterly (HH credit = Z.1, ~10-wk lag) Slow late-cycle leverage gauge — context, not timing. Rising = credit-fuelled expansion.
07 — Growth & activity

Growth & activity

Hard data — slower-moving, mostly coincident-to-lagging, but the substance under earnings.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
GDP − GDI gap
GDP · GDI
derived, $B
Two independent measures of the same economy — output (GDP) vs income (GDI). Close = GDP − GDI. H=GDP, L=GDI. Should be ~0; the gap widens near turning points and gets revised. GDI is often weaker before recessions. Quarterly · BEA · heavily revised A persistent GDP>GDI gap has flagged late-cycle weakness the headline hid. Context for the earnings backdrop.
NY Home Price
NYXRSA
plots index level
S&P CoreLogic Case-Shiller NY-metro home-price index (Jan 2000=100), 3-mo moving average. Level (~280 in 2026); watch YoY & turns. Housing is rate-sensitive & wealth-effect linked. Monthly · ~2-month lag · last Tuesday Regional proxy for the rate-sensitive housing / wealth channel; turns lead consumer stress. Slow-moving.
Gas Premium/Regular
APU000074716 ÷ 074714
derived ratio
Retail gasoline: Premium ÷ Regular price. H=Premium, L=Regular, C=ratio. ~1.05–1.15. Fairly stable; widens with refining/margin dynamics. Monthly · BLS average prices Niche. The Low (regular price) is the consumer-squeeze / headline-inflation read; the ratio is a refining-margin curiosity.
08 — Labor & recession

Labor & recession triggers

Labor is what turns a slowdown into a recession — and this group holds the cleanest real-time trigger there is.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
Unemployment Rate
UNRATE
% of the labor force unemployed (U-3). Plots %. ~3.4% (2023 cycle low) to 10% (2009) / ~15% (2020). Full employment ≈ 3.5–4.5%. Monthly · 1st Friday (jobs report) Low & stable = fine; the rise off the lows is the tell — it never drifts, it lurches. Coincident, but the trigger for Fed cuts.
Sahm Rule
SAHMREALTIME
3-month avg unemployment minus its lowest value in the prior 12 months. Plots that gap (pp). <0.5 = expansion; ≥0.50 = recession signal (fired in every recession since 1970, near real-time). Monthly · after the jobs report The cleanest single recession tripwire. Crossing 0.50 has aligned with SPX entering/confirming bear territory.
Initial Jobless Claims
ICSA
New unemployment-insurance filings, seasonally adjusted. Plots the count. 200–260k = healthy; >300k = softening; >350–400k = recessionary; spiked ~6M (2020). Weekly · Thursdays — most timely labor data Earliest labor crack. A sustained climb through ~300k is an early risk-off flag, before the monthly jobs data confirms.
Consumer Sentiment
UMCSENT
plots index level
U. Michigan Index of Consumer Sentiment (survey, 1966Q1=100). ~50 (2022 record low) to ~100+ (booms). <70 = stressed; >90 = confident. Monthly (prelim mid-month, final end-month) Soft data; leads spending turns. Extreme lows have (counter-intuitively) marked SPX bottoms — peak pessimism.
09 — Risk & valuation

Risk & valuation

Where the market prices fear — and how expensive it is to begin with.

SeriesWhat it is & how it's calculatedTypical range — & whyUpdatesWatch for · use vs SPX
VIX
VIXCLS
CBOE Volatility Index — 30-day implied volatility from S&P 500 options (the "fear gauge"). Plots index (annualized %). 9–12 = complacent; 13–20 = normal; 20–30 = elevated; >30 = fear; >40 = panic; ~80 peaks (2008, 2020). Mean-reverting. Daily (FRED = daily close) Inversely tracks SPX. Spikes = capitulation (often near-term bottoms). VIX rising while SPX rises = hedging into strength = warning.
Buffett Indicator
NCBEILQ027S ÷ GDP
derived, %
Corporate equities (Z.1) ÷ nominal GDP × 100 — total market value vs the economy. Replaces the discontinued Wilshire/GDP version. ~70% = cheap; ~100% = fair (historical avg); >150% = expensive; ~190–220% now (record). Quarterly (Z.1 + GDP) A valuation altitude gauge: high = low long-run forward returns, not a sell signal (can stay rich for years). Context for sizing, not timing.
10 — Putting it together

The regime playbook

No single series times the market. They work as a confluence: liquidity and credit lead, the curve warns, labor confirms, valuation sizes the bet. Here's the at-a-glance tilt:

▲ Risk-ON backdrop
  • Net Liquidity rising
  • HY spread tight & stable (<4%), NFCI negative
  • Inflation YoY cooling; breakevens anchored
  • Curve positive; Fed on hold or cutting (not into recession)
  • Claims low, Sahm <0.5; VIX low-but-not-complacent
▼ Risk-OFF backdrop
  • Net Liquidity draining (QT, TGA rebuild)
  • HY spread widening (>6%), NFCI crossing above 0
  • Inflation re-accelerating or breakevens un-anchoring
  • Curve re-steepening after inversion
  • Claims climbing >300k, Sahm ≥0.50; VIX spiking
The hierarchy

Daily tripwires (HY spread, VIX, breakevens) react first. Weekly (claims, NFCI) confirm the turn. Monthly (Sahm, unemployment, inflation) make it official. Quarterly (GDP/GDI, Buffett) set the slow backdrop. Read fast-to-slow: a daily flag that the weekly/monthly data then confirm is a real regime change; a lone daily wiggle is noise.

The one thing to remember

Plot rates of change, not levels, for anything that only goes up (CPI, PCE, PPI, M2, home prices). Watch spreads, not absolute yields, for credit. And keep three tripwires always in view — the HY spread (daily), initial claims (weekly), and the Sahm Rule (monthly). Liquidity is the tide that lifts or drops everything else.

11 — How to read these results (the methods, in plain English)

The two numbers behind every claim: IC and perm-p

You don't need statistics training to use this. Two ideas carry it all — one measures strength, the other measures whether the strength is real.

Information Coefficient (IC) — "how well does this indicator rank what comes next?"

The IC is a single number from −1 to +1 that answers: when this indicator was high in the past, did the market tend to go up or down afterwards — and how reliably?

How it's built: take every historical month, line up (a) the indicator's reading that month against (b) the market's return over the following N months, and measure how well they rank together. We use the rank correlation (Spearman) rather than ordinary correlation, so a single crazy outlier can't dominate and we capture "higher reading → higher return" even when the relationship isn't a perfectly straight line.

How to read the IC number

Markets are close to random, so the bar is low. |IC| ≈ 0 = no information; 0.03–0.05 = weak; 0.10 = genuinely useful for the S&P; 0.15+ = strong (for equities). The sign tells direction — with our charts, signals are oriented so a positive IC means "higher signal → higher future return." In the bar charts, the bar height IS the IC. ⚠️ Caveat: for *trending* data like home prices, a big IC is cheap and misleading — which is exactly what perm-p is for.

Permutation p-value (perm-p) — "could this have happened by luck?"

A big IC isn't enough. Two problems can fake it: (1) two series that both drift upward over decades will correlate even if unrelated (the "spurious correlation" trap), and (2) we ran 3,374 tests — some will look great by pure chance. The perm-p is the probability that an IC this big could have appeared by luck alone.

How it's built (the "circular shift" test): take the real future-returns series and slide it forward in time by a random amount, wrapping the end back to the front — thousands of times. Each random slide destroys any genuine link between indicator and returns, but keeps the data's natural trend and persistence intact. Re-measure the IC after each slide. That gives a whole distribution of "ICs you'd get from noise that trends like this." The perm-p is the fraction of those random ICs that are as large as the real one.

Why slide instead of shuffle?

A plain shuffle would scramble the trend and make almost everything look "significant." The circular slide preserves the trend, so the test honestly asks: "given how trendy this data already is, is the relationship bigger than trend-coincidence?" This is the single most important tool in the whole study.

How to read perm-p

perm-p < 0.05 → keep it (under a 1-in-20 chance it's luck). perm-p > 0.05 → discard it, no matter how big the IC. This is why the S&P signals (IC ~0.16, perm-p 0.01) are trustworthy while the housing signals (IC ~0.7, perm-p 0.1–0.65) were thrown out — the housing correlations were just two trending lines drifting together.

The other guards, briefly

MethodWhat it doesWhy it's here
Lead-lagSlides the indicator against returns to find how many months ahead it peaksTells you how early a signal fires
FDR (multiple-testing)With 3,374 tests, ~168 pass p<0.05 by chance; FDR keeps only those beating that barStops us "discovering" pure noise
Train/test + walk-forwardRe-checks the signal on data it wasn't found on, and in every rolling 10-yr windowConfirms it isn't a one-era fluke
Point-in-time (vintage) dataRe-runs using only the first-published values, not later revisionsSo the backtest can't "cheat" with data you couldn't have known
Backtest metricsCAGR = annual growth · Sharpe = return per unit of risk · Max drawdown = worst peak-to-trough lossTurns a signal into tradeable terms
How to read every chart in the next two chapters

Bar charts: bar height = IC; green = survives perm-p (real), gray/red = doesn't (ignore); the p= label is the perm-p. Equity curve: growth of $1 on a log scale (equal % moves look equal). Rolling-IC line: the signal's IC measured over each 10-year window — above the zero line = working in that decade. Overlay chart: two lines on two axes — watch whether one consistently turns before the other.

The mental model

IC tells you how strong a signal is. Perm-p tells you whether to believe it. A signal needs both a usable IC (≥0.10 for stocks) and a perm-p under 0.05. Big IC + big perm-p = a mirage.

12 — Does any of this predict the S&P?

What actually has predictive power for SPX

3,374 tests were run. ~168 will look "significant" by pure luck. Here's what survives an honest test.

Every candidate below was scored by Information Coefficient (IC), then re-checked with an autocorrelation-preserving permutation test and independently reproduced by separate verification agents. Only what survives is reported as real.

The multiple-testing reality

Across all timeframes I ran 3,374 indicator-signal-horizon tests. At p<0.05, ~168 will look "significant" by chance alone. On the SPX monthly grid alone, 140 tests showed raw p<0.05 — but only 17 survive a false-discovery-rate correction. This is why raw p-values are worthless here and every headline was permutation-tested.

The signals that survive permutation testing

Only three monthly signals clear the bar — and they're all rates / inflation momentum or level:

SignalReadingIC (3mo)perm-pVerdict
10Y Treasury momentumrising vs its own 6-mo average = bearish+0.1610.010✅ robust
PPI level (z-score)high producer inflation = bearish+0.1560.016✅ robust
Core CPI level (z-score)low/falling inflation = bullish+0.1300.018✅ robust
VIX levelhigh VIX = bullish (contrarian)+0.1320.094⚠️ borderline
Credit spread / Net Liquidity~0 / +0.140.82 / 0.28❌ fail (noise / too short)

How early does each lead?

Most SPX macro signals are near-coincident to ~2 months — markets price macro fast. Only a few slow labor signals (initial claims ~12mo, M1 growth ~8mo) lead by much.

Immediate trend vs longer trend — your "tech-indicators on indicators" question

Momentum transforms (distance-from-MA, MA-crossovers) work best for the near-term (1–3 month) turn — 10Y madist6 peaks at the 3-month horizon. Level / regime transforms (z-scores) build power at longer horizons — Core CPI's IC rises from 1→6 months. Use momentum for the immediate tilt, the raw level for the multi-month regime.

Combining signals: drawdown control, not forecasting

A fitted regression of the 3–4 robust signals has an out-of-sample R² of ≈ 0 — you cannot forecast the SPX return number. But an equal-weight composite used as an on/off risk filter roughly halves drawdowns (OOS max-drawdown −20% vs −53% buy-and-hold) for a similar return — out-of-sample Sharpe 0.84 vs 0.58.

The honest takeaway on combinations

Combining doesn't raise the correlation — the composite's IC (+0.14) is no higher than the best single (+0.16). Its value is robustness and drawdown avoidance: diversified across drivers, it sidesteps the worst regimes. Don't expect to predict the number; expect to tilt risk and dodge the deep bears.

The most stable signal, and where edges live

10Y momentum is the workhorse: its rolling 10-year IC is positive in 83% of decades and is the same across every regime (high/low inflation, pre/post-2010 ≈ +0.15). Core CPI, by contrast, is regime-dependent — it works in low-inflation periods and dies in high-inflation ones:

Signalpre-2010post-2010high-inflationlow-inflationRead
10Y momentum+0.15+0.15+0.16+0.16regime-stable
Core CPI+0.13+0.20+0.02+0.20low-inflation only
Credit spread−0.01−0.04−0.03−0.05no edge alone

How to actually apply each SPX predictor

For each: the concrete rule to compute, what a given reading is telling you, and how to use it.

PredictorThe concrete ruleWhat a reading meansHow to use it
10Y momentum
the workhorse
Take the 10-yr yield minus its own 6-month moving average. Above 0 = rising; below 0 = falling.Rising 10Y above its 6mo avg → expect lower SPX returns over the next 1–3 months (the discount rate is climbing). Works in every regime.Standalone risk tilt. When it flips positive (yields breaking higher), trim risk / raise cash. When it rolls back below its average, lean back in.
PPI & Core CPI
regime detectors
Z-score the inflation rate vs its own ~5-yr range (how high/low vs normal). High z = hot inflation.Low / falling inflation → tailwind. Hot / rising → headwind, especially when the Fed is tightening. Core CPI's edge concentrates in low-inflation regimes.Regime filter. Hold full equity risk while inflation is low/cooling; de-risk when it's high/accelerating. Don't use it as a fast trigger — it's a multi-month backdrop.
VIX
contrarian confirm
Watch absolute level: <15 calm, 20–30 elevated, >30 fear, >40 panic.A VIX spike (>30–40) marks capitulation → forward returns tend to be higher, not lower.Contrarian confirmation. Use spikes to add risk into fear, not to flee. Borderline on its own — pair with the others.
Composite
the recommended tool
Average the oriented z-scores of 10Y-momentum, PPI, Core CPI (and credit/VIX). Composite > 0 = risk-on.>0 → the macro backdrop favors equities; <0 → defensive. It won't predict the return size, but it flags the bad regimes.Drawdown filter. Be fully invested when >0, reduce when <0. Historically cuts max drawdown roughly in half for similar return.
Net LiquidityFed balance sheet − reverse repo − Treasury cash; watch its 12-month change.Rising = tailwind; draining = headwind.Context only — too short a history (2005+) to trust as a standalone trigger.
Buffett IndicatorTotal market value ÷ GDP.High (>150%) = expensive = low long-run (10-yr) expected returns. It says nothing about the next month.Do not time with it. Use it to size long-run expectations and position scale, never as a buy/sell trigger.
Your Buffett hunch — verdict: rejected

"Buffett crossing its 6-month average leads SPX" does not hold: IC ≈ 0.01–0.06 (noise), and the rule trails buy-and-hold risk-adjusted (Sharpe 0.46 vs 0.50). It's robust to point-in-time data too (vintage IC +0.009). The catch: Buffett is quarterly, so a "6-month average" is only ~2 real points. Buffett is a long-horizon valuation gauge, not a monthly timing cross — independently confirmed by two verification agents.

Chapter 11 in one line

SPX is modestly predictable: a handful of rates/inflation signals (led by 10Y momentum) carry the real edge, best used to tilt risk and avoid drawdowns, not to forecast returns. Everything else was multiple-testing noise.

13 — Predicting NY real estate (and how trending data fools you)

NY real estate: a masterclass in spurious correlation

The raw numbers screamed "0.7 predictability." The honest test says otherwise — and the truth underneath is more useful.

First, the angles — what each one uniquely measures

You added many real-estate series. Here's the map so they don't become noise — grouped by what they actually do:

RoleSeriesWhat it uniquely measures · scope of lead
Target — priceNYXRSA (metro, '87), NYSTHPI (state, '75), Zillow NY, NY high-tierThe thing to forecast. Zillow captures co-ops Case-Shiller misses; FHFA state goes back to 1975 for long cycles
Driver — moneyReal M2 YoY, M2 YoYLiquidity fueling future demand — leads turns ~7–13 months
Driver — costFed Funds, 30Y mortgage, CPIAffordability / borrowing cost — lead ~7–12 months, negatively
Driver — supplyPermits, starts, months-supply, vacancyInventory pressure — track the persistent trend, not turning points
ContextUS / 20-city HPINational backdrop — but 0.86 correlated with NY = mostly NY predicting itself

The trap: huge correlations that mean nothing

Predicting the home-price level's forward return, every indicator shows a massive IC (0.3–0.7). But home prices are a near-unit-root series, and so are the macro drivers. When you run an autocorrelation-preserving permutation test, the significance collapses: only supply (permits, vacancy) survives, and even those are largely trend-persistence. M2, CPI, Fed Funds, mortgage — all fail (perm-p 0.10–0.65).

Why trending data fools correlation

Two series that both drift upward over 40 years will correlate ~0.7 even if neither causes the other — the textbook "spurious regression." The effective number of independent observations isn't 440 monthly points; with 12-month overlapping windows and 0.99 autocorrelation it's about 36. A 0.55 correlation on 36 effective points is p≈0.09, not 0.001. Lesson: on trending data, a big R² is the default, not the discovery.

The real signal: predicting the *change* in growth (turning points)

Switch the target to home-price acceleration (the change in the growth rate — i.e. turning points, a stationary target) and the picture clears. Now your hunch validates: Real M2 growth (perm-p 0.025) and CPI, inverted (perm-p 0.013) genuinely lead NY home-price turns. Permits and vacancy — which "predicted" the level — have no power over turning points (they ride the trend, they don't call the turn).

Your hunch, visualized: M2 leads the turns

Real M2 growth (orange) repeatedly turns before NY home-price growth (blue) — the 2003–05 liquidity surge before the mid-2000s boom, the 2020–21 spike before the 2021–22 melt-up, the 2022–23 money contraction before the cooling. This is the one relationship in the whole study that is genuinely stable:

Predictor → NY home-price accelerationICperm-pVintage (real-time) perm-pWalk-forward stability
Real M2 YoY (~7mo lead)+0.350.0250.044median IC +0.58, 100% of decades same-sign
CPI YoY, inverted (~12mo lead)+0.410.0130.071median IC +0.53, 96% of decades
M2 YoY (nominal)+0.240.105borderline
Fed Funds / 30Y mortgage+0.10–0.140.33–0.45directionally right, not significant
Your M2/CPI/Fed-Funds hunch — verdict: confirmed (with nuance)

Real M2 and CPI genuinely lead NY home-price turning points by ~7–12 months — and Real M2 survives both the permutation test and point-in-time (vintage) data, the single most robust relationship found. Fed Funds and the mortgage rate point the right way but don't clear significance once you correct for trending data. So: watch money growth and inflation for the turn; they're real leads, not the level co-movement that looked so dramatic.

How to apply the real-estate signals

Real estate is slow and illiquid, so these are forecasting / planning tools (months ahead), not trade triggers.

PredictorThe concrete ruleWhat a reading meansLead & use
Real M2 YoY
the validated leader
Inflation-adjusted M2 money supply, year-over-year %. Watch its turns (when growth peaks or troughs), not its level.When Real M2 growth rolls over, NY home-price growth tends to slow ~7 months later; when it bottoms and turns up, housing reaccelerates.~7-month lead. The earliest reliable warning of a NY housing turn. The single most stable relationship found (positive in 100% of rolling decades).
CPI YoY (inverted)Headline CPI year-over-year %. High/rising inflation is the negative signal.Accelerating inflation → home-price growth decelerates ~12 months later (the Fed hikes → mortgage rates rise → demand cools).~12-month lead. A slower, confirming companion to Real M2.
Permits / VacancyBuilding permits (high = supply coming) and vacancy (low = tight market).They describe the current trend's strength, not its turning point.Trend confirmation only — they ride the trend, they don't call the turn. Don't use them to time tops/bottoms.
Fed Funds / Mortgage ratePolicy rate / 30-yr mortgage rate.Higher → housing headwind.Directionally right but not statistically reliable after correction — use as context, not a signal.

Commercial real estate — the honest gap

NY-specific commercial price indices (Green Street, MSCI-RCA, NCREIF) are all proprietary. Free national proxies exist — BIS US CRE price (quarterly), CRE-loan delinquency (1991→), and the daily REIT total-return index — and these reprice 6–18 months ahead of private indices. For NY-specific commercial there is currently no free clean series, so it's flagged as a gap rather than faked.

Chapter 12 in one line

Real-estate "predictability" of 0.5–0.7 is mostly two trending lines moving together — not forecasting skill. The genuine, vintage-robust signal is narrower and more useful: Real M2 growth and inflation lead NY home-price turning points by ~7–12 months.