Get the NBER-based US Recession Indicator from FRED.

This is the official US business-cycle chronology maintained by the National Bureau of Economic Research (NBER) Business Cycle Dating Committee, encoded as 1 during NBER-dated recession months (peak through trough) and 0 otherwise. The Committee determines recession dates retrospectively from a broad set of coincident indicators - including Nonfarm Payrolls (see get_nonfarm_payrolls) and the Industrial Production Index (see get_industrial_production_index) - rather than the popular “two consecutive quarters of negative GDP growth” rule of thumb, which the NBER does not use. This series is the standard ground-truth label used in academic and applied business-cycle research to backtest whether other indicators lead, lag or coincide with recessions.

Requires a free FRED API key, see the fred_api_key parameter of the Economics class.

See definition: https://fred.stlouisfed.org/series/USREC

Also known as: USREC, NBER recession dummy, business cycle indicator.

Recession Indicator in Python

get_recession_indicator is part of the Economics module of the open-source Finance Toolkit. Install it with:

pip install financetoolkit -U

Then call get_recession_indicator as shown below.

from financetoolkit import Economics

economics = Economics(start_date='2020-01-01', fred_api_key='FRED_API_KEY')

economics.get_recession_indicator()

Which returns:

Date United States
2026-02-01 0
2026-03-01 0
2026-04-01 0
2026-05-01 0
2026-06-01 0

Parameters

get_recession_indicator accepts the following parameters:

  • rolling (int, optional): The rolling window size to use for smoothing the data (simple moving average). Defaults to None.
  • trailing (int, optional): The trailing window size to use for summing the data over trailing periods. Defaults to None.
  • growth (bool, optional): Whether to return the growth data or the actual data.
  • lag (int, optional): The number of periods to lag the data by.
  • standardize (bool, optional): Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.
  • rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.
Share