# This script PayPal study case, using two data sets provided pp_cust_data.csv and subscriber_data_sample.csv
# Author Irina Max. Principal Data Scientist
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(corrplot)
## corrplot 0.84 loaded
library(ggplot2)
setwd('/Users/irinamax/Documents/R/Experiments/vendor_case_study_updated/')
pp <- read.csv('/Users/irinamax/Documents/R/Experiments/vendor_case_study_updated/pp_cust_data.csv')
pp %>% head
## email_address active_send active_receive
## 1 UQZXVWHPAR@GSLJXDZV.com 1 0
## 2 RLKSLDNYTDW@SIDPRQ.com 1 0
## 3 ONVGUCDMEACP@HMXNGE.com 1 1
## 4 DSMIX686@gmail.com 1 0
## 5 QHVKQNOGRG@DHQWP.com 1 1
## 6 FGA@hotmail.com 0 0
pp %>% dim # Data has 2172 rows and 3 col
## [1] 2172 3
pp %>% str # active_send and active_receive has binary structure
## 'data.frame': 2172 obs. of 3 variables:
## $ email_address : chr "UQZXVWHPAR@GSLJXDZV.com" "RLKSLDNYTDW@SIDPRQ.com" "ONVGUCDMEACP@HMXNGE.com" "DSMIX686@gmail.com" ...
## $ active_send : int 1 1 1 1 1 0 1 1 1 1 ...
## $ active_receive: int 0 0 1 0 1 0 0 0 1 1 ...
pp %>% summary # but different mean, where we can see senders more active
## email_address active_send active_receive
## Length:2172 Min. :0.0000 Min. :0.0000
## Class :character 1st Qu.:1.0000 1st Qu.:0.0000
## Mode :character Median :1.0000 Median :0.0000
## Mean :0.7813 Mean :0.4848
## 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000
sum(is.na(pp)) # not missing value
## [1] 0
#How many active users in PP list who buying and selling
pp_a<- pp %>% filter((active_send %in% 1), (active_receive %in% 1))
pp_a %>% head(10)
## email_address active_send active_receive
## 1 ONVGUCDMEACP@HMXNGE.com 1 1
## 2 QHVKQNOGRG@DHQWP.com 1 1
## 3 MEAVGBKPVB@GYAEKFE.com 1 1
## 4 URHEUJIWCRCI@LZKSZZ.com 1 1
## 5 TODRSMYDRZFY@UPRWCL.com 1 1
## 6 ZQVCDHAZPD@GCPJBA.com 1 1
## 7 ZKWYJEDSDX@QBJAROOY.com 1 1
## 8 WMLMCJWWMRBK@EFHITG.com 1 1
## 9 JZTNIAMISZ@NXXLFW.com 1 1
## 10 ZRDIQGIEEZNT@FEKKT.com 1 1
pp_a %>% dim ## here is 832 active used in the PP list
## [1] 832 3
# How many not active?
pp_ch<- pp %>% filter((active_send %in% 0), (active_receive %in% 0))
pp_ch %>% head(10)
## email_address active_send active_receive
## 1 FGA@hotmail.com 0 0
## 2 UHSUDS380@gmail.com 0 0
## 3 SJYBRYLMKF@NTYDLZQV.com 0 0
## 4 outdoorlivingGLUBC@gmail.com 0 0
## 5 LSQII@gmail.com 0 0
## 6 XAFWRZEDUMJ@DSHTPY.com 0 0
## 7 PYVPSNVECUM@CJGHL.com 0 0
## 8 RFTCLEKUEDXI@RZVROQO.com 0 0
## 9 MBXA.MBXA@gmail.com 0 0
## 10 FDDCEANLVZHJ@HKFKIJUO.com 0 0
pp_ch %>% dim # 254 unactive users, or I would call them churned
## [1] 254 3
# ratio in PP list is 254/832 = 0.3052885
paste("Ratio of Churn users in pp table during last year: ", length( pp_ch[,1])/length(pp_a[,1]))
## [1] "Ratio of Churn users in pp table during last year: 0.305288461538462"
# In histogram of PP list I can see magority are sending users active and there churn is not big
qplot(x =pp$active_send, fill=..count.., geom="histogram",main = 'Distribution of active senders in PP' )
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

qplot(x =pp$active_receive, fill=..count.., geom="histogram", main = 'Distribution of active receivers in PP')
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# Most of the people churning are user who making receiving transection
#Uploading and explore sc Vendor list
sc <- read.csv('/Users/irinamax/Documents/R/Experiments/vendor_case_study_updated/subscriber_data_sample.csv')
sc %>% head
## email_address industry
## 1 POYZ@yahoo.com garden
## 2 VGID.VGID@yahoo.com landscape engineer
## 3 KTCGW@homeandgardenXYT.com home and garden
## 4 YOQUFSG.YOQUFSG@EVTlandscapearchitect.biz landscape architect
## 5 SOSNEJAL.SOSNEJAL@DXKDhg.net
## 6 GGYDNEE3@homeandgardenBAHG.co
## relationship_length site_visits
## 1 2 86
## 2 30 2019
## 3 30 225
## 4 4 80
## 5 4 20
## 6 12 48
sc %>% summary
## email_address industry relationship_length site_visits
## Length:679 Length:679 Min. : 1.000 Min. : 0.0
## Class :character Class :character 1st Qu.: 2.000 1st Qu.: 28.0
## Mode :character Mode :character Median : 5.000 Median : 97.0
## Mean : 8.931 Mean : 434.2
## 3rd Qu.:13.000 3rd Qu.: 301.0
## Max. :30.000 Max. :16551.0
#We have 679 users in Vendor list, but we dont know who of them had PayPal transections.
#How much subcsrubers in every industry on the Vendor list
sc_count <- sc %>% group_by(sc$industry ) %>% count
sc_count # The list of the 20 industries and numbers of users in every one
## # A tibble: 20 x 2
## # Groups: sc$industry [20]
## `sc$industry` n
## <chr> <int>
## 1 "" 103
## 2 "architect" 27
## 3 "designer" 28
## 4 "garden" 34
## 5 "gardening" 31
## 6 "grower" 29
## 7 "hg" 27
## 8 "home and garden" 44
## 9 "landscape architect" 29
## 10 "landscape designer" 28
## 11 "landscape engineer" 39
## 12 "landscaper" 15
## 13 "landscaping" 17
## 14 "nursery" 39
## 15 "orchard" 22
## 16 "outdoor" 44
## 17 "outdoor living" 38
## 18 "plants" 25
## 19 "supply" 36
## 20 "vineyard" 24
ggplot(sc, aes(sc$industry, fill= factor(industry))) +geom_bar(stat = "count")+coord_flip()+
ggtitle("Number of customers by industry in Vendor list")
## Warning: Use of `sc$industry` is discouraged. Use `industry` instead.

#On the Boxplot we can see the mean of site visits by industry on the Vendor list
ggplot(sc, aes(x = industry, y = site_visits, fill =as.factor(industry))) +
geom_boxplot() +scale_y_log10()+
ggtitle("Vendor customers site visits by industry")
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 23 rows containing non-finite values (stat_boxplot).

