{"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-07-31T15:26:40.392Z","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":[4.6,1,0.3,0.2,0.2,2.8,10.9,22.6,34.3,30.7,21.1,18.2,18.8,19.1,19.8,22.4,28.5,35.2,32.2,23.5,17.5,14.6,13.1,10.3],"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":[5.9,1.3,0.5,0.4,0.2,2.6,11.3,24.4,36.7,35.2,22.6,19.3,20,20.6,21.2,24.1,29.1,35.9,33.9,25.6,19.9,16.5,15.3,12.8],"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":[6.7,1.5,0.6,0.4,0.2,2.7,11.3,24.3,36.1,32.9,23.1,20,20.5,21.2,21.9,25.1,31,37.9,37,26.7,19.2,16.2,17.6,15.1],"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":[7.2,1.6,0.6,0.4,0.2,2.7,11,23.4,37.1,34.5,23,20.3,21,21.5,22,24.3,29.3,35.1,32,26,21.1,19.2,18.7,15.3],"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":[11.1,2.4,0.6,0.4,0.2,2.6,10.4,19.3,26.5,25,20.2,19.2,20.4,21.5,22.7,25.1,28.5,31.2,29.4,23.9,19,16.5,18.2,18.8],"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":[11.9,4.4,1.3,0.6,0.8,2.3,5.3,8.2,10.9,14,17.3,19.9,22,23.2,23.4,23.1,23.4,24.3,23.6,21,17.7,16.1,16.3,16.6],"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":[4.9,3.2,2.4,1.4,0.8,1.2,3.2,5.8,8.3,11,14.3,16.8,18.2,18.7,18.7,18.5,18.7,19,18.5,16.3,13.3,11.4,11.2,11],"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."}