Back to Home

Methodology

How data is collected, how Fit Scores are calculated, and the criteria used to rank countries

How is the Fit Score Calculated?

The Fit Score (0–100) is calculated from your profile compared against each country’s data, broken down into 4 pillars:

  • Social peace index, crime index, healthcare quality, LGBTQ+ safety, immigrant acceptance, gender equality, natural disaster risk
  • Cultural Asian food access, English proficiency, Work-Life Balance
  • Economic cost of living compared to Bangkok, rent, salary by profession, taxes, remittance to Thailand
  • Political democracy index, corruption index, freedom of expression
View Pillar Sub-Score Formulas

Social = average of 7 indicators

  • peace_index × 20
  • 100 − crime_index (Numbeo, 0–100; higher = more crime)
  • healthcare_quality (0–100)
  • lgbtq_safety × 20
  • immigrant_acceptance × 20
  • 100 − (gender_equality_rank − 1) × 0.7 (WEF rank; rank 1 = 100)
  • 100 − disaster_risk × 2 (lower risk = higher score)

Cultural = average of 3 indicators

  • asian_food_access × 20
  • english_proficiency (0–100)
  • work_life_balance × 20

Economic

100 − (cost_of_living_vs_bkk − 1) × 30

Political = average of 4 indicators

  • democracy_index × 10
  • corruption_index (0–100)
  • freedom_of_expression × 20
  • political_stability (World Bank WGI, −2.5 to +2.5 → 0–100)

* Pillar Sub-Scores are for display only and are not used to calculate the Overall Score

What speaking a language is worth

The old test asked one question: is a language you speak an official language here? For English that gave the wrong answer almost everywhere. An English speaker scored full marks for India, where EF measures English proficiency at 55, and nothing at all for the Netherlands and Iceland, both at 90 — despite Amsterdam being plainly easier to live in. English is official in only 11 of our 51 countries, so the test missed every high-proficiency country in Europe.

From v4.7, English is scored on how far it actually gets you — the EF proficiency figure for that country — rather than on whether it happens to be official. Every other language keeps the official-language test, because no equivalent cross-country index exists for them. Speaking the local language is worth more than English almost everywhere, and the two are compared rather than added: someone who speaks English and German is not twice as equipped for Germany as someone who speaks only German.

A country's English proficiency also stopped counting inside cultural proximity, where it had been credited to everyone — including people who do not speak English, for whom it is worth nothing.

Where the visa data comes from

Until August 2026 the hardest question on this site — how difficult is it actually to get a work visa here? — was answered by our own guess, and it only ever used two of its four levels: 36 countries “moderate”, 14 “hard”, none easy, none very hard, and no source behind any of them. It is the field the visa score depends on most, and a user can rank that first.

45 countries are now classified against a published rubric, read from national immigration authorities and consolidated statute, then re-checked by an independent reviewer whose brief was to refute rather than agree. The rubric asks four things: does a labour-market test apply, how does the salary threshold compare with the national median, does a quota or lottery bind in practice, and does any route exist that needs no employer at all.

Some answers inverted what we had written. Germany moved from hard to easy — its Blue Card needs no Federal Employment Agency consent and the Chancenkarte lets you arrive to look for work. The United States moved to very hard, because its main skilled route is capped by statute and allocated by lottery: a qualified applicant with a willing employer can simply lose. Five countries are still marked from our own judgement, because the reviewers were not confident enough to replace them.

Residence timelines are now counted on one basis for every country: total years from first arrival, not years held in some earlier status. That distinction matters more than it sounds. Hungary was recorded as 8 years to citizenship, but its statute counts only time already held as a long-term resident, so from arrival it is 11. We also stopped writing “no fixed timeline” and “no route at all” into the same blank: Singapore grants permanent residency routinely with no qualifying period in law, and had been scoring below countries that take a decade.

Occupations and salary data

The survey offers fifteen occupations, chosen from the roles the country data itself records as common for migrants — Chef/Cook and Hotel Staff appear across roughly a hundred country entries, and Massage Therapist in thirty-seven.

Salary data, however, exists in only eight buckets per country. Occupations we cannot price separately read from the nearest bucket rather than from a number invented to fill the gap: hospitality and spa/wellness are quoted at trades rates, care work at healthcare rates, legal at business rates, engineering at tech rates, and academia at education rates. Choosing one of those currently gives the same salary-based score as choosing its bucket. Separating them requires published earnings by sector, which we do not yet have in hand — and we would rather say so than show you a figure we made up.

