Repository navigation
Conversation
HRS 392-43 lets an employer withhold half the cost of coverage, up to 0.5% of weekly wages, and caps those wages at a maximum weekly wage base the Director publishes each year. Model the contribution at that limit from the published 2004-2026 wage bases, and add it to employee_state_payroll_tax so it reaches employee_payroll_tax and household net income. HRS 392-3 takes its wage exclusions from HRS 383-11, the same list Hawaii unemployment tax uses, so wages start from payroll_tax_gross_wages. That variable raised a TypeError before 2010 because the FICA pre-tax list started in 2010, so the list now applies to every year. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The contribution read the federal payroll wage base, which rests on federal rules Hawaii did not enact. Hawaii's text leaves out what an employer pays to medical and retirement plans, including salary reductions, and lists no dependent care payment. Build wages from those two sections, record the reading as a source-conflict candidate with short excerpts, and restore the shared FICA list's start date, which only the federal base needed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Leave military basic pay out of Hawaii wages under HRS 392-5(6), let the wages test pass on the previous year's weeks and hours, and take retirement deferrals out from 2004. Extend the federal elective deferral and catch-up limits back to 2004 from the IRS table, which also corrects 2015-2017 to $18,000. Add the program to programs.yaml, split the source-conflict regulation captures by page, and update the Hawaii marginal rate case for the contribution. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main's #10285 rewrote the documentation of employee_state_payroll_tax. The resolution keeps its text and lists Hawaii TDI with New York's contributions, which the employer is authorized but not required to collect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HRS 392-43(a) permits the employer to withhold the contribution without requiring it, like New York's PFL and DBL. Following main's #10285, the employee amount is the 0.5% limit times state_payroll_premium_deduction_share, which defaults to 1. Hawaii joins the programs whose employer cost the model doesn't hold, in the documentation of employee_state_payroll_tax, employer_additional_state_payroll_tax and the share input, and in the share invariants test. Three YAML cases cover a share of 0.5, 0 and 1.5. 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.
Adds Hawaii's employee temporary disability insurance (TDI) contribution and counts it in employee payroll tax and household net income, following the New Jersey TDI pattern. Because Hawaii lets the employer choose whether to withhold, the contribution also follows main's pattern for New York's contributions and reads the employer's deduction share. An audit flagged the gap on 2026-11-05 without reading Hawaii law.
axiom: TheAxiomFoundation/rulespec-us#2052 queued (HRS 392-43, 392-3, 392-5 and 383-11, with DLIR's yearly notices; proposed corpus citations us-hi/statute/392-43, us-hi/statute/392-3, us-hi/statute/392-5 and us-hi/statute/383-11; plus the federal limits under 26 USC 402(g) and 414(v), proposed us/statute/26/402/g and us/statute/26/414/v). Missing corpus text blocks the signed encoder for Hawaii and, in the corpus copy I could read, for 402(g) and 414(v). Each billed encoder run needs separate approval.
What Hawaii's law says
maximum_weekly_wage_base.yamlWhat this PR changes
gov/states/hi/tax/payroll/temporary_disability_insurance/: the rate limit, 23 yearly wage bases, the three parts of the wages test, and the payments the statute leaves out of wages.gov/states/hi/tax/payroll/: wages, the wages test, taxable wages, the employee contribution andhi_employee_state_payroll_tax.employee_state_payroll_taxnow addshi_employee_state_payroll_tax. From there the amount reachesemployee_payroll_tax,household_tax_before_refundable_creditsandhousehold_net_income, as New Jersey's does. It also reachesspm_unit_payroll_tax,spm_unit_taxesandspm_unit_net_income, and so SPM poverty.state_payroll_premium_deduction_share, which clips theemployer_state_payroll_premium_deduction_shareinput (default 1) to between 0 and 1. #10285 set this up on main for contributions the law lets the employer withhold without requiring it, such as New York's. The documentation ofemployee_state_payroll_tax,employer_additional_state_payroll_taxand that input now lists Hawaii TDI with the programs whose employer cost the model doesn't hold.programs.yamlgains ahi_tdientry withstatus: partial.Reading to confirm: what counts as wages
HRS 392-3 counts “all remuneration for services” and leaves out what HRS 383-11 lists. This PR builds a Hawaii wage definition from those two sections instead of reusing
payroll_tax_gross_wages.Only paragraph (5) stops at payments made “without deduction from” pay. Paragraphs (1) and (4) carry no such limit. The federal base differs because of IRC 3306(r)(1)(A), (b)(5)(G) and (b)(13), which Hawaii did not enact. The treatment of Roth deferrals follows from the text, which sets no income tax condition. The temporary disability rules take wages from HRS 392-3. They and the unemployment insurance rules address pay in kind given rather than deducted from money wages. Neither set of rules names a plan contribution or salary reduction, and the employer handbook doesn't either, so no agency reading breaks a tie. A paywalled XpertHR guide's search snippet says Hawaii's unemployment insurance treats cafeteria-plan contributions differently from the federal rule. I couldn't read how, so this reading doesn't rest on it.
The effect stays small: $60,000 with a $4,000 401(k) deferral gives $280 here and $300 on the federal base.
source_conflicts/candidates.yamlrecords this asus-hi:tdi-wages-salary-reductions, with excerpts insource_conflicts/sources/us-hi/. The register entry and its marker follow after merge, as CONTRIBUTING.md sets out.Invariants
These hold for every input, in the years each variable can run (see "Earlier years"):
0 ≤ contribution ≤ 0.5% × min(wages, base × counted weeks), where wages exclude the listed payments and military basic pay, and counted weeks default to 52.hi_employee_state_payroll_taxequals each person's contribution, andemployee_state_payroll_taxequals the sum across a Hawaii tax unit.employee_state_payroll_tax,employee_payroll_taxandhousehold_tax_before_refundable_creditsby exactly the contribution, and raiseshousehold_net_incomeby exactly the contribution. The test runs this identity on three 2026 workers. It should hold beyond them because no Hawaii tax or benefit formula reads these totals: the only such formulas I found sit in Alabama, Delaware and two California counties.test_state_payroll_premium_deduction_share_invariants.pychecks both, now with Hawaii among the optional programs.The test module labels two intended differences:
Assumptions and limits
weekly_hours_worked_before_lsrhas a missing value fail work-requirement tests. This PR departs from that for a tax: a worker with wages must have worked, and a household calculator that enters income alone would otherwise show no contribution. A reviewer may prefer the other default.military_basic_pay, which its convention puts insideemployment_income, and keeps a service member's civilian wages. A situation that enters basic pay on top ofemployment_incomewould subtract it from civilian pay. The model identifies no other federal employees, so it still charges them. HRS 392-5 also leaves out some domestic and family employment, commission-only insurance and real estate agents, majority owners, partners and sole proprietors, and state and county sick leave serves as TDI. The model can't observe those groups, so it treats their Hawaii wages as covered.employee_state_payroll_taxran in each year I tried between 2003 and 2026. The contribution stays at zero before 2004, the first year with a published base, and in 2003 the Hawaii wage doesn't read deferrals, so it needs no federal limit. Further down the chain, existing limits that this PR leaves alone decide which years run. For single adult workers at $10,000 and $100,000 in Hawaii and Texas,employee_payroll_taxraised a missing-parameter error before 2013, andhousehold_net_incomeandspm_unit_net_incomeraised one before 2015. With a 15-year-old in the tax unit,employee_payroll_taxraised in 2014 as well, in Texas too. The 401(k) limits now start in 2004, so a deferral computed from a desired amount raises in 2003.Coverage
Published values run from 2004 to 2026, one DLIR notice per year. Live DLIR files cover five of those years, so the other 18 link pinned Internet Archive captures. I found no notice for years before 2004, and this check stays open:
So years before 2004 hold a zero that marks them as unmodeled, as New Jersey's and Rhode Island's parameters do. Act 30 of 1999 set the wages test's 52-week window, and the section's one later amendment, Act 100 of 2013, renames a fund, so the test holds across 2004–2026.
I read every notice this session. The later retry that hit the Internet Archive's limit was meant to save local copies, so for the pinned years the record is the text captured in the first read. The 2004, 2012 and 2014 notices came as images, so for those three the record is the figures I transcribed.
Tests
hi_employee_temporary_disability_insurance_contribution.yamlandhi_temporary_disability_insurance_wages.yaml. Three of them set the employer's deduction share to 0.5, 0 and 1.5. Thirteen federal cases inelective_deferral_limit.yamlandk401_catch_up_limit.yamltake their expected values from the IRS table.tests/core/test_hi_temporary_disability_insurance.pyholds what YAML can't state: the stored notice table with the formula differential, the Hypothesis properties over mixed-state batches, the previous-year differential, the annual form against the weekly statute, and the net income identity.tests/core/test_payroll_contributions.pygains a Hawaii row, andtests/core/test_state_payroll_premium_deduction_share_invariants.pynow draws Hawaii workers. All three run in CI'scoregroup.test_first_modeled_year_is_the_backdating_floorused the 401(k) limit as its parameter first dated after 2015. The backfill moves that date to 2004, so the test now reads the IRA limit, first dated 2018. The Hawaii case inmarginal_tax_rate_including_health_benefits.yamlnow expects −0.0256 instead of −0.0306. The model gives −0.0256 with the contribution and −0.0306 with it neutralized. The case's 0.01 margin would have passed either value; I updated it so that the file records what the model computes.test_state_payroll_premium_deduction_share_invariants.pyadds Hawaii to its optional states and programs and to the states whose employer amount stays at zero, so each example also forces a $60,000 and a $250,000 Hawaii worker.683f457d0bsplitcoreinto three processes that took 21:21 to 24:48 and peaked at 6.5 to 8.6 GiB. The Hawaii module's 49 tests took 6.2 s of test time incore-1. Two unrelated jobs in that run hung on the certificate step until their time limits, so it isn't a pass.🤖 Generated with Claude Code