Skip to content

Let employers deduct less than the permitted state payroll premium, and apply Massachusetts' 2027 PFML cap swap - #10285

Open
MaxGhenis wants to merge 7 commits into
mainfrom
payroll-employer-deduction-share
Open

MaxGhenis wants to merge 7 commits into
mainfrom
payroll-employer-deduction-share

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

What this changes

employee_state_payroll_tax was documented as "mandatory" employee payroll taxes, but for eight programs it counted the largest employee share the employer is allowed to deduct. In those programs the law caps what the employer may deduct from wages and leaves the amount to the employer. This PR:

  1. Adds employer_state_payroll_premium_deduction_share (Person input, default 1). It is the share of the permitted employee premium the employer actually deducts. state_payroll_premium_deduction_share holds it between 0 and 1, because an employer may not deduct more than the permitted share. For each optional program the employee amount is now the permitted share times that share, and the employer-side variable carries the part it does not deduct, which each law makes the employer's (MN and NY employer costs are not modeled, so there the part goes nowhere). At the default every output is unchanged.
  2. Encodes Acts 2026 c. 101 ss. 25–26 for Massachusetts from 2027-01-01. The deduction caps swap to 40% family / 100% medical, and DFML's 2027 rates swap at the same time (family 0.70%, medical 0.18%), so the 2027 employee share stays 0.46% and the employer share 0.42%. New parameter family_employee_share. The date decision is below.
  3. Fixes the Connecticut citation. ct/tax/payroll/paid_leave/employee_rate cited CGS 31-49e, which is the definitions section. The contribution and its 0.5% ceiling are in 31-49g(b)(1).
  4. Rewrites the documentation on employee_state_payroll_tax, employer_additional_state_payroll_tax, the employer-level aggregate and every touched program variable. Each now says which programs are mandatory withholding and which are optional employer pass-through, and cites the deduction rule.

Origin: the PolicyBench payroll audit of 2026-10-05 (evidence on PolicyEngine/policybench branch payroll-state-components-20261005, reference_audit/2026-10-05-payroll/; Max ruled d972, so PolicyBench excludes the four affected outputs and no PolicyBench reference depends on this PR).

Programs and the rule each follows

Program Who owes the premium; what the employer may deduct Employee amount Employer side
CO FAMLI Employer remits; "may deduct up to 50 percent" (C.R.S. 8-13.3-507(5)); a deduction not taken is an election to pay it (7 CCR 1107-1 §1.4(6)(A)) share × 0.44% modeled: employer half (10+ employees) + undeducted
DE Paid Leave Employer remits; "shall deduct not greater than 50%" and "may elect to pay all or any portion"; liable for the full amount (19 Del. C. §3705(d)–(g)) share × 50% of the size-based rate modeled: rate × (1 − 50% × share)
MA PFML Employer remits; may deduct up to 100% family / 40% medical, 40% / 100% from 2027 (M.G.L. c. 175M §6(c)–(d); Acts 2026 c. 101 §§25–26); employer pays the rest "in all instances" (458 CMR 2.05(5)) share × 0.46% modeled: undeductible part (25+) + undeducted
ME PFML Employer remits 100% (15+) or 50% (<15) and "may deduct up to 50%" (26 M.R.S. §850-F(5)) share × 0.5% modeled: employer half (15+) + undeducted
MN Paid Leave Premium payable by the employer, which pays at least half (a small employer at least a quarter of the full rate, 268B.14 subd. 5a(b)(1)); employees pay only "the remaining portion, if any" (Minn. Stat. 268B.14 subds. 1, 3, 5a) share × 0.44% not modeled (no MN employer variable exists)
NY PFL and DBL Employer "is authorized to collect" up to the caps (WCL §209(3)–(4)) and pays DBL cost beyond what it collects (§210(1)) share × capped amount not modeled (insurance premium)
VT Child Care Contribution "Each employer shall pay"; may withhold up to a quarter; responsible for any unpaid amount (32 V.S.A. §10553(a)(1), (c)(2)) share × 0.11% modeled: 0.33% + undeducted
WA PFML Employer "may deduct ... up to" the employee share and "may elect to pay all or any portion" of it (RCW 50A.10.030(3)); a deduction not taken is an election to pay (WAC 192-510-065(2)) share × 1.13% × (1 − 28.57%) modeled: employer portion (50+) + undeducted

