Skip to content
All library documents

Reconstructing Hussman’s Recession Warning Indicator

Article Quant Q&A · Author: Zach

Summary

The document describes an attempt to reproduce John Hussman’s recession warning criteria using public US economic and market data. The proposed signal combines widening credit spreads, a six-month decline in the S&P 500, weak or moderating ISM purchasing managers data with employment weakness, and a relatively flat yield curve. The author sketches an R workflow for retrieving series, calculating changes, combining the conditions, and comparing warnings with recession dates.

Responses identify important interpretation and measurement issues. Credit spreads should compare like maturities, and an alternate corporate bond spread may be needed if older commercial paper data are unavailable. The code appears to use the wrong Treasury tenor in its yield curve calculation, while the comments and thresholds also merit careful checking against the original definition. Further suggestions include treating employment as a lagging measure, considering volatility or other credit proxies as conditions change, and calibrating thresholds cautiously. The document proposes historical comparison but reports no accuracy results; few recession episodes make such estimates uncertain, and data choices or threshold tuning can materially affect apparent performance.

Key ideas

  • The proposed warning combines credit conditions, stock market direction, business activity, employment, and the yield curve.
  • Credit spreads should compare instruments with similar maturities and should match the intended source definition.
  • The example implementation contains a Treasury maturity mismatch that affects its yield curve calculation.
  • Historical accuracy testing faces limited independent recession episodes and sensitivity to data and threshold choices.
  • Employment growth may add a lagging signal alongside more forward-looking indicators.

Tags

Full text
# How do I replicate John Hussman's recession forecasting methodology?


# How do I replicate John Hussman's recession forecasting methodology?












John Hussman has a recession forecasting methodology he often posts about on his blog, and I am trying to replicate it using publicly available data. I would like to assess his accuracy in predicting recessions, and try my own hand at the same problem. Here is Dr. Hussman's criteria for a recession 'warning:'

> 1: Widening credit spreads: An increase over the past 6 months in either the spread between commercial paper and 3-month Treasury yields, or between the Dow Corporate Bond Index yield and 10-year Treasury yields. 2: Falling stock prices: S&P 500 below its level of 6 months earlier. This is not terribly unusual by itself, which is why people say that market declines have called 11 of the past 6 recessions, but falling stock prices are very important as part of the broader syndrome. 3: Weak ISM Purchasing Managers Index: PMI below 50, or, 3: (alternate): Moderating ISM and employment growth: PMI below 54, coupled with slowing employment growth: either total nonfarm employment growth below 1.3% over the preceding year (this is a figure that Marty Zweig noted in a Barron's piece many years ago), or an unemployment rate up 0.4% or more from its 12-month low. 4: Moderate or flat yield curve: 10-year Treasury yield no more than 2.5% above 3-month Treasury yields if condition 3 is in effect, or any difference of less than 3.1% if 3(alternate) is in effect (again, this criterion doesn't create a strong risk of recession in and of itself).

Here's my interpretation of what that actually means: 1. 6 month change in [3-Month AA Financial Commercial Paper Rate]-[3-Month Treasury Constant Maturity Rate (GS3M)] > 0 2. 6 month change in the S&P 500 monthly closing price < 0 3. PMI < 50 3b. OR [PMI < 54] AND [the 6-month % change in employment < 1.3] 4. [3-Month Treasury Constant Maturity Rate]-[10-Year Treasury Constant Maturity Rate] < 2.5 OR (if 3b, < 3.1)

Does this seem like the correct interpretation of John Hussman's methodology? Am I missing anything important? Once I'm certain of the correct data and correct calculations, I'll post some code in R to automatically calculate the 'recession warning' index.

Edit: Here is the code I have so far in R, I welcome any comments here or on my blog.

