Bike share & micromobility
Bike-share trip files and live GBFS feeds: cleaning a year of trips, dockless e-bikes, commuting rhythms, weather, speeds and station coverage.
A bike-share system records every rental: where it started and ended, when, on which kind of bike, and whether the rider was a member. Washington's Capital Bikeshare published 6,662,647 of them for 2025, and most questions about cycling in a city can be asked of a file like that. The catch is that the file records the system, not the ride. Durations come from docks and clocks, positions from docks or from a rounding grid, and several rules are applied before the data is published.
The guides here work through a year of those trips and the live GBFS feed. They clean the year, separate commuting from leisure, model the effect of rain, measure speeds and station coverage, and compare the same file format in five cities. Three pages take apart the records that mislead: trips that end before they start, rentals closed at 25 hours, and e-bike positions rounded to a kilometre-wide grid.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Clean a Year of Bike-Share Trip Data in Python
- How to Separate Commuting from Leisure in Bike-Share Trips
- How Much Rain and Cold Cut Bike-Share Ridership: A Daily Model in Python
- How to Estimate Bike-Share Trip Distance and Speed in Python
- How to Read a GBFS Bike-Share Feed in Python
- How to Measure How Many People Live Near a Bike-Share Station
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
Related topics
Subjects that keep coming up alongside this one, most overlap first.