Repository navigation
Conversation
…mployer rate Hawaii's wage base follows HRS 383-61: the average annual wage, rounded to the nearest hundred dollars, with special rules for 1988, 1991 and 2008 to 2011. DLIR's December 2019 trust fund evaluation lists every base from 1970 to 2020, and its schedule page lists the bases from 2020. The parameter holds those values, except for 2010: there it holds the statute's $34,920 (90% of the $38,800 rounded average), where DLIR lists $34,900. DLIR's evaluation puts schedule D in effect for 2015, so new employers paid 3.0% (HRS 383-66(a)(2) and 383-68), not the 2.4% that backdating gave. In 2016 and 2017, schedule C sets 2.4%. The commit also: - adds YAML cases for 2010 and for 2015 to 2017; - extends #10700's invariant tables to Hawaii's 2015-2017 values; - adds a parameter-only invariants module for the history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HRS 383-61(b) rounds the average annual wage to the nearest hundred dollars, and subsection (c) takes 90% of it for 2010 with no further rounding, so the base is $34,920. DLIR lists $34,900. PE-US follows the statute. This records the conflict as step 1 of the register process in CONTRIBUTING. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 9, 2026
- The invariants module said HRS 392-43(b)(2) caps TDI benefits. It caps the weekly wages subject to TDI contributions. - The federal floor helper now returns $7,000 from 1982, the year Public Law 97-248 enacted it. - The 2008 comment now says that Act 110 of 2007 first set $13,000 for 2008 to 2010. - The module docstring and the SCHEDULE comment now name the same sources. - The source-conflict note ties the modelled years to FIRST_MODELED_YEAR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
us-hi:ui-taxable-wage-base-2010-rounding.Stacked on #10700
The base branch is
employer-state-payroll-history(#10700). That PR first sets Hawaii's 2018–2026 values and adds the invariants module this PR extends, so stacking avoids conflicts in both. PE-US runs PR CI only on pull requests intomain. Once #10700 merges, GitHub retargets this PR tomain, but a base change alone starts no run. #10700 will squash-merge, so after it lands:Then force-push with lease, which starts CI. The rebase replays only this PR's commits. #10700's later commits (8cf5f12 so far, which moves Oklahoma's 2026 tests) build on 66b54f3 and touch none of this PR's files, so the command stays the same.
How the base follows the average annual wage
HRS 383-61(b) sets the base at the average annual wage for the four quarters ending June 30 of the preceding year. Subsection (b) computes that average by November 30 and rounds it to the nearest hundred dollars. Subsections (c) and (d) set six years otherwise:
The parameter takes every other year from DLIR's tables: the evaluation for 1970–2020 and the schedule page for 2020–2026.
HRS 392-43(b)(2) caps the weekly wages subject to TDI contributions at 1.21 times one fifty-second of the same average annual wage, and DLIR's yearly TDI notices print that average to the cent. The notices cover 2004–2026. In each of the 19 years among them where (b) applies alone (2004–2007 and 2012–2026), DLIR's base equals the notice's average rounded half up to $100. The new module checks every one of them.
2010
Subsection (b) computes the average annual wage "and rounded to the nearest hundred dollars" (HRS 383-61(b)), so the 2010 average is $38,800 (notice: $38,750.59). Subsection (c) takes 90% of it and adds no rounding, which gives $34,920. DLIR lists $34,900, the 90% figure rounded to the nearest hundred dollars. That rounding gives $34,900 whether or not DLIR rounded the average first.
CONTRIBUTING's source-conflict rules settle this: the statute controls stated agency practice, and its definition of the average controls. The parameter therefore holds $34,920, and
source_conflicts/candidates.yamlrecords the conflict as step 1 of the register process (follows: statute,state: ruled). The figures differ by $20 of wages, or $0.20 of contributions for each percentage point of rate. 2010 precedes 2015, PE-US'sFIRST_MODELED_YEAR, so the choice moves no amount in a year PE-US models. 2011 has no gap: 90% of $38,000 is $34,200 either way.Rate, 2015–2017
The U.S. Department of Labor's Significant Provisions of State UI Laws agrees. Its January 2016 edition lists Hawaii's new-employer rate as 3.00%, the 2015 rate (its January 2017 and 2018 editions list 2.40%). The January 2015 edition lists 3.40% (schedule E, 2014) and the $40,900 base for 2015. These rate columns lag the year, so the parameter files cite DLIR and the statutes, not DOL.
What reads these parameters
taxable_earnings_for_state_unemployment_taxreadstaxable_wage_basethroughselect_state_unemployment_tax_parameter(_jurisdictions.py), which selects by the household's state code, the model's proxy for the work state. For Hawaii it returnspayroll_tax_gross_wagesup to the base.employer_state_unemployment_tax_default_ratereadsdefault_ratethrough the same selector and averages the rates in force at the four quarter starts. Hawaii's rates change only on January 1, so the average equals the year's rate.employer_state_unemployment_tax_ratetakesemployer_state_unemployment_tax_rate_overridewhen it is zero or more (its default is −1), and the default rate otherwise.hi_employer_state_unemployment_tax, defined for Hawaii households, multiplies that rate by taxable earnings.employer_state_unemployment_taxadds up the state variables, Hawaii's among them. It feedsemployer_state_payroll_tax, which feedsemployer_payroll_tax, which feedsemployer_cost_of_employment.Employer UI tax for a Hawaii worker paid $100,000, at the new-employer rate:
main(3% × $59,100)2018 and later years don't change.
Invariants
These hold for every date and year in range, and the tests check them directly from parameters, with no simulation:
#10700's
test_stored_histories_match_published_tables_in_every_monthalso covers Hawaii's 2015–2017 rate and base now, through newPRE_2018_RATEandPRE_2018_WAGE_BASErows. Its Hypothesis simulations (2018, 2022, 2026) don't change.Tests
hi_employer_state_unemployment_tax.yaml, one process): all 16 cases pass, including five new ones. The new cases cover 2015, 2016 and 2017 at $100,000; 2015 at $30,000, below the base; and 2010 taxable earnings at $40,000 ($34,920).test_hi_unemployment_insurance_history_invariants.py(8 new tests),test_source_conflicts.pyandtest_parameter_yaml_keys.pypass, 145 tests in all. At 9a90cff, Give state employer unemployment taxes their 2018-2026 histories #10700'stest_employer_state_payroll_tax_history_invariants.pyand the code-health checks for reference URLs, known dead links and Python group routing passed too. The later commit changes comments and the 1982 threshold of a test helper, so those checks read nothing new.policyengine_usimport on the loaded host.coregroup already pays.test_rest_python_groups.pyconfirms that thecoregroup collects it exactly once.Follow-ups
known-source-conflicts.yaml, pinning this PR's merge commit.# Source conflict us-hi:ui-taxable-wage-base-2010-roundingmarker and refreshes the pin.source_conflicts/sources/.axiom: TheAxiomFoundation/rulespec-us#2094 queued (extended for HRS 383-61, the 1970–2017 bases, the 2015–2017 rates and the 2010 reading)
🤖 Generated with Claude Code