# We have list of 20 idustries include one '' empty or Unknown spot, but this spot is not NA
sum(is.na(sc)) # we have not any missing value
## [1] 0
# I want to know how many subscribers are in the Vendor list using PayPal.
# For this purpose I will merge tables by emails, and R going to catch it automatically
df <- merge(sc, pp)
df %>% dim
## [1] 135 6
# only 135 subscribes from Vendor list using PayPal with 6 columns
# I can verify outcome with another possible way just for to check out dimentions
df_check <- sc %>% inner_join(pp, by ='email_address')
df_check %>% dim
## [1] 135 6
# the same result 135 with 6 columns
# Total, max and min site visits of Active senders using PP payment by industry, sorted descending order
df %>%group_by(df$industry, active_send=1 ) %>% summarise(total_visit = sum(site_visits )) %>% arrange(-total_visit)
## `summarise()` has grouped output by 'df$industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: df$industry [20]
## `df$industry` active_send total_visit
## <chr> <dbl> <int>
## 1 "outdoor" 1 19385
## 2 "gardening" 1 18367
## 3 "landscape architect" 1 14050
## 4 "landscape engineer" 1 8724
## 5 "designer" 1 8336
## 6 "nursery" 1 6084
## 7 "" 1 4673
## 8 "garden" 1 4052
## 9 "outdoor living" 1 3573
## 10 "landscape designer" 1 2894
## 11 "plants" 1 2346
## 12 "grower" 1 2223
## 13 "landscaping" 1 1804
## 14 "home and garden" 1 1761
## 15 "supply" 1 1302
## 16 "architect" 1 1224
## 17 "orchard" 1 1209
## 18 "vineyard" 1 902
## 19 "landscaper" 1 195
## 20 "hg" 1 134
df %>% group_by(industry, active_send=1) %>% summarise(max = max(site_visits )) %>% arrange(-max)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_send max
## <chr> <dbl> <int>
## 1 "outdoor" 1 16551
## 2 "gardening" 1 15437
## 3 "landscape architect" 1 11610
## 4 "designer" 1 7924
## 5 "nursery" 1 4569
## 6 "landscape engineer" 1 4350
## 7 "" 1 2106
## 8 "garden" 1 1571
## 9 "outdoor living" 1 1517
## 10 "grower" 1 1384
## 11 "landscape designer" 1 1374
## 12 "plants" 1 1003
## 13 "landscaping" 1 939
## 14 "home and garden" 1 922
## 15 "orchard" 1 806
## 16 "supply" 1 543
## 17 "architect" 1 496
## 18 "vineyard" 1 477
## 19 "landscaper" 1 171
## 20 "hg" 1 114
df %>% group_by(industry, active_send=1) %>% summarise(min = min(site_visits )) %>% arrange(-min)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_send min
## <chr> <dbl> <int>
## 1 "landscape engineer" 1 105
## 2 "designer" 1 55
## 3 "architect" 1 47
## 4 "landscaping" 1 34
## 5 "supply" 1 25
## 6 "landscaper" 1 24
## 7 "outdoor living" 1 24
## 8 "nursery" 1 21
## 9 "hg" 1 20
## 10 "gardening" 1 15
## 11 "grower" 1 14
## 12 "vineyard" 1 11
## 13 "outdoor" 1 9
## 14 "orchard" 1 8
## 15 "landscape designer" 1 5
## 16 "" 1 0
## 17 "garden" 1 0
## 18 "home and garden" 1 0
## 19 "landscape architect" 1 0
## 20 "plants" 1 0
# Total,max and min site visits of Not active senders PP payment by industry, sorted descending order
df %>%group_by(df$industry, active_send=0 ) %>% summarise(total_visit = sum(site_visits )) %>% arrange(-total_visit)
## `summarise()` has grouped output by 'df$industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: df$industry [20]
## `df$industry` active_send total_visit
## <chr> <dbl> <int>
## 1 "outdoor" 0 19385
## 2 "gardening" 0 18367
## 3 "landscape architect" 0 14050
## 4 "landscape engineer" 0 8724
## 5 "designer" 0 8336
## 6 "nursery" 0 6084
## 7 "" 0 4673
## 8 "garden" 0 4052
## 9 "outdoor living" 0 3573
## 10 "landscape designer" 0 2894
## 11 "plants" 0 2346
## 12 "grower" 0 2223
## 13 "landscaping" 0 1804
## 14 "home and garden" 0 1761
## 15 "supply" 0 1302
## 16 "architect" 0 1224
## 17 "orchard" 0 1209
## 18 "vineyard" 0 902
## 19 "landscaper" 0 195
## 20 "hg" 0 134
df %>% group_by(industry, active_send=0) %>% summarise(max = max(site_visits )) %>% arrange(-max)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_send max
## <chr> <dbl> <int>
## 1 "outdoor" 0 16551
## 2 "gardening" 0 15437
## 3 "landscape architect" 0 11610
## 4 "designer" 0 7924
## 5 "nursery" 0 4569
## 6 "landscape engineer" 0 4350
## 7 "" 0 2106
## 8 "garden" 0 1571
## 9 "outdoor living" 0 1517
## 10 "grower" 0 1384
## 11 "landscape designer" 0 1374
## 12 "plants" 0 1003
## 13 "landscaping" 0 939
## 14 "home and garden" 0 922
## 15 "orchard" 0 806
## 16 "supply" 0 543
## 17 "architect" 0 496
## 18 "vineyard" 0 477
## 19 "landscaper" 0 171
## 20 "hg" 0 114
df %>% group_by(industry, active_send=0) %>% summarise(min = min(site_visits )) %>% arrange(-min)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_send min
## <chr> <dbl> <int>
## 1 "landscape engineer" 0 105
## 2 "designer" 0 55
## 3 "architect" 0 47
## 4 "landscaping" 0 34
## 5 "supply" 0 25
## 6 "landscaper" 0 24
## 7 "outdoor living" 0 24
## 8 "nursery" 0 21
## 9 "hg" 0 20
## 10 "gardening" 0 15
## 11 "grower" 0 14
## 12 "vineyard" 0 11
## 13 "outdoor" 0 9
## 14 "orchard" 0 8
## 15 "landscape designer" 0 5
## 16 "" 0 0
## 17 "garden" 0 0
## 18 "home and garden" 0 0
## 19 "landscape architect" 0 0
## 20 "plants" 0 0
# Active receivers paiment total, max and min
df %>% group_by(industry, active_receive=1) %>% summarise(total = sum(site_visits , na.rm = T)) %>% arrange(-total)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_receive total
## <chr> <dbl> <int>
## 1 "outdoor" 1 19385
## 2 "gardening" 1 18367
## 3 "landscape architect" 1 14050
## 4 "landscape engineer" 1 8724
## 5 "designer" 1 8336
## 6 "nursery" 1 6084
## 7 "" 1 4673
## 8 "garden" 1 4052
## 9 "outdoor living" 1 3573
## 10 "landscape designer" 1 2894
## 11 "plants" 1 2346
## 12 "grower" 1 2223
## 13 "landscaping" 1 1804
## 14 "home and garden" 1 1761
## 15 "supply" 1 1302
## 16 "architect" 1 1224
## 17 "orchard" 1 1209
## 18 "vineyard" 1 902
## 19 "landscaper" 1 195
## 20 "hg" 1 134
df %>% group_by(industry, active_receive=1) %>% summarise(max = max(site_visits , na.rm = T)) %>% arrange(-max)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_receive max
## <chr> <dbl> <int>
## 1 "outdoor" 1 16551
## 2 "gardening" 1 15437
## 3 "landscape architect" 1 11610
## 4 "designer" 1 7924
## 5 "nursery" 1 4569
## 6 "landscape engineer" 1 4350
## 7 "" 1 2106
## 8 "garden" 1 1571
## 9 "outdoor living" 1 1517
## 10 "grower" 1 1384
## 11 "landscape designer" 1 1374
## 12 "plants" 1 1003
## 13 "landscaping" 1 939
## 14 "home and garden" 1 922
## 15 "orchard" 1 806
## 16 "supply" 1 543
## 17 "architect" 1 496
## 18 "vineyard" 1 477
## 19 "landscaper" 1 171
## 20 "hg" 1 114
df %>% group_by(industry, active_receive=1) %>% summarise(min = min(site_visits , na.rm = T)) %>% arrange(-min)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_receive min
## <chr> <dbl> <int>
## 1 "landscape engineer" 1 105
## 2 "designer" 1 55
## 3 "architect" 1 47
## 4 "landscaping" 1 34
## 5 "supply" 1 25
## 6 "landscaper" 1 24
## 7 "outdoor living" 1 24
## 8 "nursery" 1 21
## 9 "hg" 1 20
## 10 "gardening" 1 15
## 11 "grower" 1 14
## 12 "vineyard" 1 11
## 13 "outdoor" 1 9
## 14 "orchard" 1 8
## 15 "landscape designer" 1 5
## 16 "" 1 0
## 17 "garden" 1 0
## 18 "home and garden" 1 0
## 19 "landscape architect" 1 0
## 20 "plants" 1 0
# Not active receivers paiment total, max and min
df %>% group_by(industry, active_receive=0) %>% summarise(total = sum(site_visits , na.rm = T)) %>% arrange(-total)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_receive total
## <chr> <dbl> <int>
## 1 "outdoor" 0 19385
## 2 "gardening" 0 18367
## 3 "landscape architect" 0 14050
## 4 "landscape engineer" 0 8724
## 5 "designer" 0 8336
## 6 "nursery" 0 6084
## 7 "" 0 4673
## 8 "garden" 0 4052
## 9 "outdoor living" 0 3573
## 10 "landscape designer" 0 2894
## 11 "plants" 0 2346
## 12 "grower" 0 2223
## 13 "landscaping" 0 1804
## 14 "home and garden" 0 1761
## 15 "supply" 0 1302
## 16 "architect" 0 1224
## 17 "orchard" 0 1209
## 18 "vineyard" 0 902
## 19 "landscaper" 0 195
## 20 "hg" 0 134
df %>% group_by(industry, active_receive=0) %>% summarise(max = max(site_visits , na.rm = T)) %>% arrange(-max)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_receive max
## <chr> <dbl> <int>
## 1 "outdoor" 0 16551
## 2 "gardening" 0 15437
## 3 "landscape architect" 0 11610
## 4 "designer" 0 7924
## 5 "nursery" 0 4569
## 6 "landscape engineer" 0 4350
## 7 "" 0 2106
## 8 "garden" 0 1571
## 9 "outdoor living" 0 1517
## 10 "grower" 0 1384
## 11 "landscape designer" 0 1374
## 12 "plants" 0 1003
## 13 "landscaping" 0 939
## 14 "home and garden" 0 922
## 15 "orchard" 0 806
## 16 "supply" 0 543
## 17 "architect" 0 496
## 18 "vineyard" 0 477
## 19 "landscaper" 0 171
## 20 "hg" 0 114
df %>% group_by(industry, active_receive=0) %>% summarise(min = min(site_visits , na.rm = T)) %>% arrange(-min)
## `summarise()` has grouped output by 'industry'. You can override using the `.groups` argument.
## # A tibble: 20 x 3
## # Groups: industry [20]
## industry active_receive min
## <chr> <dbl> <int>
## 1 "landscape engineer" 0 105
## 2 "designer" 0 55
## 3 "architect" 0 47
## 4 "landscaping" 0 34
## 5 "supply" 0 25
## 6 "landscaper" 0 24
## 7 "outdoor living" 0 24
## 8 "nursery" 0 21
## 9 "hg" 0 20
## 10 "gardening" 0 15
## 11 "grower" 0 14
## 12 "vineyard" 0 11
## 13 "outdoor" 0 9
## 14 "orchard" 0 8
## 15 "landscape designer" 0 5
## 16 "" 0 0
## 17 "garden" 0 0
## 18 "home and garden" 0 0
## 19 "landscape architect" 0 0
## 20 "plants" 0 0
# What industry mostly loosing PayPal subscrubers from Vendor list, Visualisation of churm PayPal users in Vendor by industry
ggplot(df) +geom_bar(aes(x = df$industry, fill = active_send, position = "dodge")) + coord_flip()+ # senders
ggtitle("Churn PayPal senders during last yearby industry")
## Warning: Ignoring unknown aesthetics: position
## Warning: Use of `df$industry` is discouraged. Use `industry` instead.

ggplot(df) +geom_bar(aes(x = df$industry, fill = active_receive, position = "dodge"))+ coord_flip() + # receivers
ggtitle("Churn PayPal receivers during last yearby industry")
## Warning: Ignoring unknown aesthetics: position
## Warning: Use of `df$industry` is discouraged. Use `industry` instead.

