01 / The problem
Four systems, four moving targets.
Public bike-share data is abundant, but every operator publishes different archives, filenames, columns, encodings, and historical formats.
BikeRentalData moves that work into a package. A user specifies a system and date range; the package finds available archives, downloads them, reads legacy and current formats, and returns a documented common schema.
To turn one-off bike-share cleaning code into infrastructure that can support repeat analyses across cities and time.
02 / Coverage
One schema across four cities.
| System ID | Network | Metro area | Weather station |
|---|---|---|---|
capital | Capital Bikeshare | Washington, D.C. | DCA |
citibike | Citi Bike | New York City | LGA |
divvy | Divvy | Chicago | ORD |
baywheels | Bay Wheels | San Francisco Bay Area | SFO |
The standardized output includes system and city, ride and bike identifiers, timestamps, duration, station identifiers and names, coordinates, and a consistent member/casual rider field. Missing source fields are returned explicitly as NA.
03 / Package design
Discover, download, standardize, enrich.
Archive adapters
System-specific discovery functions isolate changing provider URLs and naming conventions.
Schema contracts
Loaders normalize timestamps, rider labels, station fields, coordinates, and trip duration.
Calendar features
Add local hour, weekday, weekend, season, and observed federal holidays.
Weather and infrastructure
Join daily ASOS observations and optionally calculate station-area bike-infrastructure exposure.
04 / What it delivers
A reusable data product, not a single finding.
The same functions work across all supported systems
Member and casual categories standardized across sources
Station exposure can be cached at user-selected distances
The package’s main result is reduced analytical friction: multi-city trip data can be assembled in one call, source-specific quirks are handled in tested functions, and every returned field has a data-dictionary definition.
05 / Boundaries
Standardization cannot create missing data.
Source quality still varies.
Legacy files may omit ride IDs, bike types, or coordinates. Weather is a daily metro-airport measure rather than route-level conditions, and holiday support does not yet cover local events, school calendars, strikes, or service disruptions. The package exposes these gaps instead of filling them with assumptions.