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

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

Below is a pre-generated example report:

Report