{"schemaVersion":"1.0","id":"tube-heartbeat","dataset":"tube-heartbeat","title":"Tube Heartbeat — a week of London","description":"A week of the network's own rhythm, hour by hour, across the forty busiest interchanges.","methodology":"TfL's published crowding profile for the forty busiest interchanges — seven days of fifteen-minute bands, averaged to the hour and across stations. The figure is percentage of each station's own baseline, not passengers: a busy quarter-hour at Brixton and at Bank both read high without either claiming to be the busier station, which makes the shape of a day comparable between stations and the height meaningless between them. Earlier versions of this page said the data did not exist; it does, and this is it.","category":"transport","categoryLabel":"Transport","cadence":"live","placeholder":false,"landingPage":"https://londongraph.com/g/tube-heartbeat","markdown":"https://londongraph.com/g/tube-heartbeat/index.html.md","source":{"name":"TfL Unified API","url":"https://api.tfl.gov.uk/","licence":"TfL Open Data Licence","licenceUrl":"https://tfl.gov.uk/corporate/terms-and-conditions/transport-data-service"},"updatedAt":"2026-10-18T03:04:38.597Z","release":{"label":null,"publishedAt":null,"resourceUrl":null,"methodologyUrl":null,"sha256":null},"observations":[{"series":"Monday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[2.8,0.8,0.3,0.2,0.2,2,8.3,17.8,27.2,22.1,14.9,12.9,13.2,13.9,14.2,16.4,20.4,25.5,24.1,16.9,12.1,9.7,8.1,6.2],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},{"series":"Tuesday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[3.5,1,0.5,0.3,0.2,2,8.6,19.8,26.1,21.1,16.8,14,14.4,15,15.3,18,22.6,28.3,26.9,18.7,14.1,11.7,10.6,7.9],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},{"series":"Wednesday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[3.9,1.1,0.4,0.3,0.2,2.1,8.7,19.4,27.9,24.4,16.9,14.4,14.8,15.4,15.9,18.2,22.2,26.2,26,18.9,14.3,12.3,11.1,8.7],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},{"series":"Thursday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[4.9,1.2,0.5,0.3,0.2,2,8.3,18.5,27.5,23.7,16.9,14.5,14.9,15.3,15.7,18,22.4,26.2,25.1,19.2,15,13.3,12.4,10],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},{"series":"Friday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[6.4,1.7,0.4,0.3,0.2,1.9,7.8,15.3,21.7,19.5,14.7,13.6,14.4,15.1,15.7,18.1,21.9,24.4,23.9,18.8,14.1,11.6,11.7,10.9],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},{"series":"Saturday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[7,2.7,1,0.6,0.6,1.9,4.2,6.5,8.5,10.6,12.8,14.7,16.3,17.3,17.4,17.2,17.6,18.5,18.3,16.3,13.4,11.7,11.4,11.4],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},{"series":"Sunday","buckets":["00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],"values":[2.5,1.6,1.2,0.9,0.6,0.8,2.5,4.8,6.8,8.4,10.4,12.3,13.7,14.2,14.1,13.9,13.9,14.2,13.9,12.2,9.7,7.8,6.8,6],"unit":"% of baseline","metadata":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}],"areaStatistics":null,"visualizations":[{"id":"overview","label":"Heatmap","description":"A week of the network's own rhythm, hour by hour, across the forty busiest interchanges.","url":"https://londongraph.com/g/tube-heartbeat","renderer":"primary","default":true,"timeControl":"inherit","datasets":[],"transform":null,"controls":null,"metrics":[],"caveat":null},{"id":"profiles","label":"Profiles","description":"Read each row as an aligned trend rather than a colour cell.","url":"https://londongraph.com/g/tube-heartbeat?view=profiles","renderer":"small-multiples","default":false,"timeControl":"inherit","datasets":[],"transform":null,"controls":null,"metrics":[],"caveat":null},{"id":"distribution","label":"Distribution","description":"Rank the values in the selected matrix.","url":"https://londongraph.com/g/tube-heartbeat?view=distribution","renderer":"distribution","default":false,"timeControl":"inherit","datasets":[],"transform":null,"controls":null,"metrics":[],"caveat":null}],"availability":"observations","note":"The release is complete for the measures represented on the graph page."}