Original SkyIndoFly data study. Published 21 July 2026 by the SkyIndoFly Editorial Team — see our Editorial Standards. Every number is computed from our own fare cache; the methodology is at the bottom.
We snapshot flight prices every week via a cron that pulls from Travelpayouts (Aviasales). After a few months, that cache became enough for something more useful than a single “price today” number: a trend study. This page analyses 91 routes from/to Indonesia using 6 weekly snapshots — ISO weeks 2026-W20 through 2026-W29 — all in rupiah (IDR). For every trend and percent-change claim we use only the 55 routes that have at least 3 real price points; the rest lack the data and we say so.
One finding stands out first: short-haul ASEAN feeder corridors (Medan, Padang, Balikpapan, Makassar → Kuala Lumpur/Singapore) fell sharply, while Gulf corridors (Riyadh, Dammam, Dubai) surged. Per-cluster averages hide this — so we break it down by route below.
Quick notice. Through
/go/links to Aviasales we earn a small commission at no extra cost to you. Aviasales prices match the airline’s own. This study analyses the same fares you see when you search.
The cheapest and priciest corridors from Indonesia right now
The table below uses each route’s latest available snapshot price (the Snapshot column marks its ISO week — some routes weren’t captured in the very latest weeks). All IDR. Clusters: A=Umrah/Hajj, B=Migrant workers (PMI), C=Diaspora-VFR, D=Leisure/Bali.
8 cheapest corridors (cheapest cached fare):
| Route | Cities | Cluster | Fare (IDR) | Snapshot |
|---|---|---|---|---|
| KNO-KUL | Medan–Kuala Lumpur | B | Rp 681,462 | W29 |
| PDG-KUL | Padang–Kuala Lumpur | B | Rp 793,294 | W27 |
| KNO-SIN | Medan–Singapore | C | Rp 1,089,209 | W25 |
| KUL-CGK | Kuala Lumpur–Jakarta | B | Rp 1,328,104 | W29 |
| BPN-SIN | Balikpapan–Singapore | C | Rp 1,404,270 | W27 |
| UPG-KUL | Makassar–Kuala Lumpur | B | Rp 1,588,085 | W29 |
| JOG-SIN | Yogyakarta–Singapore | C | Rp 1,891,498 | W25 |
| CGK-KUL | Jakarta–Kuala Lumpur | B | Rp 2,241,937 | W29 |
8 priciest corridors:
| Route | Cities | Cluster | Fare (IDR) | Snapshot |
|---|---|---|---|---|
| JED-SUB | Jeddah–Surabaya | A | Rp 16,808,509 | W29 |
| CGK-RUH | Jakarta–Riyadh | B | Rp 13,973,407 | W29 |
| CGK-DOH | Jakarta–Doha | A | Rp 12,999,864 | W27 |
| CGK-DXB | Jakarta–Dubai | B | Rp 12,751,623 | W29 |
| CGK-DMM | Jakarta–Dammam | B | Rp 12,557,084 | W29 |
| CGK-JED | Jakarta–Jeddah | A | Rp 12,328,958 | W29 |
| DPS-DXB | Denpasar–Dubai | D | Rp 10,524,033 | W29 |
| CGK-MED | Jakarta–Madinah | A | Rp 9,135,886 | W29 |
The spread between cheapest and priciest is enormous: short-haul feeders under Rp 1 million, while Gulf and umrah corridors clear Rp 12–17 million. That’s why comparing all routes in a single “average fare” misleads — the analysis below always compares within comparable groups.
The biggest fare movers over 6 weeks
For the 55 trend-eligible routes, we compute the change from each route’s first snapshot to its last. N in the final column is the count of real price points.
6 biggest rises:
| Route | Cities | Cluster | First → Last (IDR) | Δ | N |
|---|---|---|---|---|---|
| CGK-RUH | Jakarta–Riyadh | B | Rp 6,238,567 → Rp 13,973,407 | +124.0% | 5 |
| BPN-KUL | Balikpapan–Kuala Lumpur | B | Rp 1,566,955 → Rp 3,239,229 | +106.7% | 5 |
| CGK-DMM | Jakarta–Dammam | B | Rp 6,193,348 → Rp 12,557,084 | +102.8% | 4 |
| JED-SUB | Jeddah–Surabaya | A | Rp 8,387,602 → Rp 16,808,509 | +100.4% | 3 |
| SUB-SIN | Surabaya–Singapore | C | Rp 2,039,704 → Rp 3,161,718 | +55.0% | 6 |
| CGK-SIN | Jakarta–Singapore | C | Rp 1,901,267 → Rp 2,848,036 | +49.8% | 6 |
6 biggest drops:
| Route | Cities | Cluster | First → Last (IDR) | Δ | N |
|---|---|---|---|---|---|
| KNO-SIN | Medan–Singapore | C | Rp 4,189,683 → Rp 1,089,209 | −74.0% | 3 |
| BPN-SIN | Balikpapan–Singapore | C | Rp 4,320,397 → Rp 1,404,270 | −67.5% | 3 |
| KNO-KUL | Medan–Kuala Lumpur | B | Rp 1,648,414 → Rp 681,462 | −58.7% | 6 |
| UPG-SIN | Makassar–Singapore | C | Rp 5,566,315 → Rp 2,666,135 | −52.1% | 3 |
| UPG-KUL | Makassar–Kuala Lumpur | B | Rp 3,196,392 → Rp 1,588,085 | −50.3% | 5 |
| SUB-KUL | Surabaya–Kuala Lumpur | B | Rp 4,854,847 → Rp 2,469,293 | −49.1% | 6 |
The pattern is clear and opposite in direction: ASEAN feeders from non-Jakarta cities (Medan, Balikpapan, Makassar, Surabaya) fell 49–74 percent, while migrant-labour and umrah corridors to the Gulf rose 100 percent and up. The Gulf rise likely reflects the onset of the Hajj/umrah season and PMI demand to Saudi Arabia; the feeder drops reflect recovering LCC capacity on short hops. Note the small N (3) on some of the biggest drops — the numbers are real, but confidence is lower than on N-of-6 routes.
The cheapest week to book — what we can actually claim
Comparing raw prices across weeks is unfair: a Rp 12-million umrah route would drown a Rp 700-thousand one. So we normalise each route to its own average (index = that week’s price ÷ that route’s average), then average the index across all routes per week. Index 1.000 = that week equals the route’s average. Below 1.0 = cheaper than usual.
| Snapshot (ISO) | Price index | Routes covered |
|---|---|---|
| 2026-W24 | 0.897 | 41 |
| 2026-W29 | 0.940 | 49 |
| 2026-W27 | 0.991 | 49 |
| 2026-W20 | 1.004 | 45 |
| 2026-W25 | 1.066 | 52 |
| 2026-W23 | 1.078 | 52 |
Snapshots W24 (~mid-June) and W29 (~mid-July) came in below each route’s average, while W23 and W25 sat above. It’s tempting to conclude “booking in those weeks is cheaper” — but we do not have enough weeks to call it seasonal. Six non-consecutive snapshots over 10 weeks are no basis for a “cheapest month” rule. Treat this as an early signal, and wait for our cron to gather more weeks before hardening it into a rule. What we can say honestly: the weekly spread itself is large — many routes move ±5–8 percent from their average within a few weeks, so watching a fare for a few weeks before buying can genuinely save money.
Per-cluster patterns
We group the 55 trend-eligible routes by the audience cluster already defined in our route data (routes.json). We use medians (not averages) so outliers don’t distort them.
| Cluster | Routes (N) | Median latest fare (IDR) | Median move | Median spread (min→max) |
|---|---|---|---|---|
| A — Umrah/Hajj | 7 | Rp 9,135,886 | −2.5% | 64.5% |
| B — Migrant workers (PMI) | 22 | Rp 3,076,250 | −20.7% | 87.6% |
| C — Diaspora-VFR | 10 | Rp 2,757,085 | −12.0% | 99.0% |
| D — Leisure/Bali | 16 | Rp 4,058,705 | +3.2% | 44.2% |
How to read it:
- Umrah/Hajj (A) is priciest by median (Rp 9.1M) and steadiest in direction (−2.5 percent) — Jeddah/Madinah corridors move slowly but stay high.
- Migrant workers (B) has the most negative median move (−20.7 percent) — but this hides a split: cheap PMI feeders (KNO-KUL, UPG-KUL, BPN-KUL) fell, while Gulf labour corridors (CGK-RUH, CGK-DMM) surged 100 percent and up. A single median can’t tell this cluster’s story.
- Diaspora-VFR (C) has the widest spread (99.0 percent) — the gap between a route’s cheapest and priciest week is nearly 2×. For VFR travellers to Singapore/KL, watching fares clearly pays.
- Leisure/Bali (D) is the steadiest (44.2 percent spread, +3.2 percent median) — holiday routes are tamer than migrant/pilgrim corridors.
Methodology
This is what makes the study citable — please check it.
- Source: SkyIndoFly’s weekly Travelpayouts (Aviasales) fare cache, file
tp-fares-history.json. Each entry is the cheapest fare (min_price) recorded for anORIGIN-DESTpair on that snapshot — not an official airline offer and not a hand-picked fare. - Coverage: 91 routes from/to Indonesian airports. For trend/percent claims we use only the 55 routes with ≥ 3 price points.
- Date range: 6 weekly snapshots, ISO weeks 2026-W20, W23, W24, W25, W27, W29 (W20 ≈ mid-May, W29 ≈ mid-July 2026). The snapshots are non-consecutive — the cron skipped some weeks — so we deliberately make no seasonal claims.
- Currency: IDR for all 91 routes — no currency mixing. Comparisons are always in rupiah, and the week signal uses a per-route relative index so expensive routes don’t dominate.
- Computation: percent change = (last snapshot price − first) ÷ first, per route; medians for cluster aggregates; week index = price ÷ route average, averaged across routes.
- Reproducibility: every table is reprinted by
fare_trends_study.py. Runpython3 .team/scratch/fare_trends_study.pyto regenerate, or--demofor an arithmetic self-check. Each cron refresh adds a new snapshot — this study can be refreshed without retyping a single number.
Disclaimer. Prices are the cheapest fares cached by Travelpayouts per weekly snapshot and can change at any time with class, date, and availability. This study is not financial advice — verify live prices before buying.
FAQ
Where does the data come from? Our own Travelpayouts (Aviasales) fare cache, 91 routes, 6 weekly snapshots (2026-W20 to W29), all IDR.
Which routes fell most? Medan–Singapore (−74.0%), Balikpapan–Singapore (−67.5%), Medan–Kuala Lumpur (−58.7%) — short-haul ASEAN feeders.
Which routes rose most? Jakarta–Riyadh (+124.0%), Balikpapan–KL (+106.7%), Jakarta–Dammam (+102.8%) — Gulf migrant-labour and umrah corridors.
When is the cheapest week? W24 and W29 came in below average, but 6 snapshots are too few to call a season. Watch fares for a few weeks before buying.
For deeper per-cluster price context, see our week-by-week Umrah Ramadan 2026 fare guide and PMI return tickets from Hong Kong.