Repository navigation
Apply each year's California SDI rate and the pre-2024 SDI wage limit - #10255
PavelMakarchuk wants to merge 4 commits into
Conversation
The employee SDI rate was 1.3% (the 2026 rate) for every year, with no taxable wage limit. Add EDD's DE 3395 rates for 2019-2026 (1.1% in 2024, 1.2% in 2025) and a taxable wage base parameter that limits contributions through 2023 and has no limit from 2024 (UIC 985(b), SB 951), and apply it in ca_employee_state_disability_insurance_contribution. Fixes #9813. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Apply each year's California SDI rate and the pre-2024 SDI wage limitSummaryThe PR fixes #9813, where California SDI used the 2026 rate (1.3%) with no wage limit in every year. It makes three changes:
Every 2019-2026 value matches EDD's DE 3395 (Rev. 69 (1-26)), and the 2023-2026 values also match EDD's rates page. Removing the limit from 2024 follows UIC 985(b) and DE 3395 footnote 1. Applying the limit per person, rather than per employer, gives the net liability after California's excess-SDI credit, which PolicyEngine doesn't model separately. I hand-checked 12 expectations and all are correct. The formula is vectorized, and no state-gated key variable is added. CI is 27/27 green, and the branch merges cleanly with main. Two things need fixing:
The suggestions are optional:
Critical (must fix)None. Should address1. The pre-2019 backfill contradicts EDD's published 2011-2018 rates and wage limits. Both parameter files start with a comment saying the 2019 value carries back:
The current DE 3395 only goes back to 2019, but EDD published the earlier years in its previous revision. DE 3395 Rev. 61 (12-17) (archived EDD copy, single page) lists:
So the comments are wrong, and so are the results in those years:
Several things make this worth fixing here:
Fix:
2. Add the The body has no line starting with Suggestions
Verified correct
Axiom line assessmentThe body has no
Recommended line. File a dispatch-ready
CI statusAll 27 checks pass at
None is pending or failing. Branch statusThe branch is 2 commits ahead of main (the change on 2026-10-16 and a merge of main on 2026-10-23) and 48 behind. Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
The 2019-2026 rates and wage bases match EDD's DE 3395 and rates page, the 2024+ no-limit rule matches UIC 985(b), and all 12 expectations hand-check. Two should-address items: (1) the 0000-01-01 backfill applies the 2019 rate and limit to earlier years, which contradicts EDD for 2011-2018 (e.g. 2015 was 0.9% and $104,378, so a $200k earner pays 1,183.71 instead of 939.40); add those years, or say they aren't modeled and use 'Part of #9813'; (2) there's no axiom line, so please file a pe-parity issue for UIC 984/985 and mark it queued. Three suggestions. Full report in the comment above.
DE 3395 Rev. 55 (1-13) lists 2006-2013 and Rev. 61 (12-17) lists 2011-2018; they agree on 2011-2013. Years before 2006 now reuse the 2006 values instead of the 2019 values. Attribute the current UIC 985(b) wording to SB 143 as well as SB 951. Add tests for 2010, 2011, 2015, 2018 and 2021, a 2023 case at exactly the wage limit, and a two-earner 2022 case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, @DTrim99. Each item and what I did: Should address1. Pre-2019 backfill: fixed in 7c5d7dc.
2. Suggestions1. Other capped years and the boundary: done in 7c5d7dc. New cases:
The file has 13 cases. They all pass here; 4 fail with the previous head's 2019 backfill. 2. UIC 985(b) history: done in 7c5d7dc. The comment in 3. Federal SALT leaves out SDI: no new issue. #9807 ("Federal SALT omits mandatory employee state payroll contributions (SDI, TDI, PFML, PA UC) already computed in employee_state_payroll_tax") already tracks this, so I did not open a duplicate. Tests run on this branch
🤖 Generated with Claude Code |
PR Review (round 2): Apply each year's California SDI rate and the pre-2024 SDI wage limitSummarySince round 1 (
I checked all 21 rates and 18 wage bases (2006-2023) against the three EDD PDFs, and every one matches. The UIC 985(a) formula, applied to each year's published maximum weekly benefit, also reproduces every wage base. So the statute and EDD's publications agree, and there's no source conflict to record. I hand-checked all 8 new expectations, and all are correct. The axiom issue is open, labelled I found nothing new. Prior findings
New findingsNone (0 critical, 0 should, 0 suggestions). Verified
Axiom line assessment
CI statusAt
Branch status
Verdict: APPROVE |
Summary
gov.states.ca.tax.payroll.disability.employee_ratehad one value, 0.013 (the 2026 rate), from0000-01-01, and California SDI had no taxable wage limit in any year. EDD's Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395) lists the SDI rate and the DI taxable wage base by year: Rev. 69 (1-26) for 2019-2026, Rev. 61 (12-17) for 2011-2018 and Rev. 55 (1-13) for 2006-2013 (archived EDD copies; the revisions agree on 2011-2013). Rev. 69's footnote says: "Effective January 1, 2024, there is no longer a taxable wage limit and maximum withholdings for each employee subject to SDI contributions." UIC 985(b) (SB 951 (2022), as amended by SB 143 (2023)) says the limit does not apply to wages paid on or after January 1, 2024. EDD's rates page gives the same 2023-2026 figures.Changes:
employee_rate.yaml: the dated rates above. The earliest revision found starts at 2006, so the 2006 rate is the0000-01-01value for earlier years.disability/taxable_wage_base.yaml: the wage bases above,.inffrom 2024-01-01. The 2006 base is the0000-01-01value.ca_employee_state_disability_insurance_contribution: rate x min(wages, taxable wage base).The patched results equal EDD's maximum withholdings in the capped years (for example $939.40 in 2015, $1,229.09 in 2020, $1,539.58 in 2021, $1,601.60 in 2022, $1,378.48 in 2023). The limit applies per employee and employer under UIC 985; the model applies it to each person's total wages, as for the other state wage bases. This equals the net liability after the excess-SDI credit on Form 540, which PolicyEngine does not model separately.
The model's payroll chain (
fica_pre_tax_contributions) has no values before 2010, so the 2006-2009 entries are not reachable in a simulation today. They are there so that the parameter matches EDD from 2006.Issue reproduction,
ca_employee_state_disability_insurance_contribution:Tests
Added to
ca_employee_state_disability_insurance_contribution.yaml:The file gives 13 passed here, 11 failed, 2 passed on main, and 4 failed, 9 passed with the 2019 backfill of the previous head (the 2010, 2011, 2015 and 2018 cases).
Also run on this branch:
tests/policy/baseline/gov/states/ca/andtests/policy/baseline/gov/local/ca/(937 and 867 passed);tests/core/test_payroll_contributions.py(100 passed); code-health tests for source conflicts, parameter keys and reference URLs (258 passed).Fixes #9813
axiom: TheAxiomFoundation/rulespec-us#1944 queued
🤖 Generated with Claude Code