The State of Illinois has a home improvement exemption program which allows property owners to deduct up to $75,000 per year of any value created by improvements to a residential property.

This has the effect of essentially "freezing" a home's characteristics at whatever they were prior to the start of the improvement project. For example, if a property owner adds an additional bedroom and applies for a 288, the property will be valued as if the new bedroom does not exist until the 288 expires and as long as the increase in valuation is less than $75,000.

Per Illinois statute, 288s expire after 4 years or until the next assessment cycle, whichever is longer. For example, a 288 received in 2016 for a property in Northfield (with assessment years 2016, 2019, and 2022) will last 6 years (until 2021, the year before the 2022 reassessment).

This function calculates the years a 288 will be active given a start year and the township of a property.

chars_288_active(start_year, town)

Arguments

start_year

A numeric vector of start years. Must be either 1 long or the same length as town.

town

A character vector of town codes or names. Must be either 1 long or the same length as start_year.

Value

A list of numeric vectors containing the active years for each value of the input vectors. The list will always be N long, where N is the length of the longest input vector.

See also

Other chars_funs: chars_fix_age(), chars_sparsify(), chars_update()

Examples


# Simplest case to get the length for one property
chars_288_active(2016, "Northfield")
#> [[1]]
#> [1] 2016 2017 2018 2019 2020 2021
#> 

# Multiple years for a single township
chars_288_active(c(2016, 2010, 2020), "77")
#> [[1]]
#> [1] 2016 2017 2018 2019 2020
#> 
#> [[2]]
#> [1] 2010 2011 2012 2013 2014
#> 
#> [[3]]
#> [1] 2020 2021 2022 2023
#> 
chars_288_active(c(2016, 2010, 2020), "Evanston")
#> [[1]]
#> [1] 2016 2017 2018 2019 2020 2021
#> 
#> [[2]]
#> [1] 2010 2011 2012 2013 2014 2015
#> 
#> [[3]]
#> [1] 2020 2021 2022 2023 2024
#> 

# Multiple townships for a single year
chars_288_active(2015, c("77", "Evanston", "10"))
#> [[1]]
#> [1] 2015 2016 2017 2018 2019 2020
#> 
#> [[2]]
#> [1] 2015 2016 2017 2018
#> 
#> [[3]]
#> [1] 2015 2016 2017 2018
#> 

# Pairwise lookup (2015 for Evanston, 2017 for Northfield)
chars_288_active(c(2015, 2017), c("Evanston", "Northfield"))
#> [[1]]
#> [1] 2015 2016 2017 2018
#> 
#> [[2]]
#> [1] 2017 2018 2019 2020 2021
#>