From ee27fb103f078f0bd709382a72309b05a19279c8 Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Fri, 16 Oct 2026 16:08:55 -0400 Subject: [PATCH 1/2] Apply each year's California SDI rate and the pre-2024 wage limit 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 --- .../fix-9813-ca-sdi-rate-by-year.fixed.md | 1 + .../tax/payroll/disability/employee_rate.yaml | 13 ++++- .../payroll/disability/taxable_wage_base.yaml | 23 +++++++++ ...ate_disability_insurance_contribution.yaml | 48 +++++++++++++++++++ ...state_disability_insurance_contribution.py | 13 ++++- 5 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md create mode 100644 policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml diff --git a/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md b/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md new file mode 100644 index 00000000000..efc2fb4385c --- /dev/null +++ b/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md @@ -0,0 +1 @@ +Apply the California employee SDI rate for each year from 2019 (1.1% in 2024 and 1.2% in 2025, not 1.3%) and the SDI taxable wage limit through 2023, from EDD's DE 3395. diff --git a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml index d149567fc8e..d7c91734cee 100644 --- a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml +++ b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml @@ -1,6 +1,13 @@ description: Employee-side California State Disability Insurance contribution rate. values: - 0000-01-01: 0.013 + # DE 3395 lists rates from 2019; the 2019 rate also applies to earlier years. + 0000-01-01: 0.01 + 2021-01-01: 0.012 + 2022-01-01: 0.011 + 2023-01-01: 0.009 + 2024-01-01: 0.011 + 2025-01-01: 0.012 + 2026-01-01: 0.013 metadata: period: year @@ -11,5 +18,9 @@ metadata: href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=984. - title: California Unemployment Insurance Code Section 985 href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=985. + - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 69 (1-26)), SDI Tax % column, 2019-2026 + href: https://edd.ca.gov/siteassets/files/pdf_pub_ctr/de3395.pdf#page=1 + - title: EDD, Contribution Rates, Withholding Schedules, and Meals and Lodging Values (SDI withholding rates, 2023-2026) + href: https://edd.ca.gov/en/payroll_taxes/rates_and_withholding - title: 2026 California Payroll Taxes (DE 201) href: https://edd.ca.gov/siteassets/files/pdf_pub_ctr/de201.pdf#page=1 diff --git a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml new file mode 100644 index 00000000000..e6a6046e807 --- /dev/null +++ b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml @@ -0,0 +1,23 @@ +description: California limits employee State Disability Insurance contributions to wages up to this amount per employee. +values: + # DE 3395 lists limits from 2019; the 2019 limit also applies to earlier years. + 0000-01-01: 118_371 + 2020-01-01: 122_909 + 2021-01-01: 128_298 + 2022-01-01: 145_600 + 2023-01-01: 153_164 + # UIC 985(b), added by SB 951 (2022): the limit does not apply to wages + # paid on or after January 1, 2024. + 2024-01-01: .inf + +metadata: + period: year + unit: currency-USD + label: California employee SDI taxable wage base + reference: + - title: California Unemployment Insurance Code Section 985(a) (wage limit) and (b) (no limit for wages paid on or after January 1, 2024) + href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=985. + - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 69 (1-26)), Maximum Taxable Wage Base DI column and footnote 1, 2019-2026 + href: https://edd.ca.gov/siteassets/files/pdf_pub_ctr/de3395.pdf#page=1 + - title: EDD, Contribution Rates, Withholding Schedules, and Meals and Lodging Values (2023 SDI taxable wage limit; no limit from 2024 under SB 951) + href: https://edd.ca.gov/en/payroll_taxes/rates_and_withholding diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml index d6a408eee6d..31f96b7d2e4 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml @@ -7,3 +7,51 @@ state_code: CA output: ca_employee_state_disability_insurance_contribution: 65 + +- name: Case 2, California SDI in 2023 uses the 0.9% rate below the taxable wage limit. + period: 2023 + input: + employment_income: 60_000 + state_code: CA + output: + # DE 3395: 2023 SDI rate 0.9%, taxable wage limit $153,164. + # 0.9% x 60,000 = 540. + ca_employee_state_disability_insurance_contribution: 540 + +- name: Case 3, California SDI in 2023 stops at the taxable wage limit. + period: 2023 + absolute_error_margin: 0.01 + input: + employment_income: 200_000 + state_code: CA + output: + # 0.9% x min(200,000, 153,164) = 1,378.48, the 2023 maximum withholding. + ca_employee_state_disability_insurance_contribution: 1_378.48 + +- name: Case 4, California SDI in 2024 uses the 1.1% rate on all wages. + period: 2024 + input: + employment_income: 200_000 + state_code: CA + output: + # DE 3395: 2024 SDI rate 1.1%; no taxable wage limit from 2024 (UIC 985(b)). + # 1.1% x 200,000 = 2,200. + ca_employee_state_disability_insurance_contribution: 2_200 + +- name: Case 5, California SDI in 2025 uses the 1.2% rate. + period: 2025 + input: + employment_income: 60_000 + state_code: CA + output: + # DE 3395: 2025 SDI rate 1.2%. 1.2% x 60,000 = 720. + ca_employee_state_disability_insurance_contribution: 720 + +- name: Case 6, California SDI in 2026 uses the 1.3% rate on all wages. + period: 2026 + input: + employment_income: 200_000 + state_code: CA + output: + # DE 3395: 2026 SDI rate 1.3%, no wage limit. 1.3% x 200,000 = 2,600. + ca_employee_state_disability_insurance_contribution: 2_600 diff --git a/policyengine_us/variables/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.py b/policyengine_us/variables/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.py index d793b7c9a67..8abb504b7af 100644 --- a/policyengine_us/variables/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.py +++ b/policyengine_us/variables/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.py @@ -12,7 +12,16 @@ class ca_employee_state_disability_insurance_contribution(Variable): definition_period = YEAR unit = USD defined_for = StateCode.CA + reference = ( + "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=984.", + "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=985.", + "https://edd.ca.gov/siteassets/files/pdf_pub_ctr/de3395.pdf#page=1", + ) def formula(person, period, parameters): - rate = parameters(period).gov.states.ca.tax.payroll.disability.employee_rate - return rate * person("ca_payroll_tax_gross_wages", period) + p = parameters(period).gov.states.ca.tax.payroll.disability + wages = person("ca_payroll_tax_gross_wages", period) + # UIC 985: contributions apply to wages up to the taxable wage limit + # through 2023; from 2024 there is no limit. + taxable_wages = min_(wages, p.taxable_wage_base) + return p.employee_rate * taxable_wages From 7c5d7dc3213b919f4c2e765c85f50a62955cd3af Mon Sep 17 00:00:00 2001 From: PavelMakarchuk Date: Tue, 27 Oct 2026 10:57:27 -0400 Subject: [PATCH 2/2] Add 2006-2018 California SDI rates and wage limits from EDD 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 --- .../fix-9813-ca-sdi-rate-by-year.fixed.md | 2 +- .../tax/payroll/disability/employee_rate.yaml | 15 +++- .../payroll/disability/taxable_wage_base.yaml | 24 +++++- ...ate_disability_insurance_contribution.yaml | 84 +++++++++++++++++++ 4 files changed, 118 insertions(+), 7 deletions(-) diff --git a/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md b/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md index efc2fb4385c..4f07caa0735 100644 --- a/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md +++ b/changelog.d/fix-9813-ca-sdi-rate-by-year.fixed.md @@ -1 +1 @@ -Apply the California employee SDI rate for each year from 2019 (1.1% in 2024 and 1.2% in 2025, not 1.3%) and the SDI taxable wage limit through 2023, from EDD's DE 3395. +Apply the California employee SDI rate for each year from 2006 (1.1% in 2024 and 1.2% in 2025, not 1.3%) and the SDI taxable wage limit through 2023, from EDD's DE 3395. diff --git a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml index d7c91734cee..4ee58764a40 100644 --- a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml +++ b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/employee_rate.yaml @@ -1,7 +1,14 @@ description: Employee-side California State Disability Insurance contribution rate. values: - # DE 3395 lists rates from 2019; the 2019 rate also applies to earlier years. - 0000-01-01: 0.01 + # DE 3395 Rev. 55 lists rates from 2006; earlier years reuse the 2006 rate. + 0000-01-01: 0.008 + 2007-01-01: 0.006 + 2008-01-01: 0.008 + 2009-01-01: 0.011 + 2011-01-01: 0.012 + 2012-01-01: 0.01 + 2015-01-01: 0.009 + 2018-01-01: 0.01 2021-01-01: 0.012 2022-01-01: 0.011 2023-01-01: 0.009 @@ -18,6 +25,10 @@ metadata: href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=984. - title: California Unemployment Insurance Code Section 985 href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=985. + - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 55 (1-13)), SDI Tax % column, 2006-2013 + href: https://web.archive.org/web/20130124000837/http://www.edd.ca.gov/pdf_pub_ctr/de3395.pdf#page=1 + - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 61 (12-17)), SDI Tax % column, 2011-2018 + href: https://web.archive.org/web/20181221225340/https://www.edd.ca.gov/pdf_pub_ctr/de3395.pdf#page=1 - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 69 (1-26)), SDI Tax % column, 2019-2026 href: https://edd.ca.gov/siteassets/files/pdf_pub_ctr/de3395.pdf#page=1 - title: EDD, Contribution Rates, Withholding Schedules, and Meals and Lodging Values (SDI withholding rates, 2023-2026) diff --git a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml index e6a6046e807..30303600d3e 100644 --- a/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml +++ b/policyengine_us/parameters/gov/states/ca/tax/payroll/disability/taxable_wage_base.yaml @@ -1,13 +1,25 @@ description: California limits employee State Disability Insurance contributions to wages up to this amount per employee. values: - # DE 3395 lists limits from 2019; the 2019 limit also applies to earlier years. - 0000-01-01: 118_371 + # DE 3395 Rev. 55 lists limits from 2006; earlier years reuse the 2006 limit. + 0000-01-01: 79_418 + 2007-01-01: 83_389 + 2008-01-01: 86_698 + 2009-01-01: 90_669 + 2010-01-01: 93_316 + 2012-01-01: 95_585 + 2013-01-01: 100_880 + 2014-01-01: 101_636 + 2015-01-01: 104_378 + 2016-01-01: 106_742 + 2017-01-01: 110_902 + 2018-01-01: 114_967 + 2019-01-01: 118_371 2020-01-01: 122_909 2021-01-01: 128_298 2022-01-01: 145_600 2023-01-01: 153_164 - # UIC 985(b), added by SB 951 (2022): the limit does not apply to wages - # paid on or after January 1, 2024. + # UIC 985(b) (SB 951 (2022), as amended by SB 143 (2023)): the limit does + # not apply to wages paid on or after January 1, 2024. 2024-01-01: .inf metadata: @@ -17,6 +29,10 @@ metadata: reference: - title: California Unemployment Insurance Code Section 985(a) (wage limit) and (b) (no limit for wages paid on or after January 1, 2024) href: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=UIC§ionNum=985. + - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 55 (1-13)), Maximum Taxable Wage Base DI column, 2006-2013 + href: https://web.archive.org/web/20130124000837/http://www.edd.ca.gov/pdf_pub_ctr/de3395.pdf#page=1 + - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 61 (12-17)), Maximum Taxable Wage Base DI column, 2011-2018 + href: https://web.archive.org/web/20181221225340/https://www.edd.ca.gov/pdf_pub_ctr/de3395.pdf#page=1 - title: EDD, Tax Rates, Wage Limits, and Value of Meals and Lodging (DE 3395 Rev. 69 (1-26)), Maximum Taxable Wage Base DI column and footnote 1, 2019-2026 href: https://edd.ca.gov/siteassets/files/pdf_pub_ctr/de3395.pdf#page=1 - title: EDD, Contribution Rates, Withholding Schedules, and Meals and Lodging Values (2023 SDI taxable wage limit; no limit from 2024 under SB 951) diff --git a/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml b/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml index 31f96b7d2e4..ae87128870b 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ca/tax/payroll/disability/ca_employee_state_disability_insurance_contribution.yaml @@ -55,3 +55,87 @@ output: # DE 3395: 2026 SDI rate 1.3%, no wage limit. 1.3% x 200,000 = 2,600. ca_employee_state_disability_insurance_contribution: 2_600 + +- name: Case 7, California SDI in 2010 stops at the 2010 taxable wage limit. + period: 2010 + absolute_error_margin: 0.01 + input: + employment_income: 200_000 + state_code: CA + output: + # DE 3395 Rev. 55: 2010 SDI rate 1.1%, taxable wage limit $93,316. + # 1.1% x min(200,000, 93,316) = 1,026.476. + ca_employee_state_disability_insurance_contribution: 1_026.48 + +- name: Case 8, California SDI in 2011 uses the 1.2% rate below the taxable wage limit. + period: 2011 + input: + employment_income: 60_000 + state_code: CA + output: + # DE 3395 Rev. 61: 2011 SDI rate 1.2%, taxable wage limit $93,316. + # 1.2% x 60,000 = 720. + ca_employee_state_disability_insurance_contribution: 720 + +- name: Case 9, California SDI in 2015 stops at the 2015 taxable wage limit. + period: 2015 + absolute_error_margin: 0.01 + input: + employment_income: 200_000 + state_code: CA + output: + # DE 3395 Rev. 61: 2015 SDI rate 0.9%, taxable wage limit $104,378. + # 0.9% x min(200,000, 104,378) = 939.402. + ca_employee_state_disability_insurance_contribution: 939.40 + +- name: Case 10, California SDI in 2018 stops at the 2018 taxable wage limit. + period: 2018 + absolute_error_margin: 0.01 + input: + employment_income: 200_000 + state_code: CA + output: + # DE 3395 Rev. 61: 2018 SDI rate 1.0%, taxable wage limit $114,967. + # 1.0% x min(200,000, 114,967) = 1,149.67. + ca_employee_state_disability_insurance_contribution: 1_149.67 + +- name: Case 11, California SDI in 2021 stops at the 2021 taxable wage limit. + period: 2021 + absolute_error_margin: 0.01 + input: + employment_income: 200_000 + state_code: CA + output: + # DE 3395 Rev. 69: 2021 SDI rate 1.2%, taxable wage limit $128,298. + # 1.2% x min(200,000, 128,298) = 1,539.576. + ca_employee_state_disability_insurance_contribution: 1_539.58 + +- name: Case 12, California SDI in 2023 at exactly the taxable wage limit. + period: 2023 + absolute_error_margin: 0.01 + input: + employment_income: 153_164 + state_code: CA + output: + # DE 3395 Rev. 69: 2023 SDI rate 0.9%, taxable wage limit $153,164. + # 0.9% x 153,164 = 1,378.476, the 2023 maximum withholding. + ca_employee_state_disability_insurance_contribution: 1_378.48 + +- name: Case 13, California SDI in 2022 limits each earner's wages separately. + period: 2022 + absolute_error_margin: 0.01 + input: + people: + person1: + employment_income: 200_000 + person2: + employment_income: 50_000 + households: + household: + members: [person1, person2] + state_code: CA + output: + # DE 3395 Rev. 69: 2022 SDI rate 1.1%, taxable wage limit $145,600. + # person1: 1.1% x min(200,000, 145,600) = 1,601.60. + # person2: 1.1% x 50,000 = 550. + ca_employee_state_disability_insurance_contribution: [1_601.60, 550]