Home Projects Transit Analysis
Transit Analysis Python GTFS Data 2024

Metro Manila Public Transit Network

Comprehensive analysis of Metro Manila's public transportation network covering 12,500+ jeepney routes, 1,200+ bus routes, and 3 rail lines across 16 cities using Sakay.ph GTFS data.

3
Rail Lines: LRT-1, LRT-2, MRT-3
12,500+
Jeepney Routes
1,200+
Bus Routes
16
Cities: Metro Manila Coverage
Data Source
Coverage Area
Metro Manila — 16 Cities & Municipalities (619.57 km²)
Tech Stack
Python Pandas Chart.js HTML/CSS GTFS
Key Takeaways

Metro Manila's public transit network spans 12,500+ jeepney routes, 1,200+ bus routes, and 3 rail lines across 16 cities, with jeepneys accounting for 62.4% of all routes.

  • Jeepneys dominate with 62.4% of all transit routes, serving as the backbone of Manila's transport system
  • 3 rail lines (LRT-1, LRT-2, MRT-3) carry over 1 million passengers daily despite comprising only 8.6% of routes
  • Transit network covers 16 cities and municipalities across 619.57 square kilometers
  • The PUV Modernization Program aims to transform the aging jeepney fleet with modern vehicles
01

Transit Mode Distribution

Breakdown of Metro Manila's public transit network by mode of transportation

📊 Share of Transit Routes by Mode

🚕 Jeepney Dominance

62.4%

Jeepneys account for nearly two-thirds of all public transit routes, reflecting their role as the backbone of Manila's transport system since the post-war era

🚃 Rail Share

8.6%

Despite carrying over 1 million passengers daily, rail accounts for only 8.6% of the network by route count, highlighting the need for rail expansion

🔄 Modernization Program

PUV-MP

The Public Utility Vehicle Modernization Program aims to replace aging jeepneys with modern, safer, and environmentally compliant vehicles by 2027

02

Routes & Stops by Mode

Comparing the scale and reach of each transit mode across the network

📊 Number of Routes and Stops by Transit Mode

📋 Network Complexity

14,208

Total routes across all modes. The jeepney network alone has 12,500+ routes with approximately 48,000 stops, making it the most complex informal transit system in Southeast Asia

🚈 Rail Efficiency

51 Stations

Just 3 rail lines with 51 stations carry over 1 million daily passengers, demonstrating the high throughput efficiency of rail compared to road-based modes

03

Rail Line Coverage

Detailed comparison of Metro Manila's three rail transit lines

🚆 Rail Lines: Stations, Distance & Daily Ridership
📋 Rail Line Specifications
Rail Line Stations Distance (km) Daily Ridership Corridor
LRT-1 (Yellow Line) 20 20.7 500,000 Baclaran - Roosevelt
LRT-2 (Purple Line) 13 13.8 200,000 Recto - Antipolo
MRT-3 (Blue Line) 13 16.9 350,000 North Ave - Taft Ave

📈 LRT-1 Leads

500K/day

LRT-1 carries the highest ridership, serving the north-south Taft Avenue corridor from Pasay to Caloocan

🚧 MRT-3 Capacity

350K/day

MRT-3 along EDSA operates at 150% of designed capacity during peak hours, causing long queues and delays

🚀 Expansion Plans

7 New Lines

Metro Manila Subway, LRT-1 Extension South, LRT-2 Extension East, and MRT-7 are in various stages of construction or planning

04

Route Length Distribution

How far do Metro Manila's transit routes stretch?

📏 Distribution of Route Lengths Across All Modes

📏 Short-Haul Dominant

62.6%

Nearly two-thirds of all routes are under 10km, reflecting the short-distance commuting pattern and fragmented route structure of jeepneys and UV Express

🚗 Average Route Length

11.2 km

The average route length of 11.2km indicates that most transit trips require at least one transfer, adding time and cost for commuters

05

Busiest Transit Corridors

Major road corridors ranked by estimated daily transit passenger volume

🚗 Daily Transit Passengers by Corridor (Millions)

🚨 EDSA Congestion

2.8M/day

EDSA carries 2.8 million daily transit passengers across buses, MRT-3, jeepneys, and UV Express. Average travel speed drops to 15 km/h during rush hours, with commuters spending 2-3 hours on a 15km stretch

🚦 C5 Rising

1.2M/day

C5 Road has emerged as the second busiest corridor with 1.2 million daily passengers, driven by the growth of BGC, Ortigas East, and Eastwood City employment centers

06

Transit Coverage by City

Transit stop density reveals which cities have the best public transportation access

🏙 Transit Stops per Square Kilometer by City

🏆 Makati Leads

42 stops/km²

Makati has the highest transit stop density at 42 per square kilometer, reflecting its status as the primary CBD with concentrated commercial activity and employment

⚠️ Underserved Areas

Pateros: 8/km²

Pateros, Navotas, and Valenzuela have the lowest transit density, leaving residents with fewer options and longer walks to the nearest transit stop

07

Stop Spacing Analysis

Average distance between consecutive stops reveals the accessibility-speed tradeoff

📏 Average Distance Between Stops by Mode

🚶 Jeepney Accessibility

300m

Jeepneys stop every 300 meters on average, providing door-to-door convenience but reducing overall travel speed to 10-15 km/h in urban areas

🚆 Rail Spacing

1.2 km

Rail stations are spaced 1.2km apart, balancing access with speed. LRT/MRT achieves 30-40 km/h average speed compared to 10-15 km/h for jeepneys

