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(dfsale_col = “SALE_PRICE”assessment_col = “ASSESSED_VALUE”sale_year_col = “SALE_YEAR”)

cmfproperty::make_report(ratiosjurisdiction_name = “Buffalo City”output_dir = your output directory”) 

Below is a pre-generated example report:

Report