Divvy Data

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 TransitionsP(𝑠ₜ₊₁ | 𝑠ₜ, 𝑎ₜ) 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.