Obscura

IMF Indicators

Country-level macro indicators from the IMF's DataMapper.

imf_indicators — the dataset name to pass to the Obscura API.

Category Macro Columns 6 Refresh Weekly Point-in-time available_date

What one row means

One IMF DataMapper indicator's reported/projected value for one country in one calendar year (indicator_code + country_iso3 + year -> value), long format, sourced from IMF's keyless DataMapper API which nests a full country x year grid (~1980..present plus WEO forward projections). Every scheduled run re-pulls the entire grid and upserts every cell, so a stored row always reflects IMF's latest published revision as of the most recent sync.

One row per (indicator_code, country_iso3, year).

Point-in-time availability

Every Obscura dataset carries available_date: the calendar day the publisher made the row available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the same thing on every dataset in the catalog.

For imf_indicators: published: available_date = period_end (year-end, make_date(year,12,31)) + 120 days, the WEO first-estimate publication lag; values are later revised in place with no history retained.

Refresh cadence

Obscura refreshes imf_indicators weekly — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.

Schema — 6 columns

The full public column list for imf_indicators, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/imf_indicators.

ColumnTypeDescription
indicator_codetext · not nullIMF DataMapper indicator mnemonic, verbatim (e.g. NGDP_RPCH = real GDP growth %, PCPIPCH = inflation avg consumer prices %, GGXWDG_NGDP = general government gross debt % of GDP, LUR = unemployment rate %). Part of the composite primary key.
country_iso3text · not nullISO3 country/aggregate code from the response's values.{indicator}.{iso3} key. Part of the composite primary key. The API always returns all ~229 entities regardless of any requested filter, so this column also holds IMF's own regional/income-group aggregate pseudo-codes alongside real ISO3 codes.
yearinteger · not nullThe calendar/reference year the value describes, parsed from the response's per-country year key. Part of the composite primary key. This is the dataset's true natural/reference-period field, spanning ~1980 through several years of WEO forward projections; the payload gives no signal distinguishing a historical actual from a still-forward-looking projection.
valuedouble precisionThe indicator's reported/projected numeric value for (indicator_code, country_iso3, year), in that indicator's native unit (percent for NGDP_RPCH/PCPIPCH/LUR/GGXWDG_NGDP). Nullable when DataMapper's value isn't parseable as f64. Because every run re-pulls and upserts the full grid, this always reflects IMF's latest revision; prior revisions are overwritten in place with no history retained.
period_enddateEnd of the reference year, DB-generated as make_date(year, 12, 31) — the honest reference-period end date the value describes.
available_datedatePUBLIC-availability date = period_end + 120 days, the WEO first-estimate publication lag. DB-generated, read-only; the point-in-time column to filter/join on for backtest-safe access — NEVER the reference year itself.

Access imf_indicators

Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.

import obscura

client = obscura.Client("obs_live_…")

df = client.query(
    dataset="imf_indicators",
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the imf_indicators dataset?

Country-level macro indicators from the IMF's DataMapper. One IMF DataMapper indicator's reported/projected value for one country in one calendar year (indicator_code + country_iso3 + year -> value), long format, sourced from IMF's keyless DataMapper API which nests a full country x year grid (~1980..present plus WEO forward projections). Every scheduled run re-pulls the entire grid and upserts every cell, so a stored row always reflects IMF's latest published revision as of the most recent sync.

How do I avoid look-ahead bias with imf_indicators?

Filter on imf_indicators.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — published: available_date = period_end (year-end, make_date(year,12,31)) + 120 days, the WEO first-estimate publication lag; values are later revised in place with no history retained. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get imf_indicators?

As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="imf_indicators". The column schema is public at https://api.obscura.trade/v1/catalog/imf_indicators.

How often is imf_indicators updated?

Obscura refreshes imf_indicators on a weekly schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.

Related datasets

BLS SeriesEconomic series from the U.S. Bureau of Labor Statistics, fetched by series ID: employment, unemployment, CPI, PPI, wage… Comtrade FlowsAnnual bilateral goods-trade totals between countries, from UN Comtrade. ECB SeriesEuropean Central Bank Data Portal series, retrieved by series key. FRED SeriesSeries from the Federal Reserve's FRED database by series ID — rates, prices, output, employment and more — as a point-i… ONS SeriesUK macroeconomic series from the Office for National Statistics. Policy RatesThe policy interest rate set by each currency's monetary authority, on every calendar day back to 1946 — twenty currenci… Treasury Average RatesAverage interest rates the U.S. Treasury pays on its outstanding debt, by security type. Treasury DebtTotal U.S. public debt outstanding, updated daily ('debt to the penny').