Public Transport Heatmaps (PTH)

We offer an online service than can create heatmaps to visualise public transport commute times. You can find out all about it here!

Public Transport Heatmap


Hexos has developed an online service that can create heatmaps to visualise public transport commute times from anywhere in a given radius to a central point. Heatmaps can be generated for any time of day, any day of the week and any location in the United Kingdom.


We use current timetabled public transport data from around the UK at the time you request a heatmap to create the most accurate and reliable set of data we can.

Cutting Edge

Our online service is built using modern serverless architectures provided by Amazon Web Services to provide an efficient and easy process for you!


You can create a heatmap for any location around the UK, with a radius up to 75km. We also provide you with the raw data so you can be even more creative!

What makes us different?

Other services tend to use averaged data throughout the day or only give you the 'moving travel time' and ignore transfer times or actual timetables. We also know that sometimes, due to how public transport timetables can fall, people have to arrive in places hours before they should otherwise they'd be late if they got a different bus/train etc. By looking at actual timetables and considering all factors - we create heatmaps based off arrival and departure giving you the most realisitic set of data we can. For example your bus journey might take 15 minutes, but you get to work 45 minutes early so your total travel time is actually an hour!

Current version: 1.20.0 BETA
1.20.0 from 11th November 2019
You can now quickly request 'similar heatmaps' from the 'Your Heatmaps' tab in the dashboard.
1.19.0 from 9th October 2019
You can now customise the interactive map (in the view page) to have any maximum travel time between 5 and 360 minutes.
1.18.0 from 7th October 2019
'Public Transport Heatmap' has now been merged with Hexos. The online dashboard has now moved to
1.17.0 from 30th August 2019
The view page has been updated so you can now change the maximum travel time of the displayed heatmap.
1.16.0 from 29th August 2019
The public transport data source has been updated to improve the walking between/before/after using public transport services.
1.15.0 from 27th August 2019
The 'greyscale' map style has been improved to make roads and places more visible.
1.14.0 from 21st August 2019
The static image downloads now have the map legends overlaid along with a description of what the map is showing.
1.13.0 from 29th July 2019
You can now request heatmaps for a specific day of the week to study changes in public transport commute times through the week.
1.12.0 from 27th July 2019
Included in the static download you will now find over 30 images with max times ranging from 1 hour to 3 hours.
1.11.0 from 26th July 2019
Our heatmaps are now presented on our new and improved 'grayscale' map style.
1.10.0 from 7th July 2019
We now include a static map legend (as a png image) along with the static image download.
1.9.0 from 22th June 2019
We have added a new map legend to make it even easier to study the data. We have also improved the static image generation to make higher definition images.
1.8.0 from 20th June 2019
Improved the departure time algorithm. Resulting in a cleaner map and more accurate data.
1.7.1 from 16th June 2019
We moved to our new domain -!
1.7.0 from 15th June 2019
The user can now download high resolution static images of their heatmap (all packaged up in a zip file).
1.6.0 from 10th June 2019
The interactive maps are now even more interactive, you can click on any cell to get the departure time.
1.5.0 from 7th June 2019
We added a latitude-longitude picker to the request heatmap page, making it even easier to locate places!
1.4.0 from 20th May 2019
The geojson now includes distance travelled.
1.3.0 from 17th May 2019
The user is now able to download the geojson that is associated with their heatmap.
1.2.0 from 16th May 2019
We were able to create interactive maps and display them to the user based off real data in specific locations.
1.1.0 from 1st May 2019
We were able to locally create radial maps.
1.0.0 from 1st April 2019
We started the project!

Here's something we made earlier!

View the full selection of heatmaps here.


Sheffield Heatmap

Departure times required to arrive in Sheffield by 09:00am on a Monday using public transport

The current maximum travel time is: 120 mins. Update the maximum travel time by placing the new value in the box and pressing update. The new value must be a whole number of minutes and be less than 360 minutes (6 hours) and greater than 5 minutes.

Top tip: click anywhere on the map to see the exact departure time!


How much do our heatmaps cost?

We offer 4 main sizes of heatmaps sold as single products or sold as bundles with a discount price. Please note that we are happy to create any sized heatmap up to 75km - the prices shown below are simply a guideline and also the 4 most popular sizes!

Please get in touch to make a purchase.

Single Heatmaps

Thats a heatmap defined with one location, one day of the week and one time of day. But the radius is up to you!

Local Heatmap

A heatmap with a radius of 10km. Covering about 300 km².


City Heatmap

A heatmap with a radius of 25km. Covering about 2000 km².


County Heatmap

A heatmap with a radius of 50km. Covering about 7800 km².


Regional Heatmap

A heatmap with a radius of 75km. Covering about 17600 km².


Heatmap Bundles

Multiple single heatmaps at a discounted price!

Local Planner
10% Discount

Includes 5 single heatmaps each with a radius of 10km.

£500 £450

15% Discount

Includes 10 single heatmaps each with a radius of 10km.

£1000 £850

20% Discount

Includes 15 single heatmaps each with a radius of 10km.

£1500 £1200

City Planner
10% Discount

