data-analyses

Place for sharing quick reports, and works in progress

View the Project on GitHub cal-itp/data-analyses

High Quality Transit Areas Analysis

Open Data Portal

These datasets are updated monthly. We usually use a Wednesday in the middle of the month. The datasets reflect the a snapshot in time based on published GTFS schedule data.

  1. HQTA Areas – start here for any policy or planning analysis related to high quality transit.
  2. HQTA Stops – use this to understand the transit stops that go into defining high quality transit areas.
  3. CA Transit Routes
  4. CA Transit Stops

Understanding the Open Data

Frequency Standards have Diverged

Assembly Bill 2553(2024) is changing the definition of a bus major transit stop to be the intersection of two corridors with a service interval (headway) of every 20 minutes (3 trips/hr), instead of every 15 minutes (4 trips/hr). Although the bill formally takes effect January 1, 2025, our dataset now incorporates this change.

This means that there are now two frequency standards captured by this dataset:

With this change, bus major stops are no longer a subset of high quality transit corridors, since the intersection of two corridors with frequencies of 3 trips/hr now creates a major stop despite neither being a high quality transit corridor.

For more details, see links to each statute below.

How We Count Frequencies

Why Not one “Route” at a Time?

Long Beach Transit map as of October 2024, focusing on the area south of Willow St and east from Magnolia Ave to Lakewood Bl

There is not a consistent practice as to what constitutes one “route” in the transit industry. A single “route” can have some trips that deviate from the usual routing without changing the route name or number, or have some trips only serve part of the route (shortlining). Multiple “routes” can combine to serve the same corridor and stops for many miles. The latter practice, often called interlining, is especially common, as is having local and rapid routes that take the same path but with different stop spacing.

In the above example, Atlantic Ave is served by only Route 61, while Pacific Coast Highway is served by Routes 171, 172, and 173. Those routes combine to equal a higher frequency for riders travelling along PCH than along Atlantic, yet if we only considered one “route” at a time we would categorize Atlantic as a high quality corridor and not PCH (nor Anaheim and 7th, which function the same). We believe this would inaccurately reflect the transit rider experience.

By considering each corridor segment seperately, our methodology is sensitive to where “routes” combine to offer high frequencies, as well as to where they diverge (or where a single route shortlines) and no longer meet the relevant frequency standard.

HQTA Areas is the Primary Dataset

Per statute, High Quality Transit Areas are defined as the half-mile surrounding high quality transit corridors and major transit stops. Our HQTA Areas (polygon) dataset already incorporates this half-mile buffer.

Using the HQTA Areas dataset, it’s possible to determine if an area qualifies because it is a high quality transit corridor, major transit stop, or both. This is useful for certain kinds of analyses, since some statutes and programs only reference major transit stops and don’t include high quality transit corridors.

We provide the HQTA Stops dataset as a convienience for certain kinds of analysis where it would be helpful to know actual stop locations. Note that the hq_corridor_bus type includes all stops in a high quality corridor. Since we make the high quality corridor determination at the corridor segment level and only then find the stops within that corridor, not every hq_corridor_stop is guaranteed to have frequent service (though they could all have frequent service, and at least one stop every 1,250 meters will have frequent service).

Additional Details

hqta_methodology_mermaid

High Quality Transit Areas Relevant Statutes

PRC 21155

PRC 21064.3

PRC 21060.2

Workflow

HQTA data is updated at a monthly frequency for the open data portal. Check the Makefile for the most up-to-date order to run the scripts. Run the Makefile commands from within the high_quality_transit_areas directory.

Document Monthly Variable

  1. Pick a Wednesday in the of the month and put this in rt_dates. Update the DATES and METADATA_EDITION variables.
  2. Update this month’s analysis_date in update_vars

HQTA Analysis

Prior to running the HQTA workflow, make sure this month’s tables are already downloaded. Check rt_dates and the GCS bucket to see if trips, stops, shapes, and stop_times are already downloaded.

If not, within the gtfs_funnel directory, run make download_gtfs_data in the terminal.

In terminal: make hqta_data to run through entire workflow.

  1. Compile rail, ferry, brt data
  2. Draw bus corridors, from routes to HQTA segments
    • Across all operators, find the longest shapes in each direction. Use a symmetric difference to grab the components that make up the route network.
    • Cut route into HQTA segments. Every segment is 1,250 m.
    • Add in route direction.
  3. Combine operator HQTA areas across operators
    • Attach number of stop arrivals that occur in the AM and PM and find the max
    • Do spatial join of stops to HQTA segments. Where multiple stops are present, keep the stop with the highest number of trips.
  4. Use pairwise table to store which segments intersect
    • Find which routes actually do intersect, and store that in a pairwise table.
  5. Find where corridors intersect
  6. Create datasets for each of the hqta types
    • major_stop_bus: the bus stop within the above intersection does not necessarily have the highest trip count
    • hq_corridor_bus: stops along the HQ transit corr (may not be highest trip count)
  7. Compile and export HQTA areas as points
  8. Compile and export HQTA areas as polygons