This case study has been prepared on behalf of the Cyclistic Bike-Share Company. It was conducted to demonstrate the skills and experience I have acquired through the Google Data Analytics course. In this document, I will outline my analytical approach and the key competencies I applied to further investigate the business task.
The director of marketing has identified increasing annual memberships as an important objective for the company. To support this goal, the team is analyzing how casual riders and annual members use Cyclistic bikes differently. Based on these findings, the team will develop a marketing strategy aimed at encouraging casual riders to become annual members.
I have been granted with data from Cyclistic bike-share Q1 2019 & Q1 2020 data for analysis.
This information was made available by Motivate International Inc. under this license
I will be going over the different phases of analyzing and cleaning the data.
Business Task
The primary objective of this case study is to analyze how different types of Cyclistic customers use the bike-share service and to provide actionable recommendations that could help the company increase its number of annual members. By leveraging the skills acquired from the Google Data Analytics course, I will break down the process into clear and logical steps: defining the problem, preparing the data, processing, analyzing, sharing insights, and making strategic suggestions.
Analytical Approach
To effectively address the business challenge, I followed the data analysis process taught in the course. This involved collecting relevant datasets, assessing their quality, and transforming the data into a usable format. Throughout the project, I focused on ensuring that my analysis was both methodologically sound and aligned with the goals of Cyclistic Bike-Share Company.
Key Skills Utilized
Several core competencies were applied throughout this study, including data cleaning, exploratory data analysis, data visualization, and the formulation of business-driven insights. Tools such as spreadsheets, SQL, R, and data visualization platforms were leveraged to extract valuable patterns and trends from the data. The findings from this analysis will be used to inform business decisions and support Cyclistic’s growth strategies.
Given the substantial size of the dataset, I utilized Excel to filter and standardize the date and time information for both sets of data. Upon observing inconsistencies in the original formatting, I determined that performing this data cleaning in Excel was the most efficient approach, as it allowed for the necessary adjustments without affecting the integrity of data in other columns.
Following the completion of the initial steps, the subsequent data cleaning and processing were conducted using R. Prior to working with the data, I ensured that my R environment was properly configured.
The installed packages that were used for this project are the following; Tidyverse - is a helpful package that contains different packages and functions to better manipulate and clean data.
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.2 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Collect and upload Data
Importing my data sets…I wanted to be sure to practice proper file naming conventions. Also, wanted to be sure my original data was saved in a location where I can access it. In case I need to revert back to the original at any point during my analysis.
Inspecting & Updating Column names and noting the similarities
Inspected columns from both datasets and updated the following columns from 2019 to match with the column names from 2020 ride_it & trip_id unique ID for each ride, started_at & start_time marks the start date and time of the trip. ended_at & end_time marks the date and time of the end of the trip. Start_station_name & from_station_name marks the beginning of the ride, end_station_name & to_station_name marks the end of the ride, member_casual & usertype describes the different rider types for each dataset.
Cleaning & Combining for Analysis
Once the column names were updated, the data was combined for further cleaning and analysis, noting some of the information that was combined had null values. When the data was inspected after updating column names and combined the data, it was discover in Q1 2020 data Start_lat, Start_lng, end_lat, end_lng, birthyear, gender and tripduration was not longer collected. So, that data was removed from the dataset.
Also, updated the member_casual column for
consistent names for all riders. While working in R, I added a few more
columns for a more thorough analysis…adding in
ride_length by the minute and second, added
date, month, day and year for better calculation of the
time the bikes were in use.
Given that paid members have utilized the service, I recommend implementing strategies to encourage casual members to upgrade to paid memberships.
• Firstly, consider introducing an incentive program for each casual member who signs up, offering reduced pricing for paid membership after they complete a specified number of rides.
• Providing casual riders with a trial period can effectively showcase the convenience and value of annual membership, emphasizing cost savings as well as the accessibility of bikes.
• Organize members-only events to give trial members a tangible sense of the exclusive experiences available through annual membership, highlighting the benefits of club participation and fostering a strong sense of community.