In Buffer you have the ability to create a group of channels that can be selected and posted to at one time. We call these channel groups.
This post will serve as a small exploratory analysis of how our users are utilizing channel groups. The specific questions we’ll aim to answer are:
What’s the distribution of channel groups per user?
And of channels per group?
How many groups are typically added to a single post?
What is the channel type per group (1 of each, multiple of the same?)
Data Collection
We’ll collect information about channel groups of active users, i.e. those that have sent a post in the last 60 days. This query returns approximately 2500 channel groups created by 726 users.
Code
# write sql querysql <-" select distinct g.* from dbt_buffer.publish_channel_groups as g inner join dbt_buffer.segment_post_sent as p on g.account_id = p.user_id and p.timestamp >= timestamp_sub(current_timestamp, interval 60 day)"# get data from BigQuerygroups <-bq_query(sql = sql)
Distribution of Groups Per User
We’ll start by looking at the quantiles. This tells us the number of channel groups that 25%, 50%, and 75% of accounts have, as well as the minimumm and maximum.
Code
# count groups per userby_user <- groups %>%group_by(account_id) %>%summarise(groups =n_distinct(channel_group_id))# calculate quantilesquantile(by_user$groups, probs =seq(0, 1, 0.1))
Unsurprisingly, the data is skewed. Most users have a small number of channels – 50% have two or fewer groups and 80% have four or fewer.
However, there is also a long tail that includes a small number of users with a large number of channel groups. Around 10% of accounts have 7 or more channel groups.
These are the top 10 accounts in terms of the number of channel groups.
Code
# get users with most groups by_user %>%arrange(desc(groups)) %>%head(10)
Around 50% of groups have 2 or fewer channels. Around 80% have 4 or fewer channels, and 10% include 6 or more channels.
It’s worth noting that around 10% of groups only include a single channel.
Channel Service Per Group
Next we’ll look at the specific channel types that are represented by in the channel groups.
Code
# percentage of groups with distinct number of service typesgroups %>%group_by(service_type_count) %>%summarise(groups =n_distinct(channel_group_id)) %>%mutate(prop =percent(groups /sum(groups), .1)) %>%arrange(service_type_count)
Most channel groups have 3 or fewer service types. Around 23% only have a single service type, 41% have two, and 24% have three. After that there is a longer tail that have a larger number of service types.