GoVibeWorld
Under the hood

How the AI trip planner actually works

The long version, for anyone deciding whether the numbers on screen deserve their trust. If you want the five-step tour instead, read how GoVibeWorld works — that page is the overview; this one is the mechanism, including the parts we have not finished building.

The inversion: a budget, not a destination

Almost every travel product asks where you want to go, then tells you what that costs. The GoVibeWorld trip planner runs the other way round: you give it a total for the whole party and the whole trip, a departure airport, a rough length and a rough time of year, and it works out what that reaches. The budget is the input, not the verdict.

The usual order hides the decision that actually determines a trip: by the time a search box has quoted a fare for a city you already picked, the question of whether your money went further somewhere else has been skipped.

The arithmetic is not done by the AI

The part of the planner that touches money is a plain, deterministic budget engine. No model, no randomness, no clock. The same intake produces exactly the same split every time, which is what makes a saved plan reproducible and a bug reportable.

Six categories, one total

The engine divides your budget across flights, accommodation, food, local transport, activities and a contingency buffer. The shape of the split comes from a small cost model rather than hand-picked percentages: flights are paid once per head; food, transport and activities accrue per person per day; accommodation accrues per room per night. That is what makes a three-day trip flight-heavy and a two-week trip accommodation-heavy with no table of special cases behind it. Nights matter here — a seven-day trip is six of them, and treating it as seven inflates a budget by a whole night's stay, a point we make again in our travel guides.

Integer money, exact sums

Every amount is a whole number of minor units — cents rather than euros. Floating-point currency quietly loses fractions across a six-way split, and categories that do not add up to the total you typed undermine every other number on the screen. A largest-remainder split distributes the remainder rather than dropping it, and the invariant is asserted on every run: the categories sum to your total exactly, or the engine throws rather than ship a quiet discrepancy.

Feasibility, stated in sentences

A budget can always be divided; that is arithmetic, not affordability. A separate check compares each category against a conservative floor — the cheapest credible way to do the trip, not a comfortable one — and returns comfortable, tight or unrealistic. Where a plan is thin it says which part, and by how much.

What the AI is allowed to say

The model's job is to suggest destinations and explain why they suit you. That is real judgement and it is what the model is good at. It is not allowed to assert a price.

This is enforced rather than requested. Model-authored reasons pass three gates: the reason must rest on a basis the model may author, you must actually have supplied the input that basis depends on, and the text must contain no monetary claim — any currency symbol next to a digit, or a currency word next to a number, and the line is dropped rather than shown. A price written by the model would contradict the engine on the same card, and one number arguing with another is how a screen loses credibility.

An allocation is not a price

This is the most important thing on this page, and the thing most travel interfaces blur.

A budget allocation is a share of your own money. It answers "how much can I spend on this?" It comes entirely from figures you typed in, and it is the same figure for a nearby island and a long-haul one, because it never looked outward at all.

A market price is what a provider is charging today. It answers a different question — "what does this cost?" — and can only come from outside: a provider, or you telling us about a fare you have already booked.

On screen the two look identical, both an amount of money with a currency symbol in front. Presenting the first as though it were the second is the most misleading thing a travel planner can do: a budget slice carries no information whatsoever about the market, and yet badging one as an "estimated fare" invites you to plan around it as if it did.

So GoVibeWorld separates them. An allocation is labelled "Budget available" and deliberately rounded, because false precision is its own kind of claim. Where nothing external has told us what a category costs, the line underneath reads "Current price not verified", and destinations carry the note "Travel prices not yet verified". We do not badge an allocation as an estimated fare, and internally an estimate is never accepted as evidence of a price.

To be direct: flight and accommodation pricing in GoVibeWorld is not yet verified. Those two dominate a trip's cost and are the two that cannot honestly be inferred — food and local transport scale predictably with a destination, a long-haul fare does not. We are working on connecting real provider pricing so those figures can be checked against the market. Until that lands, the planner tells you what it does not know instead of manufacturing confidence, and a positive affordability claim is withheld rather than made on the strength of a balanced ledger.

Matching is a band, not a percentage

Destinations are reported as a strong match, a good match, or worth a look. There is no percentage, on purpose: a "96% match" implies a measurement that never happened, and it is the same invention as a model-authored price in a more respectable coat.

The planner instead evaluates a fixed set of signals — weather against the range you asked for, crowd level if you said you cared, door-to-door travel time, whether that journey suits the length of trip, and how well the place fits the trip styles you picked. Each comes out met, not met, or unknown.

Unknown is a first-class outcome and is excluded from the count entirely. If you stated no weather preference, you have not failed a weather check — there was no check. Counting unknowns as misses would make every quick intake look like a bad match, punishing exactly the people the short intake serves. When fewer than two signals were genuinely evaluated, the count is hidden rather than printed as a meaningless "1 of 1". Trade-offs are listed before the ticks: a card of pure agreement reads as marketing, and the one cross is what makes the ticks believable.

Real airports, resolved not guessed

Places are matched to airports from the public-domain OurAirports dataset, not a short hardcoded list. Airport identity — code, name, coordinates, country, scheduled service — comes from that data and never from a model.

Resolution runs in tiers. Some destinations have a hand-reviewed gateway mapping, because proximity gets them wrong: the nearest runway to an island is sometimes across water with no boat. Everything else is derived geometrically from the eligible airport set, with sea crossings, land borders and transfer time treated explicitly, and several candidate gateways kept rather than one. Each option carries its own confidence and provenance, and the two are never averaged together.

So the planner tells you when you are not landing at the destination itself — flights searched through one airport, then onward by road or by ferry — before any search opens. Where a gateway was derived rather than reviewed and confidence is low, it asks you to confirm the airport instead of searching on your behalf, and where no airport serves a place within a workable distance the card says so up front. The same logic sits behind our destinations pages.

Booking is a handoff

GoVibeWorld does not sell travel. We are not the merchant of record, we do not take your payment, and we never book on your behalf. Each part of a finished plan hands off to the provider that fulfils it, named on the card before you tap. They confirm final availability and the final price, which may differ from anything shown here, including in currency.

Which is why the allocation-versus-price distinction is not a technicality. The number that decides whether your trip happens is the provider's, at the moment you book. Ours describes your money, and keeping the two visibly apart is the whole design.

Try the trip planner

If you find a figure in the planner presented more confidently than this page describes, that is a bug and we want to hear about it.