# Find all submitters in Vendor list who not active in PayPal during last year and churned
# create list of Active senders and receivers inPP list
pp_ch<- pp %>% filter((active_send %in% 0), (active_receive %in% 0))
# Merge with Vendor list
df_ppch <- merge(sc, pp_ch)
df_ppch %>% dim # There are 55 submitters from Vendor list who used to use PayPal but not use it anymore
## [1] 55 6
df_ppch %>% summary # We can see in summary some of them have long relationship with PayPay but churned for some reason
## email_address industry relationship_length site_visits
## Length:55 Length:55 Min. : 1.000 Min. : 0.0
## Class :character Class :character 1st Qu.: 2.000 1st Qu.: 43.5
## Mode :character Mode :character Median : 5.000 Median : 121.0
## Mean : 9.345 Mean : 969.6
## 3rd Qu.:15.000 3rd Qu.: 790.0
## Max. :30.000 Max. :15437.0
## active_send active_receive
## Min. :0 Min. :0
## 1st Qu.:0 1st Qu.:0
## Median :0 Median :0
## Mean :0 Mean :0
## 3rd Qu.:0 3rd Qu.:0
## Max. :0 Max. :0
df_ppch$site_visits %>% sum
## [1] 53326
# That's mean PayPal missing 53326 site visits, because this transectionsnot did not us PayPal last year
# 1. I would recomeded to send them some News letter or promotion to return them to business
# 2. Investgate: why long time submitters like more then 5 years churned last year and May be
# PayPal need to use agressive marketing tools or direct contact, or call to return them back
# 3. Optional: investigate the reason why they moved or using the other website for transactions.
# Churned PayPal cusomers during last year by industry from Vendor list in table and Visualization
df_ppch %>% group_by(industry) %>% count
## # A tibble: 19 x 2
## # Groups: industry [19]
## industry n
## <chr> <int>
## 1 "" 9
## 2 "architect" 1
## 3 "designer" 2
## 4 "garden" 4
## 5 "gardening" 3
## 6 "grower" 2
## 7 "hg" 1
## 8 "home and garden" 1
## 9 "landscape architect" 2
## 10 "landscape designer" 1
## 11 "landscape engineer" 3
## 12 "landscaping" 3
## 13 "nursery" 3
## 14 "orchard" 3
## 15 "outdoor" 5
## 16 "outdoor living" 6
## 17 "plants" 2
## 18 "supply" 2
## 19 "vineyard" 2
ggplot(df_ppch) +geom_bar(aes(x = industry, fill = "count", position = "dodge"))+coord_flip()+
ggtitle("Churn PayPal customers during last yearby industry")
## Warning: Ignoring unknown aesthetics: position

# Fild submiters in Vendor list, who are activly sending and receiving using PayPal
pp_a<- pp %>% filter((active_send %in% 1), (active_receive %in% 1))
df_ppa <- merge(sc, pp_a) # all submitters using PayPal in the vendor list
df_ppa %>% dim # only 8 submitters still using PayPal
## [1] 8 6
ggplot(df_ppa) +geom_bar(aes(x = industry, fill = active_receive, position = "dodge"))+coord_flip()+
ggtitle("Barplot who actively Sending and receiving")
## Warning: Ignoring unknown aesthetics: position

# PayPal must be happy to keep them and better stimulate/appreciate these users with loyalry rewards and etc.
pp_s<- pp %>% filter((active_send %in% 1), (active_receive %in% 0))
pp_s %>% dim # 865 only senders using PP for sending payment though PP but not resiving
## [1] 865 3
df_pps <- merge(sc, pp_s)
df_pps %>% dim # we have 39 submitters from Vendor list sender on the vendor list who no recived anything in last year
## [1] 39 6
df_pps %>% head
## email_address industry relationship_length site_visits
## 1 ACFRXBMV928@yahoo.com grower 8 1384
## 2 AHXEWFME354@yahoo.com landscape engineer 12 4350
## 3 AZFAMOK.AZFAMOK@yahoo.com home and garden 15 763
## 4 BRRK@gmail.com outdoor 19 16551
## 5 BTBKXQ@yahoo.com gardening 3 65
## 6 DGF.DGF@gmail.com plants 30 817
## active_send active_receive
## 1 1 0
## 2 1 0
## 3 1 0
## 4 1 0
## 5 1 0
## 6 1 0
#We can sum out all sending transections using PayPal in Vendor list
df_pps$site_visits %>% sum # 33136
## [1] 33136
#Visualisation
ggplot(df_pps) +geom_bar(aes(x = industry, fill = active_send, position = "dodge"))+coord_flip() +
ggtitle("Barplot PayPal Active Senders on Vendor list ")
## Warning: Ignoring unknown aesthetics: position

pp_r<- pp %>% filter((active_send %in% 0), (active_receive %in% 1)) # filter only recivers fro PP
pp_r %>% dim # we have 221 in the Vendor list
## [1] 221 3
df_ppr <- merge(sc,pp_r)
df_ppr %>% dim # 33 subscriber from the vendor list only reciving payment using PP
## [1] 33 6
#We can sum out all receiving transections using PayPal in Vendor list
df_ppr$site_visits %>% sum # 10677
## [1] 10677
#Visualisation
ggplot(df_ppr) +geom_bar(aes(x = industry, fill = active_receive, position = "dodge"))+coord_flip()+
ggtitle("Barplot Active Receivers by industry on Vendor list")
## Warning: Ignoring unknown aesthetics: position

# I can Calculate Attrition rate base of the data I explored
55/135
## [1] 0.4074074
#[1] 0.4074074 # 40% is very high Attrition rate
paste("Churn Rate or Attrittion Rate of PayPal users in Vendor list during last year: ", length( df_ppch[,1])/length(df[,1]))
## [1] "Churn Rate or Attrittion Rate of PayPal users in Vendor list during last year: 0.407407407407407"
#"Ratio of Churn PayPal users in Vendor list during last year: 0.407407407407407"
# This number can be improved by Churn prevention with counting Prabability to Churn, but here is not enouch information.
#
# Creating churn column where not active subscribers are "0"
df$churn <- ifelse(df$active_send == 0 & df$active_receive==0, 0, 1)
df %>% head
## email_address industry relationship_length site_visits
## 1 ACFRXBMV928@yahoo.com grower 8 1384
## 2 AHXEWFME354@yahoo.com landscape engineer 12 4350
## 3 ALCNGHDT@hotmail.com landscape designer 2 5
## 4 architectBPNFEBC@yahoo.com architect 6 47
## 5 architectYCUDSQT@yahoo.com architect 8 339
## 6 AUBXC@yahoo.com vineyard 7 269
## active_send active_receive churn
## 1 1 0 1
## 2 1 0 1
## 3 1 1 1
## 4 0 0 0
## 5 0 1 1
## 6 0 0 0
df %>% group_by(churn) %>% count
## # A tibble: 2 x 2
## # Groups: churn [2]
## churn n
## <dbl> <int>
## 1 0 55
## 2 1 80
ggplot(df) + geom_bar(aes(x = churn)) +ggtitle("Churn subscribers") #We can see how big actual churn PayPal users according Vendor information

library(corrplot)
df$industry %>% str
## chr [1:135] "grower" "landscape engineer" "landscape designer" "architect" ...
#df %>% select_if((is.numeric)) %>% cor %>% corrplot::corrplot()
# try spearman
cor.m <- data.matrix(df)
df.cor <- cor(cor.m, use = "pairwise.complete.obs", method= "spearman")
df.cor %>% corrplot::corrplot()

# Corralation shows how Churn column depended from Senders and receivers
# Creating Logistic Regression model for predict Churn in Vendor list
#install.packages('rms')
library (rms)
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
##
## src, summarize
## The following objects are masked from 'package:base':
##
## format.pval, units
## Loading required package: SparseM
##
## Attaching package: 'SparseM'
## The following object is masked from 'package:base':
##
## backsolve
set.seed(55)
ind <- sample(2, nrow(df), replace = T, prob = c(0.8, 0.2))
train <- df[ind == 1,]
test <- df[ind == 2,]
logModel <- glm(churn ~ site_visits +relationship_length +active_send+active_receive, family = binomial, train)
## Warning: glm.fit: algorithm did not converge
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
logModel
##
## Call: glm(formula = churn ~ site_visits + relationship_length + active_send +
## active_receive, family = binomial, data = train)
##
## Coefficients:
## (Intercept) site_visits relationship_length
## -2.621e+01 -1.941e-05 7.672e-03
## active_send active_receive
## 5.213e+01 5.196e+01
##
## Degrees of Freedom: 98 Total (i.e. Null); 94 Residual
## Null Deviance: 135.5
## Residual Deviance: 9.292e-10 AIC: 10
#Prediction on 20% test
pred <- predict(logModel,type = "response", test, na.action =na.exclude )
head(pred)
## 11 18 22 28 33 35
## 1.000000e+00 1.000000e+00 1.000000e+00 4.650429e-12 5.118100e-12 1.000000e+00
pred <- round(pred)
(tab1 <- table(test$churn, pred))
## pred
## 0 1
## 0 12 0
## 1 0 24
1 - sum(diag(tab1/sum(tab1))) # missclassification error is "0", accuracy 100%
## [1] 0
# Also can calculate accuracy by recall and F1 value, which just confirm the model is good.
retrieved <- sum(pred)
precision <- sum(pred & test$churn) / retrieved
recall <- sum(pred & test$churn) / sum(test$churn)
F1 <- 2 * precision * recall / (precision + recall)
F1
## [1] 1
recall
## [1] 1
# Model is very accurately predicting Churn on test data but in reality with bigger data set
# Missclassification error can be slightly different
# Boxplot by site visiting separating by Churn factor
ggplot(df, aes(x = industry, y = site_visits, fill =as.factor(churn))) +
geom_boxplot() +coord_flip() +scale_y_log10()+facet_grid(.~churn) +
ggtitle("Boxplot of Churn by industry, number of site visits")
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 6 rows containing non-finite values (stat_boxplot).

#The same with barplot, picture shows alert of churn visually in red color
ggplot(df, aes(x = industry, y = site_visits, fill =as.factor(churn))) +
geom_bar(stat="identity")+coord_flip() +ggtitle("Barplot Churn by industry, number of site visits")

# Subscribers by industry base on long time of relationship
ggplot(df, aes(x = industry, y =relationship_length , fill = as.factor(churn))) +
geom_boxplot()+coord_flip() +ggtitle("Churn subscribers by industry base on long time of relationship")

