Daily recession signal watchdog in Slack
Every weekday morning, get a Slack alert the moment a classic US recession indicator flips, with a Google Sheets log of every trip event.
Every weekday at 9am ET, run a recession signal watchdog for me.
Pull the latest values from FRED using Get Series Observations for the following series. Request enough history so the rules below can be computed:
- T10Y2Y (10y minus 2y Treasury spread): inversion trigger when the latest value is below 0.
- T10Y3M (10y minus 3m Treasury spread): inversion trigger when the latest value is below 0.
- UNRATE (unemployment rate): compute the Sahm rule as the 3-month moving average of UNRATE minus the lowest 3-month moving average over the trailing 12 months. Trigger when Sahm is at or above 0.5 percentage points. Pull at least 18 months of history.
- CPIAUCSL (headline CPI, monthly index): compute year-over-year change. Trigger when YoY moves above 3 percent (from below) or back below 3 percent (from above).
- ICSA (initial jobless claims, weekly): compute the 4-week moving average. Trigger when the 4w average crosses above 250,000.
State management: before evaluating, read yesterday's most recent rows from the Google Sheets log to know which signals were already in a tripped state. Only fire an alert when a signal is freshly crossing its threshold today versus yesterday. Reverse crossings (back below the trigger) also count as a new event and should be flagged.
For every newly crossed signal:
1. Append a row to the Google Sheets log via Append Values. Columns: date (YYYY-MM-DD), signal name, current value, previous value, direction (tripped or recovered), and a short note.
2. Post a Slack alert via Send a Message to the channel I configure. Each alert should explain which signal flipped, the current value, the recent trajectory (last few readings), and one or two sentences of historical context about what this signal has meant in past US recession cycles (yield curve inversion lead times, Sahm rule history, CPI regime changes, claims thresholds).
If no signals newly crossed today, do nothing. No Slack message, no Sheet row. Quiet by default.
Integrations: FRED (API key), Google Sheets (the log spreadsheet ID and tab), Slack (the alert channel). Workflow type: agent.
Additional information
What does this prompt do?
- Pulls the latest US economic data each weekday at 9am ET and checks the five most-watched recession signals: the 10y to 2y yield curve, the 10y to 3m yield curve, the Sahm rule on unemployment, year-over-year CPI inflation, and the 4-week average of initial jobless claims.
- Compares each signal to its trigger level (yield curve inversion, Sahm rule at 0.5 points or higher, CPI crossing 3 percent, claims breaching 250k) and flags only the ones that newly crossed since yesterday.
- Posts a contextual Slack alert when a signal flips, explaining which one moved, the current value, recent trajectory, and what this signal has meant in past cycles.
- Appends every trip event to a Google Sheet so you have a permanent audit log of when each indicator crossed and in which direction. Silent on days nothing material changed.
What do I need to use this?
- A free FRED account from the St. Louis Fed (takes one minute to get an API key)
- A Slack workspace and a channel to receive the alerts
- A Google account with a Sheet ready to act as your trip-event log
How can I customize it?
- Swap in your own list of signals and trigger levels. Want to watch the unemployment rate at 4.5 percent, or oil prices instead? Just tell the agent.
- Change the schedule. Run it once a week, twice a day, or only on the days FRED publishes new data.
- Pick where alerts go. Route to a private channel for just you, a team channel for your investing club, or a DM.
Frequently asked questions
What signals does this watch by default?
Will it spam my Slack every morning?
Is the FRED data free?
Can I add my own signals?
Why log to Google Sheets and not just Slack?
Related templates
Stop refreshing FRED every morning.
Connect FRED, Slack, and Google Sheets once, and Geni runs your recession watch every weekday at 9am ET.