Skip to content
Docs

Bus delay by street

Bus time lost added up by street, across every route and direction that uses it, with how much of the street has a bus lane.

Rows
270
Size
13.0 KB
Covers
Weekdays over the latest six months the MTA has published
Updated
Nightly (the MTA publishes monthly)
Source
MTA bus speeds between timepoints, NYC DOT bus lanes, MTA bus ridership
License
CC BY 4.0
Fileshttps://data.transitlab.nyc/v1/bus_lane_streets.parquetOne file. In the database as transitlab.bus_lane_streets.

Rows and size from catalog.json, 2026-10-06.

One street in one borough. When both ends of a stretch in bus delay and bus lanes are on the same street (say FLATBUSH AV/EMPIRE BLVD to FLATBUSH AV/ATLANTIC AV), the stretch counts toward that street. We add those stretches up across routes and directions.

-- Streets where buses lose the most time and less than half has a bus lane
SELECT street, street_borough, routes,
round(bus_hours_lost) AS bus_hours_lost,
round(lane_share, 2) AS lane_share
FROM 'https://data.transitlab.nyc/v1/bus_lane_streets.parquet'
WHERE lane_share < 0.5
ORDER BY bus_hours_lost DESC
LIMIT 15;
street_boroughvarchar

Borough of the street.

streetvarchar

Street name, e.g. FLATBUSH AV.

bus_hours_lostdouble

Bus-hours lost each weekday on the street.

route_milesdouble

Route-miles of bus service on the street.

buses_per_weekdaydouble

Buses a weekday, 7 am to 7 pm.

routesvarchar

Routes on the street, space-separated.

riders_per_weekdaydouble

Weekday boardings 7 am to 7 pm on those routes. Context only: not every rider rides this street.

lane_sharedouble

Share of the street's route-miles with a bus lane.

mphdouble

Average daytime speed.

hours_lost_per_miledouble

bus_hours_lost per route-mile.

  • Only stretches with both ends on one street count. Stretches that turn corners aren’t in any street’s total.
  • riders_per_weekday is context, not a count of riders on the street. It is the routes’ daytime boardings, and a rider who boards doesn’t ride every street.