Cost of living
Consumer price level vs USD: World Bank GDP-level PPP conversion factor divided by the official exchange rate. A single number per country: "this basket costs X% of what it costs in the US".
Each tracked country gets five sub-scores, each normalised to 0-100 where higher always means better-for-you. Every dimension is driven by one objective open dataset (World Bank, IHME/OWID, UNODC, WHO, Cloudflare Radar), no blends, no hand-tuned multipliers. Scores combine into a single composite using fixed weights. Below: what each dimension measures, where the data comes from, and how confident we are in each value.
Five sub-scores. Each one comes from a single objective open dataset, no editorial blends, no hand-tuned multipliers. Raw values are clamped to a fixed reference range and scaled 0 to 100. Inverted dimensions (cost, AQI, safety) rank the cheapest / cleanest / safest at 100. Visa was dropped 2026-05-20 (no defensible open-source single-source metric); policy detail surfaces on country and /visa pages instead.
Consumer price level vs USD: World Bank GDP-level PPP conversion factor divided by the official exchange rate. A single number per country: "this basket costs X% of what it costs in the US".
Annual mean PM2.5 (population-weighted) from IHME's Global Burden of Disease air-pollution exposure series, refreshed every pipeline tick from Our World in Data's mirror. Bali inherits Indonesia.
When the smoke arrives in each country. Mainland SE Asia burns in the cool dry months (Jan-Apr); Indonesia burns when its dry season peaks (Jun-Oct); Bali is largely spared. Worth knowing if you have lungs that complain or you're planning a multi-month stay.
| J | F | M | A | M | J | J | A | S | O | N | D | |
| Thailand | Feb-Apr | |||||||||||
| Vietnam | Jan-Mar | |||||||||||
| Cambodia | Jan-Mar | |||||||||||
| Laos | Jan-Apr | |||||||||||
| Philippines | Jan-Mar | |||||||||||
| Malaysia | Feb-Apr | |||||||||||
| Indonesia | Jun-Oct | |||||||||||
| Bali | Largely spared | |||||||||||
Severity is qualitative: mild = mostly clear with a haze risk in bad years (PH, MY); significant = annual multi-week WHO breach (TH, VN, KH); severe = repeated 100+ µg/m³ peaks (north LA, Sumatra/Kalimantan in ID).
UNODC intentional homicide rate per 100,000 population. Latest year published by UNODC for each country, mirrored via the World Bank.
WHO Universal Health Coverage Service Coverage Index, mirrored via the World Bank. A 0 to 100 composite of 14 tracer indicators across access, prevention, treatment and capacity, designed for cross-country comparison.
Median observed download bandwidth (Mbps), 7-day rolling window. Real-world experience on Cloudflare's network, not peak Speedtest values, which are typically much higher.
Switch between PM2.5, rain, temperature, wind and humidity. Surface forecasts from ECMWF, regional context for the AQI sub-score, which uses the IHME annual-mean PM2.5 (the live map is forecast context only).
Surface forecasts from ECMWF, via Windy · Open larger map →
Sub-score contributions to the composite. If a dimension is missing for a country, the remaining weights are renormalised across the available subset so a single missing dimension doesn't double-penalise.
Loading…
Every sub-score is tagged with a confidence level so you can read the dashboard with the right amount of scepticism.
Live API, fresh data this run.
Verified reference data updated within the last ~90 days.
Missing, stale, or sparse. Flagged with a bold red * next to the score.
Composite score per country, week by week. Empty cells mean no score is available for that week.
Loading…
Country-level rank from the annual World Happiness Report, published each March. Shown on the country page as auxiliary context, it does not feed the composite score. Updated once per year.
Source: World Happiness Report, University of Oxford Wellbeing Research Centre / Gallup / UN SDSN.