Skip to main content

How we compute estimates

Methodology

This page documents the exact method used to produce every estimate published on InstantTripCost. It's written for readers who want to understand or challenge the numbers, and for journalists or researchers who might cite the site.

Page last updated June 12, 2026.

The four data layers

Every published estimate combines four layers that together cover the six expense categories of a trip: flights, lodging, food, local transport, activities, and miscellaneous. Each layer is computed independently.

Layer 1: Flights

Flight prices are observed fares, queried via specialized aggregator APIs. The response is cached for a week: it is not availability at the moment you read it. For each origin-destination airport pair, we retrieve the median round-trip economy fare observed over the selected window.

When the user specifies an exact date, we query that date. When the user specifies only a month, we query the whole month and keep the median across possible departures. The displayed price is a realistic anchor, not the day's best deal nor a marketing-grade average.

Layer 2: Lodging

Hotel rates are aggregated via specialized hotel-pricing APIs. For each city, we run a survey for a given arrival date and compute the median nightly rate per establishment category. That date is shown on the page carrying the prices.

Three tiers are distinguished: hostel or budget hotel (1-2 star equivalent), mid-range hotel (3-4 star equivalent), premium hotel (4-5 star equivalent). The split relies on the official classification of the property and its observed rate.

A dated survey does not smooth the swing from one season to the next, and we would rather say so than advertise a rolling window we do not run. The date is therefore worth as much as the price: it is what tells you what the figure compares.

Layer 3: Food and local transport

Food, local transport and activities are not queried via API. They start from reference prices set for Paris, multiplied by a cost index specific to each city, with Paris at 1.00.

That index is computed from our hotel surveys, then pulled towards 1, because a meal varies far less from one city to another than a night in a hotel: a city that is very cheap for hotels is less so for meals. Cities without a hotel survey keep an index estimated from public cost-of-living data until they get one.

No index is corrected by hand city by city. A local quirk, very cheap transit fares or a tipping culture, is therefore not modelled: these are the least precise lines of the calculation.

Layer 4: Activities

Activity recommendations come from a leading travel-experiences platform. Two filters are applied before publication.

Quantitative filter: minimum 4.3 rating out of 5, minimum 100 cumulative reviews. Below those thresholds, the experience is excluded.

Qualitative filter: we drop generic activities loosely tied to the destination, and tours that come across as tourist traps. The goal is to surface experiences characteristic of the place, not a universal catalog.

Why median, not mean

The travel market is skewed. A handful of extremely expensive or extremely cheap offers pull the arithmetic mean up or down, producing a number that doesn't represent what a traveler will actually pay.

The median (the price that splits offers into two equal halves) is insensitive to those extreme values. It better represents the price observed by most buyers. It's the default metric used on InstantTripCost for flights, hotels, and activities.

Refresh frequency

Each data layer has its own refresh cadence.

ScopeFrequencyNote
Flight pricesEvery estimateQueried on demand, response cached for a week.
Hotel mediansPer survey campaignDated probe by arrival date, launched by hand. No timer.
Cost-of-living indicesPer survey campaignRecomputed from the survey, never typed in by hand.
Curated activitiesPer survey campaignRating and review-count thresholds applied at collection.
Editorial pagesCase by caseLast-verified date shown on each page.

Declared error margins

We do not advertise a figure for the margin on the total, because we do not measure one. A page publishing a percentage it had not checked would be doing exactly what this site criticises elsewhere.

What we can state, layer by layer: a flight varies 10 to 30 % with booking timing, a hotel 15 to 25 % with availability, an activity 5 to 15 % with the season. Meals, transport and miscellaneous are not surveyed but calibrated on per-city ranges: they are the widest of the four, and they carry roughly half the daily cost.

The practical consequence: the total is an order of magnitude, not a quote, and the part you can genuinely check is the flight and the hotel, whose survey date is shown on the page.

External sources used

Estimates rely on three families of external sources.

Specialized commercial APIs for flight prices, queried on demand and cached for a week, and for hotel surveys, dated by arrival date (professional aviation and hospitality aggregators with access to operator inventories).

Cost-of-living indices for food and local transport: derived from our hotel surveys for surveyed cities, estimated from public cost-of-living data for the others.

Climate data from the European ERA5 reanalysis program (1991-2020 normals) for the temperatures, conditions, and best windows shown in the monthly calendar.

What the estimate doesn't cover

A number of categories are intentionally excluded from the calculation, either because they depend too much on individual choices, or because no source allows them to be estimated correctly at scale:

  • personal shopping (souvenirs, clothing, equipment)
  • emergency medical care or unscheduled consultation
  • visa fees and administrative procedures
  • culturally variable tipping
  • unforeseen events (cancellation, lost luggage, equipment replacement)
  • travel insurance (covered on request but not in the default total)

The user remains responsible for adding these categories to their personal budget when they apply.

Validation against real cases

Estimates are validated by cross-checking with real traveler reports. When a significant gap is observed between a published estimate and a real reported cost, the editorial team examines the cause:

  • Error in the estimate: the data is corrected and the change documented.
  • Edge case for the traveler: the gap is documented as normal variation, no change to the published estimate.
  • Out of scope: the gap concerns a category not covered by the estimate (see section above).

This validation process is continuous. The frequency of significant gaps serves as an internal quality indicator.

Methodology evolution

The methodology evolves. When a significant change occurs (new source added, change to the hotel-tier split formula, revision of the activity filter threshold), the change is documented and the page's last-updated date is refreshed.

Minor changes (typo fixes, clarity rewrites) are not tracked. Structural changes are.

Reproducing our calculations

Someone who wants to reproduce a published calculation can do so from the following elements:

  • the hotel median per tier published on the destination page
  • the city's cost-of-living index (published on each destination page)
  • the trip length and number of travelers
  • the flight median available from the cited sources

The general formula is: total cost = flight per traveler + nightly rate per tier × nights × rooms + cost index × days × travelers × style coefficient + selected activities × travelers.

The editorial team can provide the calculation breakdown for a specific estimate on request at contact@instanttripcost.com.