diff --git a/changelog.d/hi-ui-wage-base-history.fixed.md b/changelog.d/hi-ui-wage-base-history.fixed.md new file mode 100644 index 00000000000..4c0304bceec --- /dev/null +++ b/changelog.d/hi-ui-wage-base-history.fixed.md @@ -0,0 +1 @@ +Set Hawaii's employer unemployment insurance taxable wage base for every year from 1970, and its new-employer rate from 2015, when it was 3% under schedule D. diff --git a/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/default_rate.yaml b/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/default_rate.yaml index 97a1d432f70..2b67fe288cc 100644 --- a/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/default_rate.yaml +++ b/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/default_rate.yaml @@ -1,7 +1,13 @@ description: Hawaii assigns this unemployment insurance contribution rate to each new employer. values: - # These rates leave out the 0.01% employment and training assessment that - # Section 383-129 adds to contributions. + # New employers take the rate for a .0000 reserve ratio on the year's + # schedule (Section 383-66(a)(2)). DLIR's evaluation puts schedule D in + # effect for 2015 and C for 2016 to 2020, which Section 383-68 sets at 3.0% + # and 2.4% for that reserve ratio. These rates leave out the 0.01% + # employment and training assessment that Section 383-129 adds to + # contributions. + 2015-01-01: 0.03 + 2016-01-01: 0.024 2018-01-01: 0.024 2021-01-01: 0.03 2023-01-01: 0.04 @@ -15,7 +21,7 @@ metadata: reference: - title: Hawaii Department of Labor and Industrial Relations, Tax Rate Schedule and Weekly Benefit Amount (new employer rate and taxable wage base, 2020 to 2026) href: https://labor.hawaii.gov/ui/tax-rate-schedule-and-weekly-benefit-amount/ - - title: Hawaii Department of Labor and Industrial Relations, Annual Evaluation of the Unemployment Compensation Trust Fund, December 2019 (rate schedules and taxable wage bases for 2018 and 2019) + - title: "Hawaii Department of Labor and Industrial Relations, Annual Evaluation of the Unemployment Compensation Trust Fund, December 2019 (contribution rate schedules and the schedule in effect, 2015 to 2020) #page 5,22,27" href: https://labor.hawaii.gov/wp-content/uploads/2020/01/UI-Fund-Evaluation-2020.pdf#page=5 - title: Hawaii Revised Statutes Section 383-66(a)(2), contribution rate for new or newly covered employers href: https://data.capitol.hawaii.gov/hrscurrent/Vol07_Ch0346-0398/HRS0383/HRS_0383-0066.htm diff --git a/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/taxable_wage_base.yaml b/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/taxable_wage_base.yaml index bf2c23385ad..b924afe98e1 100644 --- a/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/taxable_wage_base.yaml +++ b/policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/taxable_wage_base.yaml @@ -1,5 +1,68 @@ description: Hawaii limits employer unemployment insurance contributions to this amount of each worker's annual wages. values: + # Section 383-61(b) sets the base at the average annual wage for the four + # quarters ending June 30 of the preceding year, rounded to the nearest + # hundred dollars. Subsections (c) and (d) set the years marked below. DLIR + # lists the bases from 1970 to 2020 in its December 2019 trust fund + # evaluation and the bases from 2020 on its tax rate schedule page. + 1970-01-01: 5_500 + 1971-01-01: 6_000 + 1972-01-01: 6_300 + 1973-01-01: 6_500 + 1974-01-01: 6_800 + 1975-01-01: 7_300 + 1976-01-01: 7_800 + 1977-01-01: 9_300 + 1978-01-01: 9_800 + 1979-01-01: 10_400 + 1980-01-01: 11_200 + 1981-01-01: 12_200 + 1982-01-01: 13_100 + 1983-01-01: 13_800 + 1984-01-01: 14_600 + 1985-01-01: 15_100 + 1986-01-01: 15_600 + 1987-01-01: 16_500 + # Section 383-61(d)(3) set 1988 at half the average annual wage, because the + # ratio of the current to the adequate reserve fund, 2.08, reached 1.2. + 1988-01-01: 8_700 + 1989-01-01: 18_600 + 1990-01-01: 19_900 + # Section 383-61(c) set 1991 at $7,000, the federal unemployment tax base. + 1991-01-01: 7_000 + 1992-01-01: 22_700 + 1993-01-01: 23_900 + 1994-01-01: 25_000 + 1995-01-01: 25_500 + 1996-01-01: 25_800 + 1997-01-01: 26_000 + 1998-01-01: 26_400 + 1999-01-01: 27_000 + 2000-01-01: 27_500 + 2001-01-01: 28_400 + 2002-01-01: 29_300 + 2003-01-01: 30_200 + 2004-01-01: 31_000 + 2005-01-01: 32_300 + 2006-01-01: 34_000 + 2007-01-01: 35_300 + # Section 383-61(c) set 2008 and 2009 at $13,000 while the trust fund held + # at least the adequate reserve. Act 110 of 2007 first set $13,000 for 2008 + # to 2010, and Act 2 of 2010 gave 2010 the 90% rule below. + 2008-01-01: 13_000 + 2009-01-01: 13_000 + # Section 383-61(c) set 2010 and 2011 at 90% of the average annual wage + # (Act 2 of 2010, retroactive to January 1, 2010). Subsection (b) rounds the + # average to the nearest hundred dollars, so 2010 takes 90% of $38,800. + # DLIR's evaluation lists $34,900 for 2010, rounding the 90% figure too. + 2010-01-01: 34_920 + 2011-01-01: 34_200 + 2012-01-01: 38_800 + 2013-01-01: 39_600 + 2014-01-01: 40_400 + 2015-01-01: 40_900 + 2016-01-01: 42_200 + 2017-01-01: 44_000 2018-01-01: 45_900 2019-01-01: 46_800 2020-01-01: 48_100 @@ -15,7 +78,9 @@ metadata: unit: currency-USD label: Hawaii unemployment taxable wage base reference: + - title: Hawaii Revised Statutes Section 383-61, payment of contributions; wages not included + href: https://data.capitol.hawaii.gov/hrscurrent/Vol07_Ch0346-0398/HRS0383/HRS_0383-0061.htm + - title: "Hawaii Department of Labor and Industrial Relations, Annual Evaluation of the Unemployment Compensation Trust Fund, December 2019 (taxable wage bases, 1970 to 2020) #page 9,29" + href: https://labor.hawaii.gov/wp-content/uploads/2020/01/UI-Fund-Evaluation-2020.pdf#page=9 - title: Hawaii Department of Labor and Industrial Relations, Tax Rate Schedule and Weekly Benefit Amount (new employer rate and taxable wage base, 2020 to 2026) href: https://labor.hawaii.gov/ui/tax-rate-schedule-and-weekly-benefit-amount/ - - title: Hawaii Department of Labor and Industrial Relations, Annual Evaluation of the Unemployment Compensation Trust Fund, December 2019 (rate schedules and taxable wage bases for 2018 and 2019) - href: https://labor.hawaii.gov/wp-content/uploads/2020/01/UI-Fund-Evaluation-2020.pdf#page=5 diff --git a/policyengine_us/tests/core/test_employer_state_payroll_tax_history_invariants.py b/policyengine_us/tests/core/test_employer_state_payroll_tax_history_invariants.py index b4289c71fd3..410598c7354 100644 --- a/policyengine_us/tests/core/test_employer_state_payroll_tax_history_invariants.py +++ b/policyengine_us/tests/core/test_employer_state_payroll_tax_history_invariants.py @@ -16,10 +16,10 @@ default rate and taxable wage base equal the published value for that month, and so do New Jersey's employer TDI and workforce fund rates, Rhode Island's Job Development Fund rate and 2019 adjustment, and Alaska's - employee contribution rate. Apart from Minnesota's wage base, which keeps - DEED's 2014-2017 values, the parameters start in 2018, so 2015-2017 read - the value in force on January 1, 2018, an intended approximation that this - test pins. + employee contribution rate. Minnesota's wage base keeps DEED's 2014-2017 + values, and Hawaii's rate and wage base keep DLIR's earlier values. The + other parameters start in 2018, so 2015-2017 read the value in force on + January 1, 2018, an intended approximation that this test pins. 2. Dates: every stored value of a parameter that an annual rate averages begins a calendar quarter. The annual rates read only the four quarter starts, so this keeps them equal to the average of all twelve months. @@ -657,9 +657,17 @@ } # END PUBLISHED_SUTA -# Minnesota's wage base keeps its 2015-2017 values (DEED, history of tax rate -# factors); every other parameter reads its 2018 value in those years. -PRE_2018_WAGE_BASE = {"MN": {2015: 30_000, 2016: 31_000, 2017: 32_000}} +# Minnesota's wage base (DEED, history of tax rate factors) and Hawaii's rate +# and wage base (DLIR, December 2019 trust fund evaluation, Appendix B: the +# schedule in effect and the taxable wage base) keep their 2015-2017 values; +# every other parameter reads its 2018 value in those years. Hawaii's new +# employers take the .0000 reserve ratio rate of schedule D in 2015 and of +# schedule C in 2016 and 2017 (HRS 383-66(a)(2) and 383-68). +PRE_2018_WAGE_BASE = { + "HI": {2015: 40_900, 2016: 42_200, 2017: 44_000}, + "MN": {2015: 30_000, 2016: 31_000, 2017: 32_000}, +} +PRE_2018_RATE = {"HI": {2015: 0.03, 2016: 0.024, 2017: 0.024}} # New Jersey Department of Labor and Workforce Development, rate information: # new-employer TDI rate and workforce development and supplemental workforce @@ -704,6 +712,8 @@ def _annual_rate(code, year): def _rate_in_month(code, year, month): + if year in PRE_2018_RATE.get(code, {}): + return PRE_2018_RATE[code][year] if year < FIRST_PUBLISHED_YEAR: # Backdating copies the first stored value to earlier years. return _quarterly_rates(code, FIRST_PUBLISHED_YEAR)[0] diff --git a/policyengine_us/tests/core/test_hi_unemployment_insurance_history_invariants.py b/policyengine_us/tests/core/test_hi_unemployment_insurance_history_invariants.py new file mode 100644 index 00000000000..0d9589654ef --- /dev/null +++ b/policyengine_us/tests/core/test_hi_unemployment_insurance_history_invariants.py @@ -0,0 +1,360 @@ +"""Invariants for Hawaii's unemployment insurance wage base and new-employer rate. + +HRS 383-61(b) sets the taxable wage base at the average annual wage for the +four quarters ending June 30 of the preceding year, rounded to the nearest +hundred dollars. Subsections (c) and (d) set 1988, 1991 and 2008 to 2011 +otherwise, and subsections (d) and (f) keep the base at or above the federal +unemployment tax base. HRS 392-43(b)(2) caps the weekly wages subject to +temporary disability insurance (TDI) contributions at 1.21 times one +fifty-second of the same average annual wage, and the Department of Labor and +Industrial Relations (DLIR) prints that average, to the cent, in each year's +TDI notice. + +The tables below copy DLIR's publications, not the parameters: + +- WAGE_BASE: the taxable wage bases in DLIR's December 2019 trust fund + evaluation (Appendix B, 1970 to 2020) and on its tax rate schedule page + (2020 to 2026); +- RESERVE_RATIO: the evaluation's ratio of the current to the adequate + reserve fund for 1988, 2008 and 2009; +- SCHEDULE: the rate schedule in effect, from the evaluation through 2020 and + from the schedule page from 2021; +- AVERAGE_ANNUAL_WAGE: the average annual wage in DLIR's TDI notices for 2004 + to 2026. + +The tests read only parameters, so they build no simulation: + +1. Publication: on every date from 1970 through 2026, the wage base equals + DLIR's base for that year, apart from 2010 (see 4). A sweep checks the + first and last day of each year, and Hypothesis draws other dates. +2. Dates: every stored wage base starts on January 1. +3. Formula: in each year that the notices cover and that subsections (c) and + (d) leave alone, the base equals the average annual wage rounded half up + to the nearest hundred dollars. +4. Special years: 1991 is $7,000, and 2008 and 2009 are $13,000 with the fund + at or above its adequate reserve (subsection (c)). Subsection (d) sets 1988 + at 50% of the average annual wage for a reserve ratio of 1.2 or more, and + DLIR's $8,700 doubles to an average between the 1987 and 1989 bases. 2010 + and 2011 take 90% of the average annual wage, which subsection (b) rounds + to the nearest hundred dollars. That gives $34,920 for 2010, which the + parameter holds. DLIR's $34,900 also rounds the 90% figure, an intended + difference that source_conflicts/candidates.yaml records as + us-hi:ui-taxable-wage-base-2010-rounding. +5. Federal floor: the base never falls below the highest federal unemployment + tax base enacted by the end of its year, and 1991 meets the $7,000 federal + base. +6. New employers: from 2015, the default rate equals the rate that HRS + 383-68 sets for a .0000 reserve ratio on the year's schedule, as HRS + 383-66(a)(2) assigns to new employers. +""" + +from datetime import date +from decimal import ROUND_HALF_UP, Decimal + +from hypothesis import given, settings +from hypothesis import strategies as st + +from policyengine_us.system import system + +HI = system.parameters.gov.states.hi.tax.payroll.unemployment +FUTA = system.parameters.gov.irs.payroll.federal_unemployment + +# DLIR, Annual Evaluation of the Unemployment Compensation Trust Fund, December +# 2019, Appendix B, Total and Taxable Wages (1970 to 2020), and DLIR, Tax Rate +# Schedule and Weekly Benefit Amount (2020 to 2026). +WAGE_BASE = { + 1970: 5_500, + 1971: 6_000, + 1972: 6_300, + 1973: 6_500, + 1974: 6_800, + 1975: 7_300, + 1976: 7_800, + 1977: 9_300, + 1978: 9_800, + 1979: 10_400, + 1980: 11_200, + 1981: 12_200, + 1982: 13_100, + 1983: 13_800, + 1984: 14_600, + 1985: 15_100, + 1986: 15_600, + 1987: 16_500, + 1988: 8_700, + 1989: 18_600, + 1990: 19_900, + 1991: 7_000, + 1992: 22_700, + 1993: 23_900, + 1994: 25_000, + 1995: 25_500, + 1996: 25_800, + 1997: 26_000, + 1998: 26_400, + 1999: 27_000, + 2000: 27_500, + 2001: 28_400, + 2002: 29_300, + 2003: 30_200, + 2004: 31_000, + 2005: 32_300, + 2006: 34_000, + 2007: 35_300, + 2008: 13_000, + 2009: 13_000, + 2010: 34_900, + 2011: 34_200, + 2012: 38_800, + 2013: 39_600, + 2014: 40_400, + 2015: 40_900, + 2016: 42_200, + 2017: 44_000, + 2018: 45_900, + 2019: 46_800, + 2020: 48_100, + 2021: 47_400, + 2022: 51_600, + 2023: 56_700, + 2024: 59_100, + 2025: 62_000, + 2026: 64_500, +} +FIRST_YEAR = min(WAGE_BASE) +LAST_YEAR = max(WAGE_BASE) + +# HRS 383-61(c) sets 2010 at 90% of the rounded average annual wage; DLIR's +# table rounds that figure to $34,900. +STATUTE_READING = {2010: 34_920} + +# The evaluation's Appendix B, Ratio of Current to Adequate Reserve Fund. The +# current reserve fund is the trust fund's assets on November 30 of the year +# before the rate year. +RESERVE_RATIO = {1988: 2.08, 2008: 2.25, 2009: 1.77} + +# Rate schedule in effect: the evaluation's Appendix B through 2020 and DLIR's +# schedule page from 2021. HRS 383-68(c) also sets schedule D for 2021 and 2022. +SCHEDULE = { + 2015: "D", + 2016: "C", + 2017: "C", + 2018: "C", + 2019: "C", + 2020: "C", + 2021: "D", + 2022: "D", + 2023: "F", + 2024: "D", + 2025: "C", + 2026: "C", +} + +# HRS 383-68(d), contribution rates for a reserve ratio of .0000 to .0299. +ZERO_RESERVE_RATE = { + "A": "0.017", + "B": "0.019", + "C": "0.024", + "D": "0.030", + "E": "0.034", + "F": "0.040", + "G": "0.046", + "H": "0.052", +} + +# Average annual wage under HRS 383-61(b), from DLIR Disability Compensation +# Division notices of the TDI maximum weekly wage base, with each notice. +AVERAGE_ANNUAL_WAGE = { + 2004: ( + "30972.13", + "https://web.archive.org/web/20050226051453/http://hawaii.gov:80/labor/dcd/pdf/TDI/2004%20TDI%20Wage%20Base.pdf", + ), + 2005: ( + "32336.24", + "https://web.archive.org/web/20050226052914/http://hawaii.gov:80/labor/dcd/pdf/general/2005_WAGE_BASE.pdf", + ), + 2006: ( + "34023.65", + "https://web.archive.org/web/20060227223955/http://hawaii.gov:80/labor/dcd/pdf/general/2006_WAGE_BASE.pdf", + ), + 2007: ( + "35250.68", + "https://web.archive.org/web/20080719002041/http://hawaii.gov/labor/dcd/PDF/general/2007_Wage_Base_12-1-06.pdf", + ), + 2008: ( + "36209.17", + "https://web.archive.org/web/20080724052848/http://hawaii.gov/labor/dcd/PDF/general/WAGE%20BASE-2008%20%28PDF%29.pdf", + ), + 2009: ( + "37718.93", + "https://web.archive.org/web/20121025001236/http://hawaii.gov/labor/dcd/PDF/general/2009%20Wage%20Base.pdf", + ), + 2010: ( + "38750.59", + "https://web.archive.org/web/20101215215838/http://hawaii.gov/labor/dcd/PDF/general/2010%20Wage%20Base.pdf", + ), + 2011: ( + "38002.62", + "https://web.archive.org/web/20101215215837/http://hawaii.gov/labor/dcd/PDF/general/2011%20Wage%20Base.pdf", + ), + 2012: ( + "38818.32", + "https://web.archive.org/web/20121024102028/http://hawaii.gov/labor/dcd/PDF/general/2012%20Wage%20Base.pdf", + ), + 2013: ( + "39613.57", + "https://web.archive.org/web/20141030021517/http://labor.hawaii.gov/dcd/files/2013/01/Old-Wage-Base.pdf", + ), + 2014: ( + "40398.56", + "https://web.archive.org/web/20141030011206/http://labor.hawaii.gov/dcd/files/2013/01/New-Wage-Base.pdf", + ), + 2015: ( + "40879.44", + "https://web.archive.org/web/20160824005208/http://labor.hawaii.gov:80/dcd/files/2013/01/2015-Wage-Base.pdf", + ), + 2016: ( + "42217.41", + "https://web.archive.org/web/20160706000230/http://labor.hawaii.gov:80/dcd/files/2014/11/2016.pdf", + ), + 2017: ( + "43976.82", + "https://web.archive.org/web/20171101222709/https://labor.hawaii.gov/dcd/files/2013/01/17Wbase.pdf", + ), + 2018: ( + "45924.45", + "https://labor.hawaii.gov/dcd/files/2017/11/2018.pdf", + ), + 2019: ( + "46760.69", + "https://labor.hawaii.gov/dcd/files/2018/11/2019wagebase.pdf", + ), + 2020: ( + "48108.20", + "https://web.archive.org/web/20201017202041/https://labor.hawaii.gov/dcd/files/2019/11/newWBA.pdf", + ), + 2021: ( + "47397.51", + "https://web.archive.org/web/20201204141806/https://labor.hawaii.gov/dcd/files/2019/11/newWBA.pdf", + ), + 2022: ( + "51582.77", + "https://web.archive.org/web/20220819164238/https://labor.hawaii.gov/dcd/files/2019/11/newWBA.pdf", + ), + 2023: ( + "56662.05", + "https://web.archive.org/web/20230306111219/https://labor.hawaii.gov/dcd/files/2019/11/newWBA.pdf", + ), + 2024: ( + "59081.47", + "https://labor.hawaii.gov/dcd/files/2023/11/2024-Max-Weekly-Wage-Base-Weekly-Benefit-Amount.pdf", + ), + 2025: ( + "61958.21", + "https://labor.hawaii.gov/dcd/files/2023/05/2025-Max-Weekly-Wage-Base-Rev-2025.03.pdf", + ), + 2026: ( + "64471.82", + "https://labor.hawaii.gov/dcd/files/2025/12/2026-Maximum-Weekly-Wage-Base.pdf", + ), +} +SPECIAL_YEARS = {1988, 1991, 2008, 2009, 2010, 2011} + + +def _base(year): + return HI.taxable_wage_base(f"{year}-01-01") + + +def _expected(year): + return STATUTE_READING.get(year, WAGE_BASE[year]) + + +def _round_to_hundred(amount): + return int(Decimal(amount).quantize(Decimal("1E2"), rounding=ROUND_HALF_UP)) + + +def _average_annual_wage(year): + # HRS 383-61(b): the quotient, rounded to the nearest hundred dollars. + return _round_to_hundred(AVERAGE_ANNUAL_WAGE[year][0]) + + +def _subsection_d_share(ratio): + # HRS 383-61(d)(1) to (3), for 1988 only. + if ratio <= 0.8: + return Decimal("1") + if ratio < 1.2: + return Decimal("0.75") + return Decimal("0.5") + + +def _highest_federal_base_enacted(year): + # 26 U.S.C. 3306(b)(1). Public Law 91-373 (August 10, 1970) raised the base + # from $3,000 to $4,200, Public Law 94-566 (October 20, 1976) to $6,000, + # and Public Law 97-248 (September 3, 1982) to $7,000 for remuneration paid + # after 1982. + if year < 1976: + return 4_200 + if year < 1982: + return 6_000 + return FUTA.taxable_wage_base(f"{year}-01-01") + + +def test_tables_cover_every_year(): + assert sorted(WAGE_BASE) == list(range(FIRST_YEAR, LAST_YEAR + 1)) + assert sorted(AVERAGE_ANNUAL_WAGE) == list(range(2004, LAST_YEAR + 1)) + assert sorted(SCHEDULE) == list(range(2015, LAST_YEAR + 1)) + + +def test_wage_base_equals_the_published_base_on_the_first_and_last_day(): + for year in range(FIRST_YEAR, LAST_YEAR + 1): + for day in (f"{year}-01-01", f"{year}-12-31"): + assert HI.taxable_wage_base(day) == _expected(year), day + + +@settings(max_examples=200, deadline=None) +@given(st.dates(min_value=date(FIRST_YEAR, 1, 1), max_value=date(LAST_YEAR, 12, 31))) +def test_wage_base_equals_the_published_base_on_any_date(day): + assert HI.taxable_wage_base(day.isoformat()) == _expected(day.year) + + +def test_stored_wage_bases_start_on_january_first(): + stored = [value.instant_str for value in HI.taxable_wage_base.values_list] + assert min(stored) == f"{FIRST_YEAR}-01-01" + assert all(instant.endswith("-01-01") for instant in stored), stored + + +def test_wage_base_follows_the_average_annual_wage(): + for year in sorted(set(AVERAGE_ANNUAL_WAGE) - SPECIAL_YEARS): + assert _base(year) == _average_annual_wage(year), year + assert WAGE_BASE[year] == _average_annual_wage(year), year + + +def test_special_years_follow_subsections_c_and_d(): + assert _base(1991) == 7_000 + for year in (2008, 2009): + assert RESERVE_RATIO[year] >= 1, year + assert _base(year) == 13_000, year + + share = _subsection_d_share(RESERVE_RATIO[1988]) + assert share == Decimal("0.5") + assert _base(1987) < Decimal(_base(1988)) / share < _base(1989) + + for year in (2010, 2011): + ninety_percent = Decimal("0.9") * _average_annual_wage(year) + assert _base(year) == ninety_percent, year + assert WAGE_BASE[year] == _round_to_hundred(ninety_percent), year + assert _base(2010) == 34_920 + assert WAGE_BASE[2010] == 34_900 + + +def test_wage_base_stays_at_or_above_the_federal_base(): + for year in range(FIRST_YEAR, LAST_YEAR + 1): + assert _base(year) >= _highest_federal_base_enacted(year), year + assert _base(1991) == _highest_federal_base_enacted(1991) == 7_000 + + +def test_new_employer_rate_is_the_zero_reserve_rate_of_the_schedule(): + for year, schedule in SCHEDULE.items(): + for day in (f"{year}-01-01", f"{year}-12-31"): + rate = Decimal(str(HI.default_rate(day))) + assert rate == Decimal(ZERO_RESERVE_RATE[schedule]), day diff --git a/policyengine_us/tests/policy/baseline/gov/states/hi/tax/payroll/unemployment/hi_employer_state_unemployment_tax.yaml b/policyengine_us/tests/policy/baseline/gov/states/hi/tax/payroll/unemployment/hi_employer_state_unemployment_tax.yaml index 89f73abc5a4..3eda8650676 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/hi/tax/payroll/unemployment/hi_employer_state_unemployment_tax.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/hi/tax/payroll/unemployment/hi_employer_state_unemployment_tax.yaml @@ -1,3 +1,48 @@ +- name: Hawaii 2010 taxes wages up to 90% of the $38,800 average annual wage. + period: 2010 + absolute_error_margin: 0.01 + input: + state_code: HI + employment_income: 40_000 + output: + taxable_earnings_for_state_unemployment_tax: 34_920 + +- name: Hawaii 2015, its 3% new-employer rate on the $40,900 wage base. + period: 2015 + absolute_error_margin: 0.01 + input: + state_code: HI + employment_income: 100_000 + output: + taxable_earnings_for_state_unemployment_tax: 40_900 + employer_state_unemployment_tax_default_rate: 0.03 + hi_employer_state_unemployment_tax: 1_227 + employer_state_unemployment_tax: 1_227 + +- name: Hawaii 2016, its 2.4% new-employer rate on the $42,200 wage base. + period: 2016 + absolute_error_margin: 0.01 + input: + state_code: HI + employment_income: 100_000 + output: + taxable_earnings_for_state_unemployment_tax: 42_200 + employer_state_unemployment_tax_default_rate: 0.024 + hi_employer_state_unemployment_tax: 1_012.80 + employer_state_unemployment_tax: 1_012.80 + +- name: Hawaii 2017, its 2.4% new-employer rate on the $44,000 wage base. + period: 2017 + absolute_error_margin: 0.01 + input: + state_code: HI + employment_income: 100_000 + output: + taxable_earnings_for_state_unemployment_tax: 44_000 + employer_state_unemployment_tax_default_rate: 0.024 + hi_employer_state_unemployment_tax: 1_056 + employer_state_unemployment_tax: 1_056 + - name: Hawaii 2018, its 2.4% new-employer rate on the $45,900 wage base. period: 2018 absolute_error_margin: 0.01 @@ -106,6 +151,17 @@ hi_employer_state_unemployment_tax: 1_548 employer_state_unemployment_tax: 1_548 +- name: Hawaii 2015 taxes every dollar of wages below the wage base at 3%. + period: 2015 + absolute_error_margin: 0.01 + input: + state_code: HI + employment_income: 30_000 + output: + taxable_earnings_for_state_unemployment_tax: 30_000 + hi_employer_state_unemployment_tax: 900 + employer_state_unemployment_tax: 900 + - name: Hawaii 2018 taxes every dollar of wages below the wage base. period: 2018 absolute_error_margin: 0.01 diff --git a/source_conflicts/candidates.yaml b/source_conflicts/candidates.yaml index 542258dfa65..037bc87465f 100644 --- a/source_conflicts/candidates.yaml +++ b/source_conflicts/candidates.yaml @@ -3187,6 +3187,46 @@ candidates: prs: [] state: unreviewed note: PE-US follows state rules; verify their effective text throughout the historical periods. +- id: us-hi:ui-taxable-wage-base-2010-rounding + program: unemployment-insurance + years: + from: 2010 + to: 2010 + type: calendar + question: Is Hawaii's 2010 unemployment insurance taxable wage base 90% of the average annual wage that HRS + 383-61(b) rounds to the nearest hundred dollars, $34,920, or that figure rounded to the nearest hundred dollars + again, the $34,900 that DLIR lists? + sources: + - kind: statute + citation: HRS 383-61(b) and (c), as amended by Act 2, SLH 2010, section 3 + url: https://data.capitol.hawaii.gov/hrscurrent/Vol07_Ch0346-0398/HRS0383/HRS_0383-0061.htm + - kind: agency-practice + citation: Hawaii DLIR, Annual Evaluation of the Unemployment Compensation Trust Fund, December 2019, Appendix B, + Total and Taxable Wages + url: https://labor.hawaii.gov/wp-content/uploads/2020/01/UI-Fund-Evaluation-2020.pdf#page=29 + - kind: guidance + citation: Hawaii DLIR Disability Compensation Division, 2010 maximum weekly wage base notice (average annual wage + of $38,750.59) + url: https://web.archive.org/web/20101215215838/http://hawaii.gov/labor/dcd/PDF/general/2010%20Wage%20Base.pdf + readings: + statute: Subsection (b) computes the average annual wage and rounds it to the nearest hundred dollars, $38,800 for + 2010. Subsection (c) excludes wages above 90% of that average in 2010 and 2011 and rounds no further, which gives + $34,920. + other: DLIR lists a 2010 taxable wage base of $34,900, 90% of the average annual wage rounded to the nearest + hundred dollars, whether or not DLIR rounds the average first. + example: A worker paid $40,000 in 2010 has $34,920 of taxable wages under the statute's reading and $34,900 under + DLIR's, $20 apart, so each percentage point of contribution rate moves the employer's 2010 contribution by $0.20. + pe_us: + follows: statute + code: + - policyengine_us/parameters/gov/states/hi/tax/payroll/unemployment/taxable_wage_base.yaml + prs: + - https://github.com/PolicyEngine/policyengine-us/pull/10770 + state: ruled + note: Subsection (b) defines the average annual wage as the rounded quotient, and subsection (c) applies 90% to that + average without a rounding rule of its own, so the text settles the reading. 2011 has no gap, since 90% of $38,000 + is $34,200 in both readings. 2010 precedes 2015, PE-US's FIRST_MODELED_YEAR, so the choice moves no amount in a + year PE-US models. - id: us-ia:alternate-tax-claimed-spouse program: income-tax years: