Get Real Personal Income Excluding Current Transfer Receipts for the United States from the Bureau of Economic Analysis (via FRED).

This is the exact series (not a proxy) the NBER’s Business Cycle Dating Committee uses as one of its four primary coincident indicators for dating US recessions - alongside Nonfarm Payrolls (see get_nonfarm_payrolls), the Industrial Production Index (see get_industrial_production_index) and Real Personal Consumption Expenditures. It measures aggregate household income from wages, investments and proprietors’ income, deliberately excluding government transfer payments (e.g. unemployment insurance, Social Security) so that the series reflects income generated by ongoing economic activity rather than the fiscal cushioning that automatically increases during a downturn.

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

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

Also known as: RPI less transfers, NBER real income indicator.

No programming experience? With the Finance Toolkit MCP server, AI assistants such as Claude and ChatGPT can calculate the Real Personal Income for you. Just ask in plain English.

Calculate the Real Personal Income in Python

The Real Personal Income is available in the Economics module of the open-source Finance Toolkit. Install it with:

pip install financetoolkit -U

Then call get_real_personal_income as shown below.

from financetoolkit import Economics

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

economics.get_real_personal_income()

Which returns:

Date United States
2026-02-01 16601.6
2026-03-01 16598.1
2026-04-01 16526.5
2026-05-01 16567
2026-06-01 16606.1

Parameters

get_real_personal_income 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.

The Economics module page introduces the module, and the sidebar lists all of its functions.

Share