# ---------------------------Part 6. Using churn factor as class---------------------------------
# Based on the Part 3, where I merged all users separately I got idea to make another column
# So I add another column "churn_s" where we can see not only churn as 1/0 but separated by class
# 0 = Not active or churned
# 1 = only sender active
# 2 = only receiver active
# 3 = sender and receiver active
# within(df, df$churn_s <- ifelse((df$active_send == 0 & df$active_receive==0), 0,
# ifelse((df$active_send == 1 & df$active_receive==0), 1,
# ifelse((df$active_send == 0 & df$active_receive==1), 2, 3))) )
df1 <- df # I will create new data frame for this purpose
df1$churn_s <- ifelse((df$active_send == 0 & df$active_receive==0), 0,
ifelse((df$active_send == 1 & df$active_receive==0), 1,
ifelse((df$active_send == 0 & df$active_receive==1), 2, 3)))
df1 %>% head
## email_address industry relationship_length site_visits
## 1 ACFRXBMV928@yahoo.com grower 8 1384
## 2 AHXEWFME354@yahoo.com landscape engineer 12 4350
## 3 ALCNGHDT@hotmail.com landscape designer 2 5
## 4 architectBPNFEBC@yahoo.com architect 6 47
## 5 architectYCUDSQT@yahoo.com architect 8 339
## 6 AUBXC@yahoo.com vineyard 7 269
## active_send active_receive churn churn_s
## 1 1 0 1 1
## 2 1 0 1 1
## 3 1 1 1 3
## 4 0 0 0 0
## 5 0 1 1 2
## 6 0 0 0 0
## Now we can see all of them by facet
# churn=0 with senders=1, receivers=2 , active senders and receivers=3
# by relationship
ggplot(df1, aes(x = industry, y =relationship_length , color = as.factor(churn_s))) +
geom_boxplot()+facet_grid(.~churn_s)+coord_flip() +
ggtitle("Boxplot Relationship years. Facet: churn=0, senders=1, receivers=2, senders and receivers=3")

# by site visits
ggplot(df1, aes(x = industry, y = site_visits, fill =as.factor(churn_s))) +
geom_boxplot() +coord_flip() +scale_y_log10()+facet_grid(.~churn_s)+
ggtitle("Boxplot Site Visitors: churn=0, senders=1, receivers=2, senders and receivers=3")
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 6 rows containing non-finite values (stat_boxplot).

#Barplot by site visits
ggplot(df1, aes(x = industry, y = site_visits, fill =as.factor(df1$churn_s))) +
geom_bar(stat="identity")+coord_flip()+
ggtitle("Site Visitors: churn=0, senders=1, receivers=2, senders and receivers=3")
## Warning: Use of `df1$churn_s` is discouraged. Use `churn_s` instead.

#Barplot by site visit separated by facet
ggplot(df1, aes(x = industry, y = site_visits, fill =as.factor(df1$churn_s))) +
geom_bar(stat="identity")+coord_flip() +facet_grid(.~churn_s)+
ggtitle("Site Visitors: churn=0, senders=1, receivers=2, senders and receivers=3")
## Warning: Use of `df1$churn_s` is discouraged. Use `churn_s` instead.

