Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- title: "Recruitment Stratedy For Real Estate Companies"
- author: "Joe Foley ,
- JFoley648@gmail.com"
- output: html_document
- ---
- ```{r setup, include=FALSE}
- knitr::opts_chunk$set(echo = TRUE)
- ```
- The way for Real Estate companies to make more money is to sell more homes . But of course they cannot increase the number of people who want to sell their homes so the only way to increase sales is to sell a larger proportion of those homes that do come on the market.
- There are two sides to a real estate transaction, the **Listing** side and **Selling** side.
- The Listingside markets the home and the Selling side are the ones that found the buyer.
- Like in any sales force some agents are far more succesful than others. Real estate companies try to poach the most succesful agents to switch to their company. And among the agents in particular the comapnies focus on recruiting the Listing agents rather than the Selling agents. The logic here is that no one knows who may find the buyer for the house but if you have the listing you dont care , you will make your money no matter who brings the buyer.
- With this mindset the monthly Real Estate meeting features some version of an Area Graph like a Pie Chart showing how a few agents have the majority of lisitngs and then brainstorming on how to recruit these agents.
- ```{r include=FALSE}
- #############
- # PREFERNCES
- ############
- #eliminate scientific notation
- options(scipen = 999)
- rm(list=ls())
- options(stringsAsFactors = FALSE, digits=6)
- ```
- ```{r include=FALSE}
- ################
- # Packages
- ###############
- library(tidyverse)
- library(data.table)
- library(treemapify)
- library(RColorBrewer)
- # Installing packages
- wants <- c("tidyr","readr","dplyr","tidyverse","tibble","igraph","data.table",
- "plyr","ggplot2","treemapify","treemap")
- has <- wants %in% rownames(installed.packages())
- if(any(!has)) install.packages(wants[!has])
- lapply(wants, library, character.only = TRUE)
- library(dplyr)
- ```
- ```{r include=FALSE}
- #############
- #IMPORT DATA
- #############
- Data<- fread("NorthShore3.csv", header = TRUE, na.strings = c("","NA"))
- ```
- ```{r include=FALSE}
- #Group Data
- detach(package:plyr)
- ListAgentsTotals<- Data %>%
- group_by(Listing_Last) %>%
- summarise(Total = sum(Sold_Price))
- ListAgentsTotals
- View(ListAgentsTotals)
- ```
- ```{r echo=FALSE}
- ###########
- # GRAPH
- ###########
- ##############################
- # The Tree Map
- #############################
- ###
- Tree_Map<- ggplot(ListAgentsTotals,
- aes(area=Total, fill=as.factor(log(1/Total)),
- label=Listing_Last,subgroup = Listing_Last))+
- scale_colour_brewer(palette = "Greens") +
- theme_classic() +
- geom_treemap() +
- # geom_treemap_text(fontface = "italic", colour = "white", place = "centre",grow = TRUE) +
- geom_treemap_subgroup_border(colour="white",size=10) +
- geom_treemap_subgroup_text(place = "centre", grow = T, alpha = 1, colour =
- "white", min.size = 0) +
- theme(legend.position = "none")+
- ggtitle("Ten Listing Agents have about 1/3 of all of the listings")
- Tree_Map
- ```
- But the truth of the matter is that these star Listing agents are not poachable. But the very reason that the star Listing agents are not poachable points to a way forward for real estate companies. The majority of real estate agents work on a 50/50 split . This means that they and their company split the commision evenly. Star Listing agents on the other hand often work on a 70/30 split , that means that for every $100,000 in sales with a 4% commsion , with 2% going to the Selling side and 2% going to the Lising side, they get $1400 while the company earns only $600. This is why the star agents are not poachable. They are making as much commission as they can and new comapanies have nothing more to offer.
- ```{r echo=FALSE}
- Commision.Splits<-fread("Commsion_splits.csv")
- ```
- ```{r echo=FALSE , results='as is'}
- library(knitr)
- kable(Commision.Splits)
- ```
- As the Tree Map illustrates about 10 agents List about 1/3 of a typical suburban real estate market. But it turns out that each star listing agent has a group of Selling agents who sell the star listing agents homes. Year after year the same Selling agents will have the buyers for the same Listing agents. And while individually these Selling agents are not stars, enough of them gathered together can approximate the performance of a star Listing agent. A look at the table shows us that each time the Selling agent sells one of the star Listing agents homes the Selling agents comapany earns mor ethan three times as much money.
- ```{r include=FALSE}
- Data<- fread("NorthShore3.csv", header = TRUE, na.strings = c("","NA"))
- ```
- ```{r include=FALSE}
- wants <- c("tidyr","readr","dplyr","tidyverse","tibble","igraph","data.table",
- "plyr","ggplot2","treemapify","treemap")
- has <- wants %in% rownames(installed.packages())
- if(any(!has)) install.packages(wants[!has])
- lapply(wants, library, character.only = TRUE)
- #library(dplyr)
- ```
- ```{r echo=FALSE}
- Data<- as.data.table(Data)
- ```
- ```{r include=FALSE}
- Data<-Data[!(Data$Listing_Last==Data$Selling_Last) , ]
- ```
- ```{r include=FALSE}
- Data<- na.omit(Data)
- #View(Data)
- ```
- ```{r echo=FALSE}
- library(plyr)
- Listing_And_Selling_Teams_Totals<- ddply(Data,c("Listing_Last","Selling_Last"), summarise,
- Total= sum(Sold_Price))
- ```
- ```{r, echo=FALSE, results='hide',fig.keep='all'}
- Top_100<- head(arrange(Listing_And_Selling_Teams_Totals, desc(Total)), n=100)
- g<-graph.data.frame(Top_100, directed = TRUE)
- fixlayout <- layout.fruchterman.reingold(g)
- #g<-graph.data.frame(Top_100_Network, directed = TRUE)
- par(mar=c(1,0,2,0))
- V(g)$name
- plot(g,layout=fixlayout,
- vertex.size= 4,
- vertex.label= V(g)$name,
- vertex.label.cex =0.8,
- vertex.label.dist = 0.4,
- vertex.label.color = "black",
- edge.arrow.size=0.1,
- vertex.color="blue")
- g
- title("Top 100 Teams")
- ```
- As can be seen from the network graph above real estate transactions divide in clusters.
- Brix, Parisi , and Scuibba listings are sold by seperate teams of agents.
- ```{r include=FALSE}
- #dplyr:: filter(iris, Sepal.Length > 7)
- Sciubba<-dplyr::filter(Listing_And_Selling_Teams_Totals , Listing_Last=="Sciubba" )
- ```
- ```{r echo=FALSE}
- Sciubba_Network<- graph_from_data_frame(Sciubba, directed = FALSE)
- plot(Sciubba_Network)
- title("Sciubba Network")
- ```
- ```{r echo=FALSE}
- Parisi<-dplyr::filter(Listing_And_Selling_Teams_Totals , Listing_Last=="Parisi" )
- Parisi_Network<- graph_from_data_frame(Parisi, directed = FALSE)
- plot(Parisi_Network)
- title("Parisi Network")
- ```
- As one can see the two teams are largely independent.
- Lets have another look at our table.
- Again, on a $100,000 sale with a 4% commision due , half of the commsion goes to the Selling side and half goes to the Lisitng side. $2000 and $2000. But how the commsion gets split within the company is the difference. While the majority of agents work on 50/50 split the company star agents often work on a 70/30 split.
- ```{r echo=FALSE , results='as is'}
- library(knitr)
- kable(Commision.Splits)
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement