Skip to content

Lync97/Cyclistic_Case_Study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cyclistic Bike Share Case Study (July 2024 to June 2025)

Data analysis project using R, RStudio, Tableau Public, and publicly available bike-share data to analyze rider behavior, identify trends, and generate business insights.

Author: Lyncold Stephensky CHERY
Date: 2025-08-04

Introduction

I recently earned the Google Data Analytics Professional Certificate on Coursera. This project is a case study focused on helping the Cyclistic marketing team understand how annual members and casual riders use bikes differently.

The goal of this analysis is to explore rider behavior, discover usage patterns, and provide data-driven recommendations to increase casual rider conversion into annual members.

For this analysis, I used RStudio for data cleaning, processing, analysis, and visualization, and Tableau Public for dashboard creation.

The project follows the six steps of the data analysis process: Ask, Prepare, Process, Analyze, Share, and Act.

Note: The project contains a large dataset in the data/ folder (over 2GB), which has not been uploaded to GitHub due to size limitations. You can access the data directly from the Divvy Bike Share website or contact me for access to the raw data.


Behavioral Analysis of Cyclistic Users

Study Context

Cyclistic aims to increase the conversion of casual riders into annual members. To support this initiative, I analyzed usage data from the past 12 months to identify behavioral differences between members and casual riders.

Analysis Objectives

  • Compare usage patterns between members and casual riders
  • Identify temporal trends (hours, days, months)
  • Provide actionable insights to the marketing team for decision-making

Methodology and Tools

  • Language: R
  • Packages: tidyverse, janitor, skimr, ggplot2, scales
  • Key steps:
    • Importing and merging 12 monthly CSV files
      See script
    • Data cleaning
      See script
    • Creating derived variables: month_order, day_order, season_order
    • Creating new columns:
      • ride_duration
      • day_of_week
      • month_of_year
      • weekend_vs_weekday
      • hour_of_day
      • year_seasons
    • Visualizing user behaviors with ggplot2
      See script

The 6 Steps of the Data Analysis Process

1. ASK

The Cyclistic marketing director posed three key questions:

  1. How do annual members and casual riders use Cyclistic bikes differently?
  2. Why would casual riders buy an annual membership?
  3. How can Cyclistic use digital media to encourage this conversion?

2. PREPARE

The data comes from Divvy Bike Share, covering the period from July 2024 to June 2025.
The 12 CSV files were renamed (2024_07.csv, 2024_08.csv, etc.) and stored in the data/csv_raw folder.


3. PROCESS

With over 5.5 million rows, RStudio is more suitable than a standard spreadsheet.

Before importing the files into RStudio, I installed all necessary packages (see Methodology and Tools).

Processing Steps

  1. Clean column names: clean_names()
  2. Remove empty columns/rows: remove_empty()
  3. Remove duplicates: distinct()
  4. Drop unnecessary columns (IDs, coordinates, etc.)
  5. Check for missing values: colSums(is.na())
  6. Replace NA with "unknown_name"
  7. Descriptive statistics: skim_without_charts()
  8. Create ride_duration (in minutes)
  9. Remove rides < 1 min or > 24 hours
  10. Create derived columns: day, month, hour, etc.
  11. Export cleaned data: Cyclistic_Data_Clean_Jul24_to_Jun25.csv

Summary (before/after cleaning)

Detail Number of Rows
Before cleaning 5,597,030
After cleaning 5,423,861
Rows removed 173,169

Ride Duration by User Type

User Type Max Duration (min) Min Duration (min)
Casual 1,439 2
Member 1,437 2

4. ANALYZE AND SHARE

A. General Trends

User Type Distribution

User type
User type pie

➤ About 36.3% of rides are by casual riders — a strong conversion potential.

Monthly Traffic Distribution

Monthly

➤ High traffic from July to October 2024, decline until February 2025, then recovery.

Seasonal Distribution

Seasons

➤ Peak activity in summer and fall, sharp drop in winter (unfavorable weather).

Weekly Distribution

Weekdays

Saturday is the busiest day, Sunday the least.
➤ Regular weekday usage.

Week vs Weekend

Week/weekend bar
Week/weekend pie

71.4% of rides occur on weekdays, 28.6% on weekends.

Hourly Distribution

Hourly by day and type

➤ Weekdays: peaks at 08:00 and 17:00 (commuting).
➤ Weekends: steady flow between 08:00 and 20:00.

Hourly Density

Hourly density

➤ High concentration between 07:00 and 20:00, peaks at 08:00 and 16:00–18:00.

Bike Type Distribution

Bike type

Electric bikes dominate, followed by classic bikes. Scooters are rarely used.


B. Analysis by User Type

Monthly Distribution

Monthly by type

➤ Both groups follow similar seasonal patterns, with members riding more.

Seasonal Distribution

Seasonal by type

Summer is the most active period for all.
Winter is the slowest.

Weekly Distribution

Weekdays by type

➤ Members: active Monday to Friday
➤ Casuals: active on weekends, especially Saturday

Week vs Weekend

Week/weekend by type

➤ Members ride mainly on weekdays.

Bike Type by User

Bike type by user

➤ Both groups prefer electric bikes, followed by classic bikes. Low interest in scooters.

Hourly Distribution

Line
Area

➤ Peak hours at 08:00 and 17:00.

Average Ride Duration

Average duration

Casual: ~20 minutes
Members: ~14 minutes


5. ANALYZE AND SHARE (Tableau)

The data cleaned in R was also visualized in Tableau Public.
View the full dashboard


6. ACT: Marketing Recommendations

Key Findings

  • Usage frequency: members ride mostly on weekdays, casual riders mostly on weekends.
  • Ride duration: longer for casual riders (leisure/tourism).
  • Peak times: 08:00 and 17:00, especially on weekdays.
  • Seasonality: highest in summer and fall.
  • Bike type: electric bikes are most popular.

Marketing Recommendations

1. Target casual riders with summer promotions

  • Launch seasonal marketing campaigns between May and September, when activity is highest.
  • Offer temporary discounts, free trials, or flexible memberships (monthly, quarterly).
  • Adapt marketing messages to leisure and tourism use (weekends, holidays, urban exploration).

2. Drive conversion with incentives and rewards

  • Offer sign-up bonuses or discounts on the first months of membership.
  • Create a loyalty and referral program to reward engaged users.
  • Add exclusive benefits for members: priority access to certain bikes, community events, challenges.

3. Optimize weekend user experience

  • Increase visibility and availability of bikes in high weekend-traffic areas: parks, tourist zones, leisure centers, waterfronts, etc.
  • Adjust maintenance and station restocking schedules based on Saturday peaks.

4. Focus on electric bikes

  • Invest in maintenance, geographic distribution, and availability of electric bikes, which are very popular.
  • Promote their benefits (fast, easy to use, less effort) in marketing campaigns.

5. Personalize digital communication

  • Use targeted content (emails, social media, blog) based on:
    • time of day (e.g., morning campaigns),
    • day of week (weekday vs weekend),
    • season.
  • Create user segments to tailor messages to profiles (casual vs member, frequency, ride duration, etc.).

License

This project was carried out for educational purposes as part of a case study.
Data comes from Divvy / Lyft and is shared under an open license.

About

Cyclistic Bike Share Case Study (July 2024 - June 2025) - Data analysis project using R to explore rider behavior, identify trends, and generate insights from publicly available bike-share data.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages