diff --git a/changelog.d/ar-low-income-table-backfill.fixed.md b/changelog.d/ar-low-income-table-backfill.fixed.md new file mode 100644 index 00000000000..f0417107d80 --- /dev/null +++ b/changelog.d/ar-low-income-table-backfill.fixed.md @@ -0,0 +1 @@ +- Kept the Arkansas MFJ two-or-more-dependents low-income tax table rows added for 2024-2025 out of earlier years; the published tables end at $32,200 (2021) through $34,100 (2023), so incomes above the cutoff use the regular tax table. diff --git a/policyengine_us/parameters/gov/states/ar/tax/income/rates/low_income_tax_tables/joint/two_or_more_dependents.yaml b/policyengine_us/parameters/gov/states/ar/tax/income/rates/low_income_tax_tables/joint/two_or_more_dependents.yaml index cdac96c83dd..6280a906e80 100644 --- a/policyengine_us/parameters/gov/states/ar/tax/income/rates/low_income_tax_tables/joint/two_or_more_dependents.yaml +++ b/policyengine_us/parameters/gov/states/ar/tax/income/rates/low_income_tax_tables/joint/two_or_more_dependents.yaml @@ -750,22 +750,33 @@ brackets: 2024-01-01: 754 2025-01-01: 758 - threshold: + # Rows beyond each year's published cutoff must stay .inf so incomes + # above the table fall through to the regular tax table (core + # backfills a bracket's first value to the timeline start). + 2021-01-01: .inf 2024-01-01: 35_000 2025-01-01: 35_801 amount: + 2021-01-01: .inf 2024-01-01: 765 2025-01-01: 769 - threshold: + 2021-01-01: .inf 2024-01-01: 35_100 2025-01-01: 35_901 amount: + 2021-01-01: .inf 2024-01-01: .inf 2025-01-01: 779 - threshold: + 2021-01-01: .inf 2025-01-01: 36_001 amount: + 2021-01-01: .inf 2025-01-01: 790 - threshold: + 2021-01-01: .inf 2025-01-01: 36_101 amount: + 2021-01-01: .inf 2025-01-01: .inf diff --git a/policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/ar_income_tax_before_non_refundable_credits_joint.yaml b/policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/ar_income_tax_before_non_refundable_credits_joint.yaml index 79cf9bbf77b..5dc32d59210 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/ar_income_tax_before_non_refundable_credits_joint.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/ar/tax/income/ar_income_tax_before_non_refundable_credits_joint.yaml @@ -121,3 +121,81 @@ # Low income cap: 5_000 # min(1_530, 5_000) = 1_530 ar_income_tax_before_non_refundable_credits_joint: 1_530 + +- name: AR 2021 MFJ with two dependents just above the low-income table cutoff uses the regular table (pe-us 9024) + period: 2021 + absolute_error_margin: 1 + input: + people: + head: + age: 40 + employment_income: 35_050 + spouse: + age: 40 + child1: + age: 10 + child2: + age: 8 + tax_units: + tax_unit: + members: [head, spouse, child1, child2] + households: + household: + members: [head, spouse, child1, child2] + state_code: AR + output: + # 2021 MFJ 2+ dependents low-income table ends at $32,200 + # ("Above $32,200 use Standard or Itemized Deductions and Regular + # Income Tax Table"); regular table: 0.05 x 30,650 - 439.96 = 1,092.54. + # Before the fix a leaked 2024 row returned $765. + ar_income_tax_before_non_refundable_credits_joint: [1_092.54, 0, 0, 0] + +- name: AR 2021 MFJ with two dependents inside the low-income table keeps its table amount (monotonicity companion, pe-us 9024) + period: 2021 + absolute_error_margin: 1 + input: + people: + head: + age: 40 + employment_income: 31_950 + spouse: + age: 40 + child1: + age: 10 + child2: + age: 8 + tax_units: + tax_unit: + members: [head, spouse, child1, child2] + households: + household: + members: [head, spouse, child1, child2] + state_code: AR + output: + # 2021 published row $31,901-$32,000 -> $921 (TaxTables_2021.pdf) + ar_income_tax_before_non_refundable_credits_joint: [921, 0, 0, 0] + +- name: AR 2024 MFJ with two dependents at the published last table row still gets 765 (pe-us 9024) + period: 2024 + absolute_error_margin: 1 + input: + people: + head: + age: 40 + employment_income: 35_050 + spouse: + age: 40 + child1: + age: 10 + child2: + age: 8 + tax_units: + tax_unit: + members: [head, spouse, child1, child2] + households: + household: + members: [head, spouse, child1, child2] + state_code: AR + output: + # 2024 published last row $35,001-$35,100 -> $765 + ar_income_tax_before_non_refundable_credits_joint: [765, 0, 0, 0]