Skip to content
Horalis
Theme

Kept only in this tab.

HoralisAll the Horalis tools

Tools

Theme

Kept only in this tab.

Sheet: cost of living by country

All the research sheets

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

  • App: Horalis Growth and Horalis Cost of Living (the same data) · Reviewed: 9 October 2026 (phase A2 of the Horalis plan)
  • Code: packages/seed-kit/src/official/living-costs.ts (the method, in the build), packages/seed-kit/scripts/living-costs.ts (writes the table), packages/seed-kit/src/data/living-costs.json (the table the pages read) and packages/seed-kit/src/cost-of-living.ts (reading it); in Horalis Growth, src/lib/calculator.ts (countryRows, dearestCovered, featuredRows, a country's goals); in Horalis Cost of Living, projects/cost-lens/src/calc.ts.
  • Data: the official series of module A1 (official data).

The question it answers

"How much does a person need each month to live in a country?" In Horalis Growth it is "Enough to live in", the table of countries (with ✓ and from which year) and the goals of "living in a country". In Horalis Cost of Living, what an amount from one country is worth in another.

The formula, in plain words

The World Bank's household surveys say how much an average person of each country lives on per day, in 2021 international dollars. They are brought to the latest year's prices with US inflation, turned into the dollars that buy the same there with the country's price level, multiplied by the days of a month and turned into euros at that year's official rate.

Exact, for a country:

  • m = the mean consumption or income per person per day of its latest survey (SI.SPR.PCAP), in 2021 PPP dollars.
  • t = the latest year with the country's price level; q = that price level (PA.NUS.PPPC.RF: GDP PPP / market exchange rate; US = 1).
  • U(t) = ∏ (1 + US inflation of year k), from 2022 to t (the US's FP.CPI.TOTL.ZG).
  • Cost per month in dollars of t = m × U(t) × q × 365.25 / 12.
  • In euros = dollars × euros per dollar in t (Germany's PA.NUS.FCRF, the same for the whole euro area), rounded like every cost (roundMoney: to 1 below 95, to 10 below 10,000, to three figures above; never less than 1): with steps of €10, the poorest countries (€20–40 a month) gave ratios that were too coarse.
  • In another currency (phase A3) = dollars × units of that currency per dollar in t, with the same rounding. See currencies.

In Horalis Growth, a country is "enough" when what the money pays each month reaches that cost:

  • Capital that pays it: 12 × monthly cost / withdrawal rate (see withdrawal rate).
  • ✓ if the total at the end of the plan's years reaches that capital; the year is the first in which it does, by growth.

A country without a survey or without a price level does not appear. No figure is invented.

Assumptions

  • The survey's mean describes "an average person". It includes housing (rent or what is spent on it), because it is all their consumption or income.
  • The real standard of living does not change from the survey to t: only prices are adjusted.
  • A 2021 international dollar rises with US inflation (that is the definition of PPP: a dollar at US prices).
  • The GDP price level stands for consumer prices.
  • In today's euros, a country's cost does not change over the years (each country's prices rise at the pace of its currency).

Sources (dated)

All from the World Bank, licence CC BY 4.0, checked in each indicator's metadata (see official data):

  • SI.SPR.PCAP, Poverty and Inequality Platform: mean consumption or income per person per day, 2021 PPP dollars; surveys from 2010 to 2025 (each country, its latest).
  • PA.NUS.PPPC.RF, price level (ICP 2021, extrapolated by the World Bank): 2024.
  • FP.CPI.TOTL.ZG, US inflation: 2022 to 2024.
  • PA.NUS.FCRF, official exchange rate, yearly average: 2024.
  • Download: 9 October 2026, provisional, from the World Bank's public mirror on GitHub (the update of 1 July 2026). A1's yearly download replaces it with the official one.

Result today: 122 countries, 2024 prices. Examples: Peru €210, Spain €1,090, the Netherlands €1,950, Switzerland €3,070, the US €3,110 a month.

Validation (tests)

  • packages/seed-kit/test/cost-of-living.test.ts:
    • the table the pages read is equal to what the official data give (if not, npm run living-costs);
    • every country with a survey and a price level is there, once each, and no other;
    • a country calculated by hand, step by step;
    • figures that make sense: dearer in rich countries, cheaper in poor ones;
    • source and year with each figure; a name in each language;
    • a country without data is left out.
  • projects/wealth-lens/src/lib/calculator.test.ts (table of countries): order, ✓ if and only if the income pays it, featured rows, Peru at €210.
  • projects/cost-lens/test/calc.test.ts: the equivalence between two countries, there and back, and the five countries where it goes furthest and least far.

Limits

  • A national average: expensive cities cost quite a lot more.
  • Each country has its survey year (from 2010 to 2025). An old survey does not capture how life improved afterwards.
  • Some countries measure consumption and others income; income is usually somewhat higher.
  • It is a mean, not the median: those who have most push it up.
  • Countries without a recent survey on the platform (India, among others) or without a price level are missing. Before, they came out estimated; now they do not.
  • It does not include taxes or the cost of healthcare for someone arriving from abroad.

What is debatable

  1. Mean and not median. The median would better describe "a typical person", and the platform publishes it (SI.SPR.MDIM, if its licence allows). Cost: add the series to A1 and compare.
  2. The GDP price level, not the consumption one. Household consumption's would be more faithful. Cost: look for an open ICP series for consumption.
  3. Old surveys. A country with a 2010 survey stays at the standard of living of then. Cost: bring it to year t with the growth of consumption per person (NE.CON.PRVT.PC.KD), with its own assumption.
  4. The ✓ depends on the withdrawal rate chosen. With the highest rate more countries "are enough", even if it is "very risky". Phase A4 changes the default rate.

History

  • 2026-10-03: first sheet (no change to the calculation).
  • 2026-10-07: the same costs with rent put a price on four wishes.
  • 2026-10-09 (phase A3): each tool gives the cost in its user's currency, with the official rate of the price year (see currencies); the rounding moves to roundMoney (the "to the unit" cut-off goes down from 100 to 95). The figures in euros do not change.
  • 2026-10-09 (phase A2): a new method, with official data only.
    • Before: 30 countries from Numbeo (without rent) and Wise (rent), and 142 estimated with the Netherlands' basket by price level (rent, squared). Numbeo and Wise do not allow copying their data, are not official statistics, and had to be updated by hand.
    • Now: the mean of the World Bank's surveys, a single figure per country (housing included). "Without housing", the "≈" mark and the exclusion for inflation above 30 % are removed (no longer needed: each country comes from its own survey and its own price level).
    • The figures change: Peru goes from €700 (with housing) to €210, the Netherlands from €2,190 to €1,950. The list goes from 172 to 122 countries.
    • The "living in a country" goals of earlier files (with or without housing) move to this figure.
  • 2026-10-14 (phase B3): Horalis Cost of Living first answers "How much do I need to live in a country?": this figure per month and the capital that would pay it, 12 × cost ÷ the data's withdrawal rate (A4) of the chosen investment (to start, US shares: a proposal still to be confirmed, the brief asked for "the world's" and there is no open world series; the series move to packages/seed-kit/src/data/asset-returns/, shared). The page explains what purchasing power parity measures and its limit (a national average, not a city). The comparison of salaries moves to /compare/. The figures do not change.