Includes 5 single heatmaps each with a radius of 25km.

£1000 £900

15% Discount

Includes 10 single heatmaps each with a radius of 25km.

£2000 £1700

20% Discount

Includes 15 single heatmaps each with a radius of 25km.

£3000 £2400

County Planner
10% Discount

Includes 5 single heatmaps each with a radius of 50km.

£1500 £1350

15% Discount

Includes 10 single heatmaps each with a radius of 50km.

£3000 £2550

20% Discount

Includes 15 single heatmaps each with a radius of 50km.

£4500 £3600

Regional Planner
10% Discount

Includes 5 single heatmaps each with a radius of 75km.

£2000 £1800

15% Discount

Includes 10 single heatmaps each with a radius of 75km.

£4000 £3400

20% Discount

Includes 15 single heatmaps each with a radius of 75km.

£6000 £4800

Click here to view the prices as a PDF

Get Started

To get started using this service you must first create an account. An account is completely free and allows you to use purchasable payment codes to request heatmaps, store heatmaps and view heatmaps. You can sign up with the button below. (We only ask for your name, an email and a strong password!)

The dashboard for our service is now available at (previously so that's where you'll want to go each time you need to access our service. You can either bookmark the site once you're onto the dashboard or simply login via the PTH dashboard button at the top of the page each time you need to login.


How do I request a heatmap?

In order to request a heatmap you must first create an account and login. From there you will be able to navigate to the 'request heatmap' page and enter the required information. This required information includes your pre-purchased payment code, location, day of the week and arrival time.

What is a payment code, and how do I get one?

A payment code is simply a code that you can exchange for a generation of a heatmap once you have logged in. Each payment code will have a corresponding radius (so make sure you've decided what size you want before you make a purchase - all other variables you can decide on when you request the heatmap). Simply get in touch and we can discuss pricing or check out the pricing information section. Please note payment codes are only valid for 3 months after they are generated.

What is the maximum size of a heatmap?

The maximum radius of a heatmap is 75km – this equals a total area of about 17600 km².

What products will I receive / gain access to once the heatmap has been generated?

Once your heatmap has been generated you will gain access to an interactive map that can be accessed via the dashboard (similar to the interactive demo above). You will also be able to download a zip folder that will contain high definition images and the full raw data for your heatmap represented as GeoJSON. There are multiple high definition images with max travel times ranging from 1 hour to 3 hours (and their corresponding map legends). Heatmap images are square and come in the following sizes: (512px, 1024px, 2048px, 3072px).

Are the images and the raw data subject to any license?

The images and the raw data (GeoJSON) are protected by the Creative Commons 4.0 License.

How long do heatmaps take to generate?

Heatmaps can take between 5 minutes to 60 minutes to generate depending on their size. If you request multiple in quick succession this will also increase the time taken to process them all. If you have been waiting more than 24 hours please get in touch with us.

What am I able to do with the raw data?

The raw data is represented as GeoJSON. GeoJSON is a standard for representing simple geographical features, this means it is supported by most online mapping systems. The raw data can be very useful as it will allow you put interactive heatmaps on your own websites, change the colouring of the heatmaps, change the underlying map styles and much more. To find example code and use cases of this GeoJSON please check out our GitHub repository.

What pieces are information are available in the raw data (GeoJSON)?

The GeoJSON includes up to 10,000 discrete journeys. With all this data we can draw up colourful heatmaps of public transport commute times. Below are all the variables you gain access to in the raw data (GeoJSON):

  • Location (location) - The central latitude and longitude of the given discrete journey start location. [Format: {latitude:*lat*,longtiude:*long*}]

  • Departure Time (departureTime) - The time you must depart by to reach the central point by the given arrival time. [Format: HH:mma]

  • Total Travel Time (totalTravelTime) - The total time taken between departure and the required arrival time. [Format: minutes]

  • Moving Travel Time (movingTravelTime) - The total time taken between departure and the actual arrival time. [Format: minutes]

  • Actual Arrival Time (actualArrivalTime) - The actual arrival time of the calculated route as this may be before the requested arrival time. [Format: HH:mma]

  • Distance Travelled (distanceTravelled) - The total distance travelled. Includes walking and public transport. [Format: metres]

  • Total Walking Distance (totalWalkingDistance) - The total distance walked during the entire journey. Includes transfers. [Format: metres]

  • Initial Walking Distance (initialWalkingDistance) - The distance walked from a location to the first usage of public transport. For example home to a bus stop. [Format: metres]

  • Final Walking Distance (finalWalkingDistance) - The distance walked from the final usage of public transport to the centre location. For example from a bus stop to an office. [Format: metres]

  • Number Of Transfers (numberOfTransfers) - The total number of public transport transfers made during the journey. [Format: integer]

  • Public Transport Services Used (publicTransportServicesUsed) - A list of all the services used and the type of service. For example a bus name and then an indication that it was a bus. [Format: [{ serviceName: '*serviceName*', serviceType: '*serviceType*' }...]]

  • Polygon Coordinates (coordinates) - A list of all the vertices of the polygon that covers the area represented by this discrete journey information. [Format: [[*long*,*lat*],...]]