What your monthly spending does

Until v4.6 it did nothing at all. The figure appeared on both sides of the purchasing-power fraction and cancelled exactly, so answering ฿20,000 and ฿150,000 produced identical scores for every country. That was a bug, not a design choice, and it is worth stating plainly rather than quietly fixing.

From v4.6, purchasing power is half the old relative measure — how much better your profession is paid there once cost of living is accounted for — and half an absolute one: whether the median local wage covers your own spending, transplanted to that country's prices. Someone living on ฿20,000 a month has far more viable destinations than someone living on ฿150,000, and the score now says so.

This leans harder than before on the median salary figures, which are among the editorial fields listed on the data sources page — they carry no published source. Treat the economic side of a score as the roughest part of it.

You can check any score yourself

You do not have to take this page on trust. Open any country on the map and press “How this score was calculated” under its Fit Score. It expands into the full working for that country and your answers: how much weight each of your priorities carries, how the country scores on it, the weighted base, every bonus both before and after the limit, and the rounding to the final number.

The breakdown is not a description written alongside the engine — it is emitted by the engine while it computes, so it cannot drift from the score it explains. It also names the things that are easy to hide: priorities the system added on your behalf and why, priorities skipped because they only apply to Thai passport holders, and the reason a score was forced to 0.

Weighting

Scores are weighted based on the top 5 priorities you selected in the survey. Rank 1 receives the highest weight, while rank 5 receives the lowest.

View Weighted Priority Sum Formula

Overall = baseScore + bonuses (clamped to 0–100)

baseScore = Σ(weight × priorityScore) / Σ(weight)

RankWeightExample
Rank 16 (46%)6 × safety score
Rank 23 (23%)3 × healthcare score
Rank 32 (15%)2 × climate score
Rank 41 (8%)1 × cost of living score
Rank 51 (8%)1 × visa score

Total weight = 6 + 3 + 2 + 1 + 1 = 13 — rank 1 has 6x the influence of rank 5 (v4.3 default)

Additional bonuses are also applied (up to 12 points total):

  • Language Match Bonus (+3) countries where a language you speak is an official language
  • Thai Community Bonus (0 to +4) tiered system based on the Thai population in each country (Thai passports only)
  • Budget Fit (+0 to +3) calculated from the cost of living relative to your budget
  • Religion Match (+0 to +4) the country’s main religion matches yours
  • Politics Alignment (−2 to +3) your political orientation aligns with the country’s
  • Age-Aware Visa (+0 to +3) Working Holiday available (age 18–34) or retirement visa (age 55+)
The three visa priorities, and why tourist visas are not scored (v4.5)

Three of the twelve priorities concern visas. From v4.5 each answers a different question and reads a different fact, so ranking two of them states two preferences rather than the same one twice. In v4.3 and earlier all three read work-permit difficulty, and visa accessibility was 40% tourist access.

  • Job opportunity — salary against local cost, and how actively the country recruits foreign workers.
  • Ease of getting a visa — how hard the work permit is, plus routes that need no employer at all: digital nomad, retirement, investment.
  • Permanent relocation route — how long PR and citizenship actually take.

Tourist visa access is shown on every country page but is deliberately left out of the score. You cannot relocate on a visitor visa. When it was included it ranked Qatar — 22 years to permanent residency, no route to citizenship — above Canada, which offers PR in 2 years and citizenship in 3, purely because a Thai passport enters Qatar without one.

How your passport changes the score

Some of our data describes Thailand specifically — visa access is recorded for a Thai passport, and community size is the Thai diaspora in each country. We do not hold the equivalent data for every other nationality, and we would rather show you nothing than show you someone else's numbers.

If you selected a passport other than Thai:

  • "Visa accessibility" and "Thai community" are not offered as priorities, and are skipped if a saved answer still contains them. The remaining priorities are re-weighted against each other, so your ranking still decides the result.
  • The visa-free and Thai community bonuses are not applied, since both are derived from Thai-passport data.
  • Tourist visa access, Thai diaspora counts and Thai temple counts are hidden from the country pages, comparison table and map, rather than shown to you as if they were yours.
  • Cost of living, flight time and purchasing power are calculated against your own country, not Bangkok.

Everything else — safety, healthcare, climate, political freedom, immigration pathways, gender equality — is nationality-independent and scores the same for everyone.

View Profile-Aware Phantom Priorities (v4)

