A Leading Recession Indicator Based On The Sahm Rule

Mathew Binkley
4 min readJan 16, 2020

A few months ago I read about a new recession indicator that had Wall Street types as well as policy wonks excited. Claudia Sahm, an economist at the Federal Reserve, had derived a very useful rule to signal the start of a recession based solely on unemployment. Given its simplicity, it did an amazingly accurate job of calling recessions accurately.

I love economics, though I’m a theoretical physicist by degree and a high-performance computing admin by trade. (I also have an MBA but I didn’t inhale…) I pulled Sahm’s paper, fired up RStudio, and soon enough had written an implementation of her rule in R.

While Sahm’s rule is fascinating from both a theoretical and public policy perspective, as an investor it leaves something to be desired. The Sahm rule is a *lagging* indicator, meaning it tells you there’s a recession *after* the recession has already started. As an investor, I’d like to be able to get my money out of the stock market well *before* the market starts crashing

(Technically publishing this is dumb, since if I’m correct, everyone will start using it and any financial advantage it might give me will disappear, but as a scientist discovering Important Things is more important to me than money.)

One evening, having an abundance of free time on my hands, I started playing around with my Sahm Rule implementation. I’d be lying if I said I foreseen this, I was just throwing spaghetti against the wall to see what stuck.

I saw that Sahm used a moving average on the data to smooth out short-term randomness, so I reasoned that doing a stl() decomposition on the data and using the trend would be an interesting analogue to try.

I also decided to try the non-seasonally-adjusted UNRATENSA unemployment data instead of the seasonally-adjusted UNRATE data set that Sahm used, on the idea that I wanted to start with untouched data.

And, because I’m a physicist and looking at these things comes naturally to us, I decided to look at the derivative of trend with respect to time. This is why I used stl() to extract the trend instead of using a moving average like Sahm, because d(trend)/dt was *vastly* smoother than the derivative of a moving average.

(The above description draws a straight line through several hours of experimenting with dozens of different ideas. As Edison said, “I have not failed, I’ve just found 10,000 ways that won’t work.”)

I told R to graph it, and after staring at it a few minutes, realized I might actually have something interesting. My original routine was *almost* right, but had two false negatives, triggering on the two small bumps you see in the 1960’s. I eliminated them by setting a small threshold, using the logic that “Sahm did it in her rule too.” Doing so was the final step in creating the above graph.

The result, after a bit of cleaning up, looked like this:

You can see that unemployment velocity grows above 0 right before a recession. When trend unemployment starts growing, even a little bit, the odds of a recession in the near future dramatically increase. And the rule as written correctly calls every recession in the entire UNRATENSA data set, with no false negatives or positives.

Markets watch for stalled or falling unemployment of course, but I’ve never seen it used directly as a recession indicator. That said, the idea is simple enough that I wouldn’t be at all surprised if I’d just reinvented the wheel. My assumption is that it has been stumbled upon a thousand times before, but perhaps its usefulness has been overlooked.

To date, Google searches haven’t shown anyone else doing this. And given it’s performance (usually firing *before* the stock market crashes), if a Goldman Sachs or other large investment bank was aware of it, I would expect them to use it to short the market, and yet I haven’t seen any conclusive sign that they are. Investment banks have some incredibly bright people, and yet as a whole they often seem as prone to dumb mistakes as any other large organization.

If anyone wants to experiment, I’d be curious if the same technique also applies to ECB data, Bank of Japan, Bank of England, or other countries as well. I’m also curious how well it performs against other popular indicators like the yield curve. I’ve noticed that in 2 of the past 4 yield curve inversions, my recession indicator triggered when the inversion was largest. That may be something, or may be random chance.

I will add more here later, but until then, click here to download the source code for my recession indicator and try it yourself.

--

--