Provides anonymized, historical trip data from Chicago’s Divvy bike-sharing program—detailing trip start and end times, stations, and rider types.
The dataset is ideal for transportation policy analysis, urban planning, web development, visualization projects, or data-driven storytelling. Its regular, structured release schedule makes it a reliable resource for time-series analyses, modeling usage patterns, forecasting demand, or integrating with live station data through the GBFS (General Bikeshare Feed Specification)
Divvy operates >800 stations and >16 000 bikes. Because customers pick-up and drop-off bikes arbitrarily, some docks become empty (unmet rental demand) while others overflow (no return slots).
A Reinforcement Learning agent can learn a dynamic truck-dispatch policy that decides, every hour, how many bikes to move between which stations so as to maximise customer service while minimising truck mileage.
Use case:
Dynamic Bike Rebalancing Optimization for Urban Mobility Systems
| Time step (∆t) | 1 h (can be 15 min for finer control). |
| Example State 𝑠ₜ (vector observed at each step): | State 𝑠ₜ (vector observed at each step): – Dock-level inventory bᵢₜ for every station i (0 … capacityᵢ) – Recent departures / arrivals per station (demand features derivable from raw trips) – Temporal context : hour-of-day, day-of-week, holiday flag – Optional exogenous data: temperature, rain (NOAA feed matched by timestamp) |
| Example Action 𝑎ₜ | Simplified “flow” formulation: a matrix Δᵢ⟶ⱼₜ (integer bikes loaded on truck from station i and dropped at j), constrained by truck capacity C and route length Lₘₐₓ. In practice one can restrict to K origin-destination pairs with highest imbalance and discretise to {0,1,…,C}. |
| Example Reward rₜ | rₜ = + α × (fulfilled_rentalsₜ + fulfilled_returnsₜ) – β × (unserved_rentalsₜ + unserved_returnsₜ) – γ × (truck_kmₜ) where unserved events are computed by simulating the next-step customer arrivals (known from the dataset) on the post-action inventory. |
| Example Transitions | P(𝑠ₜ₊₁ | 𝑠ₜ, 𝑎ₜ) are fully defined by: 1. the deterministic inventory change caused by the chosen relocations Δᵢ⟶ⱼₜ; 2. the stochastic yet observed customer flows extracted from the trip file of hour t → t+1. For year 2023: – Trips (customer events) ≈ 5.7 million – Stations ≈ 834 – Hourly steps: 8 760 – Thus ≈ 8 760 transitions per station, or one global MDP with 8 760 decision points and >5 million exogenous events governing state evolution. |