The system automatically adds priorities based on your profile to protect users without requiring them to choose explicitly:

  • LGBTQ+ — automatically adds "LGBTQ+ rights" (weight 2) + immediately filters out dangerous countries
  • Family with children — automatically adds "safety" + "healthcare" (weight 1.5)
  • Women / Non-binary — automatically adds "gender equality" (weight 1)

* Phantom priorities are only added if you haven’t already selected them in your top 5

View Per-Priority Scoring Formulas (0–100)
PriorityFormula
Cost of living100 − (cost_vs_bkk − 0.5) × 40 — Bangkok equivalent = ~80 points, cheaper = higher, 2x more expensive = ≤30 (considers user’s actual budget)
Safetyv4: 30% peace + 25% crime + 20% disaster + 25% political stability | v3.2: 40% peace + 30% crime + 30% disaster
Political freedomdemocracy_index × 10
LGBTQ+ rightslgbtq_safety × 20
Climate% of temperature range overlap with your selected range
Healthcarehealthcare_quality (0–100 directly)
Job marketvisa difficulty + salary/cost ratio + career info
Thai community>50K = 100, >20K = 80, >5K = 60, >1K = 40, fewer = 20 (tiered system)
Cultural proximityasian_food_access × 20
VisaWork-permit difficulty (sourced from statute) + routes that need no employer, such as digital nomad, retirement or investment visas. Tourist visa access is not scored — you cannot relocate on a visitor visa
Immigration pathwayPermanence only: years to permanent residency + years to citizenship, both counted from first arrival. Faster is higher. A country whose route exists but sets no statutory period scores mid-table; one with no route at all scores zero
Gender equality100 − (WEF rank − 1) × 0.7 — rank 1 = 100, rank 146 ≈ 0

Hard Filter: If you selected “LGBTQ+ rights” as important, countries with lgbtq_safety < 2 will receive a score of 0 immediately (filtered out)

Data Collection

All country data is compiled from trusted public sources and stored as static JSON files that are updated periodically.

We do not create our own indices. Instead, we use internationally recognized indices such as the Democracy Index from EIU, Press Freedom Index from RSF, and the Corruption Perceptions Index from Transparency International.

PR and citizenship pathway data is verified against 2025–2026 immigration laws for each country, with notes describing the process, processing time, and key requirements. Countries without real PR or citizenship pathways (e.g., Saudi Arabia, Qatar) are marked as “no pathway.”

Natural disaster risk data uses the World Risk Index (WRI), which combines natural hazard exposure with government coping capacity into a single score — countries with high natural hazards but strong coping capacity (e.g., Japan) will score lower than countries with poor coping capacity.

Experiment: Scoring Algorithm Comparison

The system is experimenting with multiple scoring algorithm versions. You can switch versions via the Bug icon on the survey results page. Scores update instantly across the entire system. (v1 is not available in the debug switcher — shown here for comparison only.)

