Passenger flow and occupancy monitoring in Antalya and Jūrmala
The Challenge
Public Transport Operators (PTOs) and authorities face a critical blind spot: the lack of reliable, real-time data on passenger loads and flows. Ticketing systems capture boardings but rarely where passengers alight, leaving Origin–Destination (OD) data incomplete. As a result, crowding levels remain invisible until complaints arise and operators must rely on historical assumptions rather than real demand patterns. Traditional Automatic Passenger Counting (APC) technologies, such as stereoscopic cameras or infrared sensors, are costly and complex to install, requiring hard-wired infrastructure. Because of these high costs, only a small share of vehicles are typically equipped, leaving most of the network without consistent visibility of passenger flows.
This lack of visibility leads to operational inefficiencies such as overcrowded buses during peak hours and underutilised “ghost buses” during off-peak periods. In Antalya, Türkiye, a city of 2.6 million residents, the transport network includes around 850 buses operated by the municipality and private companies. Despite its scale, planning decisions have historically relied on manual estimates rather than empirical data.
Jūrmala, Latvia, faces a similar challenge in a different context. The coastal city has around 50,000 residents but experiences strong seasonal tourism peaks. Its bus network includes 27 vehicles and stretches roughly 12 km along the coast, making efficient and adaptive public transport planning essential.
The Solution
The challenge was addressed through the development of CrowdFlowX, a plug-and-play hardware sensor designed to monitor passenger flows in public transport vehicles. Unlike traditional Automatic Passenger Counting (APC) systems that require complex wiring and dedicated installation, CrowdFlowX operates as a compact device that can be placed inside a bus and powered directly through standard USB or 12V cigarette lighter ports commonly available in vehicles. This “zero-installation” approach significantly lowers the barrier to deployment, enabling rapid scaling across fleets such as those operating in Antalya and Jūrmala without requiring vehicle downtime or costly retrofitting.
The system integrates hybrid sensor fusion by combining Bluetooth Low Energy (BLE) scanning with Wi-Fi signal tracking. This dual-protocol approach improves detection rates compared to single-source or app-based methods, allowing the system to identify passengers even when one wireless signal is disabled. The device operates passively, requiring no interaction from drivers or passengers. Real-time edge processing filters detected signals to distinguish on-board passengers from external traffic, enabling the generation of live occupancy estimates and origin-destination matrices through an API dashboard for transport operators.
Making an impact
The project successfully validated CrowdFlowX in real operational environments, achieving TRL 9 through deployments in Antalya and Jūrmala, alongside additional commercial pilots in Lisbon and Ajka.
The system demonstrated 70–85% occupancy detection accuracy and 60–75% OD matrix F1 scores, providing operators with actionable insights to identify overcrowded lines, optimise underutilised routes and allocate fleet resources more efficiently.
By digitising crowding levels, CrowdFlowX also laid the foundation for passenger-facing comfort information, enabling travellers to make informed decisions and avoid crowded vehicles. Granular OD data supported network optimisation, reducing unnecessary vehicle kilometres and associated CO₂ emissions. The plug-and-play design allowed rapid deployment without mechanical downtime and Jūrmala served as a key testing environment, supporting frequent firmware iterations and full-fleet deployment. In Antalya, large-scale deployment across 150 devices provided statistically robust data, validating the system’s effectiveness for real-time operational planning and strategic network optimisation.
CrowdFlowX device
Lessons learnt
The project required a strategic pivot from an initial driver-app concept to dedicated hardware, as relying on driver smartphones proved operationally unreliable. Hardware development introduced significant complexity, including firmware bugs, connectivity issues and multiple hardware iterations before achieving a stable version.
A key technical challenge was MAC address randomisation implemented in modern smartphone operating systems to enhance user privacy. Frequent identifier changes create signal noise, limiting the theoretical accuracy of passive detection systems. While the solution demonstrated reliable trend detection and operational value, this phenomenon establishes a practical ceiling for precision when using passive wireless sensing. The experience highlighted that passive detection offers strong scalability and cost advantages but must continuously adapt to evolving privacy standards.