World Bank
Country development indicators from the World Bank.
world_bank — the dataset name to pass to the Obscura API.
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.
| Column | Type | Description |
|---|---|---|
| indicator_code | text · not null | World 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_iso3 | text · not null | ISO 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. |
| year | integer · not null | Reference (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. |
| value | double precision | The 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_name | text | Human-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_end | date | DB-generated: the reference period's close, make_date(year, 12, 31). The anchor available_date is computed from. |
| available_date | date | PUBLIC-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.