Unchanged, because the statute puts the contribution on the worker and requires withholding (per the 2026-10-05 audit's statute review; CT and WA Cares re-read here): CA SDI (UIC 984, 986), CT Paid Leave (CGS 31-49g(b)(1), (3)), NJ TDI/FLI/UI/workforce, Paid Leave Oregon (ORS 657B.150), Oregon statewide transit tax, PA UC, RI TDI, WA Cares (RCW 50B.04.080).

The line between the two groups is the deduction text. The input covers programs whose law caps a permissive deduction ("may deduct up to", "shall deduct not greater than", "is authorized to collect", "may deduct and withhold ... not more than") and makes a deduction not taken the employer's. It excludes programs whose law requires a fixed deduction, even where the employer may also pay the worker's contribution for them.

  • WA PFML (the audit's "mixed" case). RCW 50A.10.030(1) and (7)(a) assess the premium on each worker and have the employer "collect from the employees". But (3)(a)–(b) make the deduction "may deduct ... up to", (3)(c) lets the employer "pay all or any portion" of the employee share, and WAC 192-510-065(2) makes a missed deduction the employer's. So it is in, and the default of 1 matches (7)(a).
  • Paid Leave Oregon. ORS 657B.150(2)(b) says the employer "shall deduct employee contributions ... in an amount that is equal to 60 percent" of the rate. Its (5) lets the employer pay "the required employee contributions" as an employer-offered benefit. That changes who pays a required contribution, not the deduction rule, so Oregon stays out. Neither the (5) election nor voluntary payment of WA Cares or CA SDI is modeled; the docstring says so.

Employer-level aggregate. employer_total_additional_state_payroll_tax applies the person's share to the employer's whole payroll, as if the employer deducts the same share from everyone. 458 CMR 2.05(5)(d) allows different shares for different groups, which a single per-person input can't express.

Massachusetts: why 2027-01-01 and not 2026-01-01

Acts 2026 c. 101 (approved 2026-06-12, an emergency law) §25 strikes "40" in lines 22, 33 and 39 of c. 175M §6 and inserts "100". §26 strikes "100" in lines 25, 33 and 43 and inserts "40". Each figure appears exactly three times in §6, in (c), (d) and (e), so the caps swap for employers, small employers and covered business entities. Three provisions bear on the date:

  • §45 says §§25 and 26, together with income tax sections 7, 13–15 and 21, "shall apply for taxable years beginning on or after January 1, 2026".
  • §43(a) directs EOLWD and DFML to issue guidance on "the impact for employers and employees in calendar year 2027", including "administrative adjustments ... to ensure the overall balance of employee and employer contribution levels remain unchanged". §43(b) ties those adjustments to "the annual contribution rates".
  • DFML applies the change from 2027-01-01. Its rates page (updated 2026-10-01) says the act "shifts employer contributions from medical leave to family leave, effective January 1, 2027". It publishes the 2027 split: up to 40% of family (0.28% of wages) and up to 100% of medical (0.18%), with 25+ employers paying the remaining 0.42%.

Counter-point. §49 of the same act says "Section 22 shall take effect on January 1, 2027", so the legislature could give a non-income-tax section a calendar 2027 start, and it left §§25–26 under §45 instead. That is the strongest textual case for 2026.

I encode 2027-01-01 (Max asked for the date to be decided and cited). PFML contributions have no taxable year: they accrue on wages paid, at rates "set annually for January 1–December 31" (DFML; c. 175M §7(e)). §45 is a shared applicability clause written for the act's income tax sections. Read literally, it would apply the swapped caps to 2026's rates (0.18% family, 0.70% medical). That gives a 0.772% employee maximum, which contradicts §43(a)'s instruction to keep the balance unchanged. It would also make lawful 2026 family-leave deductions above 40% unlawful after the fact. §43 and the agency that administers the program both say 2027, and in 2027 the swapped caps and swapped rates leave each worker's employee and employer amounts where they were in 2026 (property 6 below). A 2026 YAML case records that the literal reading would give $772 on $100,000 instead of $460.

Not modeled: federal tax on an employer-paid employee share. For state-run PFML funds, Rev. Rul. 2025-4 (Situation 4) treats an employer's voluntary payment of the employee's permitted share ("employer pick-up") as compensation: it is in the employee's gross income and FICA wages, and the employee may deduct it as a state tax. Notice 2026-6 ends the 2025 transition relief for 2026. The ruling doesn't address private or insured plans (its footnote 3), which covers New York, and Vermont's Child Care Contribution isn't a leave program. This PR lowers only the employee's payroll deduction when the share is below 1; it does not add the pick-up to wages. The input and aggregate docstrings say so.

Invariants

These hold for every worker, wage, employer size and share, in 2026 and 2027. They are checked by policyengine_us/tests/core/test_state_payroll_premium_deduction_share_invariants.py (Hypothesis; three copies of each drawn worker in one vectorized simulation):

  1. Scaling. The employee amount of the optional programs equals clip(share, 0, 1) × the amount at the default. So the default is the full permitted share, and a share outside 0–1 acts as the nearer bound.
  2. Mandatory parts are untouched. employee_state_payroll_tax minus the optional components doesn't depend on the share.
  3. Conservation. Where the employer side is modeled (CO, DE, MA, ME, VT, WA), employee plus employer premium doesn't depend on the share: the employer pays exactly what it doesn't deduct. MN and NY employer amounts are zero at any share (not modeled).
  4. Monotonicity. A larger share never lowers the employee amount or raises the employer amount.
  5. Differential. For a one-worker employer (employer-level wage totals equal to the worker's wages, capped at the Social Security base as the worker's are), employer_total_additional_state_payroll_tax equals employer_additional_state_payroll_tax in every modeled state, at any share and employer size. This ties the employer-level path to the per-worker path.
  6. MA balance across the swap. For wages under both years' wage bases, the 2027 employee and employer amounts equal the 2026 amounts.

All amounts are compared to float32 precision, within a cent. A second test, test_massachusetts_2027_swaps_deduction_caps_and_rates, pins the four 2027 MA parameter values, which the properties can't distinguish from carrying 2026 forward. A mutation check (mutants.py, 13 mutants: each breaks one formula, parameter, the clip or an aggregate's size threshold) kills 13 of 13 at 8ec5126, and the property test alone kills all 13 (mutants-r2.txt in the evidence folder).

Cost (local, macOS, shared host; Linux CI not yet measured): the new test file runs in 5.0 s of test time, 23 s wall including the model import, with a peak memory footprint of 1.04 GB. It runs in the Rest Python core group (make group core, shard 2), which CI run 38141803955 measured at 13.3 GB / 11:51; this adds 8 small simulations of at most 150 people over two years.

Tests run locally

  • policyengine_us/tests/core/test_payroll_contributions.py and test_input_variable_definitions.py: 104 passed, unchanged. That covers the default-share outputs.
  • New policyengine_us/tests/policy/baseline/gov/states/tax/payroll/state_payroll_premium_deduction_share.yaml (16 cases) and four new cases in ma_employee_paid_leave_contribution.yaml: 26 passed. Expected values are computed by hand from the statutory and agency rates, in comments.
  • New invariant tests: 2 passed.

Targeted files only: a capacity reservation is in force on the shared host, so the full YAML shards are left to CI.

Review

Independent adversarial review r1 (Opus 5.5, in session, since the Subfleet lanes were closed by the US hub's disk pause) found no wrong number and requested four should-fix changes plus nits: the aggregate docstrings described NY and WA as employer premiums; the MN and NY employer side; the WA and Oregon line; and an employer-level branch the properties didn't reach. All are addressed in 8ec5126. Review file: ~/reviews/payroll-employer-deduction-share-2026-10-19/runs/review-r1.md. Delta review r2 at 8ec5126: AGREE, with nits on the Rev. Rul. 2025-4 scope (now limited to the state PFML funds in 727ebcb) and on the Axiom issues (quotes and NY invariants added). Review files: runs/review-r2.md.

  • Hub review (Claude Opus 5.5, independent; served while the Codex lanes were closed): APPROVE at 3698893465, no P1/P2. Every program matches its statute and every changed expectation recomputes. Outputs at the default share are bit-identical to the merge base over 1,584 households × 23 variables for 2024–2028.
    • Massachusetts date: the statute alone doesn't settle it. §45 says 2026, but §43(a) frames the change as calendar year 2027 and keeps each side's balance unchanged, and DFML administers it from January 1, 2027. The PR follows §43(a) and DFML, which leaves 2026 identical to main. The alternative would change main's 2026 numbers (employee $460 → $772 on $100k).
    • Two P3s remain: the test module's docstring still carries the NY/WA wording that r1 fixed in the variables, and this body (fixed here).

CI

The only failure at f160968 was nc_sa.yaml (North Carolina Special Assistance 2027 COLA: nc_sa_rate 1448 vs 1436). It was main's failure, fixed on main by #10279 (#10282 was closed). Main has since been merged in, and all 29 checks pass at 3698893465. Nothing here touches NC.

Not in this PR

Impact

None at the default share: every formula reduces to the previous one at share = 1, and MA's 2027 swap leaves each worker's employee and employer amounts unchanged (property 6). No national impact run is needed.

axiom: M.G.L. c. 175M s. 6 / Acts 2026 c. 101 → TheAxiomFoundation/rulespec-us#1817 queued; C.R.S. 8-13.3-507 → TheAxiomFoundation/rulespec-us#1818 queued; Minn. Stat. 268B.14 → TheAxiomFoundation/rulespec-us#1819 queued; N.Y. WCL 209 → TheAxiomFoundation/rulespec-us#1820 queued; 19 Del. C. 3705 → TheAxiomFoundation/rulespec-us#1821 queued; 26 M.R.S. 850-F → TheAxiomFoundation/rulespec-us#1822 queued; 32 V.S.A. 10553 → TheAxiomFoundation/rulespec-us#1823 queued; RCW 50A.10.030 → TheAxiomFoundation/rulespec-us#1824 queued (all blocked on corpus ingestion, TheAxiomFoundation/axiom-corpus#893); CGS 31-49g(b)(1) citation fix: n/a: reference-only change.

🤖 Generated with Claude Code

MaxGhenis and others added 2 commits October 19, 2026 14:33
Add employer_state_payroll_premium_deduction_share (default 1) for the
programs whose statute puts the premium on the employer and lets it deduct
up to a share from wages: CO FAMLI, DE Paid Leave, ME and MA PFML, MN Paid
Leave, NY PFL and DBL, the VT Child Care Contribution and WA PFML. The
employee amount is the permitted share times the deduction share; the
employer-side variables carry the part it does not deduct.

Encode Acts 2026 c. 101 ss. 25-26 for Massachusetts from 2027-01-01, with
DFML's 2027 family and medical rates, and cite CGS 31-49g(b)(1) for the
Connecticut paid leave rate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…variants

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 19, 2026 19:06
@codecov

codecov Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (909176a) to head (6ad174a).
⚠️ Report is 545 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main    #10285    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            4         1     -3     
  Lines           76       193   +117     
  Branches         2         0     -2     
==========================================
+ Hits            76       193   +117     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Describe the deduction-share programs by the employer's choice, not by
who owes the premium (NY and WA put the contribution on the worker), note
that MN and NY employer costs are not modeled, state why WA PFML is in and
Paid Leave Oregon is out, and note that Rev. Rul. 2025-4's treatment of an
employer-paid employee share as wages is not modeled. Cap the one-worker
employer's taxable total in the invariants so the employer-level path is
checked for every modeled state and size, pin the 2027 Massachusetts
parameter values, and add file-page anchors to the PDF references.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Hand-off to the US + core hub.

MaxGhenis and others added 2 commits October 19, 2026 17:44
Brings in main through 1661d71, including #10279's update to North Carolina SA Case 37, which was the only CI failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

MaxGhenis commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor Author

Hand-off update: #10282 was closed because #10279 already landed the same NC Special Assistance test fix on main. The branch already had main merged in at 21:44Z (33b1f9091e, which includes #10279). At 22:37Z I also ran GitHub's update-branch, which added 3698893465ee80dd94199b0fad4606eaaf1318b5, a second main merge and now the head. Both commits only bring in main: none of this PR's files changed after 727ebcb, where the review agreed. There is no remaining dependency; what's left is CI.

Brings in main through c39af98 (#10185, #10199 and others) so CI runs on the combined tree. The two sides share no files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DTrim99

DTrim99 commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Let employers deduct less than the permitted state payroll premium, and apply Massachusetts' 2027 PFML cap swap

PR #10285 (author: MaxGhenis). Head 6ad174a080. The branch is 7 ahead of main and 16 behind. First review.

Summary

The PR adds employer_state_payroll_premium_deduction_share (Person input, default 1). It is the share of the permitted employee premium that the employer actually deducts, held to 0–1 by the new state_payroll_premium_deduction_share. It covers eight programs whose law caps a permissive deduction: CO FAMLI, DE Paid Leave, ME and MA PFML, MN Paid Leave, NY PFL and DBL, the VT Child Care Contribution and WA PFML. The employee amount becomes the permitted share times this input. In the six programs with an employer variable, that variable picks up the part not deducted. The PR also encodes the Massachusetts cap swap under Acts 2026 c. 101 §§25–26 from 2027-01-01, together with DFML's 2027 rate swap, and fixes the Connecticut citation to CGS 31-49g(b)(1).

I re-read the primary sources for all eight programs and for Connecticut. Each one matches the PR's split between the "may deduct up to" programs and the mandatory-withholding programs, and each matches its employer-pays-the-rest rule. The Acts 2026 c. 101 text and DFML's 2027 split confirm the Massachusetts values. Every formula reduces to the old one at the default share, so no existing result changes. Employee plus employer equals the required remittance at any share in all six modeled states. The code is vectorized, and the share is applied only inside the state-gated program variables.

I hand-checked all 20 new YAML cases and two existing capped Massachusetts cases. All eight axiom issues are OPEN, labelled pe-parity, dispatch-ready and consistent with the head. CI is 29/29 green. git merge-tree is clean against main (which now includes #10295), against #10154, and against both together.

One should-fix item remains: three parameter descriptions don't follow the house template. There are three optional suggestions.

Critical (must fix)

None.

Should address

1. Three parameter descriptions don't follow the house template.

  • Where (line 1 of each):
    • parameters/gov/states/ma/tax/payroll/paid_leave/family_employee_share.yaml (new): "Largest share of the Massachusetts PFML family leave contribution an employer may deduct from wages."
    • parameters/gov/states/ma/tax/payroll/paid_leave/medical_employee_share.yaml (rewritten): "Largest share of the Massachusetts PFML medical leave contribution an employer may deduct from wages."
    • parameters/gov/states/de/tax/payroll/paid_leave/employee_share.yaml (rewritten): "Largest share of each Delaware Paid Leave contribution an employer may deduct from wages."
  • The template: "one sentence, spell the program out fully (no acronyms), [State] [verb] ... under the [Full Program Name] program."
    • All three open with a noun phrase instead of "[State] [verb]".
    • The two Massachusetts descriptions use the acronym "PFML".
    • None has the "under the ... program" clause.
  • Fix, for example:
    • "Massachusetts limits an employer's deduction from wages to this share of the family leave contribution under the Paid Family and Medical Leave program."
    • The same sentence with "medical leave contribution" for medical_employee_share.
    • "Delaware limits an employer's deduction from wages to this share of each contribution under the Paid Leave program."

Suggestions

1. Federal tax treatment of the part the employer pays (documented deferral; consider a follow-up issue).

  • What's missing. The input, employee_state_payroll_tax and the aggregate docstrings say the federal treatment of an employer's payment of the employee share is not modeled. That treatment is the "pick-up" in Rev. Rul. 2025-4. The citation is correct, and the relief has ended for 2026. Notice 2026-6, footnote 2: "This notice does not extend the third component of the transition relief announced in Revenue Ruling 2025-4 to an employer pick-up for calendar year 2026, and consequently, contemplates that employers will treat contribution amounts they voluntarily pay on behalf of their employees to a State PFML program as wages for Federal employment tax purposes under §§ 3121(a), 3306(b), and 3401(a)".
  • Effect. Take a share below 1 in CO, DE, ME, MA, MN or WA from 2026 on. The model raises net income by the full undeducted amount, but federal law adds that amount to W-2 wages for income tax and FICA. The employee can also deduct it as a state tax if itemizing.
    • Example: CO 2026, $100,000 of wages, share 0.5. The employer picks up $220, and the model leaves out FICA of 7.65% × 220 = $16.83 plus the income tax on $220.
  • Why it isn't blocking. The default share is unaffected, and the limitation is stated in the docstrings.
  • Suggestion. File a follow-up issue and link it from the input's docstring, so users who lower the share see where the model stops.

2. Optional YAML cases for two paths that only the Hypothesis test reaches.

  • Wage cap with a partial share. No YAML case puts a partial share on wages above the Social Security base. MA 2027, $250,000 of wages, share 0.5:
    • wages capped at $192,300
    • permitted 0.46% × 192,300 = 884.58
    • ma_employee_paid_leave_contribution = 442.29
    • ma_employer_paid_leave_contribution = 0.42% × 192,300 + 442.29 = 807.66 + 442.29 = 1,249.95
    • This also pins the 2027 cap together with the swapped parameters.
  • Employer aggregate with a share. employer_total_additional_state_payroll_tax is checked only by property 5 and by the existing default-share Python tests. A case: CO 2026, employer_total_taxable_earnings_for_social_security: 1_000_000, employer_state_payroll_premium_deduction_share: 0.5, default headcount. That gives 0.44% × 1,000,000 + 0.5 × 0.44% × 1,000,000 = 4,400 + 2,200 = 6,600.

3. Small text fixes.

  • PR body, "Not in this PR". "2027 premium rates for CO, DE, ME, MN, NY and WA still carry 2026 values forward" is out of date now that Encode the published 2027 state paid leave premiums (CO, WA, NY, NJ) and cite the unchanged 2027 rates #10295 is on main:
    • It encodes CO 0.86%, WA 1.2% with a 29.3% employer share, and NY PFL 0.452% with a $451.81 maximum.
    • It cites official confirmation that DE, ME and MN are unchanged.
    • Drop or update that bullet.
  • Test-module docstring. test_state_payroll_premium_deduction_share_invariants.py:3-7 says these programs "put the premium on the employer". That is not true for:
    • New York, where WCL §209(3)–(4) makes it an employee contribution the employer "is authorized to collect".
    • Washington, where RCW 50A.10.030(1) assesses the premium "for each individual in employment".
    • The variable docstrings were corrected in r1, and the hub review left this one open as a P3.
  • Reference titles. family_employee_share.yaml and medical_employee_share.yaml cite "Massachusetts General Laws Chapter 175M Section 6". The house style asks for the full subsection path, so "Section 6(c)-(d)" would point straight at the caps.
  • Optional comment on the date. Add a one-line comment beside the 2027-01-01 entries in the two share files explaining why the swap is not dated 2026-01-01 under §45's "taxable years" clause (§43(a) and DFML). Then the decision travels with the parameter and not only in the PR body.

Verified correct

  • Default behaviour is unchanged.
    • Every touched employee formula is permitted × state_payroll_premium_deduction_share.
    • Every touched employer formula adds (1 − share) × permitted, or for DE uses rate × (1 − 0.5 × share). At share = 1 each reduces exactly to the formula on main.
    • The aggregate employer_total_additional_state_payroll_tax makes the same changes, applying the person's share to the whole payroll, as its docstring says.
    • The share is clipped to 0–1 (clip(share, 0, 1)), and the YAML clip case pins 1.5 → 1 and −0.5 → 0.
    • The code is vectorized throughout (clip, where, select, array arithmetic).
    • The share variable has no defined_for. It is read only inside variables already gated by defined_for = StateCode.XX.
  • Conservation (employee + employer = required remittance, for any share):
    • CO: 10+ employees remit 0.88% (= 0.44% + undeducted + deducted). Fewer than 10 remit 0.44%.
    • DE: full rate at 25+, parental rate only at 10–24, 0 below 10.
    • MA: 0.88% at 25+, 0.46% below 25.
    • ME: 1.0% at 15+, 0.5% below 15.
    • VT: 0.44%.
    • WA: the full rate at 50+, the employee share below 50.
    • MN and NY: employer cost not modeled, as the docstrings say.
  • Batch lessons:
  • Massachusetts swap (Acts 2026 c. 101, "Approved, June 12, 2026", emergency preamble):
    • §25: "striking out, in lines 22, 33 and 39, the figure '40', each time it appears, and inserting ... 100".
    • §26: "striking out, in lines 25, 33 and 43, the figure '100' ... 40".
    • The lines. In c. 175M §6, "40" and "100" each appear three times: (c)(1) "shall not deduct more than 40 per cent" (medical), (c)(2) "may deduct not more than 100 per cent" (family), (d) the small-employer remittance, and (e)(1)–(2). So the swap reaches employers, small employers and covered business entities.
    • §43(a): guidance on "the impact for employers and employees in calendar year 2027, including ... any administrative adjustments ... to ensure the overall balance of employee and employer contribution levels remain unchanged".
    • §45: applies §§25–26 "for taxable years beginning on or after January 1, 2026".
    • §49: "Section 22 shall take effect on January 1, 2027". The PR body cites this as the counter-point.
    • DFML (search capture of the mass.gov rates page; the page itself returns 403 to automated requests):
      • 2027 family leave: "Up to 40% ... can be withheld (0.28% of eligible wages) ... the remaining 60% (0.42% of eligible wages)".
      • 2027 medical leave: "Up to 100% ... (0.18% of eligible wages)".
      • Small employers: "fewer than 25 covered individuals must send an effective contribution rate of 0.46%".
      • Effective date: "effective January 1, 2027".
      • These figures imply family 0.70% and medical 0.18%, which matches the parameters.
    • Date assessment. I agree with 2027-01-01.
      • DFML administers calendar-year rates and applies the swap from 2027. §43(a) frames the change as calendar 2027.
      • A literal 2026 reading would apply swapped caps to the unswapped 2026 rates. That gives a 0.772% employee maximum, which no employer applied, and it would make lawful 2026 family-leave deductions above 40% excessive after the fact.
      • The PR documents both readings, and its 2026 cases pin the outcome.
    • Effect on outputs. The swap leaves every household's amounts unchanged (2026 0.18 + 0.4 × 0.70 = 0.46; 2027 0.4 × 0.70 + 0.18 = 0.46). Only the Python parameter-pin test can tell the swap from carrying 2026 forward, and that justifies that test.
  • Statutory employee maximum and employer rule for each state (each re-read at the official source):
    • CO: C.R.S. 8-13.3-507(5) (CRS 2025, file p. 222): "An employer with 10 or more employees may deduct up to 50 percent of the premium ... and shall remit 100 percent ... An employer with fewer than 10 employees may deduct up to 50 percent ... and shall remit 50 percent". 7 CCR 1107-1 §1.4(6) and (6)(A) (rule PDF, file pp. 7–8): "If an employer fails to deduct the maximum allowable employee share ... the employer is considered to have elected to pay that portion".
    • DE: 19 Del. C. §3705(d)–(f): "an employer shall deduct not greater than 50% of the contribution required for the employee. However, an employer may elect to pay all or any portion of the employee's share". §3705(g): "the employer remains liable for the full amount of the contribution, including that amount not deducted".
    • ME: 26 M.R.S. §850-F(5): 15 or more employees "may deduct up to 50% ... and shall remit 100%"; fewer than 15 "may deduct up to 50% ... and shall remit 50%".
    • MN: Minn. Stat. 268B.14:
      • subd. 3: "employers must pay a minimum of 50 percent of the annual premiums ... Employees, through a deduction in their wages ... must pay the remaining portion, if any".
      • subd. 5a(b)(1): small employers "must pay a minimum of 25 percent of the rate calculated in subdivisions 6 and 7".
      • So the employee maximum is 0.44% for both regular and small employers, which matches employee_rate.
    • NY: WCL §209(3)(a): DBL is "one-half of one per centum ... but not in excess of sixty cents per week". (3)(b): DFS sets the PFL maximum. (4): "the employer is authorized to collect from his or her employees ... through payroll deductions". §210(1): the employer pays "the cost of providing disability benefits in excess of the contributions collected".
    • VT: 32 V.S.A. §10553(a)(1): "Each employer shall pay the Child Care Contribution ... may deduct and withhold ... not more than one quarter". (b): 0.44%. (c)(2): "Employers shall be responsible for the full amount of any unpaid contributions".
    • WA: RCW 50A.10.030(3): "may deduct ... up to". (3)(c): "may elect to pay all or any portion of the employee's share". (7)(a): "must collect from the employees". WAC 192-510-065(2): a deduction not taken means "the employer is considered to have elected to pay that portion".
    • MA employer rule: 458 CMR 2.05(5) (text checked on Cornell LII): "The employer ... in all instances shall be responsible for paying and remitting the remainder of any required contribution not lawfully deducted". It also allows "differing percentages" by group, which the aggregate docstring acknowledges. I couldn't check the #page=12 anchor on the mass.gov PDF because mass.gov blocks automated requests.
    • CT fix: In CGS chapter 557, 31-49e is "Paid family and medical leave. Definitions". 31-49g(b)(1) says "each employee ... shall contribute ... provided that the percentage shall not exceed one-half of one per cent". The #sec_31-49g anchor exists. This is a valid reference-only n/a.
  • Hand checks (all 20 new cases; 2026 unless noted; $100,000 of wages; default headcount 100):
    • CO default: 0.44% × 100,000 = 440 employee, 440 employer ✓.
    • CO clip: share 1.5 → 1, giving 440 / 440. Share −0.5 → 0, giving 0 employee and 440 + 440 = 880 employer ✓.
    • CO share 0.5: employee 220 (state and total also 220). Employer 440 + 220 = 660 ✓.
    • CO 9 employees, share 0.25: employee 110. Employer 0 + 0.75 × 440 = 330 ✓.
    • MA 2026 share 0.5: 0.5 × (0.18% + 0.4 × 0.70%) × 100,000 = 230. Employer 0.6 × 0.70% × 100,000 + 230 = 420 + 230 = 650 ✓.
    • MA 2026, 24 employees, share 0: 0 / 460 ✓.
    • MA 2026 default: 460 / 420 ✓.
    • MA 2027 default: 0.4 × 0.70% + 1 × 0.18% = 0.46% → 460. Employer 0.6 × 0.70% = 0.42% → 420 ✓.
    • MA 2027, 24 employees: 460 / 0 ✓.
    • MA 2027 share 0.5: 230 / 650 ✓.
    • ME share 0.5: 0.5 × 0.5% × 100,000 = 250. Employer 500 + 250 = 750 ✓. With 14 employees: 250 / 250 ✓.
    • DE share 0.5: 0.8% × 0.5 × 0.5 × 100,000 = 200. Employer 0.8% × 0.75 × 100,000 = 600 ✓.
    • DE 20 employees, share 0: 0. Employer 0.32% × 100,000 = 320 ✓.
    • VT share 0.5: 0.11% × 100,000 × 0.5 = 55. Employer (0.33% + 0.055%) × 100,000 = 385 ✓.
    • WA share 0.5:
      • employee 0.5 × 1.13% × 0.7143 × 100,000 = 403.5795
      • WA Cares 0.58% = 580
      • state total 983.5795
      • employer 1.13% × 0.2857 × 100,000 + 403.5795 = 322.841 + 403.5795 = 726.4205 ✓
    • WA 49 employees, share 0: 0 / 807.159 ✓.
    • MN share 0.5: 0.5 × 0.44% × 100,000 = 220 ✓.
    • NY share 0.5:
      • PFL: min(0.432% × 100,000, 411.91) × 0.5 = 205.955
      • DBL: min(500, 31.20) × 0.5 = 15.60
      • total 221.555 ✓
    • Mandatory withholding at share 0: CA SDI 1.3% = 1,300, CT 0.5% = 500, PA UC 0.07% = 70 ✓.
    • Wage cap at the default share (existing MA cases, unchanged): 2025: 0.46% × 176,100 = 810.06. 2024: 0.46% × 168,600 = 775.56 ✓.
  • Callers.
    • employee_state_payroll_tax feeds employee_payroll_tax, which feeds household_tax_before_refundable_credits, spm_unit_payroll_tax, spm_unit_paycheck_withholdings, taxsim_tfica, the FICA marginal-rate helper and Alabama's itemized-deduction sources.
    • The employer variables feed employer_state_payroll_tax and employer_total_state_payroll_tax.
    • At the default share all of these are unchanged.
  • Test design.
    • The Hypothesis property test (8 examples, at most about 141 people, 2026–2027) checks multi-state structural invariants that YAML can't express. It doesn't re-implement a formula. Cost is reported (5.0 s test time, 1.04 GB local peak, core shard).
    • The parameter-pin test reads the shared system without building a model.
    • The YAML file is named after state_payroll_premium_deduction_share.
  • Changelog, references, partners.
    • One top-level changelog.d/payroll-employer-deduction-share.added.md. added fits a new input.
    • The variable references are single and valid. The multi-page CO rule href has a # PDF pages 7-8 comment, which follows the convention.
    • No partner contract test is touched.

Axiom line assessment

Valid. The line has eight queued entries and one n/a.

CI status

All 29 checks pass at head 6ad174a080 (gh pr checks 10285, re-checked at the end of this review). Nothing is pending.

Branch status

Verdict: REQUEST_CHANGES

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mechanism, the statutes for all eight states and the Massachusetts 2027 change all check out, the default share of 1 leaves every existing output unchanged, and all 20 new cases hand-check. One should-address item: three parameter descriptions (MA family and medical employee shares, DE employee share) don't follow the house template. Three suggestions, and a note to update the branch past #10295 before merging. Full report in the comment above.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants