M2 Index.THE WORLD MONEY SUPPLY MONITOR UTC▮

How to read money supply data on M2 Index

Learning how to read money supply data starts with its aggregate, observation date, unit, growth window and source. M2 Index combines several broad-money series, so a newer download does not make every observation current. Our CSV records a snapshot of each included economy; it does not contain every historical observation behind the charts.

On this page7 sections

Start with the observation date, not the refresh date

The observation date tells you when a money-supply figure applies. The refresh date tells you when we assembled the dataset. These dates serve different purposes: rebuilding a file does not create a newer central-bank observation.

On a country page, read the source and date alongside the value. In the CSV download, use period. A label such as 2025-12 identifies a year and month, not the series frequency; quarterly observations can use it too. A year-only label such as 2025 denotes an annual observation.

Our stale flag has a specific rule. It becomes true when an observation trails the newest observation in the dataset by more than 24 months. It is not measured against today’s calendar date. For that calculation, a year-only period maps to December. A false flag therefore does not prove that the source has published its latest release.

Read since and n_obs together. The first names the coverage start; the second counts available observations. Neither guarantees a continuous monthly history. Annual backfills, gaps and later source changes require checking the underlying series.

Read the CSV fields as a snapshot

The CSV contains one row per included economy or monetary area, with source fields and our derived metrics. As reviewed on 23 October 2026, its schema contains 17 columns. Blank numeric fields mean unavailable values, not zero. A blank series_break means no recorded break flag.

FieldsMeaningReading rule
iso3, slug, nameDataset code, site URL name and display nameCodes can identify monetary areas as well as countries
period, latest, unitObservation period, unscaled level and reported unitXDC means domestic currency, not US dollars
value_usd, fx_sourceConverted level and conversion-source labelConversion availability differs between rows
yoyDerived annual growth rateStored as a decimal fraction
cagr10, cagr_window_monthsAnnualized growth and its window in monthsThe field name does not guarantee a full decade
series_break, staleDetected discontinuity and relative-age flagA warning requires investigation
doublingYears to double at the computed positive growth rateA conditional calculation, not a forecast
since, n_obs, sourceStart year, observation count and source identifierKeep these with any exported claim

Scroll to see all columns

For example, a hypothetical yoy value of 0.08 means 8% growth over the comparison interval. It does not mean 0.08%. Format that column as a percentage once; multiplying by 100 and applying percentage formatting multiplies it twice.

The CSV excludes rows marked as having no independent series, plus excluded duplicate rows. It can retain rows unsuitable for the USD level ranking. The export does not include the internal conversion-exclusion flags, so sorting all nonblank USD cells cannot reliably recreate that ranking. Use the site’s ranking for eligibility and the CSV for inspection.

Check growth rates against their actual windows

Growth compares two values from the same monetary series. For an exact one-year interval, calculate latest / earlier − 1. For an interval of m months, the annualized rate is (latest / earlier)^(12 / m) − 1.

Suppose a hypothetical series rises from 100 currency units in December of Year 1 to 110 units in December of Year 2. Its year-on-year growth is 10%. If it instead rises from 100 to 121 units over exactly 24 months, its annualized growth is also 10%: 1.21^(12/24) − 1 = 0.10.

Our cagr10 normally targets 120 months. A detected series break can shorten that window. The refresh calculation withholds a post-break annualized rate when the available span is under 24 months. Read cagr_window_months before comparing two rows; a shorter window captures a different stretch of history.

Exact reproduction needs the historical observations. The refresh allows a comparison point within two months of the target but annualizes using the target interval. The chart’s year-on-year helper allows one month and uses a simple ratio. The CSV does not identify the selected earlier observation.

A positive annualized rate also produces the conditional doubling time ln(2) / ln(1 + rate). This answers how long doubling would take if that rate persisted. It does not establish that it will persist. Our methodology describes the calculation choices.

Keep USD conversions separate from domestic growth

A USD conversion answers a level-comparison question. Domestic growth answers how a selected monetary aggregate changed in its own currency. Exchange-rate moves can make those measures move in opposite directions.

Consider a hypothetical economy with 100 local units of broad money at the end of Year 1 and 110 at the end of Year 2. Assume the applicable conversion rates change from 2 to 2.5 local units per dollar. Local broad money rises 10%, while the translated values fall from USD 50 to USD 44, a 12% decline.

Our conversion uses the World Bank’s PA.NUS.FCRF, an official exchange rate expressed as local currency per dollar, averaged over the period. It is not a live market quote. World Bank exchange-rate definition.

The refresh code seeks an annual rate for the observation year, then falls back to the latest earlier available year. The CSV identifies the source but does not expose that chosen FX year. You need the underlying FX series to reproduce the conversion fully.

Our global total combines available, eligible USD levels with different observation dates. Its displayed annual growth blends domestic growth rates using current USD-value weights. That is not the same calculation as comparing two synchronized historical global USD totals.

Why our US broad-money series differs from Federal Reserve M2

Our US row uses the IMF broad-money source, while Federal Reserve H.6 publishes the Fed’s national M2 series. A shared country name does not make the series interchangeable. Open the source identifier on our United States page before comparing a headline or chart.

The IMF describes MFS_MA as standardized monetary reporting that also reflects country-specific components. Harmonization supports comparison; it does not make every country’s monetary instruments identical. IMF Monetary Aggregates dataset.

H.6 defines US M2 and provides both seasonally adjusted and unadjusted columns. It reports monetary levels in billions of dollars, whereas our CSV stores unscaled values. Match the aggregate, adjustment, observation period, units and release vintage before interpreting any numerical gap. Federal Reserve H.6.

World Bank FM.LBL.BMNY.CN is another relevant source: broad money in current local-currency units. It is not broad money as a percentage of GDP. World Bank indicator definition. The broad-money glossary explains why a national M2 label is not a universal definition.

Use a repeatable comparison checklist

A reproducible comparison preserves definitions and data dates alongside its result. We use this sequence:

  1. Save the CSV with your download date.
  2. Select the economies and retain their source identifiers.
  3. Check each period, unit, missing value and warning.
  4. Choose local growth or USD levels for your question.
  5. Align growth windows and inspect series breaks.
  6. Verify selected observations against their primary sources.
  7. Publish the calculation, dates and any assumptions that differ.

Use our seasonal-adjustment guide to compare adjusted and unadjusted series. Use the monetary-base guide when the source measures central-bank currency and reserves rather than broad money.

Frequently asked questions

Does a daily refresh mean daily money-supply observations?

No. It means we check and rebuild the dataset. A source can still supply a monthly or annual observation. The period field, rather than the download date, states when the value applies.

Can I sum the local-currency column across countries?

No. Adding unlike currencies produces no meaningful monetary total. Use an explicitly defined conversion method, eligible rows and disclosed observation dates. Even then, the result is a translated aggregate, not purchasing-power-adjusted wealth.

Why is a growth rate missing when a level exists?

A level needs one valid observation. Growth also needs a suitable comparison value and a usable interval. Missing earlier observations or a recent series break can prevent a defensible rate even when the latest level is available.