The price_index table
One year of one economy's price level, under one index_type, vendored from World Bank statistics rather than read from a live feed. A level on its own means nothing: the ratio of two years of the same economy's series, on the same index_type, is what restates a spend-based factor from the price year the publisher quoted it in to the year the spend happened.
Fields#
| field | type | required | example | meaning |
|---|---|---|---|---|
economy |
text | yes | BE | Whose price level this is, as a geography code. The key is the ECONOMY, never the currency: Belgium and France share the euro and not a price level. Macro regions and GLOBAL carry a series too, which is what a rest-of-world or otherwise unmatched geography resolves to; factors_flat.deflation_economy names the one a given factor actually read, and deflation_economy_hops says whether that was its own series or a parent region's. |
year |
integer | yes | 2024 | The calendar year the level describes. A restatement reads two of them for one economy: the factor's currency_year for the price level it was published in, and the year the spend happened for the level it is being moved to. |
index_type |
text | yes | gdp_deflator_usd | Which money the price level is denominated in. gdp_deflator_usd is the economy's output price level expressed in US dollars, built from GDP in current US dollars over GDP in constant 2015 US dollars, and it is the series behind factors_flat.price_index_ratio. gdp_deflator is the same price level in the economy's own currency. Both are GDP deflators, so they price an industry's output rather than a household basket, which is what a spend-based factor needs. |
value |
double precision | yes | 125.68262 | The index level for that economy, year and index_type. No base year is recorded here, because nothing reads a level: only the ratio of two years of ONE economy's series on ONE index_type is meaningful. gdp_deflator_usd is GDP in current US dollars over GDP in constant 2015 US dollars, so an observed series sits at 100 in 2015; gdp_deflator is on whatever base the source used for that economy, which differs from one economy to the next. Neither makes two economies comparable: a level prices one economy's own output. |
source |
text | yes | worldbank:NY.GDP.MKTP.CD/NY.GDP.MKTP.KD:BE | Where this one series came from, and the one place a non-observation is disclosed. It names the World Bank series behind the level and, after a semicolon, any year whose level was estimated rather than observed, for example a trailing 2025 chained from MIDDLE_EAST. A series reading derived is nobody's published figure. Most are a GDP-weighted aggregate of a region's member economies, which is what the macro regions and GLOBAL carry; a few small economies the source does not cover carry their parent region's series instead, and the string names the parent. No year of a derived series is an observation of that economy. Read it for your spend year before you put a restated number in a report. |
snapshot_version |
text | yes | worldbank-2026-07-13 | Which vendored snapshot of the source statistics this row came from. It is deliberately not part of a factor's identity, so a re-seeded series can move a restated spend number while the slug, source_key and value_key all stay put. The ratio carried on the served row is the disclosure: store it, or store the as-published value, if the number has to be reproducible later. |
Notes#
Two series sit here under index_type, and they are two different moneys rather than two methodologies. gdp_deflator_usd is the economy's output price level expressed in US dollars, built from GDP in current US dollars over GDP in constant 2015 US dollars (NY.GDP.MKTP.CD over NY.GDP.MKTP.KD), and it is the series the served ratio uses, paired with fx_annual to land in the currency the factor is quoted in. gdp_deflator is the same price level in the economy's own currency (NY.GDP.DEFL.ZS).
Two rows of one economy's series make the ratio, and the two currency legs come from fx_annual:
price_index_ratio = usd_price[economy][currency_year] / usd_price[economy][spend_year]
* fx[currency][spend_year] / fx[currency][currency_year]
The dollar is only a pivot and cancels. Where a factor is quoted in its own economy's money the two exchange-rate legs cancel as well and the expression collapses to the plain local ratio, which is why a reconstruction that drops the currency leg looks correct on euro-area rows and fails on a factor priced in someone else's money. factors_flat already carries the result as price_index_ratio, beside deflation_economy, currency_year and price_basis, so most readers join this table only to show their working.
Each economy's series is dense: every year the snapshot covers carries a level, because a hole would drop the factor out of the served catalogue rather than serve it unadjusted. Where the source publishes no observation for a year, the level is chained instead, from the economy's nearest observed level moved by its macro region's growth, and source names every chained year. Chaining and derivation are separate things: chaining fills a year the source did not publish, derivation builds a series the source does not publish at all, and a derived series can carry a chained year of its own.
It is a vendored snapshot rather than a live feed, and snapshot_version says which one. Re-seeding it can move a restated spend number without moving any identifier, so a figure you need to reproduce later should be stored with its ratio, or stored as published.