Skip to content
Horalis
Theme

Kept only in this tab.

HoralisAll the Horalis tools

Tools

Theme

Kept only in this tab.

Sheet: official data

All the research sheets

Translated from the Spanish original. Where they differ, the Spanish one holds.

  • For: every Horalis tool · Reviewed: 9 October 2026
  • Code (in packages/seed-kit/):
    • src/official/series.ts: the shape, the list of series and the checks;
    • src/official/worldbank.ts, eurostat.ts and cldr.ts: the readers;
    • src/official/data.ts: access in the build;
    • scripts/official-data.ts: the yearly download.
  • Data: src/data/official/
  • Tests: test/official.test.ts

The question it answers

"Where does each figure come from, and can I trust it will still hold in a few years?" The tools do not depend on websites that change or on anyone updating them daily. They only use data from official bodies with an open licence, downloaded once a year, checked and kept inside the build.

What is kept, in plain words

  • Each series is a table: country, year, figure.
  • Beside the figures goes their record: who publishes it, with which code, where to see it, under which licence, when it was downloaded and which is the last year most countries have (the "data year").
  • The tools show that source and that year beside each result.
  • Each country also carries its current currency (ISO 4217, from Unicode CLDR) and since when it has used it (currencySince, CLDR's start date), so that any tool can work in any currency. How the currency and the exchange rate are used: currencies.

Sources, with date and licence

SeriesBody and codeLicenceData year (9 Oct. 2026)
Yearly inflationWorld Bank, FP.CPI.TOTL.ZGCC BY 4.02025
Yearly inflation, EUEurostat, prc_hicp_aind (RCH_A_AVG, CP00)Reuse with attribution (Decision 2011/833/EU)2024
Official exchange rate, yearly averageWorld Bank, PA.NUS.FCRFCC BY 4.02025
Purchasing power parity (GDP)World Bank (ICP), PA.NUS.PPPCC BY 4.02025
Price level (1 = US)World Bank (ICP), PA.NUS.PPPC.RFCC BY 4.02024
Mean spending or income per person per dayWorld Bank (PIP), SI.SPR.PCAP, 2021 PPP dollarsCC BY 4.02023 (each country, its latest survey)
Each country's currencyUnicode CLDR, supplemental/currencyData.jsonUnicode License v348.2.0

The World Bank produces two of these series, inflation and the exchange rate, from the IMF's International Financial Statistics. It publishes them under CC BY 4.0, and that is why they can be used. Nothing is downloaded from the IMF directly.

Which sources are not used and why:

  • IMF: its terms ask for permission for commercial use and for automated downloads.
  • Eurostat for countries outside the EU: for countries outside the EU, EFTA and the candidates, its licence does not allow commercial use. Those countries come from the World Bank.
  • ECB for exchange rates: the World Bank gives every country in the same series. A single source avoids mixing averages calculated differently.

Assumptions

  • The yearly average of the exchange rate serves to turn figures of that same year from one currency into another. It is not today's rate, and the page says so.
  • Every conversion between countries goes through the dollar, within the same year. The World Bank expresses each country in the currency it used that year. That is why Spain appears in pesetas before 1999 and in euros after: the series jumps, and it is not an error. Dividing two figures of the same country and the same year always gives the same unit.
  • The data year is the last in which half or more of the countries have a figure.

Checks before accepting a download

  1. Licence. For each indicator, the licence the World Bank's metadata give must be CC BY 4.0. If not, the series does not go in.
  2. Range. Each figure falls within what is plausible. An exchange rate can be tiny before a redenomination (the Argentine austral) or huge in hyperinflation (Zimbabwe, 2008), but never 0 or infinite. The range of exchange rates and parities is very wide on purpose: real errors are caught by the check on jumps.
  3. Coverage.
    • At least 150 countries, or 100 in the surveys.
    • Never fewer countries than there already were.
  4. Years.
    • No future year.
    • No figure for the current year: a yearly figure is only complete when the year has ended.
    • The data year cannot be more than 4 years old, nor 8 in the surveys. This is only required in the yearly download: a build with old data keeps working, and each tool says which year its data are from.
    • It can never be earlier than the one there already was.
  5. Jumps.
    • If a figure is multiplied or divided by more than 50 from one year to the next, the download stops, unless prices rose 300 % or more that year.
    • A jump that was already in the data in use is not counted: the move to the euro, the unification of the kyat in 2012, Ecuador's dollarisation in 2000.
    • In the first download, jumps are only listed for review.
  6. Currencies. A country without a currency in CLDR is left out of every series, and the report says so. That is the case of the Channel Islands, which have no ISO code.
  7. Revisions. Figures revised a lot are listed for review, but they do not stop the download: more than 25 %, or more than 5 points in an inflation figure. A new ICP round revises whole series.

If anything fails, no data are written. The report (REPORT.md) says what failed, and the yearly pull request carries only that report.

Limits

  • Delay. Yearly data arrive late. In October 2026 the last complete year is 2025 for inflation and exchange rates, and 2024 for the price level.
  • Parity and price level.
    • They are national averages: an expensive city can cost much more.
    • They come from the 2021 round of the International Comparison Program (ICP). The World Bank extrapolates the following years.
  • Surveys.
    • Each country has its own survey year.
    • Some countries measure consumption and others income.
    • It is a mean, not the median: those who have most push it up.
  • Countries without data. They do not appear. No tool invents a figure.

What is debatable

  • The data year. The "half of the countries" rule is a choice. A single country's figure may be more recent, and each tool shows the year of the figure it uses.
  • The jump threshold. ×50 lets large but real devaluations through (×10 in a year), and stops unit errors (×1000).

Status: provisional

The session that created this module could not reach api.worldbank.org or ec.europa.eu, and could not add a workflow. The current data come from:

  • World Bank: its public mirror github.com/datasets/world-development-indicators. It is an automatic copy of the World Bank's API, the update of 1 July 2026, with a CC BY 4.0 licence in each datapackage.json. It was read with npm run official-data -- --mirror DIR.
  • Eurostat: Inflation Lens's figures typed by hand (2 October 2026), marked as provisional.

Each file says so in meta.provisional. The yearly workflow's first run downloads from the official sources and replaces them.

History

  • 14 October 2026. Horalis Inflation reads eurostat-hicp and wb-inflation (phase B5) and drops its own copy (hicp.json): see inflation.
  • 9 October 2026. Changes after the independent review:
    • Each country's currency is its own when it is in use: HTG in Haiti, PAB in Panama, ILS in Palestine.
    • A country without a currency is left out.
    • Figures for the current year are not accepted.
    • The download is also compared with the provisional data.
    • The report is always written, even if the script fails.
    • A build does not fail for having old data.
  • 9 October 2026. New sheet (phase A1 of the Horalis plan).
    • Starting data from the public mirror, provisional.
    • The yearly workflow stays in packages/seed-kit/scripts/, ready to copy to .github/workflows/.