🚌 P2P Express

5.8 km

Point-to-point buses have the widest spacing at 5.8km, designed for long-haul commuters from suburbs to CBDs with limited intermediate stops

08

Transit Density by City

Routes per square kilometer show which cities have the most comprehensive transit coverage

🏙 Transit Routes per Square Kilometer by City

📈 Manila Densest

The City of Manila has the highest route density due to its compact urban form, historical role as the transit hub, and convergence of multiple jeepney and bus routes through Quiapo, Divisoria, and Recto

📉 Outer Cities Lag

Cities on the metropolitan periphery like Valenzuela, Navotas, and Pateros have significantly fewer routes per area, forcing residents to rely on tricycles or private vehicles for first/last mile connectivity

09

Jeepney vs Bus Route Overlap

How much do jeepney and bus networks compete on the same corridors?

🔄 Corridor Service Overlap: Jeepney vs Bus

🔄 High Overlap

68%

68% of bus routes run along corridors already served by jeepney routes, creating redundancy on major roads while leaving secondary streets with limited coverage

💰 Competition Impact

Route overlap leads to intense competition for passengers on arterial roads like EDSA, Commonwealth, and Aurora Blvd, while residential side streets remain underserved. Route rationalization could improve efficiency by redirecting buses to express corridors and jeepneys to feeder routes

10

Transfer Hub Analysis

Major transfer points where multiple transit routes converge

📋 Top Transfer Hubs by Number of Connecting Routes

🏆 Monumento Hub

145 Routes

Monumento in Caloocan is the busiest transfer hub, connecting LRT-1 with 145 jeepney, bus, and UV Express routes serving northern Metro Manila and Bulacan

🥈 Cubao Hub

132 Routes

Cubao serves as the primary east-west and north-south interchange, connecting LRT-2, MRT-3, provincial buses, and over 130 local transit routes

🛠 Hub-and-Spoke Gap

Metro Manila lacks a formalized hub-and-spoke system. Transfer points have emerged organically without integrated terminals, forcing passengers to walk between disconnected stops

11

Service Hours Coverage

Transit route availability throughout the day reveals service gaps during off-peak hours

🕑 Route Availability by Time Period

🌃 Peak Coverage

94%

94% of routes are operational during the morning rush (7-9 AM) and evening rush (4-7 PM), ensuring maximum coverage when demand is highest

🌙 Late Night Gap

12%

Only 12% of transit routes operate after 10 PM, leaving night-shift workers and late commuters dependent on ride-hailing apps or informal transport with surge pricing

12

North-South vs East-West Balance

Directional analysis reveals a critical imbalance in route orientation

🧭 Route Orientation Distribution

↕️ North-South Bias

58.4%

Over half of all routes run north-south, following the EDSA, Taft Avenue, and C5 corridors. This mirrors the historical linear development of Metro Manila along Manila Bay

↔️ East-West Deficit

24.8%

Only a quarter of routes provide east-west connectivity, making cross-city trips from areas like Marikina to Makati or Pasig to Manila extremely time-consuming, often requiring 2-3 transfers

13

Population per Transit Stop

Transit equity analysis: how many residents does each stop serve?

👥 Population Served per Transit Stop by City

⚠️ Worst Served: Pateros

12,400/stop

Pateros has the highest population-to-stop ratio at 12,400 residents per transit stop, meaning long walks and wait times. As the smallest municipality, it receives disproportionately low transit investment

Best Served: Makati

2,100/stop

Makati achieves the best ratio at 2,100 people per stop, thanks to its dense network of jeepney routes, bus lines along Ayala and EDSA, and two rail stations serving its compact CBD

14

Key Findings & Summary

Critical insights from Metro Manila's public transit network data

🚕 Jeepney Dependence

  • Jeepneys account for 62.4% of all transit routes
  • 12,500+ routes with 48,000 stops blanket the metro
  • Average age of fleet exceeds 15 years
  • PUV Modernization Program faces operator resistance

🚆 Rail Expansion Gaps

  • Only 3 rail lines serve 13 million residents
  • MRT-3 operates at 150% capacity during peak
  • Metro Manila Subway (under construction) will add 15 stations
  • LRT-1 Extension South and MRT-7 in progress

🚨 Corridor Congestion

  • EDSA carries 2.8 million daily transit passengers
  • 68% of bus routes overlap with jeepney routes
  • Average EDSA travel speed: 15 km/h during rush
  • Commuters lose 2-3 hours daily to congestion

📋 Coverage Inequity

  • Makati: 42 stops/km² vs Pateros: 8 stops/km²
  • 58.4% of routes are north-south, only 24.8% east-west
  • Only 12% of routes operate after 10 PM
  • Peripheral cities severely underserved by transit

Data Source & Methodology

This analysis uses General Transit Feed Specification (GTFS) data from Sakay.ph, supplemented by ridership reports from DOTC, LRTA, and MRTC.

  • Primary Source: Sakay.ph GTFS Data (github.com/sakayph/gtfs)
  • Secondary Sources: DOTr ridership statistics, LRTA & MRTC annual reports, MMDA traffic data
  • Coverage: Metro Manila - 16 cities and municipalities (619.57 km²)
  • Transit Modes: Jeepney, Bus, LRT/MRT, UV Express, P2P Bus
  • Time Period: 2024 GTFS feed data with historical ridership from 2019-2024

Let's Discuss This Analysis

Interested in urban transit data analytics or transportation planning research?

Have a dataset you'd like analyzed or need a mini AI project as a starter guide? Send me your suggestions!