Data study
Intercity bus fare index 2026
We keep a curated dataset of 145 intercity bus routes — duration, distance and the fare you can expect to start from. This page ranks them by what the ride costs per 100 km, which is the number that makes a short hop and a 900 km overnight run comparable.
The finding: distance makes buses cheaper per km
Across the 95 euro-denominated European routes in the dataset, a hop under 300 km costs an average of €5.50 per 100 km, while a run over 500 km averages €3.88 per 100 km. That is a difference of 29 per cent in favour of the long ride. The reason is simple: the fixed cost of running a coach is spread over far more kilometres, and the shortest city-pair shuttles have no way to compete on that maths.
Cheapest in the dataset per 100 km: Barcelona to Madrid at €15 for 620 km (€2.42 per 100 km). Priciest per 100 km: Bratislava to Vienna at €8.75 per 100 km.
Get the data
Free to reuse under CC BY 4.0 — cite "WhatWhereVacay Intercity Bus Fare Index 2026" with a link to this page. Machine-readable copies: CSV or JSON (the JSON is open to cross-origin requests, so a script can pull it directly).
Euro fares — Europe
95 routes, cheapest per 100 km first. Compare only within this group — we do not convert currencies to build a single ranking, because that would mean inventing an exchange rate.
| Route | Duration | Distance | From | Per 100 km |
|---|---|---|---|---|
| Barcelona → Madrid | 7h 30m | 620 km | €15 | €2.42 |
| Rome → Milan | 7h 30m | 575 km | €15 | €2.61 |
| Paris → Brussels | 3h 30m | 310 km | €9 | €2.90 |
| Madrid → Seville | 5h 00m | 485 km | €15 | €3.09 |
| Lisbon → Porto | 3h 30m | 320 km | €10 | €3.13 |
| Paris → Marseille | 8h 00m | 780 km | €25 | €3.21 |
| Paris → Lyon | 5h 00m | 465 km | €15 | €3.23 |
| Madrid → Lisbon | 9h 00m | 620 km | €20 | €3.23 |
| Berlin → Munich | 7h 00m | 585 km | €19 | €3.25 |
| Rome → Florence | 3h 45m | 275 km | €9 | €3.27 |
| Barcelona → Valencia | 3h 30m | 350 km | €12 | €3.43 |
| Paris → Bordeaux | 6h 00m | 580 km | €20 | €3.45 |
| Cologne → Berlin | 5h 30m | 580 km | €20 | €3.45 |
| Venice → Milan | 3h 00m | 280 km | €10 | €3.57 |
| Prague → Vienna | 4h 15m | 330 km | €12 | €3.64 |
| Paris → Nice | 10h 30m | 960 km | €35 | €3.65 |
| Frankfurt → Berlin | 5h 45m | 545 km | €20 | €3.67 |
| Zagreb → Split | 4h 30m | 405 km | €15 | €3.70 |
| Berlin → Warsaw | 8h 30m | 750 km | €28 | €3.73 |
| Barcelona → Zaragoza | 3h 45m | 320 km | €12 | €3.75 |
| Paris → Amsterdam | 7h 30m | 500 km | €19 | €3.80 |
| Copenhagen → Stockholm | 9h 00m | 655 km | €25 | €3.82 |
| Zadar → Zagreb | 3h 30m | 285 km | €11 | €3.86 |
| Florence → Venice | 4h 00m | 310 km | €12 | €3.87 |
| Krakow → Warsaw | 5h 30m | 400 km | €16 | €4.00 |
| Gothenburg → Stockholm | 3h 15m | 470 km | €19 | €4.04 |
| Vienna → Zagreb | 4h 30m | 370 km | €15 | €4.05 |
| Budapest → Zagreb | 4h 30m | 345 km | €14 | €4.06 |
| Zagreb → Budapest | 4h 30m | 345 km | €14 | €4.06 |
| Rome → Naples | 2h 45m | 220 km | €9 | €4.09 |
| Valencia → Madrid | 4h 00m | 390 km | €16 | €4.10 |
| Zagreb → Dubrovnik | 9h 00m | 605 km | €25 | €4.13 |
| Lyon → Marseille | 3h 15m | 315 km | €13 | €4.13 |
| Pula → Zagreb | 4h 00m | 290 km | €12 | €4.14 |
| Osijek → Zagreb | 3h 30m | 290 km | €12 | €4.14 |
| Rome → Venice | 6h 00m | 530 km | €22 | €4.15 |
| Cork → Dublin | 3h 00m | 265 km | €11 | €4.15 |
| Munich → Vienna | 4h 00m | 360 km | €15 | €4.17 |
| Belgrade → Niš | 3h 00m | 240 km | €10 | €4.17 |
| Berlin → Prague | 4h 30m | 350 km | €15 | €4.29 |
| Amsterdam → Brussels | 3h 00m | 210 km | €9 | €4.29 |
| Paris → Geneva | 6h 30m | 560 km | €24 | €4.29 |
| Madrid → Bilbao | 4h 30m | 395 km | €17 | €4.30 |
| Munich → Venice | 6h 30m | 575 km | €25 | €4.35 |
| Athens → Thessaloniki | 6h 00m | 500 km | €22 | €4.40 |
| Frankfurt → Paris | 8h 00m | 630 km | €28 | €4.44 |
| Wroclaw → Prague | 4h 00m | 360 km | €16 | €4.44 |
| Lille → Paris | 2h 30m | 225 km | €10 | €4.44 |
| Berlin → Hamburg | 3h 15m | 290 km | €13 | €4.48 |
| Bordeaux → Toulouse | 2h 45m | 245 km | €11 | €4.49 |
| Vienna → Krakow | 5h 00m | 440 km | €20 | €4.55 |
| Naples → Bari | 3h 30m | 260 km | €12 | €4.62 |
| Oslo → Stockholm | 7h 00m | 530 km | €25 | €4.72 |
| Warsaw → Gdansk | 6h 00m | 380 km | €18 | €4.74 |
| Berlin → Leipzig | 1h 45m | 190 km | €9 | €4.74 |
| Munich → Frankfurt | 4h 00m | 400 km | €19 | €4.75 |
| Dublin → Galway | 2h 45m | 210 km | €10 | €4.76 |
| Prague → Budapest | 7h 30m | 525 km | €25 | €4.76 |
| Vienna → Budapest | 3h 00m | 245 km | €12 | €4.90 |
| Split → Zadar | 1h 45m | 160 km | €8 | €5.00 |
| Malaga → Seville | 2h 30m | 215 km | €11 | €5.12 |
| Frankfurt → Cologne | 2h 00m | 175 km | €9 | €5.14 |
| Milan → Nice | 5h 30m | 485 km | €25 | €5.15 |
| Seville → Granada | 3h 00m | 250 km | €13 | €5.20 |
| Amsterdam → Hamburg | 5h 30m | 475 km | €25 | €5.26 |
| Nuremberg → Munich | 1h 45m | 170 km | €9 | €5.29 |
| Cologne → Amsterdam | 3h 00m | 260 km | €14 | €5.38 |
| Prague → Dresden | 2h 15m | 185 km | €10 | €5.41 |
| Paris → London | 7h 45m | 460 km | €25 | €5.43 |
| Hamburg → Copenhagen | 5h 00m | 460 km | €25 | €5.43 |
| Belgrade → Zagreb | 6h 00m | 400 km | €22 | €5.50 |
| Nice → Marseille | 2h 45m | 200 km | €11 | €5.50 |
| Sarajevo → Zagreb | 8h 00m | 450 km | €25 | €5.56 |
| Split → Dubrovnik | 4h 30m | 230 km | €13 | €5.65 |
| Brussels → Cologne | 3h 00m | 245 km | €14 | €5.71 |
| Rijeka → Zagreb | 2h 30m | 155 km | €9 | €5.81 |
| Riga → Tallinn | 4h 30m | 310 km | €18 | €5.81 |
| Warsaw → Vilnius | 8h 00m | 510 km | €30 | €5.88 |
| Stuttgart → Munich | 2h 30m | 220 km | €13 | €5.91 |
| Oslo → Bergen | 7h 30m | 460 km | €28 | €6.09 |
| Granada → Malaga | 1h 35m | 130 km | €8 | €6.15 |
| Turin → Milan | 2h 00m | 145 km | €9 | €6.21 |
| Skopje → Tirana | 4h 00m | 290 km | €18 | €6.21 |
| Vilnius → Riga | 4h 15m | 270 km | €17 | €6.30 |
| Budapest → Belgrade | 7h 00m | 380 km | €24 | €6.32 |
| Seville → Cordoba | 1h 45m | 140 km | €9 | €6.43 |
| Dublin → Belfast | 2h 15m | 170 km | €12 | €7.06 |
| Ljubljana → Zagreb | 2h 15m | 140 km | €10 | €7.14 |
| Barcelona → Toulouse | 4h 00m | 390 km | €28 | €7.18 |
| Bologna → Florence | 1h 20m | 110 km | €8 | €7.27 |
| Sofia → Skopje | 5h 30m | 270 km | €20 | €7.41 |
| Munich → Salzburg | 2h 15m | 160 km | €12 | €7.50 |
| Sarajevo → Mostar | 2h 30m | 130 km | €10 | €7.69 |
| Tirana → Podgorica | 4h 30m | 180 km | €15 | €8.33 |
| Bratislava → Vienna | 1h 10m | 80 km | €7 | €8.75 |
Pound fares — UK and Ireland
9 routes, cheapest per 100 km first. Compare only within this group — we do not convert currencies to build a single ranking, because that would mean inventing an exchange rate.
| Route | Duration | Distance | From | Per 100 km |
|---|---|---|---|---|
| London → Edinburgh | 9h 00m | 655 km | £15 | £2.29 |
| London → Manchester | 5h 00m | 320 km | £10 | £3.13 |
| London → Birmingham | 3h 00m | 205 km | £8 | £3.90 |
| London → Bristol | 2h 45m | 190 km | £8 | £4.21 |
| Manchester → Edinburgh | 4h 30m | 350 km | £15 | £4.29 |
| Glasgow → Edinburgh | 1h 20m | 75 km | £6 | £8.00 |
| London → Oxford | 1h 40m | 95 km | £8 | £8.42 |
| Manchester → Liverpool | 1h 05m | 55 km | £5 | £9.09 |
| London → Cambridge | 2h 15m | 100 km | £10 | £10.00 |
Dollar fares — Americas and Asia
40 routes, cheapest per 100 km first. Compare only within this group — we do not convert currencies to build a single ranking, because that would mean inventing an exchange rate.
| Route | Duration | Distance | From | Per 100 km |
|---|---|---|---|---|
| Bangkok → Chiang Mai | 9h 00m | 690 km | $18 | $2.61 |
| Bangkok → Krabi | 12h 00m | 780 km | $22 | $2.82 |
| Hanoi → Hue | 13h 30m | 700 km | $20 | $2.86 |
| Los Angeles → San Francisco | 7h 30m | 615 km | $20 | $3.25 |
| Los Angeles → Las Vegas | 5h 00m | 435 km | $15 | $3.45 |
| New York → Boston | 4h 15m | 345 km | $12 | $3.48 |
| Delhi → Jaipur | 5h 30m | 280 km | $10 | $3.57 |
| Agra → Jaipur | 4h 30m | 240 km | $9 | $3.75 |
| Kuala Lumpur → Singapore | 5h 30m | 350 km | $14 | $4.00 |
| New York → Washington DC | 4h 30m | 365 km | $15 | $4.11 |
| Los Angeles → Phoenix | 6h 30m | 600 km | $25 | $4.17 |
| Boston → New York | 4h 30m | 345 km | $15 | $4.35 |
| Toronto → Ottawa | 4h 30m | 450 km | $20 | $4.44 |
| Houston → Dallas | 4h 30m | 400 km | $18 | $4.50 |
| Mexico City → Guadalajara | 7h 30m | 615 km | $28 | $4.55 |
| Ho Chi Minh → Da Lat | 7h 00m | 330 km | $15 | $4.55 |
| Chicago → Detroit | 6h 00m | 480 km | $22 | $4.58 |
| Seattle → Portland | 4h 00m | 280 km | $14 | $5.00 |
| Austin → Dallas | 3h 30m | 320 km | $16 | $5.00 |
| Orlando → Miami | 4h 30m | 390 km | $20 | $5.13 |
| Delhi → Agra | 4h 30m | 230 km | $12 | $5.22 |
| Washington DC → Philadelphia | 3h 00m | 225 km | $12 | $5.33 |
| Bangkok → Pattaya | 2h 00m | 150 km | $8 | $5.33 |
| Chicago → Minneapolis | 8h 00m | 570 km | $32 | $5.61 |
| Guadalajara → Puerto Vallarta | 5h 00m | 440 km | $25 | $5.68 |
| Chicago → Indianapolis | 4h 00m | 300 km | $18 | $6.00 |
| Mexico City → Oaxaca | 6h 30m | 490 km | $30 | $6.12 |
| Los Angeles → San Diego | 2h 30m | 195 km | $12 | $6.15 |
| New York → Philadelphia | 2h 30m | 160 km | $10 | $6.25 |
| Cancun → Merida | 4h 00m | 320 km | $20 | $6.25 |
| San Francisco → Sacramento | 1h 45m | 148 km | $10 | $6.76 |
| Hanoi → Halong Bay | 3h 30m | 170 km | $12 | $7.06 |
| Montreal → Quebec City | 3h 30m | 260 km | $20 | $7.69 |
| Vancouver → Seattle | 4h 00m | 230 km | $18 | $7.83 |
| New York → Atlantic City | 3h 00m | 190 km | $15 | $7.89 |
| Ottawa → Montreal | 2h 30m | 200 km | $16 | $8.00 |
| Miami → Key West | 6h 30m | 300 km | $28 | $9.33 |
| San Francisco → San Jose | 1h 15m | 77 km | $8 | $10.39 |
| Toronto → Niagara Falls | 2h 00m | 130 km | $15 | $11.54 |
| Cancun → Playa del Carmen | 1h 15m | 68 km | $12 | $17.65 |
Canadian dollar fares
1 routes, cheapest per 100 km first. Compare only within this group — we do not convert currencies to build a single ranking, because that would mean inventing an exchange rate.
| Route | Duration | Distance | From | Per 100 km |
|---|---|---|---|---|
| Toronto → Montreal | 5h 30m | 540 km | CA$30 | CA$5.56 |
Methodology
- The fares are editorial starting fares from our own curated dataset — the price you can expect to find when you book early on a route, not a live quote. Real prices move with demand and season.
- Distance is the road distance recorded with each route, not great-circle distance.
- Cost per 100 km is calculated as fare ÷ (distance ÷ 100), rounded to two decimals.
- Currency is whatever the dataset records for the route. We never convert, so rankings are only ever within a currency group.
- Every route links to its own page, where the duration, the fare range and the operators on that corridor are set out in full.
Last verified 20 September 2026.
Related
- Price of a Plate: 56-country dish price index — what a meal costs where you are going.
- Flight fare index — the cheapest one-way fare we can find per route, refreshed daily.
- All our travel cost data — the three datasets, with the citation format for each.
- Search buses — compare live FlixBus, BusBud, Omio and CheckMyBus prices for your own dates.