theLook Customer Segmentation
Introduction
theLook Ecommerce dataset is a publicly available dataset in Google BigQuery. It includes information about customers, orders, and products. For this project, I will use SQL and Pandas to perform customer segmentation based on demographic, RFM analysis, and Cohort analysis.
For convenience, I ran this project on Google Colab to combine the SQL result with Pandas. To open and run this project, click the ‘Open in Colab’ button above. Remember to change the project ID to your own in each cell of the notebook.
Analysis
Demographics Segmentation
The dataset includes demographic information such as gender
, age
, and
country
, which I will use to segment the customers. However, to make the age
feature more meaningful, it needs to be
grouped into five categories.
Under 18
, 18-30
, 31-45
, 46-60
, and Over 60
are the age groups used to group the age
feature. Here is the
query to perform this grouping:
CASE
WHEN age < 18 THEN 'Under 18'
WHEN age BETWEEN 18 AND 30 THEN '18-30'
WHEN age BETWEEN 31 AND 45 THEN '31-45'
WHEN age BETWEEN 46 AND 60 THEN '46-60'
ELSE 'Over 60'
END AS age_category,
By combining this feature with others, we can obtain demographic segmentation grouped by age category, gender, and country using the following query:
SELECT
CASE
WHEN age < 18 THEN 'Under 18'
WHEN age BETWEEN 18 AND 30 THEN '18-30'
WHEN age BETWEEN 31 AND 45 THEN '31-45'
WHEN age BETWEEN 46 AND 60 THEN '46-60'
ELSE 'Over 60'
END AS age_category,
gender,
country,
COUNT(*) AS customer_count
FROM
bigquery-public-data.thelook_ecommerce.users
GROUP BY
age_category,
gender,
country
ORDER BY
customer_count DESC
The top 5 results of the query are shown in the following table
age_category | gender | country | customer_count |
---|---|---|---|
46-60 | F | China | 4430 |
31-45 | F | China | 4425 |
31-45 | M | China | 4208 |
46-60 | M | China | 4193 |
18-30 | M | China | 3771 |
The results indicate that most customers are from China, with the majority falling within the 46–60 and 31–45 age ranges. Additionally, both genders are female.
RFM Analysis
RFM analysis is a customer segmentation technique that divides customers into groups based on their
past purchase habits. It evaluates customers by scoring them in three categories: how recently they’ve made a
purchase, how often they buy, and the total amount of the price from their purchases. The following query will retrieve
the user_id
and the RFM values:
SELECT
orders.user_id,
MAX(orders.created_at) as last_purchase,
COUNT(*) AS frequency,
SUM(order_items.sale_price) AS monetary_value
FROM
bigquery-public-data.thelook_ecommerce.orders orders
INNER JOIN
bigquery-public-data.thelook_ecommerce.order_items order_items
ON
orders.order_id = order_items.order_id
WHERE
orders.status = 'Complete'
GROUP BY
orders.user_id
To obtain the most recent purchase date, we can use the function MAX(orders.created_at) AS last_purchase
. The
frequency can be
determined by counting the number of orders for each customer. The monetary value can be calculated by multiplying the
sale price of the
items, so it reflects the price when the item is ordered, by using SUM(order_items.sale_price) AS monetary_value
.
Group each entry by user_id
and consider only completed orders with WHERE orders.status = 'Complete'
.
The resulting table displays the first five entries.
user_id | last_purchase | frequency | monetary_value |
---|---|---|---|
42746 | 2024-02-12 01:23:00+00:00 | 8 | 402.49 |
5667 | 2020-11-15 03:12:00+00:00 | 7 | 390.94 |
39989 | 2024-02-20 16:27:32.139503+00:00 | 7 | 317.27 |
48668 | 2022-09-14 11:12:00+00:00 | 7 | 204.88 |
80317 | 2023-08-07 15:59:00+00:00 | 6 | 224.14 |
The table, however, only shows each user’s summary of their purchases. To get the RFM score, I use Pandas for ease of
use. In pandas there’s a method called qcut
which is Quantile-based discretization function. It discretizes variable
into equal-sized buckets based on rank or based on sample quantiles. I use 5-category scores, and because we are only
interested in the numeric value, we can set the labels to False. Here is the code to get the RFM score:
import pandas as pd
pd.qcut(df[col_name], 5, labels=False, duplicates='drop')
Do this for each column, and then combine all scores from each column to get the RFM score. We now have each customer segmented based on their RFM score under five categories. Here are the first five results of the best customers.
user_id | last_purchase | frequency | monetary_value | rfm_score | rfm_category |
---|---|---|---|---|---|
42746 | 2024-02-12 01:23:00+00:00 | 8 | 402.49 | 9 | Best |
39989 | 2024-02-20 16:27:32.139503+00:00 | 7 | 317.27 | 9 | Best |
80317 | 2023-08-07 15:59:00+00:00 | 6 | 224.14 | 8 | Best |
80986 | 2024-02-14 15:37:00+00:00 | 6 | 222.18 | 9 | Best |
10748 | 2023-09-12 09:01:00+00:00 | 8 | 687.94 | 8 | Best |
Cohort Analysis
Cohort analysis is a subset of behavioral analytics that takes the data from a given platform like e-commerce and rather than looking at all users as one unit; it breaks them into related groups for analysis. These related groups, or cohorts, usually share common characteristics or experiences within a defined time-span.
Cohort Items
The first step is to get the first purchase month of each user.
SELECT
user_id,
FORMAT_DATE('%Y-%m-01', MIN(created_at)) AS cohort_month,
FROM
bigquery-public-data.thelook_ecommerce.orders
GROUP BY
user_id
ORDER BY
user_id
The FORMAT_DATE('%Y-%m-01', MIN(created_at))
is used to get the first day of the month of the first purchase each
customer
made. The first five results of the query are shown below.
user_id | cohort_month |
---|---|
1 | 2023-06-01 |
2 | 2022-02-01 |
3 | 2023-04-01 |
4 | 2021-10-01 |
5 | 2023-12-01 |
Let’s name this table as cohort_items
.
User Activities
The next step is to get the unique difference between the first purchase month and the next purchase month. This is done by using the following query with a combination of previous query:
WITH cohort_items as (
SELECT
user_id,
FORMAT_DATE('%Y-%m-01', MIN(created_at)) AS cohort_month,
FROM
bigquery-public-data.thelook_ecommerce.orders
GROUP BY
user_id
ORDER BY
user_id
)
SELECT
orders.user_id,
DATE_DIFF(DATE(orders.created_at), DATE(ci.cohort_month), MONTH) as month_number
FROM
bigquery-public-data.thelook_ecommerce.orders orders
JOIN cohort_items ci ON orders.user_id = ci.user_id
GROUP BY
orders.user_id,
month_number
ORDER BY
orders.user_id,
month_number
Pay attention to the DATE_DIFF(DATE(orders.created_at), DATE(ci.cohort_month), MONTH) as month_number
part. This is
used to get the difference between the first purchase month and the next purchase month. The first five results of the
query
are shown below.
user_id | month_number |
---|---|
1 | 0 |
2 | 0 |
2 | 1 |
3 | 0 |
4 | 0 |
Let’s name this table as user_activities
. Take, for example, user 2, value 1 in the month_number
means that
user 2 made the second purchase 1 month later after the first purchase. Check out the query and its result below for
clarity.
SELECT user_id, created_at
FROM bigquery-public-data.thelook_ecommerce.orders
WHERE user_id = 2
user_id | created_at |
---|---|
2 | 2022-03-29 13:49:00+00:00 |
2 | 2022-02-20 13:49:00+00:00 |
Cohort Retention Activities
The next step is to count how many users for each first purchase month and the next purchase month. This is done by using the following query with a combination of previous query:
WITH cohort_items as (
SELECT
user_id,
FORMAT_DATE('%Y-%m-01', MIN(created_at)) AS cohort_month,
FROM
bigquery-public-data.thelook_ecommerce.orders
GROUP BY
user_id
ORDER BY
user_id
),
user_activities as (
SELECT
orders.user_id,
DATE_DIFF(DATE(orders.created_at), DATE(ci.cohort_month), MONTH) as month_number
FROM
bigquery-public-data.thelook_ecommerce.orders orders
JOIN cohort_items ci ON orders.user_id = ci.user_id
GROUP BY
orders.user_id,
month_number
ORDER BY
orders.user_id,
month_number
)
SELECT
ci.cohort_month,
ua.month_number,
COUNT(*) as num_users
FROM
user_activities ua
JOIN cohort_items ci ON ua.user_id = ci.user_id
GROUP BY
ci.cohort_month,
ua.month_number
ORDER BY
ci.cohort_month,
ua.month_number
Let’s call this table cohort_retention_activities
. We only count how many users on each cohort_month
and
month_number
. The first five results of the query are shown below.
cohort_month | month_number | num_users |
---|---|---|
2019-01-01 | 0 | 15 |
2019-01-01 | 2 | 1 |
2019-01-01 | 8 | 1 |
2019-01-01 | 10 | 2 |
2019-01-01 | 12 | 1 |
Cohort Size
We’re almost done. The next step is to count how many users made their first purchase on each cohort_month
. This is
done by using the following query with a combination of cohort_items
table:
WITH cohort_items as (
SELECT
user_id,
FORMAT_DATE('%Y-%m-01', MIN(created_at)) AS cohort_month,
FROM
bigquery-public-data.thelook_ecommerce.orders
GROUP BY
user_id
ORDER BY
user_id
)
SELECT
cohort_month,
COUNT(*) as num_users
FROM
cohort_items
GROUP BY
cohort_month
ORDER BY
cohort_month
We call this table cohort_size
. The first five results of the query are shown below.
cohort_month | num_users |
---|---|
2019-01-01 | 15 |
2019-02-01 | 40 |
2019-03-01 | 77 |
2019-04-01 | 112 |
2019-05-01 | 151 |
Cohort Retention Rate
Finally, the last step is putting it all together to get the proportion of active users (based on the cohort_size
)
that has completed their first purchase, second purchase, and so on. This is done by using the following query with
a combination of all previous queries:
WITH cohort_items AS (
SELECT
user_id,
FORMAT_DATE('%Y-%m-01', MIN(created_at)) AS cohort_month,
FROM
bigquery-public-data.thelook_ecommerce.orders
GROUP BY
user_id
ORDER BY
user_id
),
user_activities AS (
SELECT
orders.user_id,
DATE_DIFF(DATE(orders.created_at), DATE(ci.cohort_month), MONTH) AS month_number
FROM
bigquery-public-data.thelook_ecommerce.orders orders
JOIN cohort_items ci ON orders.user_id = ci.user_id
GROUP BY
orders.user_id,
month_number
ORDER BY
orders.user_id,
month_number
),
cohort_retention_activities AS (
SELECT
ci.cohort_month,
ua.month_number,
COUNT(ci.cohort_month) AS num_users
FROM
user_activities ua
JOIN cohort_items ci ON ua.user_id = ci.user_id
GROUP BY
ci.cohort_month,
ua.month_number
ORDER BY
ci.cohort_month,
ua.month_number
),
cohort_size AS (
SELECT
cohort_month,
COUNT(*) AS num_users
FROM
cohort_items
GROUP BY
cohort_month
ORDER BY
cohort_month
)
SELECT
cra.cohort_month,
cs.num_users AS total_users,
cra.month_number,
CAST(cra.num_users AS FLOAT64) / cs.num_users * 100 AS percentage
FROM
cohort_retention_activities cra
JOIN cohort_size cs ON cra.cohort_month = cs.cohort_month
ORDER BY
cra.cohort_month,
cra.month_number
The first five entries will look like this
cohort_month | total_users | month_number | percentage |
---|---|---|---|
2019-01-01 | 15 | 0 | 100 |
2019-01-01 | 15 | 2 | 6.66667 |
2019-01-01 | 15 | 8 | 6.66667 |
2019-01-01 | 15 | 10 | 13.3333 |
2019-01-01 | 15 | 12 | 6.66667 |
Parsing and Transforming the Data
We need Pandas to parse and transform the data for visualization later. Use the following code to set the index and make it more efficient.
def parse_cohort_df(df):
df = df.copy()
df.cohort_month = pd.to_datetime(df.cohort_month)
cohort_index = []
for i in df.cohort_month.value_counts(sort=False):
cohort_index.extend(list(range(i)))
df['cohort_index'] = cohort_index
df = df.set_index(['cohort_month', 'cohort_index'])
cohort_size = df.groupby('cohort_month')['total_users'].first()
label_index = df.index.levels[0].strftime("%b %d, %Y") + ' (n = ' + cohort_size.astype(str) + ')'
df.index = df.index.set_levels([label_index, df.index.levels[1]])
return df
The result will look like this:
cohort_month | cohort_index | total_users | month_number | percentage |
---|---|---|---|---|
Jan 01, 2019 (n = 15) | 0 | 15 | 0 | 100 |
1 | 15 | 2 | 6.66667 | |
2 | 15 | 8 | 6.66667 | |
3 | 15 | 10 | 13.3333 | |
4 | 15 | 12 | 6.66667 |
Then use this function to transform the parsed data above into wide format. This function will return 2 dataframes, one for the percentages, one for the total_users.
def transform_into_cohort_shape(df):
return df.percentage.unstack(1), df.month_number.unstack(1)
The result of the first 5 months for percentages will look like this:
cohort_month\cohort_index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jan 01, 2019 (n = 15) | 100 | 6.66667 | 6.66667 | 13.3333 | 6.66667 | 6.66667 | 6.66667 | 6.66667 | 13.3333 | 6.66667 | 6.66667 | |||||||||||||||||||||||||||||||||||||||||||||
Feb 01, 2019 (n = 40) | 100 | 2.5 | 5 | 5 | 2.5 | 2.5 | 2.5 | 2.5 | 2.5 | 2.5 | 7.5 | 2.5 | 7.5 | 5 | 2.5 | 5 | 2.5 | 2.5 | 2.5 | 2.5 | 2.5 | 5 | 2.5 | 2.5 | 2.5 | 2.5 | 5 | 2.5 | 2.5 | 2.5 | 2.5 | 5 | 2.5 | |||||||||||||||||||||||
Mar 01, 2019 (n = 77) | 100 | 2.5974 | 1.2987 | 1.2987 | 2.5974 | 1.2987 | 2.5974 | 2.5974 | 1.2987 | 1.2987 | 1.2987 | 3.8961 | 3.8961 | 1.2987 | 1.2987 | 3.8961 | 1.2987 | 3.8961 | 2.5974 | 3.8961 | 2.5974 | 2.5974 | 5.19481 | 1.2987 | 1.2987 | 1.2987 | 1.2987 | 1.2987 | 1.2987 | 2.5974 | 1.2987 | 5.19481 | 1.2987 | 3.8961 | 2.5974 | 1.2987 | 2.5974 | 1.2987 | 1.2987 | 1.2987 | 1.2987 | 2.5974 | 2.5974 | 2.5974 | 3.8961 | 2.5974 | 1.2987 | 2.5974 | ||||||||
Apr 01, 2019 (n = 112) | 100 | 4.46429 | 1.78571 | 3.57143 | 1.78571 | 1.78571 | 1.78571 | 0.892857 | 0.892857 | 0.892857 | 4.46429 | 0.892857 | 0.892857 | 1.78571 | 2.67857 | 2.67857 | 2.67857 | 3.57143 | 1.78571 | 2.67857 | 2.67857 | 1.78571 | 2.67857 | 3.57143 | 3.57143 | 1.78571 | 1.78571 | 2.67857 | 1.78571 | 0.892857 | 2.67857 | 2.67857 | 0.892857 | 2.67857 | 1.78571 | 3.57143 | 2.67857 | 0.892857 | 1.78571 | 3.57143 | 2.67857 | 1.78571 | 2.67857 | 0.892857 | 2.67857 | 0.892857 | 0.892857 | 2.67857 | 4.46429 | 2.67857 | 1.78571 | 1.78571 | ||||
May 01, 2019 (n = 151) | 100 | 1.98675 | 2.64901 | 0.662252 | 0.662252 | 1.3245 | 1.98675 | 1.3245 | 1.98675 | 2.64901 | 1.98675 | 0.662252 | 0.662252 | 1.98675 | 2.64901 | 0.662252 | 0.662252 | 1.98675 | 2.64901 | 2.64901 | 1.98675 | 1.98675 | 1.98675 | 0.662252 | 0.662252 | 3.31126 | 0.662252 | 2.64901 | 1.98675 | 1.98675 | 2.64901 | 0.662252 | 0.662252 | 1.98675 | 1.98675 | 1.98675 | 3.31126 | 1.3245 | 1.3245 | 0.662252 | 0.662252 | 1.3245 | 2.64901 | 1.3245 | 3.31126 | 2.64901 | 1.98675 | 1.3245 | 3.31126 | 0.662252 | 0.662252 | 4.63576 | 3.31126 | 1.3245 | 0.662252 | 1.98675 |
Based on the table above, we can see that the percentage of users who made the first purchase in January 2019 stops at month 10 with the same percentage in average. Another example in May 2019, the percentage of users who made the second purchase 1 month after the first purchase is 1.99%. The percentage of users who made the third purchase 2 months after the first purchase is 2.65%. And so on up until the 55th month, the last month in the dataset, which is Feb 2024 shown in the table below.
cohort_month | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Oct 01, 2023 (n = 3022) | 100 | 7.51158 | 8.5043 | 7.90867 | 6.05559 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Nov 01, 2023 (n = 3031) | 100 | 11.1184 | 9.96371 | 6.5325 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Dec 01, 2023 (n = 3548) | 100 | 12.5705 | 9.13191 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
Jan 01, 2024 (n = 4015) | 100 | 14.7198 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Feb 01, 2024 (n = 5468) | 100 |
To get a better picture, we remove the zeroth month as it is always 100 percent, and we can visualize the table with pandas styling using the following code:
cohort_percentage.iloc[:,1:].style.background_gradient(cmap='cool')
cohort_index | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cohort_month | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jan 01, 2019 (n = 15) | 6.666667 | 6.666667 | 13.333333 | 6.666667 | 6.666667 | 6.666667 | 6.666667 | 13.333333 | 6.666667 | 6.666667 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Feb 01, 2019 (n = 40) | 2.500000 | 5.000000 | 5.000000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 7.500000 | 2.500000 | 7.500000 | 5.000000 | 2.500000 | 5.000000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 5.000000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 5.000000 | 2.500000 | 2.500000 | 2.500000 | 2.500000 | 5.000000 | 2.500000 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Mar 01, 2019 (n = 77) | 2.597403 | 1.298701 | 1.298701 | 2.597403 | 1.298701 | 2.597403 | 2.597403 | 1.298701 | 1.298701 | 1.298701 | 3.896104 | 3.896104 | 1.298701 | 1.298701 | 3.896104 | 1.298701 | 3.896104 | 2.597403 | 3.896104 | 2.597403 | 2.597403 | 5.194805 | 1.298701 | 1.298701 | 1.298701 | 1.298701 | 1.298701 | 1.298701 | 2.597403 | 1.298701 | 5.194805 | 1.298701 | 3.896104 | 2.597403 | 1.298701 | 2.597403 | 1.298701 | 1.298701 | 1.298701 | 1.298701 | 2.597403 | 2.597403 | 2.597403 | 3.896104 | 2.597403 | 1.298701 | 2.597403 | nan | nan | nan | nan | nan | nan | nan | nan |
Apr 01, 2019 (n = 112) | 4.464286 | 1.785714 | 3.571429 | 1.785714 | 1.785714 | 1.785714 | 0.892857 | 0.892857 | 0.892857 | 4.464286 | 0.892857 | 0.892857 | 1.785714 | 2.678571 | 2.678571 | 2.678571 | 3.571429 | 1.785714 | 2.678571 | 2.678571 | 1.785714 | 2.678571 | 3.571429 | 3.571429 | 1.785714 | 1.785714 | 2.678571 | 1.785714 | 0.892857 | 2.678571 | 2.678571 | 0.892857 | 2.678571 | 1.785714 | 3.571429 | 2.678571 | 0.892857 | 1.785714 | 3.571429 | 2.678571 | 1.785714 | 2.678571 | 0.892857 | 2.678571 | 0.892857 | 0.892857 | 2.678571 | 4.464286 | 2.678571 | 1.785714 | 1.785714 | nan | nan | nan | nan |
May 01, 2019 (n = 151) | 1.986755 | 2.649007 | 0.662252 | 0.662252 | 1.324503 | 1.986755 | 1.324503 | 1.986755 | 2.649007 | 1.986755 | 0.662252 | 0.662252 | 1.986755 | 2.649007 | 0.662252 | 0.662252 | 1.986755 | 2.649007 | 2.649007 | 1.986755 | 1.986755 | 1.986755 | 0.662252 | 0.662252 | 3.311258 | 0.662252 | 2.649007 | 1.986755 | 1.986755 | 2.649007 | 0.662252 | 0.662252 | 1.986755 | 1.986755 | 1.986755 | 3.311258 | 1.324503 | 1.324503 | 0.662252 | 0.662252 | 1.324503 | 2.649007 | 1.324503 | 3.311258 | 2.649007 | 1.986755 | 1.324503 | 3.311258 | 0.662252 | 0.662252 | 4.635762 | 3.311258 | 1.324503 | 0.662252 | 1.986755 |
Jun 01, 2019 (n = 185) | 2.162162 | 2.702703 | 2.162162 | 0.540541 | 1.081081 | 1.621622 | 1.081081 | 1.081081 | 3.243243 | 1.081081 | 3.243243 | 1.081081 | 2.702703 | 1.081081 | 0.540541 | 1.081081 | 3.243243 | 1.081081 | 2.162162 | 1.081081 | 3.783784 | 1.621622 | 0.540541 | 2.702703 | 2.162162 | 1.621622 | 2.162162 | 2.162162 | 2.702703 | 1.621622 | 2.702703 | 2.162162 | 1.621622 | 0.540541 | 1.621622 | 1.621622 | 2.702703 | 3.243243 | 1.621622 | 1.621622 | 1.621622 | 1.621622 | 0.540541 | 1.081081 | 2.162162 | 1.081081 | 1.081081 | 0.540541 | 3.243243 | 2.162162 | 1.081081 | 2.702703 | 1.081081 | 3.243243 | 0.540541 |
Jul 01, 2019 (n = 213) | 0.469484 | 1.408451 | 2.816901 | 1.877934 | 1.877934 | 1.408451 | 3.286385 | 2.347418 | 1.408451 | 1.408451 | 0.469484 | 2.816901 | 0.938967 | 1.408451 | 2.816901 | 0.938967 | 1.877934 | 1.408451 | 2.816901 | 1.877934 | 1.408451 | 1.877934 | 1.877934 | 1.877934 | 2.816901 | 2.347418 | 1.877934 | 3.286385 | 3.286385 | 2.816901 | 1.408451 | 1.877934 | 0.938967 | 2.816901 | 2.816901 | 3.286385 | 4.225352 | 1.408451 | 1.877934 | 1.408451 | 0.469484 | 0.938967 | 1.408451 | 5.164319 | 1.408451 | 0.938967 | 2.347418 | 2.347418 | 1.877934 | 0.469484 | 2.347418 | 2.816901 | 0.938967 | nan | nan |
Aug 01, 2019 (n = 252) | 1.587302 | 1.984127 | 1.587302 | 2.380952 | 1.984127 | 1.984127 | 2.380952 | 3.174603 | 1.190476 | 1.587302 | 4.365079 | 1.984127 | 0.396825 | 1.190476 | 1.984127 | 1.984127 | 3.174603 | 3.571429 | 1.587302 | 1.984127 | 2.380952 | 3.571429 | 2.380952 | 1.587302 | 1.984127 | 1.190476 | 3.174603 | 1.190476 | 1.190476 | 1.190476 | 0.793651 | 1.587302 | 0.396825 | 3.968254 | 0.793651 | 2.777778 | 1.190476 | 2.380952 | 1.190476 | 2.380952 | 2.380952 | 3.174603 | 0.793651 | 0.793651 | 1.587302 | 1.587302 | 0.396825 | 1.190476 | 0.396825 | 1.587302 | 0.396825 | 1.190476 | 0.396825 | nan | nan |
Sep 01, 2019 (n = 260) | 1.538462 | 1.538462 | 1.923077 | 0.769231 | 1.923077 | 1.538462 | 1.923077 | 1.923077 | 1.153846 | 1.153846 | 1.538462 | 2.307692 | 0.384615 | 0.384615 | 1.923077 | 3.076923 | 2.307692 | 1.923077 | 2.307692 | 0.769231 | 0.769231 | 0.384615 | 1.538462 | 2.307692 | 1.923077 | 3.846154 | 1.923077 | 1.538462 | 1.538462 | 1.923077 | 1.153846 | 1.538462 | 0.384615 | 1.923077 | 1.538462 | 2.692308 | 1.923077 | 1.538462 | 2.307692 | 2.307692 | 2.692308 | 1.538462 | 0.384615 | 1.153846 | 2.307692 | 0.769231 | 3.076923 | 1.153846 | 3.461538 | 1.538462 | 0.769231 | 0.769231 | nan | nan | nan |
Oct 01, 2019 (n = 288) | 1.041667 | 1.041667 | 1.041667 | 1.388889 | 1.388889 | 1.736111 | 1.041667 | 1.736111 | 1.041667 | 1.388889 | 2.083333 | 1.736111 | 1.736111 | 1.736111 | 1.388889 | 1.736111 | 2.083333 | 1.041667 | 1.041667 | 0.694444 | 1.388889 | 1.388889 | 1.736111 | 0.694444 | 2.083333 | 0.694444 | 0.694444 | 1.388889 | 3.472222 | 0.694444 | 1.041667 | 2.430556 | 2.083333 | 1.388889 | 2.430556 | 1.736111 | 2.083333 | 2.083333 | 2.083333 | 1.736111 | 0.694444 | 2.777778 | 2.777778 | 2.430556 | 2.083333 | 2.083333 | 1.041667 | 2.430556 | 1.736111 | 2.430556 | 2.083333 | 2.083333 | nan | nan | nan |
Nov 01, 2019 (n = 317) | 1.261830 | 1.577287 | 1.892744 | 2.523659 | 2.208202 | 1.892744 | 0.946372 | 1.577287 | 1.261830 | 0.630915 | 2.208202 | 1.892744 | 0.946372 | 2.839117 | 2.523659 | 0.946372 | 1.577287 | 1.261830 | 2.839117 | 2.839117 | 1.577287 | 1.892744 | 2.208202 | 1.261830 | 1.577287 | 2.208202 | 2.208202 | 2.523659 | 2.208202 | 1.577287 | 1.261830 | 0.946372 | 0.630915 | 2.208202 | 3.470032 | 1.577287 | 1.892744 | 0.946372 | 0.630915 | 1.577287 | 1.892744 | 0.315457 | 1.892744 | 1.577287 | 2.208202 | 1.577287 | 1.577287 | 2.839117 | 1.577287 | 1.261830 | 1.577287 | nan | nan | nan | nan |
Dec 01, 2019 (n = 375) | 1.066667 | 1.066667 | 2.400000 | 2.933333 | 4.000000 | 2.400000 | 1.600000 | 1.066667 | 1.600000 | 1.600000 | 1.600000 | 2.133333 | 1.866667 | 1.066667 | 0.800000 | 2.400000 | 1.600000 | 1.866667 | 1.333333 | 1.333333 | 1.600000 | 1.333333 | 2.666667 | 1.066667 | 2.133333 | 1.866667 | 2.133333 | 1.866667 | 1.600000 | 2.666667 | 1.333333 | 2.400000 | 2.933333 | 1.066667 | 1.066667 | 1.866667 | 1.333333 | 1.333333 | 1.333333 | 2.400000 | 1.333333 | 2.400000 | 1.333333 | 1.066667 | 1.333333 | 1.066667 | 2.133333 | 3.200000 | 1.333333 | nan | nan | nan | nan | nan | nan |
Jan 01, 2020 (n = 418) | 2.392344 | 1.674641 | 1.913876 | 0.956938 | 3.588517 | 2.153110 | 1.196172 | 1.913876 | 1.913876 | 2.631579 | 1.674641 | 1.913876 | 2.392344 | 1.435407 | 1.674641 | 3.349282 | 1.196172 | 2.870813 | 2.153110 | 2.153110 | 0.956938 | 3.349282 | 0.717703 | 1.435407 | 1.196172 | 2.870813 | 1.913876 | 2.392344 | 2.153110 | 2.631579 | 1.435407 | 2.153110 | 1.435407 | 1.674641 | 1.196172 | 2.631579 | 1.674641 | 1.435407 | 2.392344 | 1.674641 | 2.870813 | 1.674641 | 1.913876 | 1.913876 | 3.349282 | 1.913876 | 1.913876 | 0.717703 | 0.478469 | nan | nan | nan | nan | nan | nan |
Feb 01, 2020 (n = 422) | 2.369668 | 2.369668 | 1.184834 | 1.184834 | 1.895735 | 1.895735 | 1.184834 | 2.369668 | 1.658768 | 2.132701 | 1.895735 | 1.421801 | 1.421801 | 2.843602 | 2.132701 | 1.658768 | 2.132701 | 1.658768 | 1.895735 | 1.421801 | 0.947867 | 1.421801 | 1.658768 | 0.947867 | 2.132701 | 1.895735 | 1.895735 | 1.895735 | 1.421801 | 1.421801 | 2.369668 | 1.421801 | 2.132701 | 1.895735 | 1.658768 | 2.606635 | 1.895735 | 1.658768 | 1.421801 | 1.421801 | 0.710900 | 1.421801 | 0.710900 | 3.554502 | 1.658768 | 1.895735 | 2.369668 | 1.658768 | nan | nan | nan | nan | nan | nan | nan |
Mar 01, 2020 (n = 453) | 0.883002 | 2.207506 | 1.766004 | 1.324503 | 2.428256 | 2.207506 | 1.986755 | 1.986755 | 0.441501 | 2.649007 | 2.207506 | 1.986755 | 1.324503 | 1.545254 | 2.649007 | 1.766004 | 2.428256 | 1.324503 | 1.766004 | 1.766004 | 1.324503 | 1.986755 | 2.207506 | 1.766004 | 1.324503 | 2.869757 | 2.428256 | 1.545254 | 1.545254 | 1.986755 | 1.766004 | 1.324503 | 1.545254 | 1.766004 | 1.986755 | 1.986755 | 1.766004 | 2.649007 | 1.545254 | 1.103753 | 1.545254 | 2.428256 | 1.103753 | 2.428256 | 1.986755 | 1.986755 | 1.324503 | nan | nan | nan | nan | nan | nan | nan | nan |
Apr 01, 2020 (n = 492) | 2.845528 | 2.032520 | 1.829268 | 0.813008 | 1.016260 | 2.235772 | 2.642276 | 1.829268 | 1.422764 | 1.829268 | 1.626016 | 1.626016 | 1.016260 | 2.642276 | 2.032520 | 1.422764 | 1.219512 | 2.235772 | 2.235772 | 2.439024 | 1.626016 | 1.422764 | 2.235772 | 1.626016 | 2.439024 | 2.032520 | 2.032520 | 1.422764 | 1.219512 | 1.626016 | 2.032520 | 2.439024 | 1.626016 | 1.626016 | 2.845528 | 3.252033 | 1.829268 | 1.626016 | 2.642276 | 2.642276 | 1.829268 | 1.626016 | 2.235772 | 1.626016 | 1.829268 | 1.626016 | nan | nan | nan | nan | nan | nan | nan | nan | nan |
May 01, 2020 (n = 545) | 1.467890 | 2.568807 | 2.385321 | 1.834862 | 1.651376 | 2.935780 | 1.834862 | 1.651376 | 2.385321 | 2.385321 | 1.100917 | 2.018349 | 2.018349 | 3.119266 | 0.917431 | 2.018349 | 1.467890 | 1.834862 | 1.651376 | 2.935780 | 1.284404 | 1.834862 | 2.018349 | 1.651376 | 2.018349 | 1.834862 | 2.018349 | 2.201835 | 1.284404 | 2.752294 | 2.201835 | 2.018349 | 1.467890 | 2.201835 | 1.651376 | 1.467890 | 1.834862 | 1.651376 | 2.935780 | 1.651376 | 1.284404 | 2.568807 | 1.284404 | 1.467890 | 1.467890 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jun 01, 2020 (n = 559) | 1.431127 | 0.715564 | 1.610018 | 1.252236 | 2.146691 | 2.683363 | 2.683363 | 1.610018 | 1.610018 | 1.610018 | 3.398927 | 1.431127 | 1.073345 | 1.610018 | 1.431127 | 1.788909 | 2.683363 | 3.577818 | 2.146691 | 1.610018 | 1.252236 | 2.146691 | 0.715564 | 1.788909 | 2.146691 | 1.788909 | 3.220036 | 2.325581 | 3.041145 | 1.788909 | 0.894454 | 2.146691 | 2.325581 | 2.325581 | 1.788909 | 1.431127 | 1.431127 | 2.683363 | 2.504472 | 3.041145 | 1.788909 | 2.504472 | 2.325581 | 1.252236 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jul 01, 2020 (n = 639) | 1.408451 | 2.503912 | 1.408451 | 2.190923 | 2.347418 | 2.816901 | 1.564945 | 1.564945 | 1.721440 | 1.564945 | 2.034429 | 2.034429 | 1.721440 | 1.408451 | 1.564945 | 1.721440 | 0.938967 | 2.034429 | 1.564945 | 1.721440 | 2.190923 | 2.347418 | 2.347418 | 2.816901 | 2.347418 | 1.877934 | 2.034429 | 2.034429 | 1.721440 | 1.251956 | 2.190923 | 2.660407 | 1.721440 | 2.973396 | 1.251956 | 1.564945 | 1.564945 | 2.034429 | 1.408451 | 2.190923 | 0.938967 | 1.721440 | 0.625978 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Aug 01, 2020 (n = 653) | 1.837672 | 2.143951 | 2.756508 | 2.450230 | 2.603369 | 2.603369 | 1.225115 | 2.297090 | 1.990812 | 1.990812 | 2.909648 | 1.684533 | 1.990812 | 2.450230 | 1.684533 | 2.909648 | 1.531394 | 1.684533 | 1.378254 | 1.990812 | 2.143951 | 1.378254 | 1.684533 | 2.909648 | 1.990812 | 2.603369 | 2.297090 | 1.990812 | 2.297090 | 1.225115 | 2.603369 | 1.684533 | 2.450230 | 2.297090 | 2.143951 | 1.990812 | 2.603369 | 1.990812 | 2.297090 | 1.990812 | 2.450230 | 2.297090 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Sep 01, 2020 (n = 689) | 1.306241 | 1.161103 | 1.161103 | 1.741655 | 1.451379 | 1.886792 | 1.596517 | 2.322206 | 1.451379 | 1.306241 | 1.596517 | 1.306241 | 2.031930 | 2.467344 | 1.886792 | 2.031930 | 1.451379 | 2.177068 | 1.306241 | 1.886792 | 2.902758 | 2.322206 | 2.322206 | 1.451379 | 1.886792 | 1.741655 | 2.322206 | 3.047896 | 1.596517 | 2.757620 | 2.031930 | 2.467344 | 1.886792 | 1.886792 | 1.741655 | 1.451379 | 1.451379 | 1.306241 | 1.741655 | 2.031930 | 1.886792 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Oct 01, 2020 (n = 719) | 2.364395 | 1.668985 | 2.086231 | 1.668985 | 1.668985 | 1.668985 | 2.364395 | 1.808067 | 2.642559 | 1.529903 | 1.390821 | 2.503477 | 2.364395 | 2.225313 | 1.529903 | 1.668985 | 2.503477 | 1.808067 | 2.225313 | 1.947149 | 1.947149 | 2.920723 | 1.947149 | 2.503477 | 1.947149 | 2.364395 | 1.390821 | 1.808067 | 1.668985 | 2.364395 | 3.894298 | 1.947149 | 0.973574 | 1.112656 | 1.947149 | 2.642559 | 2.364395 | 2.086231 | 2.920723 | 1.529903 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Nov 01, 2020 (n = 724) | 1.519337 | 2.348066 | 2.486188 | 1.795580 | 1.519337 | 1.657459 | 1.657459 | 1.795580 | 2.071823 | 1.795580 | 2.071823 | 1.795580 | 2.486188 | 1.795580 | 2.209945 | 2.348066 | 2.209945 | 2.071823 | 2.486188 | 1.381215 | 1.657459 | 1.657459 | 1.519337 | 2.209945 | 1.657459 | 3.038674 | 1.795580 | 1.519337 | 2.486188 | 1.104972 | 1.519337 | 1.381215 | 1.933702 | 2.624309 | 1.657459 | 1.933702 | 2.071823 | 3.038674 | 0.828729 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Dec 01, 2020 (n = 788) | 2.664975 | 1.142132 | 1.522843 | 1.522843 | 2.284264 | 1.776650 | 1.903553 | 2.791878 | 2.791878 | 2.284264 | 3.045685 | 1.903553 | 2.284264 | 1.522843 | 1.776650 | 2.030457 | 2.538071 | 2.157360 | 1.395939 | 2.030457 | 1.395939 | 2.411168 | 1.776650 | 2.030457 | 3.045685 | 2.030457 | 1.903553 | 2.918782 | 2.411168 | 2.664975 | 1.776650 | 2.157360 | 1.649746 | 1.903553 | 3.426396 | 1.776650 | 2.030457 | 1.269036 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jan 01, 2021 (n = 834) | 2.877698 | 2.757794 | 2.038369 | 2.398082 | 1.678657 | 2.278177 | 2.158273 | 1.678657 | 1.678657 | 2.038369 | 2.038369 | 1.798561 | 2.158273 | 2.877698 | 2.517986 | 1.438849 | 2.398082 | 2.877698 | 2.517986 | 1.798561 | 2.038369 | 1.798561 | 1.438849 | 1.199041 | 2.038369 | 1.318945 | 2.398082 | 1.558753 | 2.278177 | 1.918465 | 2.038369 | 1.558753 | 2.877698 | 1.558753 | 2.877698 | 2.158273 | 1.798561 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Feb 01, 2021 (n = 732) | 1.775956 | 2.049180 | 1.502732 | 2.185792 | 1.639344 | 1.639344 | 2.185792 | 1.502732 | 1.366120 | 1.775956 | 2.322404 | 3.005464 | 2.185792 | 1.912568 | 1.092896 | 2.185792 | 2.049180 | 1.639344 | 2.049180 | 2.732240 | 2.185792 | 2.185792 | 2.732240 | 2.868852 | 1.639344 | 1.502732 | 2.322404 | 2.322404 | 3.005464 | 2.459016 | 1.639344 | 3.005464 | 2.459016 | 1.229508 | 2.049180 | 0.819672 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Mar 01, 2021 (n = 914) | 2.625821 | 2.407002 | 2.625821 | 1.312910 | 1.859956 | 2.954048 | 1.641138 | 2.516411 | 2.407002 | 1.859956 | 2.078775 | 1.969365 | 2.735230 | 2.516411 | 1.750547 | 2.735230 | 2.297593 | 2.625821 | 1.969365 | 3.172867 | 2.625821 | 2.188184 | 2.078775 | 2.407002 | 1.531729 | 1.641138 | 2.188184 | 1.641138 | 2.954048 | 2.516411 | 1.641138 | 2.078775 | 1.750547 | 2.188184 | 0.765864 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Apr 01, 2021 (n = 898) | 1.781737 | 1.670379 | 2.115813 | 2.449889 | 3.340757 | 1.447661 | 2.561247 | 1.893096 | 2.449889 | 1.781737 | 1.781737 | 3.118040 | 2.449889 | 2.338530 | 2.004454 | 1.224944 | 3.229399 | 2.783964 | 2.672606 | 1.670379 | 2.783964 | 2.783964 | 2.672606 | 2.672606 | 2.561247 | 2.449889 | 2.783964 | 2.672606 | 2.449889 | 2.783964 | 2.561247 | 2.115813 | 2.561247 | 1.559020 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
May 01, 2021 (n = 1034) | 3.094778 | 2.224371 | 2.611219 | 1.740812 | 2.514507 | 2.224371 | 2.514507 | 1.934236 | 2.224371 | 1.740812 | 2.321083 | 2.321083 | 2.030948 | 2.611219 | 2.707930 | 2.514507 | 2.417795 | 3.191489 | 1.644101 | 2.417795 | 1.547389 | 2.321083 | 2.321083 | 1.740812 | 2.417795 | 2.030948 | 1.257253 | 2.224371 | 2.224371 | 2.417795 | 2.127660 | 1.934236 | 1.353965 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jun 01, 2021 (n = 937) | 2.241195 | 2.774813 | 2.881537 | 2.881537 | 2.668090 | 3.094984 | 2.347919 | 1.921025 | 2.774813 | 2.027748 | 2.134472 | 2.347919 | 1.921025 | 2.134472 | 1.921025 | 2.347919 | 2.241195 | 2.347919 | 2.241195 | 2.347919 | 2.881537 | 2.347919 | 2.881537 | 2.347919 | 2.561366 | 1.707577 | 2.241195 | 2.561366 | 1.921025 | 2.241195 | 3.415155 | 1.494130 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jul 01, 2021 (n = 1006) | 3.379722 | 1.988072 | 2.087475 | 3.081511 | 2.683897 | 1.988072 | 2.087475 | 3.180915 | 1.988072 | 2.286282 | 2.584493 | 2.783300 | 1.988072 | 2.783300 | 2.882704 | 2.882704 | 0.994036 | 2.186879 | 2.485089 | 2.584493 | 2.385686 | 2.683897 | 1.590457 | 2.683897 | 2.186879 | 2.385686 | 2.087475 | 1.888668 | 1.689861 | 2.485089 | 1.988072 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Aug 01, 2021 (n = 1094) | 2.010969 | 2.833638 | 2.559415 | 2.925046 | 2.742230 | 1.828154 | 1.736746 | 2.468007 | 2.102377 | 2.193784 | 1.828154 | 2.650823 | 1.919561 | 2.468007 | 1.919561 | 2.376600 | 2.102377 | 2.650823 | 1.736746 | 2.925046 | 2.285192 | 2.376600 | 1.462523 | 2.193784 | 1.645338 | 2.193784 | 2.193784 | 2.650823 | 2.742230 | 1.188300 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Sep 01, 2021 (n = 1112) | 2.428058 | 1.528777 | 2.158273 | 2.248201 | 2.607914 | 2.068345 | 3.147482 | 2.517986 | 1.348921 | 2.068345 | 2.068345 | 3.057554 | 2.697842 | 2.517986 | 3.057554 | 2.338129 | 2.248201 | 2.338129 | 2.697842 | 2.607914 | 2.877698 | 2.068345 | 2.428058 | 2.607914 | 2.607914 | 2.697842 | 3.327338 | 2.517986 | 1.978417 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Oct 01, 2021 (n = 1165) | 2.231760 | 2.918455 | 2.231760 | 1.716738 | 3.347639 | 1.888412 | 3.605150 | 2.489270 | 3.004292 | 2.060086 | 2.575107 | 2.145923 | 2.489270 | 2.317597 | 2.660944 | 1.716738 | 2.489270 | 2.145923 | 1.974249 | 2.660944 | 2.145923 | 2.317597 | 1.802575 | 2.403433 | 2.060086 | 2.832618 | 2.832618 | 1.630901 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Nov 01, 2021 (n = 1199) | 1.751460 | 2.585488 | 2.418682 | 2.919099 | 2.835696 | 2.585488 | 2.418682 | 3.586322 | 2.251877 | 2.251877 | 2.919099 | 2.251877 | 2.752294 | 2.251877 | 2.001668 | 2.502085 | 2.418682 | 2.668891 | 1.834862 | 2.919099 | 3.419516 | 2.502085 | 2.835696 | 2.752294 | 2.335279 | 3.419516 | 1.918265 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Dec 01, 2021 (n = 1257) | 2.863962 | 2.307080 | 2.625298 | 2.863962 | 2.227526 | 3.102625 | 2.147971 | 3.182180 | 2.863962 | 2.307080 | 2.704853 | 2.307080 | 2.466189 | 1.909308 | 2.147971 | 2.307080 | 2.147971 | 2.466189 | 2.147971 | 2.545744 | 2.943516 | 3.182180 | 2.227526 | 3.261734 | 2.545744 | 1.670644 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jan 01, 2022 (n = 1253) | 2.474062 | 2.394254 | 2.553871 | 2.633679 | 2.952913 | 2.474062 | 2.873105 | 2.952913 | 2.952913 | 2.394254 | 2.553871 | 2.474062 | 2.873105 | 3.351955 | 2.553871 | 2.793296 | 3.431764 | 2.474062 | 2.793296 | 2.793296 | 2.553871 | 2.952913 | 2.873105 | 2.075020 | 1.755786 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Feb 01, 2022 (n = 1273) | 3.063629 | 2.199529 | 3.142184 | 2.356638 | 2.278083 | 2.120974 | 2.435192 | 2.592302 | 2.435192 | 2.985075 | 2.985075 | 2.513747 | 3.613511 | 2.906520 | 2.120974 | 2.827965 | 2.435192 | 3.377848 | 2.042419 | 3.142184 | 2.827965 | 2.670856 | 3.377848 | 1.571092 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Mar 01, 2022 (n = 1408) | 3.196023 | 3.053977 | 1.988636 | 3.267045 | 3.196023 | 2.911932 | 2.556818 | 2.911932 | 2.272727 | 3.693182 | 2.982955 | 2.414773 | 2.556818 | 2.627841 | 2.769886 | 2.769886 | 3.764205 | 2.840909 | 3.480114 | 2.556818 | 2.911932 | 3.125000 | 1.207386 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Apr 01, 2022 (n = 1409) | 2.838893 | 2.980837 | 2.484031 | 2.767921 | 3.690561 | 3.406671 | 3.051810 | 3.264727 | 2.484031 | 2.129170 | 2.484031 | 3.193754 | 3.051810 | 3.122782 | 3.335699 | 3.548616 | 3.690561 | 2.625976 | 2.200142 | 2.980837 | 3.903478 | 1.774308 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
May 01, 2022 (n = 1481) | 2.768400 | 2.430790 | 2.700878 | 3.106009 | 2.498312 | 2.633356 | 3.038488 | 2.025658 | 3.038488 | 2.565834 | 2.903444 | 3.173531 | 3.376097 | 2.903444 | 2.700878 | 3.511141 | 2.970966 | 2.363268 | 3.241053 | 3.308575 | 2.160702 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jun 01, 2022 (n = 1472) | 2.513587 | 3.125000 | 2.853261 | 2.785326 | 2.717391 | 3.668478 | 3.532609 | 3.872283 | 3.328804 | 2.921196 | 3.260870 | 3.125000 | 3.125000 | 3.057065 | 2.445652 | 2.785326 | 3.125000 | 3.600543 | 2.921196 | 2.105978 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jul 01, 2022 (n = 1624) | 3.078818 | 3.078818 | 2.832512 | 3.017241 | 2.955665 | 3.263547 | 2.709360 | 2.401478 | 3.325123 | 2.832512 | 3.694581 | 2.894089 | 3.633005 | 2.647783 | 2.647783 | 3.078818 | 2.955665 | 3.448276 | 2.339901 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Aug 01, 2022 (n = 1647) | 3.035823 | 2.792957 | 2.853673 | 3.217972 | 3.157256 | 2.914390 | 2.914390 | 3.642987 | 2.853673 | 3.157256 | 3.400121 | 3.096539 | 3.400121 | 2.853673 | 3.035823 | 3.764420 | 2.246509 | 2.489375 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Sep 01, 2022 (n = 1651) | 2.786190 | 3.391884 | 2.907329 | 3.815869 | 3.391884 | 2.967898 | 3.634161 | 3.270745 | 4.118716 | 3.876439 | 2.907329 | 3.089037 | 3.149606 | 3.028468 | 4.118716 | 3.452453 | 1.877650 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Oct 01, 2022 (n = 1703) | 3.640634 | 4.051674 | 3.347035 | 3.640634 | 3.934234 | 3.523194 | 3.523194 | 2.994715 | 3.992954 | 3.288315 | 3.699354 | 4.756312 | 3.464474 | 3.229595 | 3.523194 | 2.290076 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Nov 01, 2022 (n = 1752) | 3.824201 | 4.337900 | 2.682648 | 3.652968 | 3.139269 | 5.308219 | 3.538813 | 3.310502 | 3.881279 | 3.767123 | 3.196347 | 3.938356 | 4.109589 | 3.652968 | 3.025114 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Dec 01, 2022 (n = 1932) | 3.519669 | 3.157350 | 3.985507 | 3.312629 | 3.260870 | 3.312629 | 4.089027 | 3.830228 | 3.778468 | 3.467909 | 3.933747 | 3.157350 | 4.089027 | 2.432712 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jan 01, 2023 (n = 1931) | 3.314345 | 4.091144 | 3.314345 | 4.867944 | 3.728638 | 4.194718 | 3.366132 | 4.039358 | 3.210772 | 4.505438 | 4.298291 | 3.521491 | 2.226825 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Feb 01, 2023 (n = 1883) | 4.089219 | 4.460967 | 4.354753 | 3.717472 | 4.248540 | 4.142326 | 4.195433 | 3.823686 | 3.558152 | 4.354753 | 4.460967 | 2.973978 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Mar 01, 2023 (n = 2078) | 4.619827 | 4.234841 | 3.897979 | 4.475457 | 4.090472 | 3.994225 | 3.657363 | 4.475457 | 4.764196 | 5.245428 | 3.079885 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Apr 01, 2023 (n = 2135) | 5.807963 | 4.683841 | 4.824356 | 4.824356 | 5.245902 | 4.215457 | 5.386417 | 5.714286 | 3.887588 | 2.810304 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
May 01, 2023 (n = 2383) | 4.448175 | 4.616030 | 5.119597 | 5.119597 | 4.993705 | 4.532102 | 5.413345 | 5.413345 | 3.063366 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jun 01, 2023 (n = 2392) | 5.267559 | 5.727425 | 5.685619 | 5.183946 | 5.267559 | 5.351171 | 5.351171 | 3.302676 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jul 01, 2023 (n = 2574) | 5.982906 | 6.060606 | 5.749806 | 5.944056 | 5.827506 | 5.710956 | 3.923854 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Aug 01, 2023 (n = 2622) | 6.140351 | 6.712433 | 5.873379 | 6.674294 | 6.216629 | 5.225019 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Sep 01, 2023 (n = 2701) | 6.997408 | 7.626805 | 7.700852 | 8.885598 | 4.961126 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Oct 01, 2023 (n = 3022) | 7.511582 | 8.504302 | 7.908670 | 6.055592 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Nov 01, 2023 (n = 3031) | 11.118443 | 9.963708 | 6.532498 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Dec 01, 2023 (n = 3548) | 12.570462 | 9.131905 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Jan 01, 2024 (n = 4015) | 14.719801 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
Feb 01, 2024 (n = 5468) | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan |
From the visualized table above we can see that the magenta region, which shows higher percentage, tends to be in the lower side of the table. This means that customers from earlier cohort are more likely to stay active over time. This is a positive sign as it indicates good customer retention.
Conclusion
In this project, I have performed customer segmentation based on demographic, RFM analysis, and Cohort analysis using SQL and Pandas. The result shows that the majority of the customers are from China. The majority of the customers are also in the age range of 46–60 and 31–45 years old with both genders are female. The RFM analysis shows that the best customers are those who have the highest frequency and monetary value. The cohort analysis shows that the percentage of active users tends to be higher in the earlier cohort. This is a positive sign as it indicates good customer retention.