ratios <- munis_billchange %>%
filter(has_HO_exemp == 1 & !is.na(rank)) %>% # claimed exemption in 2021
mutate(currbill_to_AV_25 = ifelse(rank == "q25", mean_bill_neg10/median_AV, NA)) %>%
mutate(currbill_to_AV_75 = ifelse(rank == "q75", mean_bill_neg10/median_AV, NA)) %>%
group_by(clean_name) %>%
summarize(GHE_0_bill_to_AV_25 = max(currbill_to_AV_25, na.rm=TRUE),
GHE_0_bill_to_AV_75 = max(currbill_to_AV_75, na.rm=TRUE)) %>%
mutate(muni_ratio_25to75 = GHE_0_bill_to_AV_25/GHE_0_bill_to_AV_75)
ggplot(data = ratios, aes(y = GHE_0_bill_to_AV_25, x = GHE_0_bill_to_AV_75, label = clean_name)) +
geom_abline(intercept = 0, slope = 1) +
geom_point(aes(alpha = .5)) +
ggrepel::geom_label_repel(data = (ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = GHE_0_bill_to_AV_25, x = GHE_0_bill_to_AV_75, label = clean_name), size = 3)+
geom_point(data = (ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = GHE_0_bill_to_AV_25, x = GHE_0_bill_to_AV_75, color = "red"), size = 2)+
theme_classic() +
scale_y_continuous(limits = c(0, .6), expand = c(0,0))+
scale_x_continuous(limits = c(0, .6), expand = c(0,0))+
theme(legend.position = "none") +
labs(title = "GHE = $0 EAV", x = "", y = "")
ratios<- munis_billchange %>%
filter(has_HO_exemp == 1 & !is.na(rank)) %>% # claimed exemption in 2021
mutate(currbill_to_AV_25 = ifelse(rank == "q25", mean_bill_cur/median_AV, NA)) %>%
mutate(currbill_to_AV_75 = ifelse(rank == "q75", mean_bill_cur/median_AV, NA)) %>%
group_by(clean_name) %>%
summarize(currbill_to_AV_25 = max(currbill_to_AV_25, na.rm=TRUE),
currbill_to_AV_75 = max(currbill_to_AV_75, na.rm=TRUE)) %>%
mutate(muni_ratio_25to75 = currbill_to_AV_25/currbill_to_AV_75) %>% filter(muni_ratio_25to75 > 0.01)
ggplot(data = ratios, aes(y = currbill_to_AV_25, x = currbill_to_AV_75, label = clean_name)) +
geom_abline(intercept = 0, slope = 1) +
geom_point(data = ratios, aes(alpha = .5)) +
ggrepel::geom_label_repel(data = (ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = currbill_to_AV_25, x = currbill_to_AV_75), size = 3, max.overlaps = Inf, point.padding = 0, # additional padding around each point
min.segment.length = 0, # draw all line segments
)+
geom_point(data = (ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = currbill_to_AV_25, x = currbill_to_AV_75, color = "red"), size = 2)+
theme_classic() +
scale_y_continuous(limits = c(0, .6), expand = c(0,0))+
scale_x_continuous(limits = c(0, .6), expand = c(0,0))+
theme(legend.position = "none") +
labs(title = "GHE = $10,000 EAV (Current)", x="", y="")
new_ratios<- munis_billchange %>%
filter(has_HO_exemp == 1 & !is.na(rank)) %>% # claimed exemption in 2021
mutate(newbill_to_AV_25 = ifelse(rank == "q25", mean_bill_plus10/median_AV, NA)) %>%
mutate(newbill_to_AV_75 = ifelse(rank == "q75", mean_bill_plus10/median_AV, NA)) %>%
group_by(clean_name) %>%
summarize(newbill_to_AV_25 = max(newbill_to_AV_25, na.rm=TRUE),
newbill_to_AV_75 = max(newbill_to_AV_75, na.rm=TRUE)) %>%
mutate(muni_ratio_25to75 = newbill_to_AV_25/newbill_to_AV_75) %>%
filter(muni_ratio_25to75 > 0.01)
ggplot(data = new_ratios, aes(y = newbill_to_AV_25, x = newbill_to_AV_75, label = clean_name)) +
geom_abline(intercept = 0, slope = 1) +
geom_point(data = new_ratios, aes(alpha = .5)) +
ggrepel::geom_label_repel(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75), size = 3, max.overlaps = Inf, point.padding = 0, # additional padding around each point
min.segment.length = 0, # draw all line segments
)+
geom_point(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75, color = "red"), size = 2)+
theme_classic() +
scale_y_continuous(limits = c(0, .6), expand = c(0,0))+
scale_x_continuous(limits = c(0, .6), expand = c(0,0))+
theme(legend.position = "none") +
labs(title = "GHE = $20,000 EAV", x= "", y="")
new_ratios<- munis_billchange %>%
filter(has_HO_exemp == 1 & !is.na(rank)) %>% # claimed exemption in 2021
mutate(newbill_to_AV_25 = ifelse(rank == "q25", mean_bill_plus20/median_AV, NA)) %>%
mutate(newbill_to_AV_75 = ifelse(rank == "q75", mean_bill_plus20/median_AV, NA)) %>%
group_by(clean_name) %>%
summarize(newbill_to_AV_25 = max(newbill_to_AV_25, na.rm=TRUE),
newbill_to_AV_75 = max(newbill_to_AV_75, na.rm=TRUE)) %>%
mutate(muni_ratio_25to75 = newbill_to_AV_25/newbill_to_AV_75) %>%
filter(muni_ratio_25to75 > 0.01)
ggplot(data = new_ratios, aes(y = newbill_to_AV_25, x = newbill_to_AV_75, label = clean_name)) +
geom_abline(intercept = 0, slope = 1) +
geom_point(aes(alpha = .5)) +
ggrepel::geom_label_repel(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75), size = 3, max.overlaps = Inf, point.padding = 0, # additional padding around each point
min.segment.length = 0, # draw all line segments
)+
geom_point(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75, color = "red"), size = 2)+
theme_classic() +
scale_y_continuous(limits = c(0, .6), expand = c(0,0))+
scale_x_continuous(limits = c(0, .6), expand = c(0,0))+
theme(legend.position = "none") +
labs(title = "GHE = $30,000 EAV",
x = "", y = "")
new_ratios<- munis_billchange %>%
filter(has_HO_exemp == 1 & !is.na(rank)) %>% # claimed exemption in 2021
mutate(newbill_to_AV_25 = ifelse(rank == "q25", mean_bill_plus30/median_AV, NA)) %>%
mutate(newbill_to_AV_75 = ifelse(rank == "q75", mean_bill_plus30/median_AV, NA)) %>%
group_by(clean_name) %>%
summarize(newbill_to_AV_25 = max(newbill_to_AV_25, na.rm=TRUE),
newbill_to_AV_75 = max(newbill_to_AV_75, na.rm=TRUE)) %>%
mutate(muni_ratio_25to75 = newbill_to_AV_25/newbill_to_AV_75) %>%
filter(muni_ratio_25to75 > 0.01)
ggplot(data = new_ratios, aes(y = newbill_to_AV_25, x = newbill_to_AV_75, label = clean_name)) +
geom_abline(intercept = 0, slope = 1) +
geom_point(aes(alpha = .5)) +
ggrepel::geom_label_repel(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75), size = 3, max.overlaps = Inf, point.padding = 0, # additional padding around each point
min.segment.length = 0, # draw all line segments
)+
geom_point(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75, color = "red"), size = 2)+
theme_classic() +
scale_y_continuous(limits = c(0, .6), expand = c(0,0))+
scale_x_continuous(limits = c(0, .6), expand = c(0,0))+
theme(legend.position = "none") +
labs(title = "GHE = $40,000 EAV",
x= "", y = "")
new_ratios<- munis_billchange %>%
filter(has_HO_exemp == 1 & !is.na(rank)) %>% # claimed exemption in 2021
mutate(newbill_to_AV_25 = ifelse(rank == "q25", mean_bill_plus40/median_AV, NA)) %>%
mutate(newbill_to_AV_75 = ifelse(rank == "q75", mean_bill_plus40/median_AV, NA)) %>%
group_by(clean_name) %>%
summarize(newbill_to_AV_25 = max(newbill_to_AV_25, na.rm=TRUE),
newbill_to_AV_75 = max(newbill_to_AV_75, na.rm=TRUE)) %>%
mutate(muni_ratio_25to75 = newbill_to_AV_25/newbill_to_AV_75) %>% filter(muni_ratio_25to75 > 0.01)
ggplot(data = new_ratios, aes(y = newbill_to_AV_25, x = newbill_to_AV_75, label = clean_name)) +
geom_abline(intercept = 0, slope = 1) +
geom_point(aes(alpha = .5)) +
ggrepel::geom_label_repel(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75), size = 3, max.overlaps = Inf, point.padding = 0, # additional padding around each point
min.segment.length = 0, # draw all line segments
)+
geom_point(data = (new_ratios %>% filter(clean_name %in% c("Park Forest", "Chicago", "Winnetka", "Glencoe", "Riverdale", "Dolton", "Markham", "Chicago Heights", "Hazel Crest", "Phoenix"))), aes(y = newbill_to_AV_25, x = newbill_to_AV_75, color = "red"), size = 2)+
theme_classic() +
scale_y_continuous(limits = c(0, .6), expand = c(0,0))+
scale_x_continuous(limits = c(0, .6), expand = c(0,0))+
theme(legend.position = "none") + labs(title = "GHE = $50,000",
x = "", y = "")