Cyclistic Analysis

Author

Joseph Burch

Published

October 3, 2025

1. Business Task

Cyclistic’s goal is to maximize annual memberships by converting casual riders into members.
This report analyzes historical trip data to answer:

  1. How do annual members and casual riders use Cyclistic bikes differently?
  2. Why would casual riders buy Cyclistic annual memberships?
  3. How can Cyclistic use digital media to influence casual riders to become members?

2. Data Sources

  • Cyclistic (Divvy) public trip data, covering the first quarter of the 2020 rides in Chicago.

  • The .csv file includes ride IDs, timestamps, stations, rideable types, and rider type (member_casual).

# A tibble: 6 × 13
  ride_id  rideable_type started_at ended_at start_station_name start_station_id
  <chr>    <chr>         <chr>      <chr>    <chr>                         <dbl>
1 EACB191… docked_bike   2020-01-2… 2020-01… Western Ave & Lel…              239
2 8FED874… docked_bike   2020-01-3… 2020-01… Clark St & Montro…              234
3 789F3C2… docked_bike   2020-01-0… 2020-01… Broadway & Belmon…              296
4 C9A388D… docked_bike   2020-01-0… 2020-01… Clark St & Randol…               51
5 943BC3C… docked_bike   2020-01-3… 2020-01… Clinton St & Lake…               66
6 6D9C8A6… docked_bike   2020-01-1… 2020-01… Wells St & Hubbar…              212
# ℹ 7 more variables: end_station_name <chr>, end_station_id <dbl>,
#   start_lat <dbl>, start_lng <dbl>, end_lat <dbl>, end_lng <dbl>,
#   member_casual <chr>

3. Data Cleaning and Processing

  • Convert date/time fields to proper datetime.
  • Create new columns for ride length, day of week, and month.
  • Remove data errors (rides <1 minute or >24 hours).
Rows: 418,901
Columns: 16
$ ride_id            <chr> "EACB19130B0CDA4A", "8FED874C809DC021", "789F3C21E4…
$ rideable_type      <chr> "docked_bike", "docked_bike", "docked_bike", "docke…
$ started_at         <dttm> 2020-01-21 20:06:59, 2020-01-30 14:22:39, 2020-01-…
$ ended_at           <dttm> 2020-01-21 20:14:30, 2020-01-30 14:26:22, 2020-01-…
$ start_station_name <chr> "Western Ave & Leland Ave", "Clark St & Montrose Av…
$ start_station_id   <dbl> 239, 234, 296, 51, 66, 212, 96, 96, 212, 38, 117, 1…
$ end_station_name   <chr> "Clark St & Leland Ave", "Southport Ave & Irving Pa…
$ end_station_id     <dbl> 326, 318, 117, 24, 212, 96, 212, 212, 96, 100, 632,…
$ start_lat          <dbl> 41.9665, 41.9616, 41.9401, 41.8846, 41.8856, 41.889…
$ start_lng          <dbl> -87.6884, -87.6660, -87.6455, -87.6319, -87.6418, -…
$ end_lat            <dbl> 41.9671, 41.9542, 41.9402, 41.8918, 41.8899, 41.884…
$ end_lng            <dbl> -87.6674, -87.6644, -87.6530, -87.6206, -87.6343, -…
$ member_casual      <chr> "member", "member", "member", "member", "member", "…
$ ride_length        <dbl> 7.516667, 3.716667, 2.850000, 8.816667, 5.533333, 4…
$ day_of_week        <ord> Tuesday, Thursday, Thursday, Monday, Thursday, Frid…
$ month              <ord> Jan, Jan, Jan, Jan, Jan, Jan, Jan, Jan, Jan, Jan, J…

4. Analysis

Compare casual riders vs. members.

# A tibble: 2 × 2
  member_casual avg_duration
  <chr>                <dbl>
1 casual                40.1
2 member                11.6
# A tibble: 14 × 3
   member_casual day_of_week rides
   <chr>         <ord>       <int>
 1 casual        Sunday      14754
 2 casual        Monday       3671
 3 casual        Tuesday      4542
 4 casual        Wednesday    5141
 5 casual        Thursday     4175
 6 casual        Friday       4591
 7 casual        Saturday     7428
 8 member        Sunday      35475
 9 member        Monday      61356
10 member        Tuesday     69105
11 member        Wednesday   63386
12 member        Thursday    60600
13 member        Friday      54931
14 member        Saturday    29746

5. Visualizations

6. Key Findings

  • Casual riders tend to ride longer trips, mostly on weekends (leisure).
  • Members ride shorter, more frequent trips, mostly on weekdays (commuting).
  • Casual riders start more rides from tourist hotspots; members from neighborhood/work hubs.

7. Recommendations

  1. Weekend → Weekday conversion: Promote weekday commuting discounts for casual riders.
  2. Station-based campaigns: Target tourist stations with digital ads promoting cost savings of memberships.
  3. Digital media strategy: Use Instagram/TikTok campaigns, plus automated emails to casual riders after multiple single rides, highlighting savings of annual membership.