Executive Summary
Executive Technical Summary This project looks at how transit-based access to jobs in Alameda County changes depending on the time of day, with a particular focus on Equity Priority Communities (EPCs). Using GTFS transit schedules and the R5 routing engine, we estimate how many jobs can be reached within 15, 30, and 45 minutes by transit and walking from six representative census tracts during the morning peak and late night. We find that late-night service often results in substantial drops in job access, especially for EPC tracts that have relatively strong access during the morning. While a few non-EPC tracts see small gains at night due to lower congestion, these gains generally occur on top of lower baseline access. Comparing these results to a simplified distance-based proxy highlights why time-aware routing is necessary for understanding transit equity across the full service day.
1. Introduction
Transit access is not the same at every hour of the day. Morning commute service is usually frequent and coordinated, while late-night routes often thin out or disappear. For people who rely on transit—especially residents of Equity Priority Communities (EPCs)—these changes can determine which jobs are realistically reachable.
In this project, we study time-of-day equity in transit job access for Alameda County, California. We focus on the following research question:
How does transit-based job accessibility change between the AM Peak (7:30–8:30) and Late Night (22:00–23:00), and do Equity Priority Community tracts experience larger losses than non-EPC tracts?
To answer this, we combined census data, workplace locations, transit schedules, and a routing engine (R5) to estimate how many jobs can be reached from several representative tracts within 15, 30, and 45 minutes by transit and walking. The goal is to tell a clear, data-driven story about where access expands, where it collapses after dark, and what that means for transit equity.
2. Data & Methods
2.1 Data sources
We assembled a county-level dataset by joining the following sources:
- Census TIGER/Line 2022 tracts – geographic boundaries for analysis.
- ACS 2018–2022 – population counts for each tract.
- LEHD LODES 2021 (Workplace Area Characteristics) – location of jobs by census block, aggregated to tracts.
- MTC Plan Bay Area 2050 Equity Priority Communities – identifies tracts with overlapping disadvantage in race, income, and other indicators.
- GTFS feeds for AC Transit and BART – detailed transit schedules and routes.
- OpenStreetMap (OSM) street network – walking and roadway network for routing.
All GEOIDs were standardized to 11-digit FIPS codes. Geometries were validated, and coordinate reference systems were harmonized (WGS84 for storage and mapping; EPSG:26910 for distance calculations). We documented tracts with zero reported population or jobs as structural “missing” cases rather than errors.
We aggregate job counts to the census tract level to keep the units of the unit of analysis consistent across datasets and aligned with how equity designations are defined in regional planning practice. Job accessibility is measured as the total number of jobs reachable within a given travel time, rather than a per-capita measure. This choice is intentional: the goal of the analysis is to understand how many employment opportunities are realistically reachable by transit from a place, not to estimate how those jobs are distributed among individuals.
2.2 From midterm proxy to time-aware routing
The project began with a simplified “midterm” metric: straight-line distances between tract centroids, converted to travel time using a constant 40 km/h speed. This proxy provided a first look at which tracts were near large job clusters, but it ignored the actual transit network and service times.
For the final phase, we replaced this proxy with time-aware multimodal travel times using the R5 routing engine. R5 takes GTFS schedules and the OSM street network and computes realistic transit + walk travel times for specific departure windows. The resulting origin–destination travel-time outputs are spatially joined with census tract geometries and tract-level job counts to compute cumulative accessibility metrics.
2.3 Representative origins and time windows
To keep the analysis focused and reproducible, we selected six representative tracts:
- Three located in EPCs (Oakland, San Leandro, Fremont / Union City)
- Three located in non-EPC tracts (San Leandro, Hayward)
These tracts were chosen to span multiple parts of the county and to represent both high-frequency urban corridors and more auto-oriented suburban areas.
R5 was then used to compute travel-time matrices from these six origins to every tract centroid in Alameda County for two periods:
- AM Peak: 7:30–8:30 on a valid weekday
- Late Night: 22:00–23:00 on the same service day
Using tract centroids provides a consistent and interpretable destination unit aligned with tract-level employment data, while acknowledging that jobs are distributed within each tract.
For each matrix we capped travel times at 120 minutes, then calculated cumulative jobs reachable within 15, 30, and 45 minutes by joining in LODES job counts. This cap avoids unrealistic journeys and keeps the analysis focused on trips that are plausibly relevant for daily commuting.
3. Results & Visual Story
The figures in the following sections are designed to be exploratory as well as comparative. Rather than relying on a single summary statistic, we use maps and animated charts to show how accessibility patterns shift across time windows and travel-time thresholds. Readers are encouraged to toggle layers and move sliders to explore how accessibility patterns change across time windows and thresholds.
3.1 Spatial context: Where are EPC tracts located?
Before looking at time-of-day effects, it is helpful to see where Equity Priority Communities are located within Alameda County and how our sample tracts fit into that pattern.
3.2 Isochrone explorer: How far can transit take you?
Isochrones draw a boundary around all locations that can be reached within a given amount of time. Here we use them to compare how the “reach” of transit changes between AM Peak and Late Night for each of the six origins.
Why this figure matters: it provides an intuitive, map-based view of distance and time. Instead of looking at numbers alone, we can see how the physical size of a person’s “transit world” changes after dark. These differences in geographic reach directly shape how many jobs fall within each time threshold, which we quantify in the next section.
3.3 Animated jobs reachable: How many jobs fit inside those isochrones?
The next step is to translate geographic reach into job access. The interactive bar chart below shows, for each origin, how many jobs fall within 15, 30, or 45 minutes of transit travel in the AM Peak and Late Night windows.
This chart is designed for non-technical viewers: higher bars mean more jobs reachable, and the side-by-side frames make it easy to compare daytime and nighttime conditions without reading complex tables.
3.4 Focusing on the 30-minute threshold
Many regional planning studies use a 30-minute transit commute as a benchmark. The following figure summarizes how 30-minute job access changes from AM Peak to Late Night for each sample tract.
This figure answers a focused question: at a meaningful threshold (30 minutes), where does late-night service most strongly erode access, and where does it slightly improve?
3.5 Paired map: Where are daytime strength and nighttime vulnerability?
The paired map below links the previous bar chart back to geography, showing both the starting point (AM Peak access) and the relative nighttime change.
This figure serves as a “summary map” for the project: it connects job counts, percent change, and place in one view that can be read by both technical and non-technical audiences.
3.6 Model Validation: Proxy vs. Time-Aware Accessibility
Before running time-aware routing, we experimented with a simplified accessibility proxy based on straight-line distances between census tract centroids. This approach was useful early on because it was fast to compute and helped identify broad spatial patterns. However, once we compared the proxy results to R5-based travel times, it became clear that the proxy often overstated access and failed to capture differences between morning and late-night service. For this reason, all results discussed in this report are based on the time-aware R5 outputs.
View midterm proxy visualizations
While the proxy analysis covers all tracts countywide, the R5-based results focus on representative origins to prioritize realism over coverage.
4. Limitations & Dark Data
The results presented here should be interpreted as informed estimates rather than exact predictions. Several limitations affect both the data and the methods:
- GTFS describes scheduled service, not actual operations. Cancellations, delays, and reliability issues are not captured. This can be misleading if riders frequently experience missed connections or long unscheduled waits. Because service reliability issues often disproportionately affect riders in Equity Priority Communities, this limitation may understate real-world inequities.
- LODES workplace counts are partly imputed. For privacy reasons, some workplace data are suppressed or statistically adjusted. This means job totals may not match exact on-the-ground employment, especially in small tracts.
- ACS estimates include sampling error. Tracts with small populations may have wide confidence intervals. Using a single “best estimate” can hide this uncertainty and make the numbers seem more precise than they are.
- Ecological fallacy. Our unit of analysis is the census tract, not the individual person. A tract with good averages may still contain residents with very poor access, and vice versa.
- MAUP (modifiable areal unit problem). We chose tracts because they are standard and well-documented, but different boundaries or finer units would change the patterns shown on the maps. We prioritize tracts because they align with planning practice and available equity datasets, even though finer spatial units could reveal additional within-tract variation.
- Isochrone simplification. Isochrones are built from convex hulls around reachable tract centroids. They smooth over irregularities of the street network and may slightly exaggerate reach in some directions.
- Sample of six origins. Our time-aware analysis focuses on six tracts, not the entire county. They are chosen to be illustrative rather than statistically representative.
These issues reflect the “dark data” and pitfalls discussed in class: summary statistics can hide uncertainty, spatial aggregation can mislead, and data products are always approximations of reality. The figures in this story should be read with these caveats in mind. Taken together, these limitations mean that our findings are best interpreted as relative comparisons between time windows and community types, rather than precise estimates of absolute job access.
5. Policy Considerations
Taken together, the results show that time of day is a critical but often overlooked dimension of transit equity in Alameda County. Even with these limitations, several patterns are robust enough to inform practice:
- Late-night losses are concentrated in EPC areas. Oakland’s EPC tract, in particular, starts with strong AM Peak access but loses a large share of reachable jobs at night. Policy efforts to extend span of service or maintain frequency on key routes here could have a major equity impact.
- Span of service matters as much as peak frequency. Some non-EPC tracts, especially in Hayward, see steep late-night declines. For shift workers in these areas, few or no transit options remain once the evening schedule thins out.
- Congestion relief alone does not guarantee equity. A few tracts gain jobs at night because traffic is lighter, but these gains often occur on top of relatively low baseline access. Service improvements still need to prioritize frequency and coverage, not just travel speeds.
- Targeted corridor investments could be more effective than countywide changes. The contrast between western EPC corridors and eastern suburban tracts suggests that a small number of routes and transfer nodes account for much of the equity problem at night.
Together, these findings argue for evaluating transit plans not only at the “average commute,” but across the full day—especially for workers with late-night or early-morning schedules. Evaluating accessibility across the full service day, rather than only during peak periods, can help agencies avoid unintentionally privileging nine-to-five commutes over other work schedules.
These findings should be interpreted as illustrative rather than prescriptive, highlighting where more detailed corridor-level analysis could be most impactful.
6. Reproducibility & Repository
The complete workflow—from downloading raw data, to building the routing network, to computing travel times and accessibility metrics—is implemented in a single Jupyter notebook:
notebooks/time_aware_transit_access_equity.ipynb
Large raw datasets (e.g., GTFS feeds) are not committed to the repository and are instead downloaded or referenced within the notebook.
Processed datasets (tract geometries, travel-time matrices, isochrones, and accessibility summaries) are
stored in data/processed/. Static figures and interactive visualizations are exported to
visualizations/. The Python environment is described in requirements.txt, and
the repository includes a clear README.md describing project goals, data sources, and how
to re-run the analysis.
With these pieces, a reader can clone the repository, recreate the environment, and run the notebook from top to bottom to reproduce all results shown on this page. This structure prioritizes transparency by making modeling choices, assumptions, and transformations visible at each step of the workflow.