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
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)
| Rank | Weight | Example |
|---|---|---|
| Rank 1 | 6 (46%) | 6 × safety score |
| Rank 2 | 3 (23%) | 3 × healthcare score |
| Rank 3 | 2 (15%) | 2 × climate score |
| Rank 4 | 1 (8%) | 1 × cost of living score |
| Rank 5 | 1 (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):
- Visa-Free Bonus (+3) — countries that allow visa-free entry for Thai citizens
- 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
- 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+)
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)
| Priority | Formula |
|---|---|
| Cost of living | 100 − (cost_vs_bkk − 0.5) × 40 — Bangkok equivalent = ~80 points, cheaper = higher, 2x more expensive = ≤30 (considers user’s actual budget) |
| Safety | v4: 30% peace + 25% crime + 20% disaster + 25% political stability | v3.2: 40% peace + 30% crime + 30% disaster |
| Political freedom | democracy_index × 10 |
| LGBTQ+ rights | lgbtq_safety × 20 |
| Climate | % of temperature range overlap with your selected range |
| Healthcare | healthcare_quality (0–100 directly) |
| Job market | visa difficulty + salary/cost ratio + career info |
| Thai community | >50K = 100, >20K = 80, >5K = 60, >1K = 40, fewer = 20 (tiered system) |
| Cultural proximity | asian_food_access × 20 |
| Visa | visa_free = 100, VOA = 80, eVisa = 60, other = 30 |
| Immigration pathway | PR pathway (0-40) + citizenship pathway (0-30) + work visa difficulty (0-30) — faster PR/citizenship = higher score |
| Gender equality | 100 − (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 |
|---|---|---|---|---|---|---|---|---|---|
| Priority Weights | Linear [5,4,3,2,1] — rank 1 = 33% | Steep [5,3,2,1,1] — rank 1 = 42% | Same as v2 | Same as v2 | Same as v2 | Same as v2 + phantom priorities from profile | [7,3,2,1,1] — rank 1 = 50% + phantom priorities | Same as v4.1 | [6,3,2,1,1] — rank 1 = 46% (more balanced than v4.1) |
| Cost of Living | 100 − (cost−1)×50 — BKK=100, steep curve | 100 − (cost−0.5)×40 — BKK≈80, softer curve + budget-aware | Same as v2 | Same as v2 | Same as v2 | Same as v2 | Economic pillar = 40% CoL + 60% Purchasing Power (profession-aware) | Same as v4.1 | Same as v4.1 |
| Safety | peace_index × 20 (single factor) | 70% peace + 30% disaster risk | Same as v2 | Same as v2 | 40% peace + 30% crime + 30% disaster | 30% peace + 25% crime + 20% disaster + 25% political stability | 35% peace + 15% crime + 20% disaster + 30% stability | Same as v4.1 | Same as v4.1 |
| Climate | Climate type only (tropical=90, subtropical=75, other=50) | % temperature overlap with user-selected range (fallback to climate type) | Same as v2 | Same as v2 | Same as v2 | Same as v2 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Thai Community (metric) | Linear: min(100, population/1000) | 5-tier: >50K=100, >20K=80, >5K=60, >1K=40, less=20 | Same as v2 | Same as v2 | Same as v2 | Same as v2 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Cultural Proximity | asian_food_access × 20 (single factor) | Same as v1 | 4 factors: food 40% + English 25% + WLB 20% + Buddhist community 15% | Same as v3 | Same as v3 | Same as v3 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Visa Accessibility | visa_free=100, VOA=80, eVisa=60, embassy=30 | Same as v1 | embassy 30→40, eVisa 60→65, +DN bonus +10 | Same as v3 | Same as v3 | Same as v3 | Same as v4 | Same as v4.1 | Hybrid: 40% tourist + 60% immigration (work visa, DN, PR pathway) |
| Visa-Free Bonus | +5 | +3 | +3 | +3 | +3 | +3 | +3 | 0 (removed) | +3 |
| Language Bonus | +5 | +3 | +3 | +3 | +3 | +3 | +3 | Same as v4.1 | Same as v4.1 |
| Thai Community Bonus | >10K = +3 (binary) | >10K = +2 (binary) | 5-tier: ≥100K=+4, ≥50K=+3, ≥20K=+2, ≥5K=+1, less=0 | Same as v3 | Same as v3 | Same as v3 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Budget Fit Bonus | +0 to +5 | +0 to +3 | +0 to +3 | +0 to +3 | +0 to +3 | +0 to +3 | PP-aware: PP≥80→+3, ≥60→+2, ≥40→+1, <40→0 | Same as v4.1 | Same as v4.1 |
| Bonus Cap | Unlimited (max total ~18) | Unlimited (max total ~11) | Hard cap at 12 | Same as v3 | Same as v3 | Same as v3 | Diminishing returns: 14×(1−e^(−raw/12)) — approaches 14 asymptotically | Same as v4.1 | Same as v4.1 |
| Proximity / Travel Distance | None | None | Fixed bonus: ≤6h=+5, ≤10h=+3, ≤14h=+1 | User-selectable "close to Thailand" priority | Same as v3.1 | Same as v3.1 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Cultural Sub-Score | Average of 3 factors (food, english, WLB) | Same as v1 | Weighted 4 factors (food 35%, english 25%, WLB 25%, buddhist 15%) | Same as v3 | Same as v3 | Same as v3 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Social Sub-Score | Average of 4 factors (peace, health, LGBTQ, immigrant) | Average of 6 factors (+disaster risk, +gender equality) | Same as v2 | Same as v2 | Average of 7 factors (+crime index) | Same as v3.2 | Same as v4 | Same as v4.1 | Same as v4.1 |
| Political Sub-Score | Average of 3 factors (democracy, corruption, expression) | Same as v1 | Same as v1 | Same as v1 | Same as v1 | Average of 4 factors (+political stability) | Same as v4 | Same as v4.1 | Same as v4.1 |
| Profile-Aware Phantom Priorities | None | None | None | None | None | LGBTQ+ → lgbtq_rights, family → safety+health, women → gender equality | Same as v4 | Same as v4.1 | Same as v4.1 |
| Profile-Aware Bonuses | None | None | None | None | None | Religion match +4, politics alignment -2 to +3, Working Holiday/retirement +3 | Same as v4 | Same as v4.1 | Same as v4.1 |
| LGBTQ+ Hard Filter | priority=lgbtq + safety<2 → 0 | Same as v1 | Same as v1 | Same as v1 | Same as v1 | priority=lgbtq OR orientation=lgbtq + safety<2 → 0 | Graduated: <1.5 → 0, <2.5 → −20, ≥2.5 → no penalty | Same as v4.1 | Same as v4.1 |
| Specialization Boost | None | None | None | None | None | None | Rank 1 ≥90 → +4, ≥80 → +2 | Same as v4.1 | Same as v4.1 |
| Economic Sub-Score | 100 − (cost−1)×30 | Same as v1 | Same as v1 | Same as v1 | Same as v1 | Same as v1 | 40% CoL + 60% Purchasing Power | Same as v4.1 | Same as v4.1 |
| Priority Count | 10 options | 12 options (+immigration_pathway, +gender_equality) | 12 options | 13 options (+travel_distance) | Same as v3.1 | Same as v3.1 | Same as v4 | Same as v4.1 | Same 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.