Inbound trends by UK nation, region & county

International visitors make it to just about every corner of Britain during the course of the year. Explore full year data using the filter options on the graphs and charts below.

If you would like to see the below data by quarter, please visit our data by area page.

The International Passenger Survey (IPS) was suspended on 16 March 2020 due to the coronavirus (COVID-19) pandemic until the start of 2021. The ONS have made every effort to produce high-quality estimates for the periods when IPS data is not being collected but have not been able to produce a full set of results therefore no data from 2020 is available on the interactive chart below. Interviewing initially began at UK airports at the start of 2021, though the IPS remained suspended at some sea ports and train stations during the year. Data for 2021 and 2022 is also excluded below as there were no interviews at Eurotunnel until July 2022 and data from Dover was only collected from Q3 2021.

Whilst 2021 is excluded in the interactive chart you can access the 2021 regional data in an alternative format; by market and year (XLS, 2.6MB). See subregional spread for 2021 (XLS, 687KB) and subregional data by purpose and country (XLS, 15.6MB).

Read more about 2020 inbound data2021 inbound data, 2022 quarterly data as well as the latest monthly data for 2022.

Please note that visitors sometimes spend nights in more than one location during their trip.  This means that 'visits' figures will not necessarily sum to the national total (eg. visits to London + visits to rest of England > visits to total England). Expenditure data in the CSV file excludes spending of nil-nights transit visitors to the UK and visitors departing directly from the Channel Islands.

An important note about the survey's methodology 

  • Visitors who spend at least one night in the UK during their trip are asked where they stayed.  This information can then be aggregated to look at the number of visits, nights, and spending in different regions, cities, and towns.
  • Information at the regional level is often based on very small sample sizes, and as such should be treated with extreme caution, and used solely as an indicative estimate.  The International Passenger Survey is a national survey, and is not designed to be statistically robust at the regional level.
  • Visitors often spend nights in more than one location during their trip.  This means that when looking at ‘visits’ values for different regions will not sum to the national total – for example a visitor from the US making a single visit to the UK could be counted as making a ‘staying visit’ to London, to Edinburgh and to Chester.
  • The data includes a ‘Total UK’ category, representing the true national total for visits. 
  • ‘Double counting’ is not an issue when looking at visitor nights or spending.
  • No information is recorded about where visitors arriving/departing the UK on the same day travel during their trip, nor is information recorded about where ‘staying visitors’ go for ‘day trips’.  If a visitor from France spends four nights in Edinburgh they may take a day trip to St Andrews and another to Stirling, but this information will not be recorded in the International Passenger Survey.

A note on the English regions

  • Data for each of the English regions can be viewed individually, or at an aggregated level.
  • The aggregated levels available are:
  • Rest of England: all regions outside London combined
  • England's North Country: North East, North West and Yorkshire combined
  • Central England: West Midlands, East Midlands and East of England combined
  • Southern England: South East and South West combined

Applied filters:

{{ item.title }}
Display:

Drag to change year on charts and tables.

Touch the data points to see the values.

OVERVIEW OF UK VISITOR STATISTICS {{activeYear.name}}

Number of visits

{{totalVisits | fixUnits}}

{{ totalVisitsPerc == 'Infinity' ? '-' : totalVisitsPerc >= 0 ? '+' + totalVisitsPerc.toFixed(2) + '%' : totalVisitsPerc.toFixed(2) + '%' }}

{{item.name}} {{item.data | fixUnits}}

Total expenditure (GBP)

{{totalSpend | spendUnits}}

{{ totalSpendPerc == 'Infinity' ? '-' : totalSpendPerc >= 0 ? '+' + totalSpendPerc.toFixed(2) + '%' : totalSpendPerc.toFixed(2) + '%' }}

{{item.name}} {{item.data | spendUnits}}

Total nights spent

{{totalNights | fixUnits}}

{{ totalNightsPerc == 'Infinity' ? '-' : totalNightsPerc >= 0 ? '+' + totalNightsPerc.toFixed(2) + '%' : totalNightsPerc.toFixed(2) + '%' }}

{{item.name}} {{item.data | fixUnits}}

Average length of stay (Nights)

{{avgStay.toFixed(2)}}

{{ isNaN(avgStayPerc) ? '-' : avgStayPerc >= 0 ? '+' + avgStayPerc.toFixed(2) + '%' : avgStayPerc.toFixed(2) + '%' }}

{{item.name}} {{item.data.toFixed(2)}}

Average spend per visit (GBP)

{{avgSpend | spendUnits(0, 'hideUnit')}}

{{ isNaN(avgSpendPerc) ? '-' : avgSpendPerc >= 0 ? '+' + avgSpendPerc.toFixed(2) + '%' : avgSpendPerc.toFixed(2) + '%' }}

{{item.name}} {{item.data | spendUnits(0, 'hideUnit')}}

* Change from {{Number(activeYear.name) - 1}}

{{seasonalityBox.title}}

{{yearSeasonality | spendUnits}} {{filteredDataWording ? '(Filtered total)' : '(Total)'}}

{{yearSeasonality | fixUnits}} {{filteredDataWording ? '(Filtered total)' : '(Total)'}}

Quarter {{activeDisplay}} %
{{ item.name }} {{ item.data[0] | spendUnits }} {{ item.data[0] | fixUnits }} {{ (item.data[0] * 100 / yearSeasonality).toFixed(2) }}%
{{item}} {{ seasonalityBox.data_pie.series[index] | spendUnits }} {{ seasonalityBox.data_pie.series[index] | fixUnits }} {{ (seasonalityBox.data_pie.series[index] * 100 / yearSeasonality).toFixed(2) }}%
{{item.name}} {{ item.data[index] | spendUnits }} {{ item.data[index] | fixUnits }} {{ (item.data[index] * 100 / yearSeasonality).toFixed(2) }}%

{{journeyBox.title}}

{{yearPurpose | spendUnits}} {{filteredDataWording ? '(Filtered total)' : '(Total)'}}

{{yearPurpose | fixUnits}} {{filteredDataWording ? '(Filtered total)' : '(Total)'}}

Purpose {{activeDisplay}} %
{{ item.name }} {{ item.data[0] | spendUnits }} {{ item.data[0] | fixUnits }} {{ (item.data[0] * 100 / yearPurpose).toFixed(2) }}%
{{item}} {{ journeyBox.data_pie.series[index] | spendUnits }} {{ journeyBox.data_pie.series[index] | fixUnits }} {{ (journeyBox.data_pie.series[index] * 100 / yearPurpose).toFixed(2) }}%
{{item.name}} {{ item.data[index] | spendUnits }} {{ item.data[index] | fixUnits }} {{ (item.data[index] * 100 / yearPurpose).toFixed(2) }}%

{{durationBox.title}}

{{yearDuration | spendUnits}} {{filteredDataWording ? '(Filtered total)' : '(Total)'}}

{{yearDuration | fixUnits}} {{filteredDataWording ? '(Filtered total)' : '(Total)'}}

Duration {{activeDisplay}} %
{{ item.name }} {{ item.data[0] | spendUnits }} {{ item.data[0] | fixUnits }} {{ (item.data[0] * 100 / yearDuration).toFixed(2) }}%
{{item}} {{ durationBox.data_pie.series[index] | spendUnits }} {{ durationBox.data_pie.series[index] | fixUnits }} {{ (durationBox.data_pie.series[index] * 100 / yearDuration).toFixed(2) }}%
{{item.name}} {{ item.data[index] | spendUnits }} {{ item.data[index] | fixUnits }} {{ (item.data[index] * 100 / yearDuration).toFixed(2) }}%