Property tax analysis and sale ratios studies are highly standardized processes ripe for automation. This package implements the IAAO standards and generates a sale ratios study in seconds from user-provided data.
This tool has been critical for the work of the Center for Municipal Finance as we produce thousands of sale ratios studies annually. This open-source tool incorporates what we have learned in this work and is designed to enable Assessors and members of the public to analyze their own data.
There are four steps to utilize this report:
cmfproperty uses the R programming language. R is an open-source language which can be easily installed on any computer. We recommend that you install RStudio and R.
cmfproperty requires the
devtools package which can be installed as follows:
devtools is installed, our package can be installed from our github repository as follows:
To use this package we need to create a data frame where each row is the sale of individual property matched to its assessment at the time of sale. This process is highly dependent on how your data is structured. Examples can be found in Data Preprocessing.
Your final data set must have the following columns:
We highly recommend that you also include a column with a unique identifier such as parcel number or pin number.
After gathering data in this form, we have to identify the three required columns (sales, assessments, and sale year) for the package using
ratios <- cmfproperty::reformat_data( data = cmfproperty::example_data, sale_col = "SALE_PRICE", assessment_col = "ASSESSED_VALUE", sale_year_col = "SALE_YEAR", ) #>  "Filtered out non-arm's length transactions" #>  "Inflation adjusted to 2019" head(as.data.frame(ratios)) #> PIN SALE_YEAR SALE_PRICE ASSESSED_VALUE TAX_YEAR RATIO #> 1 17273100931118 2015 53000 33860 2015 0.6388679 #> 2 18013090421010 2018 80000 60390 2018 0.7548750 #> 3 12111190201042 2018 118000 108300 2018 0.9177966 #> 4 13093160601015 2017 125500 87200 2017 0.6948207 #> 5 14322110150000 2018 3705000 3670740 2018 0.9907530 #> 6 27021200080000 2016 345000 267280 2016 0.7747246 #> arms_length_transaction SALE_PRICE_ADJ ASSESSED_VALUE_ADJ #> 1 1 59209.48 37827.04 #> 2 1 82313.03 62136.05 #> 3 1 121411.71 111431.26 #> 4 1 132854.54 92310.09 #> 5 1 3812122.01 3776871.45 #> 6 1 376080.37 291358.73
We denote data processed by
ratios throughout the documentation.
ratios includes the additional calculated fields needed to complete the study.
There’s one more step to get the automated report:
cmfproperty::make_report(ratios, jurisdiction_name = "Cook County, Illinois")
The report will be saved in your working directory or a specific directory can be provided.
cmfproperty::make_report(ratios, jurisdiction_name = "Cook County, Illinois", output_dir = "~/Desktop/")
Check out an example report here.