How we produce per-person monthly cost-of-living estimates for 888 locations worldwide. Named sources, single anchor, quarterly refresh.
The CostLiving Engine takes free public datasets and produces a single per-person monthly cost figure for each of our 888 locations. The figure is reproducible. Every location records which dataset produced it. Every refresh is automated, validated, and reviewed before it reaches the site.
We built the engine because credibility matters more than convenience. Cost-of-living estimates that anyone can challenge with a public dataset are worth more than estimates that look precise but cannot be defended.
Every figure on CostLiving traces to one of these public datasets. We list the dataset, what role it plays, the coverage, and a direct link.
Primary signal for global cities and country-level aggregation
535 cities, 154 countries, refreshed quarterly
Provides relative cost-of-living indices that the engine converts to absolute USD using the BLS anchor below.
Absolute USD anchor for all global locations
Single-consumer-unit annual expenditure, refreshed annually each September
The dollar value that turns Numbeo's relative index into real money. Excludes personal insurance, pensions, and cash contributions to focus on consumption spending.
All 50 US states plus Washington DC and Puerto Rico
52 jurisdictions, refreshed annually each Q1
The same dataset the U.S. Census Bureau Statistical Abstract cites for state cost comparisons. Drives every US state page on CostLiving.
Cross-validation against MERIC and metro-area anchoring for the New York anchor
All 50 states, plus 380 metro areas, refreshed annually each May or June
Used to anchor the New York-Newark-Jersey City reference point that calibrates the entire global engine.
European country triangulation
37 European countries (EU27 plus EFTA, UK, accession states), 2024 data, refreshed annually
Pulled live each refresh. Every country page is cross-checked against Eurostat's Comparative Price Levels for final household consumption. Spread above 50% triggers a human-review flag in the validator output.
Global price level triangulation
189 countries, 2023 data, refreshed annually via World Bank API
Pulled live each refresh. We compute country price level versus USA from World Bank's PPP conversion factor and market exchange rate. Used as an independent cross-check on every country aggregate the engine produces. Countries with implausible values (typically caused by official exchange rates being decoupled from market rates, like Iran or Egypt) are filtered out.
Sub-regional and sub-national locs
INE (Spain), INEGI (Mexico), ISTAT (Italy), ONS (UK), BPS (Indonesia), and others
Where a national agency publishes regional household expenditure data, the engine uses it for sub-country regions like Sicily, Bali, or the Canary Islands.
Every loc page shows costs across four tiers. The multipliers are fixed and applied consistently across all 888 locations.
Frugal living. House-sharing or less central housing, mostly home cooking, public transport, minimal entertainment.
Working-professional baseline. Modest private apartment, mix of cooking and eating out, public transport with occasional taxis.
Higher standard. Better neighbourhood, frequent dining out, gym and wellness, mid-range healthcare cover.
Premium lifestyle. Upscale residence, daily restaurant meals, private healthcare, international travel.
Each tier total is split across eight spending categories. Weights are based on standard household expenditure data from the World Bank, OECD household spending research, and the BLS Consumer Expenditure Survey.
| Category | Weight |
|---|---|
| ๐ Housing / Rent | 38% |
| ๐Food & Groceries | 20% |
| ๐Transport | 9% |
| โกUtilities | 7% |
| ๐ฅHealthcare | 7% |
| ๐ญEntertainment | 9% |
| ๐Clothing | 5% |
| ๐ฆMiscellaneous | 5% |
The engine runs on a quarterly cadence: 1 January, 1 April, 1 July, and 1 October. Each refresh follows the same five steps.
Each quarter the engine pulls or validates the latest snapshot of every named source. BLS and MERIC update annually on their published schedules. Numbeo is refreshed quarterly. National statistics offices update on their own cadences.
Each source is checked for header integrity, row count, value range, and freshness. A failed source-validator stops the refresh before any downstream change reaches the site.
Every loc is routed through one of seven documented resolution paths. Each path produces a logged provenance entry recording which source produced the figure.
The fresh cache is written, an engine-specific validator runs ten cross-checks, and a movers report is generated comparing the new cache to the previous one.
The refresh opens a pull request on GitHub with the diff, the movers list, and the validator findings. Each refresh is reviewed before merging in the first year of operation.
Every dataset that feeds CostLiving is published by a government agency, an international institution, or a public ranking. No paid APIs. No proprietary data. Anyone can verify any figure against the same source we used.
The entire global engine is anchored against one absolute USD value: the BLS Consumer Expenditure Survey single-consumer-unit figure for the New York metro area. Every other location is positioned relative to that anchor using its public index.
Every loc in the cache records which source produced its figure. We can tell you, for any of our 888 locations, exactly which dataset and which row of that dataset produced the number.
An engine-specific validator runs ten checks before any change reaches production: coverage, path provenance, anchor invariance, tier ratio integrity, breakdown sum integrity, mover sanity, tier-3 audit trail, source freshness. Any error blocks the build.
The BLS anchor faithfully excludes personal insurance and pensions, cash contributions, and income taxes from total expenditures. These are not consumption spending and including them would inflate every loc on the site. The exclusions are stated openly and reproducible from BLS source tables.
Every individual location page on CostLiving renders a per-person monthly cost figure. The flagship US insights report renders a household figure. The two are intentionally different methodologies and should not be compared directly.
The per-person figure answers "how much does it cost one adult to live here for a month?" and is what most readers want when planning a move or a remote-work base. The household figure answers "what does an average US household spend?" and is anchored against the BLS national household baseline of $61,334 per year, applied against the MERIC state index. The two figures live on different pages because they serve different audiences and use different baselines. Both are documented.
A small number of locs have no direct coverage in any global or national dataset. The engine resolves these through a documented regional adjustment factor against the most comparable parent loc, with a written rationale and a public source link recorded internally. The methodology is described here, but the per-loc list is not published, because the figures are most defensible when read in context of the loc page itself.
The engine does not predict the future. Costs change. Currency moves. The engine refreshes quarterly, but a sharp post-pandemic price change or a sudden currency move may not be reflected until the next refresh.
The engine does not capture intra-loc variation. The difference between an apartment in central London and one 45 minutes outside can be 60 percent. The figures on this site are a reasonable middle ground, not a guarantee.
The engine does not capture local-vs-foreigner pricing. In some markets, foreign residents are charged more than locals for housing and services. The figures here generally reflect foreigner-facing pricing rather than local pricing.
Per-loc estimates: see any of our 888 location pages. Lifestyle tier definitions and category weights are also covered on the methodology page. State-by-state US household figures are on the 2026 US cost of living report.
Based on moderate lifestyle estimates ยท click any location to see full breakdown