Proposal: Add cyclist position availability fields to VehiclePosition and CarriageDetails
- Dominant language
- No language data
- Stars
- 1.1k
- Forks
- 225
- Avg merge
- 7d 17h
- Merged PRs (30d)
- 3
Description
## Problem
Transit passengers traveling with bicycles have no way to know whether a bike rack or storage area will be available on an approaching vehicle. Typical transit buses have only 2–3 external bike rack positions. When full, cyclists are denied boarding and must wait for the next vehicle or abandon their transit trip.
The Santa Clara VTA confirmed this problem in a USDOT SMART Grant pilot (FAIN: 69A3552341049), finding that denied boardings are a measurable service quality issue and that no transit agency in North America currently provides this data through standard feeds.
## Proposed Solution
Add two new `optional uint32` experimental fields to **VehiclePosition** and **CarriageDetails**:
| Field | Message | Description |
|-------|---------|-------------|
| `cyclist_positions_available` | `VehiclePosition` (field 12), `CarriageDetails` (field 6) | Positions currently available |
| `total_cyclist_positions` | `VehiclePosition` (field 13), `CarriageDetails` (field 7) | Total capacity |
This follows the same pattern used for `occupancy_status`, `occupancy_percentage`, and `multi_carriage_details`.
## Working Producer Implementation
Sportworks Global LLC has a public GTFS-RT feed demonstrating the proposed fields:
- **Feed URL:** https://cascadia-metro-gtfs-rt.sportworks.com/gtfs-rt/vehicle-positions
- **Static GTFS:** https://cascadia-metro-gtfs-rt.sportworks.com/gtfs-rt/gtfs.zip
The feed has been validated against `protoc`, Python `gtfs-realtime-bindings`, and Node.js `gtfs-realtime-bindings` — all pass without errors. Full validation results will be included in the pull request.
## Pull Request
A PR with the proto and reference.md changes will follow shortly.
**Contact:** Oliver Sturrock, olst+gtfs@silverfallscapital.com, Sportworks Global LLC / Silver Falls Capital
Contributor guide
Assessment
This issue has not been assessed yet.