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)
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.
Other chars_funs:
chars_fix_age()
,
chars_sparsify()
,
chars_update()
# 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
#>