Property Tax Fairness
From the Center for Municipal Finance
To generate the report, first download the data. This dataset is a raw public dataset we can use.
After downloading the dataset, please run the below R code, for example in RStudio. Remember to replace “your output directory” with the path where you want to save the generated report.
library(tidyverse)
library(data.table)
library(cmfproperty)
library(readxl)
sales <- read_excel(“Sales 2009-2019.xlsx”)
assessments <- read_excel(“(CLEAN) disclosure_notice_2020_extract.xlsx”)
assessments <- assessments %>% select(parcel_number, parcel_type, full_market_value, total_assessment, property_class)
sales <- sales %>% mutate(Sale_Year= as.numeric(str_extract(`Sale Date`, (“[0-9]* “))))
sales <- sales %>% select(`SBL#`, Sale_Year, `Sale Price`, `Prop Class`)
mini_sales <- sales %>% filter(Sale_Year > 2017)
joined <- mini_sales %>% left_join(assessments, by=c(“SBL#” = “parcel_number”))
joined <- joined %>% filter(`Prop Class` %in% c(210, 220, 230))
joined <- joined %>% arrange(-Sale_Year) %>% distinct(`SBL#`, .keep_all=TRUE)
fwrite(joined, “joined.csv”)
df <- fread(“joined.csv”)
df <- df %>% mutate(SALE_PRICE = `Sale Price`, MARKET_VALUE = full_market_value, ASSESSED_VALUE = total_assessment, SALE_YEAR = Sale_Year, TAX_YEAR = 2019)
ratios <- cmfproperty::reformat_data(df, sale_col = “SALE_PRICE”, assessment_col = “ASSESSED_VALUE”, sale_year_col = “SALE_YEAR”)
cmfproperty::make_report(ratios, jurisdiction_name = “Buffalo City”, output_dir = “your output directory”)
Below is a pre-generated example report: