We did not guess, and we did not scrape prices from anywhere else — every number on this page is computed from Travelpayouts’ live fare cache, accumulated weekly by SiamFlights’ automation through mid-2026. We analysed 89 routes departing Thai airports (BKK, DMK, HKT, CNX, HDY) across 6 weekly snapshots between 11 May and 19 July 2026. Everything is in Thai baht (THB) only, so comparisons are like-for-like with no currency mixing.
This is what the data says — and nothing more. Where the data is thin, we say so plainly.
Quick take: 4 things the real data shows
- Domestic routes are the cheapest right now — Bangkok–Khon Kaen is just THB 1,050, while long-haul to Europe / the US / Israel reaches THB 25,000–31,000.
- The cheapest week to book in the dataset was 15–21 Jun (W25) — about 12% below average, and the signal agrees across both domestic and international routes.
- Some Gulf routes fell hard — Bangkok–Kuwait City dropped from THB 33,046 to 10,827 (−67%) in six weeks.
- Long-haul summer fares are climbing — Phuket–Sydney +53%, Phuket–London +48%, Bangkok–Los Angeles +37%.
Cheapest vs most expensive corridors, right now
This table uses the lowest fare recorded in the latest week (2026-W29, 13–19 Jul) across the 72 routes with data that week. Figures are real lowest fares in THB, not averages.
| Cheapest corridors | Fare (THB) | Cluster |
|---|---|---|
| Bangkok (BKK) → Khon Kaen (KKC) | 1,050 | Domestic |
| Bangkok (BKK) → Ubon Ratchathani (UBP) | 1,086 | Domestic |
| Bangkok (BKK) → Chiang Rai (CEI) | 1,126 | Domestic |
| Bangkok (BKK) → Hat Yai (HDY) | 1,130 | Domestic |
| Bangkok (BKK) → Krabi (KBV) | 1,137 | Domestic |
| Bangkok (BKK) → Phuket (HKT) | 1,473 | Domestic |
| Phuket (HKT) → Singapore (SIN) | 2,094 | ASEAN |
| Bangkok (BKK) → Chiang Mai (CNX) | 2,130 | Domestic |
| Phuket (HKT) → Penang (PEN) | 2,184 | ASEAN |
| Phuket (HKT) → Kuala Lumpur (KUL) | 2,234 | ASEAN |
| Most expensive corridors | Fare (THB) | Cluster |
|---|---|---|
| Bangkok (BKK) → Tel Aviv (TLV) | 31,068 | GCC/labor |
| Bangkok (BKK) → San Francisco (SFO) | 29,325 | Diaspora |
| Phuket (HKT) → Frankfurt (FRA) | 27,118 | Diaspora |
| Bangkok (BKK) → Los Angeles (LAX) | 25,657 | Diaspora |
| Bangkok (BKK) → Munich (MUC) | 24,528 | Diaspora |
| Bangkok (BKK) → Frankfurt (FRA) | 22,613 | Diaspora |
| Bangkok (BKK) → Zurich (ZRH) | 21,679 | Diaspora |
| Bangkok (BKK) → Amsterdam (AMS) | 21,047 | Diaspora |
| Phuket (HKT) → Jeddah (JED) | 20,729 | Hajj/Umrah |
| Chiang Mai (CNX) → Kathmandu (KTM) | 20,429 | Buddhist/trekking |
The 20–30× spread here mainly reflects distance, not that domestic routes are “better value” than European ones. The comparison that actually means something is how each route moves relative to itself — that is the next two tables.
Routes that moved most over 6 weeks
Change is computed from a route’s first week with data versus its last week, using only the 67 routes with 3 or more distinct weekly price points (n = number of weeks with data for that route).
Biggest price drops
| Route | First → last week (THB) | Change | n |
|---|---|---|---|
| Bangkok → Kuwait City (BKK-KWI) | 33,046 → 10,827 | −67.2% | 5 |
| Phuket → Penang (HKT-PEN) | 6,527 → 2,184 | −66.5% | 4 |
| Bangkok → Hong Kong (DMK-HKG) | 7,983 → 2,705 | −66.1% | 4 |
| Bangkok → Varanasi (BKK-VNS) | 16,265 → 5,826 | −64.2% | 4 |
| Bangkok → Ubon Ratchathani (BKK-UBP) | 2,952 → 1,086 | −63.2% | 4 |
| Bangkok → Hat Yai (BKK-HDY) | 2,993 → 1,130 | −62.2% | 6 |
| Bangkok → Manila (DMK-MNL) | 7,713 → 3,371 | −56.3% | 4 |
| Bangkok → Ho Chi Minh City (DMK-SGN) | 5,440 → 2,443 | −55.1% | 4 |
Biggest price rises
| Route | First → last week (THB) | Change | n |
|---|---|---|---|
| Chiang Mai → Kathmandu (CNX-KTM) | 8,527 → 20,429 | +139.6% | 4 |
| Phuket → Jeddah (HKT-JED) | 12,421 → 20,729 | +66.9% | 5 |
| Phuket → Sydney (HKT-SYD) | 10,865 → 16,628 | +53.0% | 6 |
| Phuket → London (HKT-LHR) | 11,832 → 17,548 | +48.3% | 6 |
| Bangkok → Kathmandu (BKK-KTM) | 8,123 → 11,429 | +40.7% | 6 |
| Bangkok → Los Angeles (BKK-LAX) | 18,766 → 25,657 | +36.7% | 6 |
| Bangkok → Singapore (BKK-SIN) | 5,041 → 6,163 | +22.3% | 6 |
| Bangkok → Jeddah (BKK-JED) | 16,346 → 19,916 | +21.8% | 5 |
How to read this: the single biggest mover (CNX-KTM +140%) has only 4 weeks of data and is a thin-frequency route, so its fare swings hard once cheap seats sell out. The n=6 routes (e.g. Phuket–Sydney, Bangkok–Los Angeles) are more reliable as genuine trends — and those trends point the same way: long-haul is entering its summer peak while short-haul ASEAN and domestic routes fell back from an elevated mid-May base.
Which week is cheapest to book? A fare-index signal
You cannot answer “which week is cheap” by averaging raw baht across all 89 routes, because each week samples a different route mix (one expensive route entering the panel lifts the average instantly). So we use a balanced panel: only the 39 routes priced in all 6 weeks, each normalised so its own mean = 100, then averaged across routes per week. This removes route-composition bias.
| ISO week | Dates | Fare index (mean = 100) |
|---|---|---|
| 2026-W20 | 11–17 May | 107.7 |
| 2026-W23 | 1–7 Jun | 95.6 |
| 2026-W24 | 8–14 Jun | 100.0 |
| 2026-W25 | 15–21 Jun | 87.7 ← cheapest |
| 2026-W27 | 29 Jun–5 Jul | 104.6 |
| 2026-W29 | 13–19 Jul | 104.4 |
The week of 15–21 June (W25) was the cheapest — about 12% below average — while mid-May (W20) was the priciest, about 8% above.
The signal is robust, because splitting the panel in two still points at W25:
- International routes (25 routes): W25 index 89.6 (their lowest)
- Domestic routes (14 routes): W25 index 84.2 (their lowest)
What this does not say: these are prices observed at the time of booking each week, not the seasonal price of a departure month. We have only 6 snapshots spanning about 10 calendar weeks — not enough to call annual seasonality yet. We would need many more months before claiming a “cheapest month of the year” with evidence. What we can say: within the May–July 2026 window, mid-June was the lowest fare point we actually recorded.
Fare patterns by traveller cluster
SiamFlights groups routes into 4 clusters by passenger type: A = GCC labor + Hajj/Umrah, B = Buddhist pilgrim, C = diaspora / returning retiree, D = ASEAN + domestic. The table uses only the 67 routes with 3+ weeks of data. “Amplitude” is the median min–max spread relative to each route’s lowest fare — a volatility measure.
| Cluster | Routes | Median fare now (THB) | Median change | Median amplitude |
|---|---|---|---|---|
| A — GCC + Hajj/Umrah | 13 | 13,836 | +1.6% | 48.2% |
| B — Buddhist pilgrim | 5 | 11,294 | −3.2% | 53.0% |
| C — Diaspora / retiree | 16 | 17,684 | +3.5% | 49.5% |
| D — ASEAN + domestic | 33 | 3,841 | −43.3% | 88.9% |
Read the table like this:
- Cluster D (ASEAN/domestic) is clearly the most volatile — a median amplitude of 88.9% means the lowest and highest fare in six weeks nearly doubled. For domestic routes, when you book matters more to your wallet than on long-haul. Its −43.3% median change is driven mostly by the mid-May (W20) snapshot, where domestic prices were unusually high (cluster index 121.7) before settling to normal — not a sustained downward trend.
- Cluster C (diaspora/retiree) is the most expensive and climbing (+3.5%) — Europe / US / Australia routes are hitting the northern-summer peak, so anyone planning a home visit now faces the dataset’s highest fares.
- Cluster A (GCC/Hajj) is roughly flat at the median (+1.6%) but hides internal spread: some GCC labor routes (Kuwait) fell hard, while Hajj/Umrah routes (Jeddah) rose +22% to +67% on the religious-travel calendar.
- Cluster B (Buddhist) has the thinnest data (5 routes), so we do not generalise from it — we report it for transparency, not to steer.
Methodology
The credibility of a fare study lives in the transparency of its method. Here it is in full:
- Source: Travelpayouts’ live fare cache, collected by SiamFlights’ weekly cron into
tp-fares-history.json. Each data point is the lowest fare found per route per week, with airline and timestamp. - Scope: 89 routes departing Thai airports (BKK, DMK, HKT, CNX, HDY), in Thai baht (THB) only — no currency is ever mixed in a comparison.
- Period: 6 weekly snapshots — ISO 2026-W20, W23, W24, W25, W27, W29 — spanning 11 May to 19 July 2026 (some weeks were not collected, hence 6 points, not 10).
- Counting rules: every %-change / trend / min-max claim uses only the 67 routes with 3+ distinct weekly points. The weekly fare index uses the 39 routes priced in all 6 weeks (a balanced panel) to remove route-composition bias.
- Reproducibility: every figure is generated by the script
.team/programmatic-grid/fare_trends_study.pyin SiamFlights’ repo. No fare is hand-typed. Re-run it after each weekly cron refresh and the numbers regenerate automatically. - Acknowledged limits: these are prices observed at booking time, not by departure month. Six snapshots are too few to call annual seasonality — we make no claim the data does not support.
Want live fares for a route you care about? Open Bangkok–Jeddah, Bangkok–Singapore, or read the Suvarnabhumi (BKK) airport guide — those pages pull from the same Travelpayouts cache behind this study.