Public transport in Portugal
Portugal: 24 public transport operators, 226.9M km of scheduled service a year, 1,000 major stations and 438 tender notices — per region and operator.
- Operators
- 24
- Vehicle-km / year
- ≈ 226.9M km
- Vehicles (peak)
- ≈ 2,860
- Trips / week
- 299K
- Stations*
- 1,000
- Tender notices
- 438
- Open procedures
- 267
- Value (€)
- €2.8B
Estimates from the scheduled timetables (one representative week per feed). *Stations with a page of their own. Methodology →
Portugal over time
5 snapshots · Jun 2026 – Oct 2026
226.9M km ↑ +1% since Jun 2026
Vehicle-km over 12 months: +1% since Jun 2026. All countries →
The largest operators
Map →Vehicle-km / year
- 1 Carris 38.3M km
- 2 CP - Comboios de Portugal 33M km
- 3 Carris Metropolitana 32.7M km
- 4 Carris Metropolitana 32.2M km
- 5 Carris Metropolitana 20.5M km
- 6 Carris Metropolitana 20.5M km
- 7 Cascais Próxima 8M km
- 8 SMTUC 6.6M km
- 9 Transportes Urbanos de Braga 6.3M km
- 10 Vamus Algarve 5.9M km
- 11 HF 5.6M km
- 12 Vai e Vem - Circuito Urbano 1.2M km
- 13 A Onda - Mobilidade Urbana 878.8K km
- 14 AUTNA 438K km
Share of vehicle-km
69% Top 5 operators
Other 70.1M km 31%
Routes by mode
2,320 routes
Bus 2,133 92%
Rail 175 7.5%
Ferry 5 0.2%
Metro 4 0.2%
Tram 3 0.1%
Regions
NUTS-3 regions by the service run inside them.
- Área Metropolitana de Lisboa Operators 13 177.9M km
- Algarve Operators 9 12.9M km
- Região de Coimbra Operators 2 8.3M km
- Cávado Operators 3 7.6M km
- Área Metropolitana do Porto Operators 3 7.5M km
- Região Autónoma da Madeira Operators 1 5.6M km
- Região de Aveiro Operators 1 1.9M km
- Médio Tejo Operators 1 1.7M km
- Beiras e Serra da Estrela Operators 2 1.5M km
- Alto Minho Operators 3 1.1M km
- Ave Operators 2 876.5K km
- Oeste Operators 2 876.2K km
- Tâmega e Sousa Operators 1 827K km
- Alentejo Central Operators 2 525.7K km
- Douro Operators 1 482.8K km
Busiest stations
By scheduled departures per day.
- Campo Grande - Av. Brasil 1,762 departures/day
- Calvário 1,680 departures/day
- Rato 1,549 departures/day
- Santos 1,544 departures/day
- Cais Sodré 1,492 departures/day
- Lumiar 1,452 departures/day
- Amoreiras 1,425 departures/day
- Av. Infante Santo 1,399 departures/day
- Pç. Comércio 1,334 departures/day
- Estação Sto. Amaro 1,328 departures/day
- Calhariz 1,256 departures/day
- Campo Grande (Metro) 1,219 departures/day
- Corpo Santo 1,204 departures/day
- Estr. Benfica (Mercado) 1,197 departures/day
- Picoas 1,185 departures/day
Tender market
By stage
438 Tender notices
Prior information 18 4.1%
Call for tenders 249 57%
Award 171 39%
By service type
- School transport 257
- Scheduled public transport 78
- Other 49
- Vehicle hire with driver 29
- Demand-responsive 11
- Taxi 11
- Rail 3
Most active contracting authorities
- 1 Município de Chaves 32
- 2 Município de Loulé 23
- 3 Colégio de São Gonçalo de Amarante - Escola Católica 13
- 4 Município de Arouca 12
- 5 Município de Sintra 12
- 6 Fundo Regional dos Transportes Terrestres, I. P. R. A. 12
- 7 Município da Maia 9
- 8 Município de Rio Maior 8
- 9 Município de Barcelos 8
- 10 Município de Albufeira 8
- 11 Município de Viana do Castelo 7
- 12 Município de Viseu 7
How we calculate
- Operators Unit: operators · counted
- Transport companies as their timetable names them (GTFS agency). The same operator in several feeds is counted once; in Germany the company that actually runs each line. Source: published GTFS timetables, one representative week per feed
- Vehicle-km / year Unit: km per year · estimate
- For every trip: route length (along the published route shape; without one, the straight line between its stops × 1.25) × the days it runs in the representative week, × 365.25 / 7. Only scheduled service — no empty or depot runs, no demand-responsive services. Source: published GTFS timetables, one representative week per feed
- Vehicles (peak) Unit: vehicles · estimate
- The highest number of trips running at the same moment in the representative week — a lower bound: reserve and workshop vehicles are not included. Source: published GTFS timetables, one representative week per feed
- Trips / week Unit: trips per week · counted
- All scheduled trips in the representative week; trips given as a frequency (every 10 minutes) are expanded into single trips. Source: published GTFS timetables, one representative week per feed
- Stations* Unit: stations · counted
- Stations with a page of their own: at least 250 scheduled departures a day, or among a country's busiest 1,000 with at least 30. Capped per country, so not comparable between countries. Source: published GTFS timetables, one representative week per feed
- Vehicle-km per inhabitant Unit: km per inhabitant and year · estimate
- Vehicle-km per year of all operators in the country ÷ its population. Only countries whose timetables cover the whole country; the figure for all countries together is their vehicle-km ÷ their population. Source: published GTFS timetables, one representative week per feed; Eurostat, population on 1 January 2025
- Tender notices Unit: notices · counted
- Every published notice counts once: prior information, call for tenders or award notice. Source: TED (EU Official Journal) since 06/2024 and the German national portal
- Open procedures Unit: notices · as published
- Prior information notices and calls for tenders — notices that do not announce an award. Source: TED (EU Official Journal) since 06/2024 and the German national portal
- Value (€) Unit: € · as published
- Sum of the contract values stated in the notices, in euro only; other currencies are neither converted nor added. Many notices state no value, so the sum is a lower bound. Source: TED (EU Official Journal) since 06/2024 and the German national portal