Asawer Analytics Asawer Analytics
Data analytics portfolio · Chicago, USA

Divvy Bikeshare Usage Intelligence

Exploring over 21 million historical trips, customer behavior, commuting patterns, station demand, and the limits of annual forecasting.

2013–2019Python + DuckDBChart.jsInteractive analysisGeospatial insights
01 / Research context

Overview & research question

This interactive report extends the original Divvy analysis with year-specific views, metric selection, station rankings, route relationships, and a transparent forecasting backtest.

Background & objective

Divvy provides shared bicycles across the Chicago area. Historical trip records can reveal when demand concentrates, which stations are heavily used, and how Subscribers and Customers differ. The report analyzes trips rather than unique people because the dataset identifies rides, not distinct riders.

Research hypothesis

Subscribers use the system more frequently than Customers, particularly during weekday commuting hours. We examine this through trip counts and time-of-day distributions; repeated rides cannot establish individual rider frequency.

Recorded trips—Selected period and user type
Unique bikes used—Distinct bike IDs in selected trips
Departure stations—Distinct station IDs
Mean trip duration—Minutes · median —

Who uses Divvy?

Share of recorded trips by user category, based on the selected reporting year.

Customer and Subscriber are trip categories, not unique rider counts.

03 / User profiles

Who rides, and for how long?

Compare recorded trips and trip duration by gender or age band across reporting years and rider segments.

Trips by age group

The demographic categories are those recorded in the historical data; an “Unknown” group is retained where applicable.

Age bands in this interactive version are 18–24, 25–34, 35–44, 45–54, 55–64, 65+, and Unknown. These do not necessarily match the band boundaries in the original static report.
Interpretation guidance

Demographic figures describe trips attributed to recorded categories. They should not be interpreted as a census of distinct riders or of all Chicago residents.

04 / Station performance

Where demand concentrates

Rank departure or arrival stations using station ID as the counting unit, keeping historical name differences from artificially splitting the same ID.

Most-used departure stations

Rankings adjust to the report year and rider segment selected at the top.

Station names and coordinates are representative values derived from historical trips. Low counts may reflect a station opening or closing partway through the period.
05 / Network relationships

Popular routes & geographic view

Explore the leading ordered origin–destination pairs, then inspect their approximate station-to-station links on a map. Lines show connections, not actual cycling paths.

Popular station pairs

Top 20 routes are precomputed per selected year and rider category.

Route geography

Showing approximate links between station coordinates for the selected routes.

Loading map…

Map requires an internet connection to load map tiles.

06 / Predictive experiment

Forecasts versus reality

Ordinary least-squares linear regression trained on annual trip totals from 2015–2018. The 2019 observation provides one backtest; 2020 is a historical forecast, not observed trip data.

Historical trips and extrapolated demand

Switch between rider segments to inspect model performance and differences in trend.

2019 observed—
2019 predicted—
2019 absolute % error—
Model trained on four annual observations. Forecasts do not account for weather, infrastructure changes, demographic shifts, or other external events. No uncertainty intervals were estimated.
07 / Report & recommendations

From evidence to decisions

The original study’s commuting hypothesis motivates targeted operational questions. This expanded dashboard lets visitors test those patterns directly using historical trip data.

Operational planning

Use weekday and hourly demand profiles to schedule bicycle redistribution and assess whether peak-hour supply needs differ for Subscribers and Customers.

Station strategy

Compare origins and destinations before prioritizing station capacity. Review low-usage stations alongside their years of operation rather than judging rankings in isolation.

Forecasting caution

Use the annual model as a transparent baseline rather than a production demand forecast. Segment-level errors in 2019 indicate that different riding behaviors require more tailored models.

Methodology

Historical trip-level dataset (2013–2019; 21,234,782 records). Python and DuckDB aggregate trip activity by reporting year, trip start month, weekday, hour, gender, age band, user category, and station ID. The browser consumes small precomputed JSON datasets, not raw trip records. Station map lines connect representative coordinates; annual forecasts use linear regression.

Limitations

Trip totals are not unique-user totals. Demographic fields may not cover every ride equally. Station names and positions can vary historically. The precomputed routes file contains only the 20 most popular ordered pairs per filter, not the entire network. Monthly, weekday, and hourly groups summarize trips in each selected year; they are not continuous daily time series. A four-year training window limits forecast reliability.

Divvy Bikeshare Usage IntelligenceInteractive research report · 2013–2019 · Python · DuckDB · Chart.js