Data pipeline + full case study converting casual riders into annual members, built on 6,166,404 real bike trips (Chicago Divvy open data, Oct 2025 – Sep 2026).
- 📄 Full case-study report (in Spanish, portfolio-ready):
INFORME_CYCLISTIC.md - 🐍 Analysis pipeline:
analiza_cyclistic.py· Visualizations:visualiza.py - 📊 Aggregated CSVs (Tableau-ready) in
out/· Charts inout/*.png
How do annual members and casual riders use Cyclistic bikes differently — and how do we use those insights to convert casual riders into members?
| Finding | Casual | Member |
|---|---|---|
| Avg. ride length | 17.6 min (+48%) | 11.9 min |
| Share of trips on Sat+Sun | 37.3% | 23.3% |
| Trips at 8 AM (commute) | 77,277 | 287,619 (3.7×) |
| Top stations | Tourist attractions (Navy Pier 50K trips, Millennium Park, Shedd Aquarium) | Residential/downtown |
| Winter→Summer swing | ×14.5 | ×4.6 |
The story in one line: casual riders are weekend tourists at landmarks; members are locals commuting to work. Different people, different campaigns.
- Landmark-station campaigns — QR promotions at the top-10 casual stations, weekend day-pass bundles with museum tickets.
- Target "members in disguise" — the 62.7% of casual trips that are NOT weekend rides are residents commuting without a membership; highest-conversion segment. In-app savings calculator ("4+ trips/month → membership is cheaper").
- Sell time-value — casual rides are 48% longer; per-ride passes cost more for the same trip. Message the economics, timed before the summer peak.
# 1) Download 12 months of Divvy trip data (S3 public bucket, ~226 MB)
for m in 202510 202511 202512 202601 202602 202603 202604 202605 202606 202607 202608 202609; do
curl -O "https://divvy-tripdata.s3.amazonaws.com/${m}-divvy-tripdata.zip"
done
# 2) Run the pipeline (pandas)
python analiza_cyclistic.py # unzip → clean (documented) → analyze → export
python visualiza.py # 5 publication-quality chartsPython (pandas) · 6.17M rows → documented cleaning (duplicates, invalid durations ≤0 s / >24 h) → 99.91% retention · matplotlib · Tableau-ready aggregations. Follows the six-step data analysis process: Ask → Prepare → Process → Analyze → Share → Act.
Public trip data by Motivate International Inc. under their open data license (the Cyclistic company in the case study is fictional; the data is real). No personally identifiable information is used or available.
Author: Armando Sanchez Cendejas — scangdl.com · Tableau Public