NYC DOT Bike Share & Shared Mobility · portfolio project

Citi Bike Rebalancing Explorer

Where stations run out of bikes or fill up, who that affects, and where a truck does the most good.

Public data only$0 stackStatic page, no backend
The problem

An empty or full station is a barrier to choosing a bike.

12.2%
of 451,111 station observations were empty or full (Jul 13 – Sep 13, 2026)

The City's Citi Bike contract, as summarized by the NYC Comptroller, requires stations not to sit completely full or empty, with a penalty only when adjacent stations are also out. This tool turns that rule into something a planner can see.

Historical Flow view: map of 2,592 stations colored by net bikes per day

Historical Flow: every station, every hour

2,592 stations colored by average net bikes/day at 8:00 AM on a weekday. Red stations are heading toward empty, blue toward full.

551
Big deficit
3,212
Bikes to deliver
Station detail card for W 36 St and 9 Ave showing a 24-hour flow rhythm

Click any station for its 24-hour flow

Here, W 36 St & 9 Ave: average net bikes per hour on a weekday. More Info adds the station's nearest subway stop and its NYCHA and school proximity.

Live Docks view with empty, full and double-outage counts
Live capture · Oct 6, 2026, 12:25 PM EDT

Live Docks: the contract's rule, as it stands right now

From the public GBFS feed, refreshed every 60 s. A double-outage is an empty or full station with another within 500 m, shown as an amber ring. The 500 m is this project's own definition, and the tile says it's an instant reading, not the contract's 60-minute measurement.

87.1%
Available now
306
Double-outage
Scenario Planner with the Steady Rain weather scenario applied

Scenario Planner: what if it rains?

A steady-rain day (60°F, 0.4 in) cuts the 8 AM imbalance from 6,070 to 3,788 bikes. Marked PROJECTED: it is estimated from historical elasticity, not a weather-specific forecast model.

6,070 →
Baseline
3,788
Steady rain
Reliability Patterns panel: unusable rate by station capacity band

Larger stations are associated with lower unusable rates, after accounting for demand

Stations with 40+ docks sit about 2.1 points lower than those under 20 (2,317 stations). A pattern in observational data, not proof that adding docks causes the improvement.

13.1%
< 20 docks
9.9%
40+ docks
Limits, stated plainly
  • Irregular sampling: 191 snapshots over 61 days, median gap about 87 minutes.
  • No borough controls: the capacity finding adjusts for demand only.
  • Weather is a projection from historical elasticity, not a forecast model.

Independent analytical project. Not an official product of NYC DOT, the NYC Comptroller, or Lyft/Citi Bike. Built by Reza Taeb.

1 / 8