Money Supply is the total amount of money that is in circulation in a country. It includes currency, demand deposits, and other liquid assets that can be easily converted into cash. Money supply is an important economic indicator that the Federal Reserve uses to implement its monetary policy.

Money supply can be divided into five categories: M0, M1, M2, M3 and M4. - M0: The total of all physical currency, plus accounts at the central bank that can be exchanged for physical currency. - M1: The total of all physical currency part of bank reserves + the amount in demand accounts (“checking” or “current” accounts). - M2: M1 + most savings accounts, money market accounts, retail money market mutual funds, and small denomination time deposits. - M3: M2 + large time deposits, institutional money market funds, short-term repurchase agreements, and other larger liquid assets. - M4: M3 + all other financial assets.

Data comes from the Global Macro Database (GMDB), further information about the variable can be found within https://www.globalmacrodata.com/documentation.html

The aggregates are annual and expressed in millions of national currency, so levels are not comparable across countries with different currencies, but growth rates are. Not every country publishes every aggregate; the ones it does not are NaN.

Also known as: M1, M2, M3, monetary aggregate.

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

Calculate the Money Supply in Python

The Money Supply is available in the Economics module of the open-source Finance Toolkit. Install it with:

pip install financetoolkit -U

Then call get_money_supply as shown below.

from financetoolkit import Economics

economics = Economics(start_date='2010-01-01', end_date='2020-12-31')

money_supply = economics.get_money_supply(
    countries=['Netherlands', 'Germany', 'United States'],
    measure='M2'
)

Which returns:

  Netherlands Germany United States
2010 701718 1.9878e+06 8.478e+06
2011 727265 2.1053e+06 8.8452e+06
2012 746482 2.2556e+06 9.7505e+06
2013 741372 2.3144e+06 1.04976e+07
2014 743043 2.4272e+06 1.11176e+07
2015 822382 2.6518e+06 1.17742e+07
2016 841302 2.8022e+06 1.24908e+07
2017 851237 2.9236e+06 1.32864e+07
2018 846513 3.0562e+06 1.38692e+07
2019 889033 3.1968e+06 1.44327e+07
2020 974276 3.4582e+06 1.54013e+07

Parameters

get_money_supply accepts the following parameters:

  • countries (list[str] | str | None, optional): The countries to include in the data. Defaults to None.
  • measure (str | None, optional): Which single aggregate to return, one of ‘M0’, ‘M1’, ‘M2’, ‘M3’ or ‘M4’. Defaults to None, which returns all five with the aggregate as the first level of the column index.
  • 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 (e.g. a trailing-4-quarter sum). Defaults to None.
  • growth (bool, optional): Whether to return the growth data or the actual data. Defaults to False.
  • lag (int, optional): The number of periods to lag the growth data. Defaults to 1.
  • 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