Cebu Port Authority + OpenStreetMap (2022 - 2024)
End-to-end look at how cargo, containers, passengers and ships move through the Cebu Port System — combined with 82,888 OpenStreetMap road segments clipped to Cebu Province for a network-level view of the regional logistics backbone. Built on Cebu Port Authority's open Power BI datasets and HOTOSM road exports.
Cebu's port system handled 71.9 Mmt of cargo in 2024 — up 8.4% from 2022 — and is overwhelmingly a domestic, RoRo-first inter-island gateway rather than a foreign-trade port.
How the Cebu Port System's cargo volume has moved month-by-month and year-over-year.
Metric tons per month, 2022 - 2024 (2025 partial)
Cargo (Mmt), Containers (K TEU), Passengers (M)
Vessel arrivals across all 9 PMOs
RoRo / rolling cargo — vehicles, trucks and trailers that drive on and off ferries — accounts for over half of everything that moves through Cebu's ports.
Share of 71.9M metric tons
Inbound / outbound (domestic) vs import / export (foreign)
The Cebu Port System is split across 9 Port Management Offices — and the load is far from evenly distributed.
Metric tons handled, all cargo types
TEUs handled — concentrated in three city ports
Cargo, container TEU and share for each Port Management Office
| PMO | Cargo (mt) | Cargo Share | Containers (TEU) | Profile |
|---|---|---|---|---|
| PMO Argao | 14,767,609 | 20.5% | 4,815 | Bulk & rolling cargo (south Cebu) |
| PMO Toledo | 12,102,420 | 16.8% | — | Mineral & bulk (west coast) |
| PMO Mandaue | 8,622,415 | 12.0% | 52,769 | Industrial & mixed |
| PMO Pier 4 | 7,992,131 | 11.1% | 257,934 | Cebu City — major container terminal |
| PMO Sta Fe | 7,574,731 | 10.5% | — | Bantayan — RoRo gateway |
| PMO Pier 1 | 5,693,209 | 7.9% | 252,454 | Cebu City — container & passenger |
| PMO Danao | 5,640,043 | 7.8% | — | RoRo to Camotes & Leyte |
| PMO CIP | 5,345,713 | 7.4% | 404,271 | Cebu Int'l Port — top container terminal |
| PMO Pier 3 | 4,162,749 | 5.8% | 21,027 | Cebu City — passenger & mixed |
Passenger volumes jumped 31% in two years as inter-island ferry travel rebuilt to and beyond pre-pandemic levels.
Total embarking + disembarking passengers
TEUs per quarter — accelerating growth
Throughput numbers only matter if cargo can reach the hinterland. Here's what the OSM road network looks like across Cebu Province.
OSM highway-class breakdown — most segments are residential or service roads, not freight corridors
Five takeaways for anyone doing logistics planning, market sizing, or infrastructure work in the Visayas.
Rolling cargo at 55.8% of throughput means trucks-on-ferries shape the network — not container cranes. Capacity planning that ignores RoRo will mis-size everything downstream.
CIP, Pier 4 and Pier 1 together handle 92% of all TEUs. Outages or congestion at any one of these has system-wide knock-on effects on shipping schedules.
For every metric ton of foreign exports leaving Cebu, almost ten metric tons of imports arrive. Empty-container repositioning is structurally significant.
Average load per call is dropping. More frequent, smaller-cargo voyages suggests rising passenger / RoRo dominance and potentially over-tonnaged container services.
Only ~6,800 of 82,888 OSM road segments are tertiary or above. Once cargo leaves the gate, the genuinely freight-rated network is small — and traffic-shared with everything else.
Open data only, reproducible end-to-end.
Five CSVs from CPA's public Power BI folder — cargo, container, passenger, rolling cargo, ship calls. Monthly granularity, 2022 → Q3 2025, broken down by PMO, port type, cargo / ship type and movement.
HOTOSM Philippines roads (988 MB GeoJSON, 1.54M features) streamed with ijson, intersected with the geoBoundaries Cebu Province polygon using a shapely.prepared geometry. Output: 82,888 features in 47 MB.
CPA's movement_type column mixes casing (Inbound vs inbound); aggregations normalize to lowercase before grouping. Numeric columns parsed with thousands separators stripped.
Both clip and profiling scripts are in the repo's data/cebu-logistics/_build/. Re-running them against fresh CPA Drive exports refreshes the analysis.
An important gotcha: the Philippine Ports Authority's national stats do not include Cebu — the port is run by the independent Cebu Port Authority. Using PPA data for Visayas freight will silently miss Cebu's volume entirely.
cpa_cargo.csv, cpa_container.csv, cpa_passenger.csv, cpa_rolling.csv, cpa_shipcall.csv, plus cebu_roads.geojson.gz (6.2 MB compressed) and cebu_roads_summary.csv.