Area
v1
retired
v2
legacy
v3
experimental
v3.1
experimental
v3.2
experimental
v4
experimental
v4.1
experimental
v4.2
experimental
v4.3
default
v4.5
experimental
v4.6
experimental
v4.7
experimental
Priority WeightsLinear [5,4,3,2,1] — rank 1 = 33%Steep [5,3,2,1,1] — rank 1 = 42%Same as v2Same as v2Same as v2Same as v2 + phantom priorities from profile[7,3,2,1,1] — rank 1 = 50% + phantom prioritiesSame as v4.1[6,3,2,1,1] — rank 1 = 46% (more balanced than v4.1)[6,3,2,1,1] — rank 1 = 46% (more balanced than v4.1)[6,3,2,1,1] — rank 1 = 46% (more balanced than v4.1)[6,3,2,1,1] — rank 1 = 46% (more balanced than v4.1)
Cost of Living100 − (cost−1)×50 — BKK=100, steep curve100 − (cost−0.5)×40 — BKK≈80, softer curve + budget-awareSame as v2Same as v2Same as v2Same as v2Economic pillar = 40% CoL + 60% Purchasing Power (profession-aware)Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Safetypeace_index × 20 (single factor)70% peace + 30% disaster riskSame as v2Same as v240% peace + 30% crime + 30% disaster30% peace + 25% crime + 20% disaster + 25% political stability35% peace + 15% crime + 20% disaster + 30% stabilitySame as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
ClimateClimate type only (tropical=90, subtropical=75, other=50)% temperature overlap with user-selected range (fallback to climate type)Same as v2Same as v2Same as v2Same as v2Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Thai Community (metric)Linear: min(100, population/1000)5-tier: >50K=100, >20K=80, >5K=60, >1K=40, less=20Same as v2Same as v2Same as v2Same as v2Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Cultural Proximityasian_food_access × 20 (single factor)Same as v14 factors: food 40% + English 25% + WLB 20% + Buddhist community 15%Same as v3Same as v3Same as v3Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Visa Accessibilityvisa_free=100, VOA=80, eVisa=60, embassy=30Same as v1embassy 30→40, eVisa 60→65, +DN bonus +10Same as v3Same as v3Same as v3Same as v4Same as v4.1Hybrid: 40% tourist + 60% immigration (work visa, DN, PR pathway)Work-permit difficulty + routes needing no employer (DN/retirement/investment) — tourist visa removed from scoringWork-permit difficulty + routes needing no employer (DN/retirement/investment) — tourist visa removed from scoringWork-permit difficulty + routes needing no employer (DN/retirement/investment) — tourist visa removed from scoring
Visa-Free Bonus+5+3+3+3+3+3+30 (removed)+3Removed — tourist visa is not scoredRemoved — tourist visa is not scoredRemoved — tourist visa is not scored
Language Bonus+5+3+3+3+3+3+3Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Thai Community Bonus>10K = +3 (binary)>10K = +2 (binary)5-tier: ≥100K=+4, ≥50K=+3, ≥20K=+2, ≥5K=+1, less=0Same as v3Same as v3Same as v3Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Budget Fit Bonus+0 to +5+0 to +3+0 to +3+0 to +3+0 to +3+0 to +3PP-aware: PP≥80→+3, ≥60→+2, ≥40→+1, <40→0Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Bonus CapUnlimited (max total ~18)Unlimited (max total ~11)Hard cap at 12Same as v3Same as v3Same as v3Diminishing returns: 14×(1−e^(−raw/12)) — approaches 14 asymptoticallySame as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Proximity / Travel DistanceNoneNoneFixed bonus: ≤6h=+5, ≤10h=+3, ≤14h=+1User-selectable "close to Thailand" prioritySame as v3.1Same as v3.1Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Cultural Sub-ScoreAverage of 3 factors (food, english, WLB)Same as v1Weighted 4 factors (food 35%, english 25%, WLB 25%, buddhist 15%)Same as v3Same as v3Same as v3Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Social Sub-ScoreAverage of 4 factors (peace, health, LGBTQ, immigrant)Average of 6 factors (+disaster risk, +gender equality)Same as v2Same as v2Average of 7 factors (+crime index)Same as v3.2Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Political Sub-ScoreAverage of 3 factors (democracy, corruption, expression)Same as v1Same as v1Same as v1Same as v1Average of 4 factors (+political stability)Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Profile-Aware Phantom PrioritiesNoneNoneNoneNoneNoneLGBTQ+ → lgbtq_rights, family → safety+health, women → gender equalitySame as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Profile-Aware BonusesNoneNoneNoneNoneNoneReligion match +4, politics alignment -2 to +3, Working Holiday/retirement +3Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
LGBTQ+ Hard Filterpriority=lgbtq + safety<2 → 0Same as v1Same as v1Same as v1Same as v1priority=lgbtq OR orientation=lgbtq + safety<2 → 0Graduated: <1.5 → 0, <2.5 → −20, ≥2.5 → no penaltySame as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Specialization BoostNoneNoneNoneNoneNoneNoneRank 1 ≥90 → +4, ≥80 → +2Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Economic Sub-Score100 − (cost−1)×30Same as v1Same as v1Same as v1Same as v1Same as v140% CoL + 60% Purchasing PowerSame as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1
Priority Count10 options12 options (+immigration_pathway, +gender_equality)12 options13 options (+travel_distance)Same as v3.1Same as v3.1Same as v4Same as v4.1Same as v4.1Same as v4.1Same as v4.1Same as v4.1

Limitations

  • Data is at the country level and cannot reflect differences between cities.
  • Cost of living and rent are averages for major cities and may differ significantly from rural areas.
  • Individual experiences may differ from statistical data.
  • The Fit Score is a preliminary decision-support tool, not a final answer — you should research further before making a real decision.
  • Temperature data is based on capital/major cities only; actual temperatures may vary by region.

Data Updates

Country data is reviewed and updated at least once a year, following the release schedule of each source. If you find any inaccurate data, you can report it on the Report Data Issues page.