{
  "ok": true,
  "inputs": {
    "budget": 3000,
    "weights": {
      "cost": 5,
      "internet": 5,
      "safety": 5,
      "healthcare": 5,
      "air": 5,
      "english": 5
    },
    "withinBudget": true,
    "needsVisa": false
  },
  "rows": [
    {
      "country": "RO",
      "name": "Romania",
      "flag": "🇷🇴",
      "region": "Europe & Central Asia",
      "fit": 91.1,
      "quality": 89.3,
      "costScore": 100,
      "essentialsUsd": 917.55,
      "budgetRatio": 3.27
    },
    {
      "country": "SI",
      "name": "Slovenia",
      "flag": "🇸🇮",
      "region": "Europe & Central Asia",
      "fit": 85.7,
      "quality": 91,
      "costScore": 59,
      "essentialsUsd": 1384.61,
      "budgetRatio": 2.17
    },
    {
      "country": "SG",
      "name": "Singapore",
      "flag": "🇸🇬",
      "region": "East Asia & Pacific",
      "fit": 85.6,
      "quality": 89.5,
      "costScore": 66,
      "essentialsUsd": 1297.57,
      "budgetRatio": 2.31
    },
    {
      "country": "MT",
      "name": "Malta",
      "flag": "🇲🇹",
      "region": "Middle East, North Africa, Afghanistan & Pakistan",
      "fit": 85.6,
      "quality": 91.3,
      "costScore": 57,
      "essentialsUsd": 1403.16,
      "budgetRatio": 2.14,
      "visa": {
        "name": "Nomad Residence Permit",
        "incomeMonthlyUsd": 3600,
        "eligible": false
      }
    },
    {
      "country": "MD",
      "name": "Moldova",
      "flag": "🇲🇩",
      "region": "Europe & Central Asia",
      "fit": 85.5,
      "quality": 82.6,
      "costScore": 100,
      "essentialsUsd": 854.65,
      "budgetRatio": 3.51
    },
    {
      "country": "PL",
      "name": "Poland",
      "flag": "🇵🇱",
      "region": "Europe & Central Asia",
      "fit": 84.4,
      "quality": 82.7,
      "costScore": 93,
      "essentialsUsd": 1053.63,
      "budgetRatio": 2.85
    },
    {
      "country": "PT",
      "name": "Portugal",
      "flag": "🇵🇹",
      "region": "Europe & Central Asia",
      "fit": 84.3,
      "quality": 88.8,
      "costScore": 62,
      "essentialsUsd": 1344.9,
      "budgetRatio": 2.23,
      "visa": {
        "name": "D8 Digital Nomad Visa",
        "incomeMonthlyUsd": 3550,
        "eligible": false
      }
    },
    {
      "country": "HU",
      "name": "Hungary",
      "flag": "🇭🇺",
      "region": "Europe & Central Asia",
      "fit": 83.8,
      "quality": 83.2,
      "costScore": 87,
      "essentialsUsd": 1094.07,
      "budgetRatio": 2.74,
      "visa": {
        "name": "White Card",
        "incomeMonthlyUsd": 3250,
        "eligible": false
      }
    },
    {
      "country": "BN",
      "name": "Brunei",
      "flag": "🇧🇳",
      "region": "East Asia & Pacific",
      "fit": 83.3,
      "quality": 79.9,
      "costScore": 100,
      "essentialsUsd": 687.3,
      "budgetRatio": 4.36
    },
    {
      "country": "CA",
      "name": "Canada",
      "flag": "🇨🇦",
      "region": "North America",
      "fit": 83.2,
      "quality": 94.2,
      "costScore": 28,
      "essentialsUsd": 1924.68,
      "budgetRatio": 1.56
    }
  ],
  "considered": 167,
  "excluded": {
    "region": 0,
    "budget": 0,
    "visa": 0
  },
  "methodology": "Quality is the livability composite (internet speed, safety, healthcare access, air quality and English, weighted by your settings; a missing metric is left out and the rest reweighted). Cost is how far your budget goes against modelled monthly essentials, scored 0 at break-even and 100 at three times the essentials or more. The fit score is the two blended by your cost weight against the sum of the quality weights. Region, budget and visa are filters, never weights. internetMbps = median fixed broadband download. Scores 0–100: safety (crime/personal security), healthcare (access + quality for residents/expats), airQuality (annual urban average), english (how far English gets you day-to-day). Composite = user-weighted mean with internet normalized as min(100, mbps ÷ 2.5). Objective livability dimensions from keyless public data, merged over the curated base. safety = intentional-homicide rate per 100k inverted (World Bank VC.IHR.PSRC.P5); healthcare = UHC service coverage index, an ACCESS measure, used unmodified (WHO GHO UHC_INDEX_REPORTED); airQuality = mean PM2.5 µg/m³ inverted, urban where available (WHO GHO SDGPM25). lifeExpectancy and internetUsersPct are informational and NOT scored (World Bank SP.DYN.LE00.IN, IT.NET.USER.ZS). internetMbps (broadband speed) and english remain curated in livability.json.",
  "caveats": [
    "Published rules and conditions as read from the named sources on the dates shown, for information only. This is not legal or immigration advice; rules change by decree and by region, and how one applies to a person depends on facts this tool does not hold. Confirm with the authority before acting.",
    "A ranking of published figures against the weights given, not a recommendation. Essentials are modelled; the quality metrics are measured and each has its own source year.",
    "Modelled and published cost figures as of the dates shown, for information only. What a household actually pays depends on its own earnings, benefits, hours and provider; check the figure against a real quote before deciding."
  ],
  "attribution": {
    "sources": [
      {
        "id": "worldbank-livability",
        "label": "World Bank — homicide rate & development indicators",
        "attribution": "safety = intentional-homicide rate per 100k, inverted (World Bank VC.IHR.PSRC.P5).",
        "updated": "2026-09-07",
        "url": "https://data.worldbank.org/indicator/VC.IHR.PSRC.P5"
      },
      {
        "id": "who-gho-livability",
        "label": "WHO Global Health Observatory",
        "attribution": "healthcare = UHC service coverage index; airQuality = mean PM2.5 inverted.",
        "updated": "2026-09-07",
        "url": "https://www.who.int/data/gho"
      }
    ],
    "citation": "Geo-Parity — Which Country Fits Me. Data: World Bank — homicide rate & development indicators and WHO Global Health Observatory. https://geo-parity.com/move/?tab=fit",
    "permalink": "https://geo-parity.com/move/?tab=fit",
    "terms": "Free to use and quote with attribution. Figures are estimates for orientation, not advice."
  }
}