# Part of the Vendor data with subscrubers who never used PayPal must have big interest for PayPal manager.
# Users in this list can be potential PayPal customers.
# Now I anti join this tables
df_rest <- sc %>% anti_join(pp, by ='email_address')
df_rest %>% dim # there is 544 potental new customers for PayPal!!!
## [1] 544 4
# We can see how potential customers distributes across of industries
df_rest %>% group_by(industry) %>% count
## # A tibble: 20 x 2
## # Groups: industry [20]
## industry n
## <chr> <int>
## 1 "" 84
## 2 "architect" 23
## 3 "designer" 25
## 4 "garden" 22
## 5 "gardening" 24
## 6 "grower" 22
## 7 "hg" 25
## 8 "home and garden" 39
## 9 "landscape architect" 23
## 10 "landscape designer" 20
## 11 "landscape engineer" 31
## 12 "landscaper" 13
## 13 "landscaping" 13
## 14 "nursery" 32
## 15 "orchard" 17
## 16 "outdoor" 33
## 17 "outdoor living" 31
## 18 "plants" 18
## 19 "supply" 29
## 20 "vineyard" 20
qplot(x =df_rest$relationship_length, fill=..count.., geom="histogram")+ggtitle("Potential customers by industry in Vendor list, X = time of relationship in years")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# How much potectial transection PayPal can have form this new customers
df_rest %>% group_by(industry) %>% summarise(total = sum(site_visits , na.rm = T)) %>% arrange(-total)
## # A tibble: 20 x 2
## industry total
## <chr> <int>
## 1 "" 25776
## 2 "landscape designer" 24729
## 3 "landscaping" 22179
## 4 "landscape architect" 19567
## 5 "home and garden" 13614
## 6 "designer" 12026
## 7 "nursery" 10510
## 8 "supply" 8823
## 9 "outdoor living" 8620
## 10 "outdoor" 8212
## 11 "architect" 6066
## 12 "landscape engineer" 5213
## 13 "hg" 5024
## 14 "grower" 4555
## 15 "garden" 4349
## 16 "gardening" 4095
## 17 "orchard" 2856
## 18 "vineyard" 2441
## 19 "plants" 1798
## 20 "landscaper" 1113
# I sorted the rest of the vendor data by activity visiting site and pretty sure the first hundred or may be even more
# will be interesting for PayPal Managment to recruit them with sending some AD letter or promotion letters to invite to PayPal
df_rest[ order(-df_rest$site_visits),]
## email_address industry
## 28 landscapingCKBNQ@yahoo.com landscaping
## 350 landscapedesignerSWKPTS@yahoo.com landscape designer
## 289 RNYZOEZN@landscapearchitectSGT.net landscape architect
## 408 nurseryTQVU@gmail.com nursery
## 88 WAHWMBQC.WAHWMBQC@JOCBhomeandgarden.com home and garden
## 369 JAL@gmail.com
## 462 EHQKF@HMFUlandscapedesigner.net landscape designer
## 216 HOOQ1@LXGKoutdoorliving.com outdoor living
## 297 outdoorBFVIM@gmail.com outdoor
## 366 UJE@QSXlandscaping.biz landscaping
## 110 designerTUBU@gmail.com designer
## 136 designerMGDU@gmail.com designer
## 479 JFK.JFK@supplyUIHY.co supply
## 536 VJXVKHarchitect@gmail.com architect
## 17 GNTlandscapedesigner@gmail.com
## 207 KQKHlandscapedesigner@yahoo.com landscape designer
## 309 TCIQarchitect@yahoo.com architect
## 258 DTQXlandscapedesigner@yahoo.com landscape designer
## 7 UXHPKDAlandscapearchitect@yahoo.com landscape architect
## 111 DAHPAM.DAHPAM@NJSVhomeandgarden.biz home and garden
## 121 OIFW@hotmail.com
## 16 EJPJI.EJPJI@gmail.com home and garden
## 329 GHJQEJ.GHJQEJ@FGIWnursery.com
## 89 WGIEEC@designerDOQ.net designer
## 284 JWC.JWC@outdoorlivingIUNT.co outdoor living
## 490 BKQDM2@homeandgardenBAHG.co home and garden
## 420 MAOY@gmail.com landscape engineer
## 360 FIGDKKCFarchitect@gmail.com
## 67 XMTHWEMAgrower@gmail.com grower
## 270 ZMWY.ZMWY@landscapearchitectNQY.biz
## 306 supplyJQBG@yahoo.com
## 96 PGPLROA.PGPLROA@yahoo.com landscaping
## 6 AWM.AWM@AZVsupply.net supply
## 172 MGQFZY41@yahoo.com designer
## 256 RENSsupply@yahoo.com supply
## 509 gardeningFRGAONB@yahoo.com gardening
## 405 IVOKML.IVOKML@outdoorCOO.com outdoor
## 161 MKZTC@JJClandscapeengineer.co
## 413 HFCA.HFCA@landscapedesignerOYLP.biz landscape designer
## 400 IPJETONgarden@yahoo.com garden
## 192 landscapingQEQO@yahoo.com landscaping
## 9 CMHNZ@aol.com designer
## 251 ZCPGNMAB1@homeandgardenBILH.com home and garden
## 230 WQNKJZIO@GRYPlandscapedesigner.biz landscape designer
## 250 DTSPOI.DTSPOI@EPHGhomeandgarden.biz
## 46 FDTX467@yahoo.com garden
## 330 ANUO1@outdoorCOO.com outdoor
## 293 architect@store.bigcommerce.com architect
## 61 JQCWCHWNsupply@gmail.com supply
## 40 NWINEK.NWINEK@gmail.com
## 85 JYQZVK345@hotmail.com grower
## 374 RUIHFZ3@outdoorCOO.com outdoor
## 454 GSCVERS1@orchardFRP.co orchard
## 537 MRPFQHE.MRPFQHE@CDZnursery.biz
## 321 TPVNU@UIIhg.biz hg
## 39 gardenYFAXV@yahoo.com garden
## 323 homeandgardenGBMCP@yahoo.com home and garden
## 232 landscapeengineerENLFCJBI@yahoo.com landscape engineer
## 104 FBIJLJoutdoorliving@yahoo.com
## 196 JRMsupply@gmail.com supply
## 382 ONZF1@homeandgardenXYT.com home and garden
## 126 landscaperNZVDCV@myshopify.com
## 370 MLLTTnursery@yahoo.com nursery
## 538 landscapearchitectHQWGCXYF@yahoo.com landscape architect
## 181 ARTFWHB1@QTOYlandscapearchitect.com landscape architect
## 457 XPCPZTR825@cablewest.net
## 152 ULFTOlandscapeengineer@gmail.com landscape engineer
## 450 QBYnursery@yahoo.com nursery
## 498 UVS.UVS@CDZnursery.biz nursery
## 214 BVMOGF3@designerMHM.com designer
## 285 landscapedesignerORRIAFMH@yahoo.com landscape designer
## 349 growerLHVRMG@store.bigcommerce.com grower
## 267 gardeningOTFAOL@store.bigcommerce.com gardening
## 514 UODYSKE.UODYSKE@vineyardJDVF.co vineyard
## 377 landscapedesigner@store.bigcommerce.com
## 292 LRSZUlandscaping@gmail.com
## 501 PANdesigner@store.bigcommerce.com designer
## 123 LAYVPOHQ@IAQFlandscaper.net
## 199 MCP.MCP@supplyLMX.net supply
## 325 CRTVSC.CRTVSC@growerZVD.net grower
## 102 MKBDS.MKBDS@homeandgardenXYT.com home and garden
## 273 YUXSM@CTEhg.biz hg
## 266 SDEBAhg@yahoo.com hg
## 318 PFYRXWG@JSDLlandscapeengineer.biz landscape engineer
## 300 TQFW834@hotmail.com
## 448 SXPORH.SXPORH@gmail.com designer
## 532 MLBXHSDplants@gmail.com plants
## 375 landscapingFEHNYI@yahoo.com landscaping
## 435 XUUM.XUUM@yahoo.com hg
## 23 RNSBQEQ@designerUWU.net designer
## 178 TZGXLOU@yahoo.com landscape architect
## 518 homeandgarden1@shop.magento.com home and garden
## 412 OGHQNQB@FSUIgarden.co garden
## 56 hg@myshopify.com hg
## 444 outdoorliving@store.bigcommerce.com
## 173 TSXAoutdoorliving@yahoo.com outdoor living
## 427 landscaper@shop.magento.com
## 247 gardening@shop.magento.com gardening
## 421 HCY1@LXGKoutdoorliving.com outdoor living
## 125 nursery@myshopify.com
## 124 KAKD2@growerXOZ.co grower
## 169 KSUsupply@yahoo.com supply
## 384 outdoorlivingKMXSLQE@yahoo.com outdoor living
## 59 YXLGA2@QTOYlandscapearchitect.com landscape architect
## 337 supplyGREBYRB@yahoo.com supply
## 418 ZBQLI.ZBQLI@UIIhg.biz hg
## 500 VAFBKXnursery@yahoo.com nursery
## 447 nursery1@myshopify.com nursery
## 440 QAO.QAO@SYYLoutdoorliving.biz outdoor living
## 34 FZMPJGS.FZMPJGS@ERPsupply.biz supply
## 80 RQBSGJE79@gmail.com
## 262 OXJV@nurseryBYY.biz nursery
## 497 HBThomeandgarden@shop.magento.com home and garden
## 45 ARPY@gmail.com home and garden
## 527 QCZ.QCZ@yahoo.com
## 281 hgMUIOZOUW@gmail.com hg
## 58 GFBUPW@QYTEorchard.biz orchard
## 204 ELECJE@gmail.com
## 280 orchardCBJAMW@gmail.com orchard
## 100 THAXFZDZ.THAXFZDZ@outdoorZUV.com outdoor
## 335 gardenHSC@yahoo.com garden
## 141 FYPHIZDB.FYPHIZDB@landscapingITLV.net
## 252 NCBALM.NCBALM@WVSEarchitect.biz architect
## 315 growerKPSV@gmail.com grower
## 41 JJO2@vineyardJDVF.co vineyard
## 224 COP@TPOQarchitect.net architect
## 130 SILTVgarden@myshopify.com garden
## 416 growerRSALEWZU@shop.magento.com grower
## 158 outdoorUSU@store.bigcommerce.com
## 122 supplyQAYUYNEM@gmail.com supply
## 255 BIAW1@outdoorNLP.co outdoor
## 162 PQUTYAdesigner@myshopify.com
## 419 IRAGgarden@yahoo.com garden
## 42 MMWHLFF@VKYVlandscapeengineer.net landscape engineer
## 283 AZPENFXRnursery@myshopify.com nursery
## 219 outdoor@myshopify.com
## 345 XKFWXSQT734@gmail.com orchard
## 388 TPVECW3@IHBhg.co hg
## 481 RFADWYND@outdoorlivingIUNT.co outdoor living
## 206 TFSICTYT@QYTEorchard.biz orchard
## 432 vineyardGJRWNUK@yahoo.com vineyard
## 101 CDZNEIAK393@gmail.com landscape architect
## 253 XXXKHYZWoutdoor@shop.magento.com outdoor
## 95 RNUALR67@gmail.com outdoor living
## 299 outdoorDWC@gmail.com outdoor
## 540 AREUSXXZ1@landscapeengineerNPB.co landscape engineer
## 93 LKVLTXZ209@gmail.com designer
## 402 JRMCJSL@gardeningNZAZ.net gardening
## 453 designerSCFZ@gmail.com designer
## 428 gardeningMUC@yahoo.com gardening
## 480 FCFS14@aol.com landscape architect
## 502 TRHREIK.TRHREIK@outdoorBOT.net outdoor
## 346 landscapedesignerIJSCRG@gmail.com landscape designer
## 539 GXMX.GXMX@landscapearchitectIDW.biz landscape architect
## 127 OXKVO@JGQAgardening.net gardening
## 310 VOT2@nurseryUZK.co nursery
## 529 gardening@myshopify.com gardening
## 343 landscapeengineerTOHQPKI@yahoo.com landscape engineer
## 76 RQJZDD@DKNvineyard.biz vineyard
## 248 MASE.MASE@homeandgardenYHB.net home and garden
## 205 ZEMBM.ZEMBM@AJFlandscapeengineer.biz landscape engineer
## 468 QJKSW.QJKSW@architectFPEV.net architect
## 476 hgMWURZVSC@myshopify.com hg
## 2 KTCGW@homeandgardenXYT.com home and garden
## 368 plantsSGT@gmail.com plants
## 407 LDOJ@CMJoutdoorliving.net outdoor living
## 21 plantsONVV@yahoo.com plants
## 11 RGSVXHarchitect@gmail.com architect
## 131 UBR2@vineyardJDVF.co vineyard
## 296 EWMMSO3@QRSoutdoorliving.co outdoor living
## 68 NHEOA.NHEOA@IHBhg.co hg
## 151 ZFQEFEA@nurseryVRJ.biz nursery
## 106 orchardJAG@gmail.com orchard
## 458 WXDHOUO3@hgSDSM.co hg
## 27 GJXHVNK@HRKMgrower.biz
## 483 landscapearchitectLKT@yahoo.com landscape architect
## 135 LPPBBLOWgrower@yahoo.com grower
## 445 WXT.WXT@vineyardJSLB.net vineyard
## 31 JOFVMEDTlandscaper@yahoo.com landscaper
## 535 ZZLZPCUlandscaper@yahoo.com landscaper
## 12 GDBZ@nurseryUZK.co
## 198 FPHF.FPHF@gmail.com architect
## 24 MIHJ.MIHJ@yahoo.com gardening
## 390 EIOHVZTGoutdoor@myshopify.com
## 71 CWK2@hgSDSM.co hg
## 73 LBPUQZUT.LBPUQZUT@DMLplants.biz plants
## 90 landscapeengineerWME@gmail.com landscape engineer
## 64 JHQO273@yahoo.com landscaping
## 372 AGNgrower@gmail.com
## 277 XYDE.XYDE@EPHGhomeandgarden.biz home and garden
## 442 outdoorlivingICLWD@yahoo.com outdoor living
## 415 RYAEUoutdoor@yahoo.com outdoor
## 18 JJQMLJJ.JJQMLJJ@gmail.com landscaping
## 84 RXC3@homeandgardenXYT.com home and garden
## 149 hgLOPN@gmail.com hg
## 305 GZCTDDG3@hgSDSM.co
## 44 hgMHKDIN@yahoo.com
## 265 ZKZJE@yahoo.com gardening
## 387 hgTCVTMUFT@yahoo.com hg
## 308 ZVOSMQX@nurseryUZK.co nursery
## 60 KVHJYPVL.KVHJYPVL@landscapeengineerNPB.co landscape engineer
## 456 landscaperRVSLKBPA@myshopify.com landscaper
## 176 NRF.NRF@XTMJlandscapedesigner.net landscape designer
## 474 WTFMZKgarden@gmail.com garden
## 543 NOSKIDHL2@growerXOZ.co grower
## 424 landscaping@shop.magento.com landscaping
## 119 UYQ3@QRSoutdoorliving.co outdoor living
## 115 DCEGOMQH.DCEGOMQH@ITQnursery.com
## 260 FWKP@designerDOQ.net
## 317 nurseryLNZQ@yahoo.com nursery
## 186 JQZAI.JQZAI@orchardPRGV.net orchard
## 143 UTDTNlandscaping@yahoo.com landscaping
## 179 ETBWHQXD.ETBWHQXD@homeandgardenZMX.biz home and garden
## 197 FMXVG.FMXVG@XQNlandscapearchitect.net landscape architect
## 268 plantsPNFMH@yahoo.com
## 469 PAGR.PAGR@outdoorNLP.co outdoor
## 160 HLSplants@shop.magento.com plants
## 441 DXQYU.DXQYU@landscapearchitectZFH.biz landscape architect
## 463 FFFYBVDD@landscapedesignerOYLP.biz landscape designer
## 48 FIOPR1@JOCBhomeandgarden.com home and garden
## 431 XCNFRRL.XCNFRRL@MLTvineyard.biz
## 167 YFYSFJF2@landscapeengineerNPB.co landscape engineer
## 334 homeandgardenIDNQXJ@yahoo.com home and garden
## 50 outdoorlivingHNHFB@store.bigcommerce.com outdoor living
## 66 DOHFhomeandgarden@yahoo.com
## 148 LEXDG@gardeningNZAZ.net gardening
## 356 QGNSLorchard@gmail.com orchard
## 320 BFDPZZ@hotmail.com
## 63 JVFRBWCH.JVFRBWCH@QPBsupply.biz supply
## 53 IIWJDJ@NBEoutdoor.biz outdoor
## 132 landscapearchitectYDZ@yahoo.com landscape architect
## 213 AFDMgardening@myshopify.com gardening
## 478 QGBPZWC@yahoo.com orchard
## 72 ODOGKZV.ODOGKZV@landscapearchitectZFH.biz landscape architect
## 177 landscapearchitectDLUP@yahoo.com landscape architect
## 392 GODFZWCJplants@myshopify.com plants
## 397 CXTT.CXTT@landscapedesignerNWK.net landscape designer
## 528 ZFUsupply@shop.magento.com supply
## 245 ODR1@orchardFRP.co orchard
## 455 NXGXF.NXGXF@QCXlandscaper.net landscaper
## 524 DKHWEJD@WYJsupply.biz supply
## 510 VAUTJW.VAUTJW@outdoorACYN.biz outdoor
## 410 HMS.HMS@KCPgarden.net garden
## 43 INPMCGVW.INPMCGVW@UNKnursery.net nursery
## 508 HFSJYEOE1@ITQnursery.com nursery
## 240 BEQQlandscapearchitect@gmail.com landscape architect
## 79 WJIH.WJIH@architectXWF.biz architect
## 466 QUAGK2@JJClandscapeengineer.co landscape engineer
## 472 HFHNOX@outdoorlivingJSUW.biz outdoor living
## 513 STPSTAJplants@yahoo.com plants
## 526 KBE1@outdoorZUV.com outdoor
## 531 ZRYZPTH585@comcast.net plants
## 303 BLVTHHH@att.net gardening
## 188 QQJO.QQJO@JJClandscapeengineer.co landscape engineer
## 338 BLSDNUQ.BLSDNUQ@yahoo.com
## 533 BICDNDClandscaper@yahoo.com
## 98 vineyard@shop.magento.com vineyard
## 259 DQH@INSHoutdoorliving.net outdoor living
## 139 landscaper1@shop.magento.com landscaper
## 286 GTSJLEKS3@JOCBhomeandgarden.com home and garden
## 393 OTFTRAgardening@shop.magento.com gardening
## 459 NQRYP.NQRYP@landscapedesignerKMHM.biz landscape designer
## 237 AHL.AHL@yahoo.com outdoor
## 495 DIKJYNLQgrower@shop.magento.com grower
## 398 BTOGHL@architectAFJ.biz architect
## 19 gardeningYZA@gmail.com gardening
## 352 ZJXQZW1@designerMHM.com designer
## 359 SPERMWST.SPERMWST@outdoorNLP.co outdoor
## 394 TPNR@cablewest.net supply
## 146 ZXLWSUV2@hgSDSM.co hg
## 54 LRMCIYXG@UIIhg.biz hg
## 168 landscaperDMAC@myshopify.com landscaper
## 290 landscapedesignerOISQIT@shop.magento.com landscape designer
## 449 gardeningLYTWG@myshopify.com gardening
## 1 POYZ@yahoo.com garden
## 78 XYZTI.XYZTI@LXGKoutdoorliving.com
## 333 architectOZPR@yahoo.com
## 238 AJNGJarchitect@gmail.com architect
## 138 UUAJN@ITQnursery.com
## 3 YOQUFSG.YOQUFSG@EVTlandscapearchitect.biz landscape architect
## 210 JPBZLvineyard@gmail.com vineyard
## 404 QOBXXLA@yahoo.com outdoor
## 452 CLETVVPD2@outdoorCOO.com outdoor
## 8 orchardIQCXZMS@yahoo.com orchard
## 163 vineyardZSDYS@gmail.com vineyard
## 182 KPTE@supplyTXL.net supply
## 22 RDGZKDG.RDGZKDG@ACZMvineyard.biz vineyard
## 14 designer1@store.bigcommerce.com designer
## 165 outdoorlivingJTRUU@yahoo.com outdoor living
## 519 LNHKZD.LNHKZD@AJFlandscapeengineer.biz landscape engineer
## 193 nurseryOHHF@gmail.com nursery
## 222 EUTYDVEA2@plantsZYUD.com plants
## 254 RVIERVCA@TPOQarchitect.net architect
## 279 ZXNKOWWW@gardenHPZF.net garden
## 475 architectFCUZWDGB@yahoo.com architect
## 49 ZLO2@landscapeengineerNPB.co landscape engineer
## 227 JLOKI.JLOKI@landscaperHJBS.biz landscaper
## 302 INVJAOXH.INVJAOXH@outdoorCOO.com
## 236 GKWAPWOE.GKWAPWOE@JGQAgardening.net
## 331 YJRF3@designerMHM.com
## 340 WJYOBH@vineyardBSWE.net vineyard
## 185 homeandgarden@shop.magento.com home and garden
## 272 LMRY.LMRY@AKEWnursery.net nursery
## 301 TQZOPKJL@DDJoutdoorliving.net outdoor living
## 347 KGPFIML@SJLarchitect.biz architect
## 357 GGN@RDULhomeandgarden.net home and garden
## 484 SKQGJV@gmail.com
## 316 ENUdesigner@yahoo.com designer
## 425 GBLANdesigner@gmail.com designer
## 36 ZFFMYRX863@gmail.com landscape engineer
## 358 IEBI@att.net supply
## 312 TDII@landscapedesignerQXNA.net landscape designer
## 403 UII@YMDVoutdoorliving.biz outdoor living
## 189 IIG.IIG@VMFZdesigner.net designer
## 209 EEYVFF.EEYVFF@gardeningNZAZ.net gardening
## 221 RFXLRTJA.RFXLRTJA@vineyardBSWE.net vineyard
## 276 KIGW2@FGIWnursery.com nursery
## 215 RJBMQ41@aol.com
## 433 CNARDLJB2@outdoorlivingIUNT.co
## 436 orchardOLQDCCPJ@yahoo.com
## 422 CFC@outdoorlivingYQT.biz outdoor living
## 430 GSLTJ.GSLTJ@gmail.com supply
## 492 UNFOOD@VMFZdesigner.net designer
## 37 QIMlandscapearchitect@myshopify.com landscape architect
## 228 hg@shop.magento.com hg
## 380 ZBM@vineyardBSWE.net vineyard
## 108 WOSYD.WOSYD@nurseryFVPR.biz nursery
## 324 landscaperLVI@myshopify.com landscaper
## 86 YUZEVIH.YUZEVIH@DKNvineyard.biz vineyard
## 116 SAMZYS2@homeandgardenBAHG.co home and garden
## 195 designerBYQPFF@gmail.com designer
## 304 gardening1@myshopify.com gardening
## 156 EIDT.EIDT@growerLSE.net grower
## 322 AWBHOUWL@orchardQHR.net orchard
## 5 GGYDNEE3@homeandgardenBAHG.co
## 278 landscapeengineerJFHJLD@shop.magento.com
## 26 IFYAG.IFYAG@FWXlandscapedesigner.net landscape designer
## 180 nursery@shop.magento.com nursery
## 295 RSWTJQ@landscapearchitectLPA.net landscape architect
## 401 landscapeengineerQPE@gmail.com landscape engineer
## 239 WKL@outdoorlivingCMXN.biz outdoor living
## 348 ZFAPYJOM@orchardPRGV.net
## 174 PCINMT@outdoorlivingADYF.biz outdoor living
## 534 LEQKWCNI.LEQKWCNI@yahoo.com
## 70 ZEGOCQKUlandscapeengineer@yahoo.com landscape engineer
## 208 ZMGJ@landscapedesignerARIT.net
## 244 JPKLILL.JPKLILL@QCXlandscaper.net landscaper
## 364 DBA@gmail.com
## 411 ZPXYMRIY@gmail.com outdoor living
## 107 nurseryIEOVIZP@shop.magento.com nursery
## 183 BEL85@comcast.net designer
## 218 VSV@MZRDplants.net plants
## 87 supplyNEWTHE@myshopify.com supply
## 147 XJRM.XJRM@DFSvineyard.net vineyard
## 439 LVOOXZ2@homeandgardenBILH.com home and garden
## 120 outdoorlivingTJSTD@gmail.com outdoor living
## 140 MNS3@growerXOZ.co grower
## 503 UKWLKSK2@designerMHM.com
## 65 KRNWIYQA.KRNWIYQA@architectEFR.biz architect
## 74 ODMW1@landscapeengineerNPB.co landscape engineer
## 92 PXY.PXY@architectFPEV.net architect
## 137 XYIXATHS3@supplyUIHY.co supply
## 396 NSGCYYKY@MXGoutdoor.net
## 473 TDVCBAgarden@yahoo.com garden
## 307 NPLFRT.NPLFRT@plantsZYUD.com plants
## 313 VRLUNCQlandscaper@gmail.com landscaper
## 363 XSQNKRSlandscapedesigner@shop.magento.com
## 516 EXJIUF@outdoorlivingIUNT.co outdoor living
## 57 QZDGXONM.QZDGXONM@ITQnursery.com nursery
## 231 BLBRRGH1@FSUIgarden.co garden
## 242 SEP@architectFPEV.net architect
## 294 HWOOPDChg@myshopify.com hg
## 336 RPNZJX.RPNZJX@GCPZgarden.biz garden
## 371 VFSPYST@landscapingNNH.net landscaping
## 517 BZHM975@hotmail.com
## 77 HDRRTVFO@yahoo.com
## 344 LLTNUGN3@FGIWnursery.com nursery
## 83 XYAXQS.XYAXQS@landscapearchitectNQY.biz landscape architect
## 144 FZHJ@nurseryCJB.net nursery
## 145 KSMXOTFG@homeandgardenBILH.com home and garden
## 175 homeandgardenFOB@store.bigcommerce.com home and garden
## 515 SDQY2@IHBhg.co hg
## 117 BPUJPR.BPUJPR@architectYBS.net architect
## 423 BLD.BLD@homeandgardenMMT.net home and garden
## 499 OAQ.OAQ@IEXFplants.net plants
## 288 WJPU3@hgSDSM.co hg
## 298 ENPBE@landscaperUCZ.net landscaper
## 383 HRTK2@homeandgardenBAHG.co
## 399 PXMKDGIM.PXMKDGIM@EQLlandscapeengineer.biz landscape engineer
## 164 TZNGPT.TZNGPT@orchardQHR.net orchard
## 212 supply@shop.magento.com supply
## 342 landscapeengineer1@store.bigcommerce.com landscape engineer
## 505 MJIHSOO.MJIHSOO@architectUYID.biz architect
## 97 VUCSFoutdoor@yahoo.com outdoor
## 235 PXQMU@gardeningFMK.net gardening
## 446 TOSK2@growerXOZ.co grower
## 460 XVEP@SAVarchitect.biz
## 191 LXV1@LXGKoutdoorliving.com
## 287 JJTHBC.JJTHBC@supplyTXL.net
## 332 PVSJNnursery@gmail.com nursery
## 488 IQOEJCU.IQOEJCU@OLUvineyard.biz vineyard
## 521 DES@gardenHPZF.net garden
## 264 WFTIWIIQ@JSZlandscapeengineer.biz landscape engineer
## 489 ENP.ENP@homeandgardenMMT.net home and garden
## 94 CKRPH2@outdoorZUV.com outdoor
## 263 CAUFRW3@designerMHM.com designer
## 291 supplyVOPJWOJA@gmail.com supply
## 351 VSJU@EPHGhomeandgarden.biz home and garden
## 211 designer@shop.magento.com designer
## 339 IHCTRX@ZDKlandscapeengineer.biz landscape engineer
## 353 UAW2@nurseryUZK.co
## 506 designer@store.bigcommerce.com designer
## 15 landscapeengineer@shop.magento.com landscape engineer
## 153 EDSLoutdoor@yahoo.com outdoor
## 341 landscapedesigner@myshopify.com landscape designer
## 271 ZRBNXY3@landscapeengineerNPB.co landscape engineer
## 150 vineyardLLU@gmail.com vineyard
## 246 REIY3@homeandgardenBILH.com home and garden
## 275 KDHEFZ@PCAsupply.biz supply
## 437 supplyRJQHOBFI@myshopify.com supply
## 470 KJTMEJWsupply@gmail.com supply
## 33 ZYJAIF1@growerXOZ.co grower
## 38 KLJMF@hgGOGP.biz
## 155 ZACT.ZACT@designerWSID.biz designer
## 485 HVK.HVK@plantsAXM.net plants
## 4 SOSNEJAL.SOSNEJAL@DXKDhg.net
## 25 HCM@outdoorACYN.biz outdoor
## 166 MRUDR.MRUDR@outdoorEII.net outdoor
## 367 TXMNT.TXMNT@nurseryBYY.biz nursery
## 496 MCQYJ@SWJVoutdoor.net outdoor
## 194 ADPKJ.ADPKJ@gardenNOT.biz garden
## 55 landscapedesignerXFUKG@gmail.com landscape designer
## 171 CXTPJJDG@outdoorZUV.com outdoor
## 282 QGQRDR.QGQRDR@outdoorACYN.biz outdoor
## 530 KULHO@growerGRT.net grower
## 229 LJNEROXoutdoor@myshopify.com outdoor
## 373 BMHF@aol.com landscaper
## 429 landscapeengineer@store.bigcommerce.com
## 511 gardenPTZNRFK@store.bigcommerce.com garden
## 91 APYFE@JGQAgardening.net gardening
## 109 SASKJL@AFSsupply.biz supply
## 114 QPHNQTAK@comcast.net hg
## 202 HPCILFJD@gardeningSUXV.net gardening
## 376 BJZDCEQF.BJZDCEQF@orchardFRP.co orchard
## 507 LVZ3@plantsZYUD.com plants
## 512 QBRO.QBRO@yahoo.com home and garden
## 105 SOBQVEU.SOBQVEU@gmail.com outdoor
## 118 OYYWSXNP.OYYWSXNP@MHSSgardening.biz gardening
## 223 landscapingMTR@yahoo.com landscaping
## 311 nursery1@myshopify.com nursery
## 443 RHC1@supplyUIHY.co supply
## 461 CGNLLTCM@OMRAoutdoor.net outdoor
## 482 BILXXBT@nurseryIGLY.net nursery
## 520 WIIVD3@QRSoutdoorliving.co outdoor living
## 113 WCOTJ@nurseryZAS.biz
## 261 YJXMEQMAlandscapedesigner@store.bigcommerce.com landscape designer
## 379 landscaper@myshopify.com landscaper
## 494 OUX.OUX@outdoorAPU.biz outdoor
## 69 LLUNQ@SWJVoutdoor.net outdoor
## 234 HDPP@SYYLoutdoorliving.biz outdoor living
## 381 CYMFVAIF.CYMFVAIF@gardenLNRB.biz garden
## 406 PAAM1@ITQnursery.com nursery
## 477 LXM@gmail.com
## 491 QCX.QCX@FSUIgarden.co garden
## 541 HSIEGEET.HSIEGEET@IHBhg.co hg
## 544 BIDE.BIDE@LRZAgardening.biz gardening
## 82 WMTAGSK1@homeandgardenBILH.com home and garden
## 128 EFA.EFA@TPQHsupply.biz
## 187 IMU@HMEgrower.biz grower
## 226 ZHGS.ZHGS@QYTEorchard.biz orchard
## 354 HAW1@QTOYlandscapearchitect.com landscape architect
## 486 GIPOAGGF@FSNgrower.net grower
## 523 WFPCPGY3@JOCBhomeandgarden.com home and garden
## 52 NMI1@orchardFRP.co
## 129 ZWGA@designerDOQ.net
## 157 CJKNF.CJKNF@QWOlandscapedesigner.net landscape designer
## 200 QHCNLZKW@nurseryBYY.biz nursery
## 362 landscapedesigner@shop.magento.com landscape designer
## 378 FVDILRRC.FVDILRRC@MBOJvineyard.net vineyard
## 542 UHOJRMQQ.UHOJRMQQ@HRKMgrower.biz grower
## 20 VSIU@homeandgardenBAHG.co home and garden
## 274 AYW@outdoorlivingYQT.biz outdoor living
## 319 UJHD@DMLplants.biz plants
## 385 REWAZG@QSXlandscaping.biz landscaping
## 434 ZIK.ZIK@HRKMgrower.biz grower
## 487 QLWJDQIV@architectOAH.net architect
## 29 LFBUPM@hotmail.com supply
## 47 RXTTIJT.RXTTIJT@DAIEdesigner.net designer
## 81 VWVAUB@PDLarchitect.biz architect
## 203 PWUWHK.PWUWHK@vineyardJDVF.co
## 257 UAAGVHP@nurseryUZK.co
## 269 VYPYPPD@MWNplants.biz plants
## 391 DYB@AFSsupply.biz supply
## 465 VRBIERL.VRBIERL@FSUIgarden.co garden
## 525 UEBL2@vineyardJDVF.co vineyard
## 103 GLJYL.GLJYL@architectXWF.biz architect
## 133 HTOR@PCJLlandscapedesigner.biz
## 159 LKWABorchard@gmail.com orchard
## 220 IZRR.IZRR@growerLSE.net grower
## 243 AJZKWWB2@JOCBhomeandgarden.com home and garden
## 314 homeandgardenHZKZEPBX@shop.magento.com
## 328 OLJ@QRSoutdoorliving.co outdoor living
## 389 IVCPTM.IVCPTM@outdoorCOO.com outdoor
## 75 LPXPBK@JGTlandscapeengineer.biz
## 170 KPTWDSOC@landscapeengineerFZL.biz landscape engineer
## 190 FRDPCX@UOSlandscapeengineer.biz landscape engineer
## 467 EKOJI.EKOJI@outdoorNLP.co outdoor
## 32 NUTN.NUTN@QSXlandscaping.biz landscaping
## 62 HXCX@LNIUnursery.net nursery
## 142 WKYNB@YMDVoutdoorliving.biz outdoor living
## 201 DQCBYX3@homeandgardenBILH.com home and garden
## 217 ZLJD2@FGIWnursery.com
## 233 XKTWIN.XKTWIN@gardeningSUXV.net gardening
## 504 XRFK@FPZDgarden.net garden
## 13 GICZGLZ3@QTOYlandscapearchitect.com landscape architect
## 112 TIUBW@growerZXFK.biz grower
## 134 BFEPQJgrower@shop.magento.com grower
## 355 NYSU.NYSU@HKKSnursery.biz nursery
## 464 EPO@VPPKarchitect.net
## 493 YHJEX.YHJEX@LXGKoutdoorliving.com outdoor living
## 522 NYL@HTKNplants.net plants
## 154 QZLJJIPX.QZLJJIPX@APQhg.net hg
## 414 SGHH@JJClandscapeengineer.co landscape engineer
## 438 WWCJYPYG.WWCJYPYG@CDZnursery.biz nursery
## 99 TZIO.TZIO@homeandgardenMMT.net home and garden
## 10 CWDA.CWDA@orchardOMA.biz orchard
## 326 BATSJ3@designerMHM.com designer
## 30 XRQQY@gmail.com home and garden
## 35 NZOFCR@homeandgardenQNEF.net home and garden
## 51 HUOUO67@cablewest.net gardening
## 184 WREY@plantsAXM.net plants
## 225 ASSBJMLB.ASSBJMLB@vineyardHIYM.net vineyard
## 241 LSY.LSY@hgRRF.biz
## 249 YEYH.YEYH@yahoo.com hg
## 327 BIFGJ2@QTOYlandscapearchitect.com landscape architect
## 361 AEXL@AJFlandscapeengineer.biz landscape engineer
## 365 IGDPY.IGDPY@OWLsupply.biz supply
## 386 UORYGHL.UORYGHL@OFVDhg.net hg
## 395 TAO.TAO@gardenNOT.biz garden
## 409 NCBXUD.NCBXUD@DZMoutdoorliving.biz outdoor living
## 417 JMRLET.JMRLET@EJTFarchitect.biz architect
## 426 DFP.DFP@landscapeengineerLIQG.biz landscape engineer
## 451 OAB@JSZlandscapeengineer.biz landscape engineer
## 471 CPA@homeandgardenVHZ.net home and garden
## relationship_length site_visits
## 28 30 16227
## 350 30 14585
## 289 30 14041
## 408 30 5862
## 88 30 3789
## 369 30 3750
## 462 30 3587
## 216 30 3476
## 297 30 3072
## 366 30 2858
## 110 24 2849
## 136 21 2787
## 479 19 2680
## 536 30 1739
## 17 11 1709
## 207 4 1657
## 309 30 1623
## 258 23 1564
## 7 24 1516
## 111 20 1504
## 121 29 1492
## 16 30 1462
## 329 30 1451
## 89 30 1445
## 284 9 1404
## 490 30 1342
## 420 22 1292
## 360 24 1177
## 67 30 1134
## 270 30 1106
## 306 30 1045
## 96 7 1041
## 6 30 993
## 172 6 971
## 256 28 955
## 509 28 935
## 405 30 923
## 161 16 914
## 413 10 912
## 400 10 894
## 192 30 879
## 9 30 856
## 251 20 843
## 230 30 834
## 250 30 825
## 46 3 818
## 330 16 804
## 293 5 778
## 61 9 762
## 40 20 747
## 85 30 734
## 374 22 734
## 454 22 717
## 537 15 701
## 321 30 667
## 39 18 652
## 323 12 644
## 232 30 638
## 104 8 631
## 196 12 628
## 382 17 627
## 126 6 613
## 370 21 612
## 538 12 596
## 181 30 591
## 457 30 590
## 152 6 588
## 450 6 554
## 498 26 554
## 214 19 547
## 285 12 546
## 349 6 545
## 267 5 536
## 514 4 526
## 377 11 516
## 292 11 512
## 501 11 500
## 123 30 495
## 199 21 475
## 325 22 474
## 102 8 471
## 273 22 469
## 266 10 465
## 318 24 465
## 300 30 464
## 448 4 462
## 532 14 462
## 375 11 459
## 435 7 458
## 23 9 454
## 178 13 453
## 518 6 452
## 412 14 443
## 56 8 431
## 444 3 421
## 173 30 412
## 427 6 409
## 247 13 403
## 421 15 400
## 125 19 397
## 124 6 394
## 169 9 392
## 384 13 392
## 59 5 386
## 337 9 385
## 418 19 384
## 500 4 381
## 447 4 358
## 440 19 354
## 34 30 352
## 80 24 352
## 262 30 347
## 497 4 345
## 45 5 344
## 527 2 341
## 281 22 333
## 58 30 324
## 204 19 323
## 280 30 318
## 100 14 310
## 335 7 310
## 141 30 307
## 252 13 305
## 315 5 302
## 41 16 301
## 224 8 301
## 130 13 300
## 416 7 300
## 158 8 299
## 122 14 298
## 255 6 298
## 162 5 296
## 419 8 294
## 42 14 292
## 283 6 291
## 219 6 288
## 345 2 286
## 388 30 286
## 481 4 283
## 206 30 281
## 432 23 276
## 101 15 275
## 253 10 275
## 95 3 274
## 299 7 274
## 540 22 272
## 93 5 269
## 402 8 268
## 453 2 266
## 428 5 263
## 480 22 254
## 502 19 251
## 346 13 250
## 539 26 250
## 127 30 248
## 310 29 247
## 529 5 245
## 343 4 240
## 76 2 239
## 248 13 231
## 205 10 228
## 468 19 228
## 476 2 227
## 2 30 225
## 368 2 224
## 407 15 221
## 21 24 220
## 11 30 216
## 131 6 216
## 296 13 213
## 68 26 212
## 151 14 212
## 106 1 211
## 458 6 208
## 27 6 207
## 483 6 204
## 135 2 203
## 445 4 201
## 31 6 199
## 535 6 188
## 12 23 186
## 198 10 184
## 24 12 183
## 390 5 182
## 71 4 180
## 73 30 180
## 90 5 180
## 64 4 178
## 372 5 175
## 277 15 174
## 442 4 174
## 415 30 171
## 18 1 170
## 84 5 170
## 149 4 169
## 305 7 169
## 44 3 167
## 265 5 167
## 387 7 167
## 308 2 161
## 60 18 160
## 456 8 160
## 176 16 157
## 474 2 157
## 543 11 154
## 424 10 153
## 119 20 151
## 115 2 150
## 260 19 150
## 317 6 150
## 186 3 149
## 143 7 148
## 179 11 147
## 197 30 147
## 268 6 147
## 469 15 146
## 160 3 144
## 441 9 144
## 463 4 144
## 48 12 143
## 431 2 142
## 167 2 140
## 334 5 139
## 50 3 138
## 66 3 135
## 148 8 135
## 356 8 135
## 320 19 130
## 63 3 127
## 53 8 124
## 132 4 124
## 213 4 124
## 478 18 123
## 72 7 122
## 177 2 121
## 392 3 119
## 397 11 118
## 528 10 118
## 245 14 117
## 455 9 115
## 524 7 115
## 510 6 114
## 410 23 113
## 43 8 112
## 508 6 112
## 240 4 111
## 79 19 108
## 466 6 107
## 472 5 105
## 513 3 105
## 526 13 104
## 531 7 103
## 303 30 102
## 188 4 101
## 338 4 100
## 533 5 99
## 98 6 98
## 259 4 98
## 139 2 97
## 286 4 97
## 393 7 97
## 459 2 97
## 237 2 96
## 495 2 96
## 398 13 95
## 19 2 94
## 352 5 93
## 359 9 92
## 394 3 92
## 146 4 91
## 54 7 90
## 168 11 90
## 290 5 90
## 449 2 88
## 1 2 86
## 78 13 86
## 333 3 85
## 238 3 82
## 138 8 81
## 3 4 80
## 210 16 80
## 404 9 80
## 452 8 80
## 8 2 79
## 163 8 78
## 182 2 78
## 22 7 77
## 14 8 74
## 165 7 73
## 519 4 72
## 193 6 71
## 222 4 70
## 254 16 70
## 279 9 70
## 475 11 70
## 49 6 69
## 227 2 69
## 302 15 69
## 236 4 68
## 331 16 68
## 340 30 68
## 185 10 67
## 272 1 67
## 301 3 67
## 347 2 67
## 357 1 67
## 484 1 67
## 316 4 66
## 425 7 66
## 36 2 65
## 358 21 65
## 312 13 64
## 403 17 64
## 189 10 63
## 209 6 62
## 221 5 62
## 276 10 61
## 215 18 60
## 433 2 60
## 436 1 59
## 422 2 58
## 430 2 58
## 492 13 58
## 37 3 57
## 228 2 56
## 380 3 55
## 108 6 54
## 324 4 54
## 86 4 53
## 116 10 52
## 195 5 51
## 304 6 51
## 156 2 50
## 322 8 49
## 5 12 48
## 278 5 47
## 26 2 46
## 180 2 46
## 295 9 46
## 401 6 46
## 239 6 45
## 348 1 45
## 174 4 44
## 534 1 44
## 70 12 43
## 208 4 43
## 244 15 43
## 364 1 43
## 411 1 43
## 107 7 42
## 183 7 42
## 218 1 42
## 87 4 41
## 147 1 41
## 439 5 41
## 120 4 40
## 140 6 40
## 503 3 40
## 65 2 38
## 74 6 38
## 92 4 38
## 137 4 38
## 396 12 38
## 473 2 38
## 307 2 37
## 313 2 36
## 363 5 36
## 516 5 36
## 57 6 35
## 231 4 35
## 242 3 35
## 294 1 35
## 336 3 35
## 371 7 35
## 517 15 35
## 77 3 34
## 344 6 34
## 83 2 33
## 144 3 33
## 145 10 33
## 175 1 33
## 515 4 33
## 117 3 32
## 423 2 32
## 499 3 32
## 288 11 31
## 298 8 31
## 383 4 31
## 399 8 31
## 164 3 30
## 212 2 30
## 342 5 30
## 505 4 30
## 97 4 29
## 235 2 29
## 446 1 29
## 460 10 29
## 191 4 28
## 287 3 28
## 332 5 28
## 488 1 28
## 521 3 28
## 264 2 27
## 489 2 27
## 94 14 26
## 263 4 26
## 291 1 26
## 351 3 26
## 211 8 25
## 339 3 25
## 353 4 25
## 506 2 25
## 15 4 24
## 153 2 24
## 341 4 24
## 271 2 23
## 150 1 22
## 246 3 22
## 275 24 22
## 437 5 22
## 470 1 22
## 33 10 21
## 38 3 21
## 155 5 21
## 485 9 21
## 4 4 20
## 25 5 20
## 166 2 20
## 367 2 20
## 496 1 20
## 194 1 19
## 55 1 18
## 171 4 18
## 282 2 18
## 530 4 18
## 229 6 17
## 373 10 17
## 429 4 17
## 511 2 17
## 91 13 16
## 109 2 16
## 114 12 16
## 202 1 16
## 376 1 16
## 507 2 16
## 512 1 16
## 105 1 15
## 118 8 15
## 223 1 15
## 311 1 15
## 443 3 15
## 461 2 15
## 482 3 15
## 520 6 15
## 113 2 14
## 261 6 14
## 379 2 14
## 494 2 14
## 69 1 13
## 234 1 13
## 381 2 13
## 406 1 13
## 477 1 13
## 491 2 13
## 541 2 13
## 544 3 13
## 82 2 12
## 128 7 12
## 187 1 12
## 226 1 12
## 354 3 12
## 486 3 12
## 523 2 12
## 52 12 11
## 129 1 11
## 157 2 11
## 200 1 11
## 362 2 11
## 378 4 11
## 542 1 11
## 20 5 10
## 274 1 10
## 319 2 10
## 385 1 10
## 434 1 10
## 487 1 10
## 29 3 9
## 47 2 9
## 81 2 9
## 203 6 9
## 257 3 9
## 269 1 9
## 391 3 9
## 465 4 9
## 525 1 9
## 103 2 8
## 133 1 8
## 159 1 8
## 220 1 8
## 243 2 8
## 314 2 8
## 328 2 8
## 389 8 8
## 75 3 7
## 170 1 7
## 190 1 7
## 467 1 7
## 32 1 6
## 62 2 5
## 142 1 5
## 201 3 5
## 217 2 5
## 233 1 5
## 504 3 5
## 13 5 4
## 112 1 4
## 134 1 4
## 355 1 4
## 464 3 4
## 493 1 4
## 522 1 4
## 154 1 3
## 414 1 3
## 438 2 3
## 99 2 2
## 10 2 1
## 326 1 1
## 30 1 0
## 35 1 0
## 51 1 0
## 184 1 0
## 225 1 0
## 241 1 0
## 249 1 0
## 327 1 0
## 361 1 0
## 365 1 0
## 386 1 0
## 395 1 0
## 409 1 0
## 417 1 0
## 426 1 0
## 451 1 0
## 471 1 0
potential_200 <- df_rest[ order(-df_rest$site_visits),] %>% head(100)
potential_200 %>% head(20)
## email_address industry
## 28 landscapingCKBNQ@yahoo.com landscaping
## 350 landscapedesignerSWKPTS@yahoo.com landscape designer
## 289 RNYZOEZN@landscapearchitectSGT.net landscape architect
## 408 nurseryTQVU@gmail.com nursery
## 88 WAHWMBQC.WAHWMBQC@JOCBhomeandgarden.com home and garden
## 369 JAL@gmail.com
## 462 EHQKF@HMFUlandscapedesigner.net landscape designer
## 216 HOOQ1@LXGKoutdoorliving.com outdoor living
## 297 outdoorBFVIM@gmail.com outdoor
## 366 UJE@QSXlandscaping.biz landscaping
## 110 designerTUBU@gmail.com designer
## 136 designerMGDU@gmail.com designer
## 479 JFK.JFK@supplyUIHY.co supply
## 536 VJXVKHarchitect@gmail.com architect
## 17 GNTlandscapedesigner@gmail.com
## 207 KQKHlandscapedesigner@yahoo.com landscape designer
## 309 TCIQarchitect@yahoo.com architect
## 258 DTQXlandscapedesigner@yahoo.com landscape designer
## 7 UXHPKDAlandscapearchitect@yahoo.com landscape architect
## 111 DAHPAM.DAHPAM@NJSVhomeandgarden.biz home and garden
## relationship_length site_visits
## 28 30 16227
## 350 30 14585
## 289 30 14041
## 408 30 5862
## 88 30 3789
## 369 30 3750
## 462 30 3587
## 216 30 3476
## 297 30 3072
## 366 30 2858
## 110 24 2849
## 136 21 2787
## 479 19 2680
## 536 30 1739
## 17 11 1709
## 207 4 1657
## 309 30 1623
## 258 23 1564
## 7 24 1516
## 111 20 1504