Obscura

World Bank

Country development indicators from the World Bank.

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

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

What one row means

One World Bank World Development Indicators (WDI) observation: the value of a single indicator (e.g. NY.GDP.MKTP.CD, GDP current US$) for one country in one reference year, as most recently reported by the keyless v2 API's mrv (most-recent-values) window.

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 world_bank: published: available_date = period_end (Dec 31 of year) + 395d conservative WDI dissemination lag.

Refresh cadence

Obscura refreshes world_bank 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 — 7 columns

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

ColumnTypeDescription
indicator_codetext · not nullWorld Bank indicator code, e.g. "NY.GDP.MKTP.CD" (GDP, current US$) or "FP.CPI.TOTL.ZG" (inflation, consumer prices, annual %). Part of the composite primary key.
country_iso3text · not nullISO 3166-1 alpha-3 country/aggregate code (e.g. "USA", "CHN", or region aggregates like "WLD", "EUU") from the API's `countryiso3code` field. Part of the composite primary key.
yearinteger · not nullReference (observation) year the indicator value applies to, from the API's `date` field. The domain/period column that period_end is derived from (make_date(year,12,31)); not itself an availability signal. Part of the composite primary key.
valuedouble precisionThe indicator's numeric value for this (country, year), in the indicator's native units (e.g. current US dollars for NY.GDP.MKTP.CD, percent for FP.CPI.TOTL.ZG). Nullable when the API reports a gap for that country/year.
indicator_nametextHuman-readable indicator label as the API's `indicator.value` field reports it at fetch time (e.g. "GDP (current US$)"); overwritten on every re-sync so historical rows reflect the current label wording.
period_enddateDB-generated: the reference period's close, make_date(year, 12, 31). The anchor available_date is computed from.
available_datedatePUBLIC-availability date. DB-generated, STORED = period_end + 395 days, a conservative WDI annual-indicator dissemination lag (~12-18 months after year-end). The point-in-time column to filter/join on — NEVER `year` or `period_end` directly.

Access world_bank

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="world_bank",
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the world_bank dataset?

Country development indicators from the World Bank. One World Bank World Development Indicators (WDI) observation: the value of a single indicator (e.g. NY.GDP.MKTP.CD, GDP current US$) for one country in one reference year, as most recently reported by the keyless v2 API's mrv (most-recent-values) window.

How do I avoid look-ahead bias with world_bank?

Filter on world_bank.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — published: available_date = period_end (Dec 31 of year) + 395d conservative WDI dissemination lag. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get world_bank?

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="world_bank". The column schema is public at https://api.obscura.trade/v1/catalog/world_bank.

How often is world_bank updated?

Obscura refreshes world_bank 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… IMF IndicatorsCountry-level macro indicators from the IMF's DataMapper. 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.