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(sf)
layers <- st_layers(“GeoData/FCA_SDE_Web_Prod.gdb”)
franklin_gdb <- read_sf(“GeoData/FCA_SDE_Web_Prod.gdb”, layer=”HistoricalParcelCentroids”)
franklin_gdb$PID <- gsub(“-“, “”, franklin_gdb$PID)
franklin_gdb %>% select(PID, TAX)
towns <- read_sf(“GeoData/FCA_SDE_Web_Prod.gdb”, layer=”MunicipalBoundary”)
franklin_gdb <- st_join(franklin_gdb, towns)
franklin_gdb <- franklin_gdb %>% select(PID, NAME)
assessment_data <- fread(“full.csv”, colClasses = “character”)
assessment_data <- assessment_data %>% left_join(franklin_gdb)
st_write(assessment_data, “full_geo.gpkg”)
columbus <- assessment_data %>% as.data.frame() %>% filter(NAME == “Columbus”) %>% select(PID:LAND_CLASS)
fwrite(columbus, “columbusonly.csv”)
df <- fread(“columbusonly.csv”)
df <- df %>% mutate(SALE_PRICE = as.numeric(PRICE), TAX_YEAR = SALE_YEAR, ASSESSED_VALUE = as.numeric(ASSESSED_VALUE))
df <- df %>% filter(between(LAND_CLASS, 510, 530))
ratios <- cmfproperty::reformat_data(df, sale_col = “SALE_PRICE”, assessment_col = “ASSESSED_VALUE”, sale_year_col = “SALE_YEAR”)
cmfproperty::make_report(ratios, jurisdiction_name = “Columbus City”, output_dir = “your output directory”)
Below is a pre-generated example report: