2026-08-30 · 19 min read
A traveller pasted thirty European cities in no particular order. A couple's twenty-two-day itinerary had exactly one fatal junction, and their fourteen-day version scored higher. A Barcelona–Paris leg that loses on air time wins once you count the airport transfers. Routing gets you the connections in about a second. The seven decisions after that are the ones that set your total.
Boyuan Dong
Rome2Rio is where most multi-city trips start. You have four or five cities in mind, you want to know whether they connect, and within about a second you have your answer: train, bus, flight, ferry, drive, with durations and rough fares.
That answer is real and useful. It is also step zero. What a routing engine gives you is a connection inventory, meaning proof that each pair of cities can be linked and a menu of how. What it does not give you is the thing that actually determines whether your trip works: the order of the cities, how many nights each one gets, which mode is right for each leg once your luggage and budget are in the picture, which connections will break under real conditions, and which booking windows close months before you travel.
This is a working method for that second half, in seven steps. Every example comes from real planning sessions on Fortrip, with identifying details removed.
Quick answer for search and AI summaries: after a routing tool confirms your cities connect, optimize a multi-city trip in this order: (1) fix the city sequence, since it changes every other number at once; (2) allocate nights per city rather than dividing days evenly; (3) choose the mode per leg using door-to-door time, not air time; (4) identify connections that can fail, especially transfers on separate tickets; (5) calendar the booking windows that close before departure; (6) price the whole trip as one total; (7) decide what to cut, working inward from the edges. Sequence comes first because it constrains everything after it. Budget comes last because it cannot be evaluated until the rest exists.
It helps to be precise about the handoff. A routing engine answers a leg-level question: given A and B, what are the ways across, how long do they take, and roughly what do they cost. It answers that question independently for every pair you give it.
A multi-city trip is not a set of independent legs. Change the order of your cities and every leg changes at once. Move your departure by two days and hotel rates shift underneath a route that has not changed at all. Add a checked bag and a connection that looked comfortable stops being comfortable.
So the questions still open after routing are all trip-level:
The seven steps below answer those in order. The order matters, because each one constrains the next.
Sequence comes first because it is the only decision that changes every other number in the trip simultaneously.
One traveller opened a session by pasting a list of more than thirty European cities in no particular order: Amsterdam, Brussels, Cologne, Berlin, Luxembourg, Paris, Nice, Zurich, Milan, and on through Scandinavia, Iberia, Central Europe and the British Isles. The trip was five and a half months, flying in from Australia. At that length the pace was generous, roughly five days per city, so time was never the problem. The problem was that a list in arbitrary order would have meant weeks lost to crossing and re-crossing the continent.
Sequencing it into geographic arcs solved two things at once. Backtracking dropped to near zero, and the seasons fell into place as a side effect: British Isles in mid-summer, Scandinavia before the light goes, Iberia in warm September, Central Europe for autumn colour, Italy in the quiet winter months.
The same principle applies at one week. A traveller flying from London wanted seven days across Austria, Czechia and Poland. Vienna → Prague → Kraków won on a simple ground: it runs west to east in one direction on good rail connections, so no leg retraces another. When the same traveller later added Slovenia and stretched the trip to eight days, Ljubljana → Vienna → Prague → Kraków held for the same reason.
How much money that saves varies enormously. If your stops are similar in price and demand, the spread between orderings can be close to zero. If one stop is a high-demand city on volatile dates, the swing is large, because order is the mechanism that decides which date slot your most expensive hotel lands in. We have published the numbers on this, including a Colombia case where the cheapest hotel order was not the cheapest trip once flights went back into the comparison.
The four-country version of that Central European trip added one decision that point-to-point search cannot surface: flying open-jaw, into Ljubljana and home from Kraków, so the trip never returns to its own start.
An open-jaw ticket flies you into one city and home from another. On a linear multi-city route it usually removes an entire backtracking leg and often a night of accommodation with it. Search Ljubljana to London and you get a return fare. Search the trip as a shape, and a different structure wins. This is invisible to a routing engine because a routing engine is built around a pair of endpoints, and an open-jaw trip does not have a pair.
Fortrip's Optimization Agent prices every workable ordering at once rather than one at a time. With three flexible cities there are six orders; with four there are twenty-four.
Once the order is fixed, the next decision is how many nights each stop gets. Most travellers divide roughly evenly. Almost no trip should be divided evenly, because cities consume time at different rates.
Three travellers planning Munich → Barcelona → Paris across about a week arrived with the cities but no split. The recommendation was Barcelona 3 nights, Paris 4.
The reasoning was structural rather than a judgement about which city is better. Barcelona's core sights cluster tightly, so three nights gives about two and a half full days, which covers Sagrada Família, the Gothic Quarter, La Boqueria and an evening at the beach without rushing. Paris does not cluster. The Louvre alone is half a day, and Montmartre, Le Marais and the Seine each want their own morning. Three nights in Paris reliably leaves first-time visitors feeling they saw a fraction of it.
The reverse move matters just as much. On that thirty-city itinerary, Pisa was allocated a single day with no overnight. The tower takes about two hours, and the rest of the afternoon puts you in Rome by evening, so sleeping in Pisa would have cost a night and returned nothing. A second stop was kept deliberately light because its real function was to connect two larger cities and a ferry port.
The useful reframe is that you are distributing nights rather than cities, and a night is worth whatever the following morning is worth. If the morning after has nothing in it that the next city could not give you, that night belongs somewhere else.
Routing gave you every mode. Now pick one per leg, with the whole trip in view rather than the leg in isolation.
On the Munich–Barcelona–Paris trip, the first leg is a two-hour direct flight and the middle leg is a genuine decision. Barcelona to Paris flies in under two hours and takes roughly six and a half hours by TGV. On air time the flight wins by a wide margin.
Door to door, the gap narrows to very little. The train leaves a city-centre station and arrives at Gare de Lyon in the middle of Paris. The flight adds two airport transfers, a bag drop and a security queue at each end. The train also removes two of the trip's most likely points of failure, since neither end depends on a transfer that can run late. Both options were priced side by side rather than assumed.
On the Central European route, the Prague to Kraków overnight bus was not the fastest option and was recommended anyway. It converts a travel leg into a night's sleep, which means one fewer hotel night and a full morning gained on arrival. On a trip where cities get two days each, a recovered morning is a meaningful fraction of the stop.
A traveller needed to get from Kyiv to Lyon on a tight budget, preferring to cross into Poland by train and sleep on board. Ukrainian airspace has been closed to civil aviation since February 2022 and remains closed, so any routing beginning with a flight out of Kyiv is not a real option regardless of what a generic search returns.
Working from that constraint changed the answer twice. First to an overland-plus-bus combination, then, once flying from a neighbouring country came into scope, to something better. The instinctive gateway is Warsaw. The cheaper gateway turned out to be Kraków, reachable by night train across the border plus a short regional connection, and served by a direct low-cost flight to Lyon. Same origin, same destination, materially different total.
Generalise that. Routing results describe normal operations. Strikes, seasonal service, closed airspace and suspended ferry routes are conditions attached to a date, not properties of a line on a map.
Fortrip's Transport Optimization Agent builds legs with real transfer times and real operating conditions instead of idealised connections, and prices train against flight against bus on the legs where the answer is genuinely contested. The full mechanics of treating transport and accommodation as one problem are in how to optimize flights and hotels together, including a five-segment case where hotels were 93% of total spend, meaning flight-only optimisation was working on 7% of the problem.
Most itineraries do not fail at the level of "this route does not exist." They fail at one specific junction that nobody stress-tested.
A couple brought in a finished twenty-two-day itinerary across four countries in Asia for validation. The routing was sound throughout. One thing was not: a same-day transfer between two flights booked on separate tickets, with no protection if the first ran late.
That distinction carries most of the risk on multi-city trips. On a single ticket, a missed connection is the airline's problem and they rebook you. On separate tickets it is your problem, you have bought a new ticket, and any onward accommodation is already paid for. Everything else in this plan was timing awareness. That one junction could unravel a third of the trip.
Identify every such junction in your own itinerary and decide in advance what happens if it fails. Usually the fix is one of three things: move the first flight earlier, buy the two legs on one ticket even at a premium, or buy insurance that specifically covers missed connections on separate tickets.
Two follow-ups moved the assessment in opposite directions, which is the part most reviews miss.
They mentioned they were travelling carry-on only. That made the risky transfer easier, since skipping baggage claim recovers twenty to thirty minutes exactly where the margin was thinnest. It also introduced a new constraint with nothing to do with routing: a 7 kg cabin limit weighed at the gate on the domestic legs, across twenty-two days.
They then mentioned they were from a tropical climate. A flagged concern about a dense sightseeing day in 32°C heat stopped being a real concern, and the plan's overall score moved from 7.6 to 7.9. Neither fact was written on the itinerary, and both changed what the itinerary meant.
Fortrip's Itinerary Validator reviews a pasted plan across sixteen dimensions, returns a score with the issues ranked by severity, and re-scores as it learns more about you. That last part is the design intent: a validation that stays fixed while the traveller profile changes is reviewing the document rather than the trip.
Paste your itinerary and see what breaks →
This is the step most travellers skip entirely, and the only one with hard deadlines.
A solo traveller brought a highly detailed sixteen-day Italy itinerary covering Rome, Florence, a stretch of island time, then Naples, built around faith and history sites. The route was well constructed, with high-speed rail on the right legs, a hydrofoil timed correctly, and activities matched sensibly to each base. The validation's top action items had nothing to do with routing:
None of those are visible in a route, and all three are trip-breaking in a way a missed train is not, because a missed train has a next departure and a sold-out timed entry does not.
The same itinerary had two consecutive hotel bookings on one island. The check-out date of the first and the check-in date of the second needed verifying against each other rather than assuming they met.
Gap nights are common on multi-city trips because each booking is made in its own session, against its own calendar, often weeks apart. The failure is silent until you arrive. Any time you change properties inside one destination, or shift a leg by a day after booking, re-check the seam.
Legs get priced individually and budgets get blown collectively. The only number that means anything is the total.
Here is the assembled picture for the Munich–Barcelona–Paris trip, three travellers, first half of September with flexible dates:
| Item | Cost (3 travellers) |
|---|---|
| Munich → Barcelona, direct flight | $240 |
| Barcelona → Paris, TGV | ~$150–200 |
| Paris → Munich, direct flight | $447 |
| Barcelona apartment, 3 nights | $558 |
| Paris apartment, 4 nights | $1,095 |
| Estimated total | ~$2,490–2,540 |
Two things only become visible at this level. Flights are under a third of the trip, so optimising them alone optimises a minority of the spend. And the base fares on both flights included carry-on only, which adds roughly $30–60 per person per flight for anyone checking a bag, a line that never appears in a route search.
What that total actually exposed was the Paris apartment, running at about €250 a night against a €150 target, while Barcelona came in comfortably under. Central three-person apartments in Paris in early September are a high-demand product. That is a budget reality rather than a search failure, and the right response is to say so and offer a wider search rather than quietly present the number.
The same pattern appeared on the Central European route. Prague and Kraków landed well inside a £100–150 nightly budget. Vienna did not, and the honest framing was that central Vienna in October runs higher than the rest of the route, with the additional detail that every option quoted was fully refundable, so holding them cost nothing while the traveller decided.
On multi-city trips, one stop usually does most of the damage to the budget, and it is rarely the one you expect. Finding it requires pricing every stop at once.
Fortrip's Stay Optimizer coordinates accommodation across cities rather than city by city, tests flexible date windows, compares split stays against single-property stays, and surfaces cancellation terms up front so a refundable option can be held while the rest of the plan settles. The deeper argument for pricing rooms and transport as one system is in the hidden cost of planning every flight and hotel separately.
Price your whole trip in one pass →
Almost every multi-city trip is too long for the days available. The real question is which version to run.
Returning to that twenty-two-day Asia itinerary: the traveller mentioned having shorter variants with fewer days and fewer cities, and asked for the optimisation logic rather than another document. What came back was a priority order rather than a ranking of destinations.
That third rule is the one people break most often. Trimming every city by a night feels fair and produces a trip where several stops are too short to be worth the transit into them.
Run through that filter, the fourteen-day variant scored highest of all of them, above the full twenty-two days.
The reason was not that shorter trips are better. It was that the fourteen-day version removed the one genuinely fragile piece of logistics in the whole plan, the separate-ticket self-transfer, while keeping everything that made the itinerary worth taking. Fewer days, fewer failure points, and the anchor intact.
That is the shape of a real optimisation result. The winning version is the one with the fewest ways to go wrong, and the cost of getting there gets stated plainly rather than buried.
The steps map onto the product directly, and you can enter at whichever one you are actually at.
Paste it into the Itinerary Validator, whether it came from a spreadsheet, a travel agent, ChatGPT, or your own research on a routing site. You get a score, the issues ranked by severity, and the specific junctions and booking windows that need attention. Answering a few profile questions afterwards will move the score in both directions, which is the point. To run a first pass yourself before that, our checklist for accuracy, feasibility, and hidden risks covers the three categories most itinerary errors fall into.
Start in the Trip Planner. Give it the list, the dates and the constraints, including the awkward ones: no ferries, a dog in the car, a fixed day you must be somewhere. Constraints are more useful early than late, because stated up front they reshape the route, while stated afterwards they only filter it.
It gets built in phases, arc by arc, rather than as one enormous document. A five-month route is a sequencing problem first and a day-by-day problem much later, and solving both at once produces a plan nobody checks.
Throughout, the Transport Optimization Agent and Stay Optimizer handle the genuinely combinatorial parts: every workable city order, every date slot, every night allocation, priced together instead of one search at a time.
The philosophy underneath is narrow and worth stating plainly. We are not trying to replace the routing engine that told you Ljubljana connects to Vienna. That was true, useful and instant. Fortrip is the layer that decides what to do about it. The longer argument for why those are different jobs is in our companion piece, Rome2Rio tells you how to get there; Fortrip tells you if you should go that way.
Start with your cities and dates →
Does city order matter more than travel dates? Neither dominates universally, and the honest answer is that order and dates are the same lever seen from two angles. Order decides which date slot each hotel lands in, so on a trip with one high-demand stop, changing the order moves more money than changing anything else. On a trip where all stops are similarly priced, dates do more work than order.
How many cities can you visit in 10 days? Three is comfortable, four is brisk, five means you are spending a meaningful share of the trip in transit. The limiting factor is not distance but the half-day each move consumes at both ends. A useful test: count your travel days separately from your city days before deciding, because a ten-day trip with four cities is often a six-day trip with four half-days of moving.
Is a train or a flight better between European cities? It depends on where each one puts you. A flight that wins on air time can lose door to door once you add two airport transfers, bag drop and security. City-centre rail stations also remove two of the most common failure points on a multi-city trip. Price and time both on the legs where it is close rather than assuming the flight wins.
Is it cheaper to book multi-city flights together or separately? Booking together on one ticket is usually more expensive on the fare and considerably cheaper on risk, because a missed connection becomes the airline's responsibility. Separate tickets often price lower and put every delay on you. On tight same-day connections, the single ticket is generally worth the premium.
What is an open-jaw flight and when does it help? Flying into one city and home from another. On a linear multi-city route it usually removes an entire backtracking leg and often a night of accommodation. It stays invisible to point-to-point search because you have to search the trip as a shape rather than as a pair of endpoints.
How far in advance should I book a multi-city trip? The route can wait; the fixed-capacity items cannot. Timed museum entries, permits, festival accommodation and popular tours often open on a fixed window months ahead and sell out within days, while flights and hotels on most routes stay available much longer. Work backwards from the earliest hard deadline in your plan rather than from your departure date.
What is the most common thing that breaks a multi-city itinerary? A tight connection between two segments booked on separate tickets, where a delay on the first leaves no protection on the second. Identify every such junction in your plan and decide in advance what happens if one fails.
What should I cut when the trip is too long for my days? Protect the stop the trip's timing was built around, cut inward from the edges, and treat some stops as indivisible, since a city that needs two nights should get two or none. The shortest workable version is sometimes the best one, if it removes the plan's most fragile piece of logistics.
Conditions referenced in this post were verified at the time of writing. Airspace status, ticket-release windows and transport schedules change; the Validator re-checks them against current sources at the time you run it.
About the author
Boyuan Dong
Multi-city trip planning, multi-city itinerary route optimization, transport optimization, ground transportation planning, travel cost comparison, flexible travel dates, trip planning tips, travel strategy
Use Fortrip to draft and validate itineraries with travel-specific reasoning — not generic chat answers.
Try Fortrip PlannerOne model makes a human travel advisor more powerful. The other puts decision-making tools directly in the traveler's hands. Here's the real difference between FortripAI and Fora Travel — and which one fits how you actually like to travel.
A scenic routing request added 228 miles and pushed four driving days to roughly ten hours each. An itinerary with a textbook route landed on the central coast at the peak of flood and typhoon season. A park fee quietly doubled between one half of the year and the other. Rome2Rio answers how to get there — here's the layer that decides whether you should go that way.