How we show prices

Every price we publish carries what kind of price it is and what it covers, because a starting fare, an official tariff and our own calculation are three different claims. Where we cannot state a price honestly, we show no price and send you to the provider instead.

Every price says what kind of price it is

A number on its own is not information. We store each price with a type, and that type is always shown next to the amount:

Live
A current price returned by a provider for a specific booking context. It depends on that context — date, time, passengers, vehicle — and is not valid beyond it.
Recently checked
A provider price we retrieved earlier and stored. We show when it was fetched, and we never present it as though it were live.
Official fare
A fare published as fixed by an operator or authority for the stated journey and conditions. We only use this label when the source genuinely supports it, never because one booking happened to show one price.
Starting price, shown as "from"
A genuine minimum. It means some journeys are available at this price, not that yours will be. We never add "from" to make an uncertain figure feel safer.
Estimated range
Our estimate from known inputs. It is not a bookable fare and is always shown as a range rather than a single misleading figure.
Typical price
An observed normal range, used where real fares fluctuate enough that a single number would be false precision.
Calculated fare
A figure we derived from a published formula, such as an official tariff applied to a verified distance with the airport supplement added. A calculated fare is what the rules allow, not a quote, and not a price anyone has confirmed for your journey.
Price unavailable
We have no price we can state honestly. See below.

Per person and per vehicle are not comparable numbers

This is the single most common way an airport transfer comparison misleads people, so every price we show also carries its basis: per person, per vehicle, per booking or per trip. Where a per-person price assumes a passenger count, we say what we assumed.

A scheduled coach normally charges each traveller, so its cost multiplies with your group. A taxi or a private transfer is priced for the vehicle, so its cost is shared. Putting a coach fare and a taxi fare side by side as bare numbers makes the coach look dramatically cheaper than it may be for four people, and can reverse the answer entirely for a family.

We do not silently convert one into the other. The basis stays attached to the number, the comparison keeps both visible, and where the arithmetic actually changes the decision the route page works it through in words.How we compare explains how party size feeds into the rest of the decision.

Why we sometimes show no price at all

When a bookable option has no price on our page and a "check current price" link instead, that is a deliberate decision rather than missing data.

Two things drive it. First, our pages are generated in advance and served as static files, while some provider prices are only valid for the moment and the search context that produced them. A figure baked into a page would keep asserting itself long after it stopped being true, and a stale price is worse than no price because it looks authoritative.

Second, a provider's own presentation is not always what it appears. We have found a transfer product whose price was labelled per person, but whose underlying amounts showed a constant total for the whole vehicle divided by the number of travellers — so the "per person" figure fell as the group grew. Republishing that headline next to a genuine per-person coach fare would have produced a comparison that was wrong in the reader's favour and then wrong against it. We chose to publish no figure rather than a misleading one, and to send you to the provider for the number that is actually current.

We check how a provider's price is really constructed before we would ever show it. If the label and the behaviour disagree, the behaviour wins.

How current is any of this

Different facts go stale at different speeds, so we do not stamp a page with one date and imply everything on it was checked at once. Each value carries its own check date and its own review interval: a road distance is good for a year or more, a taxi tariff for a few months, a bus fare or a timetable for weeks.

Route pages therefore separate two dates that are easy to confuse. Facts last checked is when the underlying values were verified against their sources.Written guidance reviewed is when we last went over the prose. Editing a paragraph does not refresh a fare, and we do not let it look as though it did.

Provider prices additionally have a maximum age. Past it, the stored figure is withheld and the page falls back to asking you to check the current price, because the link stays useful after the number stops being.

Missing prices stay missing

If we cannot verify a price, the comparison shows that we have not checked it. We do not estimate a plausible figure to fill an empty cell. An incomplete table that is honest is more useful than a complete one that is not, and a reader who catches us inventing one number has no reason to trust the rest.

What this means for the price you actually pay

Prices change, and the final price is always the provider's or the operator's, not ours. Fares vary with date, time of day, party size, vehicle, luggage and availability; official tariffs are usually maximums and can carry supplements; and an estimate or a calculated fare is a guide to what to expect, not a quote. Treat every figure here as what it says it is, and confirm the amount with whoever is taking your money before you commit.

We are not paid to prefer one of these prices over another — seehow we make money.