```
#Code to re-create John Hussman's Recession warning index
#http://www.hussmanfunds.com/wmc/wmc110801.htm
#R code by Zach Mayer

rm(list = ls(all = TRUE)) #CLEAR WORKSPACE
library(quantmod)

#################################################
# 1. Credit spreads
#################################################

getSymbols('CPF3M',src='FRED') #3-Month Financial Commercial Paper 
getSymbols('GS3M',src='FRED') #3-Month Treasury
CS <- na.omit(CPF3M-GS3M)

#6 month increase
CS <- na.omit(CS-Lag(CS,6))
names(CS) <- 'CS'

#################################################
# 2. Stock Prices
#################################################
getSymbols('SP500',src='FRED')
SP500 <- Cl(to.monthly(SP500))

#Re-index to start of month
library(lubridate)
index(SP500) <- as.Date(ISOdate(year(index(SP500)),month(index(SP500)),1))

#6 month increase
SP500 <- na.omit(SP500-Lag(SP500,6))
names(SP500) <- 'SP500'

#################################################
# 3. ISM Purchasing Managers index
#################################################

#A. PMI
getSymbols('NAPM',src='FRED') #Non-farm emploment
PMI <- NAPM
names(PMI) <- 'PMI'

#B. Employment
getSymbols('PAYEMS',src='FRED') #Non-farm emploment
PAYEMS <- na.omit((PAYEMS-Lag(PAYEMS,12))/Lag(PAYEMS,12)) #12 month increase
names(PAYEMS) <- 'PAYEMS'

#################################################
# 4. Yield Curve
#################################################
getSymbols('GS10',src='FRED') #3-Month Treasury
YC <- na.omit(GS10-GS3M)
names(YC) <- 'YC'

#################################################
# Put it all together
#################################################

P.A <-(CS>0) & #1. Credit spreads widening over 6 months
                    (SP500<0) & #2. Stocks falling over 6 months
                    (PMI<50) &      #3. PMI below 50
                    (YC<2.5)        #4. 10 year vs 3 year yields below 2.5%
P.B <- (CS>0) & #1. Credit spreads widening over 6 months
                    (SP500<0) & #2. Stocks falling over 6 months
                    (PMI<54) &      #3. PMI below 54
                    (PAYEMS<1.3) &  #3.B 1Y employment growth below 1.3%
                    (YC<3.1)        #4. 10 year vs 3 year yields below 2.5%

P.Rec <- P.A | P.B
names(P.Rec) <- 'P.Rec'
P.Rec$P.Rec <- as.numeric(P.Rec$P.Rec)

#Actual Recessions
getSymbols('USREC',src='FRED') 
chartSeries(P.Rec)
chartSeries(USREC)

#Compare
ReccessionForecast <- na.omit(cbind(P.Rec,USREC))
start <- min(index(ReccessionForecast))
ReccessionForecast <- ts(ReccessionForecast,frequency=12,start=c(year(start),month(start)))
plot(ReccessionForecast)
```

## Answer by Tal Fishman (score 2, accepted)

https://quant.stackexchange.com/a/1635

I think you may have made a mistake in your interpretation of #1. Putting aside Akshay's concerns (which are actually quite relevant), you can find commercial paper data and other relevant interest rates at the Federal Reserve's H15 data release page. There you will find CP rate data for financial and non-financial firms, as well as the 3 month Treasury bill rate. I am not sure whether Hussman would use the financial or non-financial CP rate, he probably created this when there was only one rate, which has since been discontinued. In any case, you will want to compare 3-month CP to 3-month Treasury to keep it apples-to-apples. You may have to do some of your own research to see how to replicate the old CP rate.

The Fed page also has corporate bond data, for which you may want to look at the Moody's seasoned Baa index data, and compare to 10-year Treasury constant maturity. Alternatively, going with Akshay's recommendation, you can use the State & Local Bonds rate from the same page (also compared to 10-year Treasury). If you have access to Barclays (Lehman) data, you have much more choice. In that case, you would want to look at the OAS of the Investment Grade Corporate index. However, the Fed series are going to have the longest history, which IMHO is of paramount concern when constructing an indicator for something with inherently very few independent observations.

BTW, you also seem to have made the mistake of using 3-year instead of 3-month Treasuries in #4.

## Answer by Akshay (score 2)

https://quant.stackexchange.com/a/1620

- This may have been correct earlier on - but now, with the CP market all but frozen up, this is not such a good indicator. Moreover, corporate credit is quite robust these days and still, we are talking of an impending recession - simply put, the credit risk has passed on to the sovereigns. Hence a better proxy would be municipal paper/peripehral EU bonds vs US 2y Treasury

- Rather than just a decline, a volatility based measure would be more appropriate (although, as we know from skews, a bearish market is inherently more volatile). But, do remember, that it is volatility that leads to greater financing costs (higher option prices, uncertain collateral value - all unhealthy signs).

3a and 3b. Looks correct - although in 3b, I would be careful about combining a leading and a lagging indicator.

- Historically, the 2s10s (or equivalently, the 2y/10y CMT spread is amazingly accurate at predicting recessions (the classic inversion of the yield curve) - beware when this hovers close to zero (or even below zero)!

I won't be too religious about actual figures like "1.3%" - I think calibration against past data using your methodology should give you better bounds on these numbers (ie use these numbers as parameters and see which parameters vector helps you predict recessions with the highest accuracy for historical data).

Hope this helps.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.