From a724ec24fc79fbae29db5e45d0004072fce8f791 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Mon, 11 Nov 2024 10:26:21 -0700 Subject: [PATCH 1/5] Updated LA parameters files --- .../parameters/gov/states/la/README.md | 1 + .../tax/income/agi/subtractions/sources.yaml | 16 ------- .../la/tax/income/credits/cdcc/README.md | 1 + .../non_refundable/match.yaml} | 13 ++++-- .../non_refundable/upper_bracket_cap.yaml | 18 ++++++++ .../income/credits/cdcc/refundable/match.yaml | 28 ++++++++++++ .../la/tax/income/credits/eitc/README.md | 1 + .../la/tax/income/credits/eitc/match.yaml | 16 +++++++ .../la/tax/income/credits/non_refundable.yaml | 8 ++++ .../above_threshold_max.yaml | 16 ------- .../income_floor.yaml | 16 ------- .../income_threshold.yaml | 16 ------- .../credits/nonrefundable_p3/sources.yaml | 13 ------ .../la/tax/income/credits/refundable.yaml | 16 +++++++ .../credits/refundable_p2/eitc_mult.yaml | 16 ------- .../child_age_limit.yaml | 13 ------ .../refundable_child_care/expense_limit.yaml | 26 ----------- .../refundable_child_care/income_mult.yaml | 41 ------------------ .../refundable_child_care/mult.yaml | 13 ------ .../income/credits/refundable_p2/sources.yaml | 14 ------ .../school_readiness/age_threshold.yaml | 18 ++++++++ .../income/credits/school_readiness/rate.yaml | 38 ++++++++++++++++ .../deductions/federal_tax/availability.yaml | 17 ++++++++ .../deductions/itemized/excess_fraction.yaml | 19 ++++++++ .../itemized/relevant_federal_deductions.yaml | 20 +++++++++ .../income/exempt_income/disability/cap.yaml | 15 +++++++ .../military_pay_exclusion/max_amount.yaml | 18 ++++++++ .../exempt_income/reduction/in_effect.yaml | 16 +++++++ .../income/exempt_income/reduction/rate.yaml | 29 +++++++++++++ .../income/exempt_income/retirement/cap.yaml | 25 +++++++++++ .../la/tax/income/exempt_income/sources.yaml | 43 +++++++++++++++++++ .../income/exemptions/additional_amount.yaml | 15 ------- .../states/la/tax/income/exemptions/aged.yaml | 26 +++++++++++ .../la/tax/income/exemptions/blind.yaml | 13 ++++++ .../la/tax/income/exemptions/dependent.yaml | 15 +++++++ .../la/tax/income/exemptions/personal.yaml | 26 +++++++++++ .../income/exemptions/personal_amount.yaml | 15 ------- .../la/tax/income/exemptions/widow.yaml | 16 +++++++ .../la/tax/income/main/head_of_household.yaml | 30 +++++++++++++ .../gov/states/la/tax/income/main/joint.yaml | 30 +++++++++++++ .../states/la/tax/income/main/separate.yaml | 29 +++++++++++++ .../gov/states/la/tax/income/main/single.yaml | 30 +++++++++++++ .../gov/states/la/tax/income/main/widow.yaml | 30 +++++++++++++ .../tax/income/rates/head_of_household.yaml | 26 ----------- .../gov/states/la/tax/income/rates/joint.yaml | 27 ------------ .../states/la/tax/income/rates/separate.yaml | 27 ------------ .../states/la/tax/income/rates/single.yaml | 27 ------------ .../gov/states/la/tax/income/rates/widow.yaml | 27 ------------ 48 files changed, 602 insertions(+), 367 deletions(-) create mode 100644 fiscalsim_us/parameters/gov/states/la/README.md delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/agi/subtractions/sources.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/README.md rename fiscalsim_us/parameters/gov/states/la/tax/income/credits/{nonrefundable_p3/nonrefundable_child_care/income_mult.yaml => cdcc/non_refundable/match.yaml} (62%) create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/upper_bracket_cap.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/refundable/match.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/README.md create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/match.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/non_refundable.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/above_threshold_max.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_floor.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_threshold.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/sources.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/eitc_mult.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/child_age_limit.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/expense_limit.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/income_mult.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/mult.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/sources.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/age_threshold.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/rate.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/deductions/federal_tax/availability.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/excess_fraction.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/relevant_federal_deductions.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/disability/cap.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/military_pay_exclusion/max_amount.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/in_effect.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/rate.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/retirement/cap.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/sources.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/additional_amount.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/aged.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/blind.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/dependent.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal_amount.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/widow.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/main/head_of_household.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/main/joint.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/main/separate.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/main/single.yaml create mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/main/widow.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/rates/head_of_household.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/rates/joint.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/rates/separate.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/rates/single.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/la/tax/income/rates/widow.yaml diff --git a/fiscalsim_us/parameters/gov/states/la/README.md b/fiscalsim_us/parameters/gov/states/la/README.md new file mode 100644 index 000000000..53e292874 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/README.md @@ -0,0 +1 @@ +# Louisiana diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/agi/subtractions/sources.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/agi/subtractions/sources.yaml deleted file mode 100644 index a8eaa6aa1..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/agi/subtractions/sources.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Louisiana allows these subtractions (exemptions) from taxable income -values: - 2021-01-01: - - us_govt_interest - - tax_unit_taxable_social_security - - la_state_employee_retirement_benefits - - la_state_teacher_retirement_benefits - - la_federal_retirement_benefits - - la_other_subtractions - -metadata: - unit: variable - label: Louisiana subtractions from income - reference: - - title: Louisiana Form IT-540 Schedule F - Refundable credits - href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/README.md b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/README.md new file mode 100644 index 000000000..3ec6ea2cb --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/README.md @@ -0,0 +1 @@ +# Child and Dependent Care Credit \ No newline at end of file diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_mult.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/match.yaml similarity index 62% rename from fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_mult.yaml rename to fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/match.yaml index bff0df44f..5951e5f70 100644 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_mult.yaml +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/match.yaml @@ -1,6 +1,10 @@ -description: Income multiplier for Louisiana non-refundable child care tax credit +description: Louisiana matches this percentage of the federal child and dependent care credit, depending on federal adjusted gross income, as the non-refundable state CDCC. brackets: + - threshold: + 2006-01-01: 0 + amount: + 2006-01-01: 0 - threshold: 2006-01-01: 25_000 amount: @@ -14,15 +18,18 @@ brackets: amount: 2006-01-01: 0.1 + metadata: type: single_amount threshold_unit: currency-USD amount_unit: /1 period: year - label: Louisiana non-refundable child care credit income multiplier + label: Louisiana CDCC non-refundable match reference: - - title: §297.4. Reduction to tax due; certain child care expenses, part (A)(2)-(4) + - title: §297.4. Reduction to tax due; certain child care expenses, part (A)(1) href: http://legis.la.gov/Legis/Law.aspx?d=101769 + - title: 2023 Louisiana Resident Income Tax Return, 2A + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=16 - title: 2022 Louisiana Resident Income Tax Return href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=16 - title: 2021 Louisiana Resident Income Tax Return diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/upper_bracket_cap.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/upper_bracket_cap.yaml new file mode 100644 index 000000000..d1ee66172 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/non_refundable/upper_bracket_cap.yaml @@ -0,0 +1,18 @@ +description: Louisiana limits its non-refundable child and dependent care credit to this maximum amount, for filers with income in the top bracket. + +values: + 2006-01-01: 25 + +metadata: + period: year + unit: currency-USD + label: Louisiana non-refundable CDCC upper bracket cap + reference: + - title: §297.4. Reduction to tax due; certain child care expenses, part (A)(4) + href: http://legis.la.gov/Legis/Law.aspx?d=101769 + - title: 2023 Louisiana Resident Income Tax Return, 2A + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=16 + - title: 2022 Louisiana Resident Income Tax Return, 2A + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=16 + - title: 2021 Louisiana Resident Income Tax Return, 2A + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf#page=16 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/refundable/match.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/refundable/match.yaml new file mode 100644 index 000000000..b096c0b1f --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/cdcc/refundable/match.yaml @@ -0,0 +1,28 @@ +description: Louisiana matches this percentage of the federal child and dependent care credit, depending on federal adjusted gross income, as the non-refundable state CDCC. + +brackets: + - threshold: + 2006-01-01: 0 + amount: + 2006-01-01: 0.25 + 2007-01-01: 0.5 + - threshold: + 2006-01-01: 25_000 + amount: + 2006-01-01: 0 + +metadata: + type: single_amount + threshold_unit: currency-USD + amount_unit: /1 + period: year + label: Louisiana CDCC refundable match + reference: + - title: §297.4. Reduction to tax due; certain child care expenses, part (A)(1) & (B)(1) + href: http://legis.la.gov/Legis/Law.aspx?d=101769 + - title: 2023 Louisiana Resident Income Tax Return, 2A + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=14 + - title: 2022 Louisiana Resident Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F.pdf#page=14 + - title: 2021 Louisiana Resident Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf#page=14 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/README.md b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/README.md new file mode 100644 index 000000000..03042587d --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/README.md @@ -0,0 +1 @@ +# Earned Income Tax Credit \ No newline at end of file diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/match.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/match.yaml new file mode 100644 index 000000000..c81a87e99 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/eitc/match.yaml @@ -0,0 +1,16 @@ +description: Louisiana matches this percent of the federal EITC. +values: + 2018-01-01: 0.035 + 2019-01-01: 0.05 +metadata: + unit: /1 + label: Louisiana EITC match + reference: + - title: Louisiana legal code| RS 47:297.8, part (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=453085 + - title: General Information for Filing Your 2023 Louisiana Resident Individual Income Tax Return, line 15 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=2 + - title: General Information for Filing Your 2022 Louisiana Resident Individual Income Tax Return, line 15 + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2 + - title: General Information for Filing Your 2021 Louisiana Resident Individual Income Tax Return, line 16 + href: https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=2 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/non_refundable.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/non_refundable.yaml new file mode 100644 index 000000000..dd338bb4d --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/non_refundable.yaml @@ -0,0 +1,8 @@ +description: Louisiana provides the following non-refundable tax credits. +values: + 2021-01-01: + - la_non_refundable_cdcc +metadata: + unit: list + period: year + label: Louisiana non-refundable tax credits diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/above_threshold_max.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/above_threshold_max.yaml deleted file mode 100644 index 6d5aeb95f..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/above_threshold_max.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Louisiana limits its child and dependent care credit to this maximum amount for filers above the income threshold - -values: - 2006-01-01: 25 - -metadata: - period: year - unit: currency-USD - label: Louisiana nonrefundable child care credit max above income threshold - reference: - - title: §297.4. Reduction to tax due; certain child care expenses, part (A)(4) - href: http://legis.la.gov/Legis/Law.aspx?d=101769 - - title: 2022 Louisiana Resident Income Tax Return, page 16-2A - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf - - title: 2021 Louisiana Resident Income Tax Return, page 16-2A - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_floor.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_floor.yaml deleted file mode 100644 index eca04f790..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_floor.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Louisiana makes its child and dependent care credit refundable for incomes under the income floor using slightly different logic found in the la_refundable_childcare variable - -values: - 2006-01-01: 25_000 - -metadata: - period: year - unit: currency-USD - label: Louisiana non-refundable child care credit income floor - reference: - - title: §297.4. Reduction to tax due; certain child care expenses, part (B) - href: http://legis.la.gov/Legis/Law.aspx?d=101769 - - title: 2022 Louisiana Resident Income Tax Return, page 14,16 - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf - - title: 2021 Louisiana Resident Income Tax Return, page 14,16 - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_threshold.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_threshold.yaml deleted file mode 100644 index 734d3936d..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/nonrefundable_child_care/income_threshold.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Louisiana limits the amount of the non-refundable child care credit for tax units with agi above this limit - -values: - 2006-01-01: 60_000 - -metadata: - period: year - unit: currency-USD - label: Louisiana non refundable child-care tax income threshold - reference: - - title: §297.4. Reduction to tax due; certain child care expenses, part (A)(4) - href: http://legis.la.gov/Legis/Law.aspx?d=101769 - - title: 2022 Louisiana Resident Income Tax Return, page 16-2A - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf - - title: 2021 Louisiana Resident Income Tax Return, page 16-2A - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/sources.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/sources.yaml deleted file mode 100644 index 42340a449..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/nonrefundable_p3/sources.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: Louisiana provides these non-refundable priority 3 tax credits. -values: - 2021-01-01: - - la_nonrefundable_childcare - - la_other_nonrefundable_p3 - -metadata: - unit: variable - label: Louisiana refundable priorty 3 tax credits - reference: - - title: Louisiana Form IT-540 Schedule J - Refundable credits - href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf - diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable.yaml new file mode 100644 index 000000000..437496df1 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable.yaml @@ -0,0 +1,16 @@ +description: Louisiana provides the following refundable tax credits. +values: + 2021-01-01: + - la_refundable_cdcc + - la_eitc +metadata: + unit: list + period: year + label: Louisiana refundable tax credits + reference: + # CDCC reference + - title: Louisiana legal code | RS 47:297.4 Reduction to tax due; certain child care expenses (B)(2) + href: https://legis.la.gov/Legis/Law.aspx?d=101769 + # EITC reference + - title: Louisiana legal code | RS 47:297.8 Earned income tax credit (B) + href: https://www.legis.la.gov/legis/Law.aspx?d=453085 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/eitc_mult.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/eitc_mult.yaml deleted file mode 100644 index 9acf147e6..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/eitc_mult.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Multiplier for the amount of the federal EITC that Louisiana allows taxfiliers for a refundable credit -values: - 2018-01-01: 0.035 - 2019-01-01: 0.05 - -metadata: - period: year - unit: /1 - label: Louisiana EITC multiplier - reference: - - title: Louisiana legal code| RS 47:297.8, part (A) - href: https://www.legis.la.gov/legis/Law.aspx?d=453085 - - title: Louisiana State Inncome Tax Form IT-540 2021 - href: "https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf" - - title: Louisiana State Inncome Tax Form IT-540 2022 - href: "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/child_age_limit.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/child_age_limit.yaml deleted file mode 100644 index c335db0bd..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/child_age_limit.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: Louisiana allows refundable childcare credit for childcare expenses for children under this age limit -values: - 2021-01-01: 13 - -metadata: - period: year - unit: year - label: Louisiana refundbale childcare age limit - reference: - - title: Louisiana Resident Income Tax Return Tax Table 2021 - href: "https://revenue.louisiana.gov/TaxForms/IT540TT%20(2021).pdf" - - title: Louisiana Resident Income Tax Return Tax Table 2022 - href: "https://revenue.louisiana.gov/TaxForms/IT540(2022)%20Tax%20Table.pdf" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/expense_limit.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/expense_limit.yaml deleted file mode 100644 index 28f377ee6..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/expense_limit.yaml +++ /dev/null @@ -1,26 +0,0 @@ -description: Childcare expense limit for Louisiana refundable childcare credit -brackets: - - threshold: - 2021-01-01: 0 - amount: - 2021-01-01: 0 - - threshold: - 2021-01-01: 1 - amount: - 2021-01-01: 8_000 - 2022-01-01: 3_000 - - threshold: - 2021-01-01: 2 - amount: - 2021-01-01: 16_000 - 2022-01-01: 6_000 - -metadata: - type: single_amount - threshold_unit: child-dependents - rate_unit: /1 - threshold_period: year - label: Louisiana refundbale childcare credit income multiplier - reference: - - title: 2022 Louisiana Refundable Child Care Credit Worksheet - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/income_mult.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/income_mult.yaml deleted file mode 100644 index f08ae8f8e..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/income_mult.yaml +++ /dev/null @@ -1,41 +0,0 @@ -description: Income multiplier for Louisiana refundable childcare credit -brackets: - - threshold: - 2021-01-01: 0 - amount: - 2021-01-01: 0.5 - 2022-01-01: 0.35 - - threshold: - 2022-01-01: 15_000 - amount: - 2022-01-01: 0.34 - - threshold: - 2022-01-01: 17_000 - amount: - 2022-01-01: 0.33 - - threshold: - 2022-01-01: 19_000 - amount: - 2022-01-01: 0.32 - - threshold: - 2022-01-01: 21_000 - amount: - 2022-01-01: 0.31 - - threshold: - 2022-01-01: 23_000 - amount: - 2022-01-01: 0.39 - - threshold: - 2021-01-01: 25_000 - amount: - 2021-01-01: 0.0 - -metadata: - type: single_amount - threshold_unit: currency-USD - rate_unit: /1 - threshold_period: year - label: Louisiana refundbale childcare credit income multiplier - reference: - - title: 2022 Louisiana Refundable Child Care Credit Worksheet - href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/mult.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/mult.yaml deleted file mode 100644 index 75e5a19b3..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/refundable_child_care/mult.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: multiplier for Louisiana childcare credit (applied to everyone) -values: - 2021-01-01: .5 - -metadata: - period: year - unit: /1 - label: Louisiana refundbale childcare multiplier - reference: - - title: Louisiana Resident Income Tax Return Tax Table 2021 - href: "https://revenue.louisiana.gov/TaxForms/IT540TT%20(2021).pdf" - - title: Louisiana Resident Income Tax Return Tax Table 2022 - href: "https://revenue.louisiana.gov/TaxForms/IT540(2022)%20Tax%20Table.pdf" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/sources.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/sources.yaml deleted file mode 100644 index 26bebdb84..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/refundable_p2/sources.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Louisiana provides these refundable priority 2 tax credits. -values: - 2021-01-01: - - la_refundable_childcare - - la_refundable_school_ready - - la_eitc - - la_other_refundable_p2 - -metadata: - unit: variable - label: Louisiana refundable priorty 2 tax credits - reference: - - title: Louisiana Form IT-540 Schedule F - Refundable credits - href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/age_threshold.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/age_threshold.yaml new file mode 100644 index 000000000..c30d7fd0a --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/age_threshold.yaml @@ -0,0 +1,18 @@ +description: Louisiana provides the school readiness tax credit to filers with children below this age threshold. +values: + 2021-01-01: 6 + +metadata: + period: year + unit: year + label: Louisiana school readiness tax credit child age threshold + reference: + # Legal code does not specify the child age + - title: R.S. 47:6104 + href: http://legis.la.gov/Legis/Law.aspx?d=453233 + - title: 2023 Form IT-540-WEB + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=15 + - title: 2022 Form IT-540-WEB + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=15 + - title: 2021 Form IT-540-WEB + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf#page=15 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/rate.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/rate.yaml new file mode 100644 index 000000000..8d6ae1167 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/credits/school_readiness/rate.yaml @@ -0,0 +1,38 @@ +description: Louisiana matches this fraction of the Louisiana child care credit as the school readiness credit, based on the quality rating of the child care facility. +brackets: + - threshold: + 2021-01-01: 5 + amount: + 2021-01-01: 2.0 + - threshold: + 2021-01-01: 4 + amount: + 2021-01-01: 1.5 + - threshold: + 2021-01-01: 3 + amount: + 2021-01-01: 1.0 + - threshold: + 2021-01-01: 2 + amount: + 2021-01-01: 0.5 + - threshold: + 2021-01-01: 1 + amount: + 2021-01-01: 0 + +metadata: + type: single_amount + threshold_unit: Child care facility quality rating + amount_unit: /1 + period: year + label: Louisiana refundable school readiness tax credit as fraction of Louisiana CDCC amount + reference: + - title: R.S. 47:6104 (A) + href: http://legis.la.gov/Legis/Law.aspx?d=453233 + - title: 2023 Form IT-540-WEB + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=15 + - title: 2022 Form IT-540-WEB + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=15 + - title: 2021 Form IT-540-WEB + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf#page=15 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/federal_tax/availability.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/federal_tax/availability.yaml new file mode 100644 index 000000000..413f659ac --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/federal_tax/availability.yaml @@ -0,0 +1,17 @@ +description: Louisiana allows for a federal tax deduction if this is true. +values: + 2021-01-01: true + 2022-01-01: false +metadata: + unit: bool + period: year + label: Louisiana federal tax deduction availability + reference: + - title: 2021 Louisiana IT540i Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=3 + - title: 2022 Louisiana IT540i Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2 + - title: 2023 Louisiana IT540i Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=2 + - title: Title 47 - Revenue and Taxation §298. Repealed by Acts 2021, No. 39 + href: https://law.justia.com/codes/louisiana/2021/revised-statutes/title-47/rs-298/ diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/excess_fraction.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/excess_fraction.yaml new file mode 100644 index 000000000..b7002e2d7 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/excess_fraction.yaml @@ -0,0 +1,19 @@ +description: Louisiana subtracts this fraction of the excess of the either the federal itemized deductions or the medical expense deduction amount over the federal standard deduction from adjusted gross income. +values: + 2007-01-01: 0.575 + 2008-01-01: 0.65 + # In 2022, switched from 100% of the excess of all itemized deductions to + # 100% of excess of medical expenses over the standard deduction. + 2009-01-01: 1 + +metadata: + unit: /1 + period: year + label: Louisiana itemized deductions excess fraction + reference: + - title: Louisiana legal code | RS 47:293 (3) + href: https://www.legis.la.gov/Legis/Law.aspx?d=101760 + - title: General Information for Filing Your 2023 Louisiana Resident Individual Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=3 + - title: General Information for Filing Your 2022 Louisiana Resident Individual Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/relevant_federal_deductions.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/relevant_federal_deductions.yaml new file mode 100644 index 000000000..b215542ff --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/deductions/itemized/relevant_federal_deductions.yaml @@ -0,0 +1,20 @@ +description: Louisiana subtracts from adjusted gross income the excess of these relevant federal deductions over the standard deduction, based on year. +values: + 2021-01-01: + - taxable_income_deductions_if_itemizing + 2022-01-01: + - medical_expense_deduction + +metadata: + unit: list + period: year + label: Louisiana itemized deductions relevant federal deductions + reference: + - title: Louisiana legal code | RS 47:293 (3) + href: https://www.legis.la.gov/Legis/Law.aspx?d=101760 + - title: General Information for Filing Your 2023 Louisiana Resident Individual Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=3 + - title: General Information for Filing Your 2022 Louisiana Resident Individual Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2 + - title: General Information for Filing Your 2021 Louisiana Resident Individual Income Tax Return + href: https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=3 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/disability/cap.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/disability/cap.yaml new file mode 100644 index 000000000..5422bfbcf --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/disability/cap.yaml @@ -0,0 +1,15 @@ +description: Louisiana caps the disability income exemption at this amount. +values: + 2014-01-01: 6_000 + +metadata: + reference: + - title: Louisiana statutes, RS 47:44 - Annual retirement or disability income; exemption from taxation (B) + href: https://www.legis.la.gov/legis/Law.aspx?d=102133 + - title: General Information for Filing Your 2023 Louisiana Resident Individual Income Tax Return | Exemption Code 49E + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=9 + - title: General Information for Filing Your 2022 Louisiana Resident Individual Income Tax Return | Exemption Code 49E + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=8 + unit: currency-USD + period: year + label: Louisiana disability income exemption cap diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/military_pay_exclusion/max_amount.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/military_pay_exclusion/max_amount.yaml new file mode 100644 index 000000000..1247ad472 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/military_pay_exclusion/max_amount.yaml @@ -0,0 +1,18 @@ +description: Louisiana allows for this maximum military pay exclusion amount. +values: + 2003-01-01: 30_000 + 2022-01-01: 50_000 + +metadata: + period: year + unit: currency-USD + label: Louisiana military pay exclusion max amount + reference: + - title: R.S. 47:293(9)(e) + href: http://www.legis.la.gov/legis/Law.aspx?d=101760 + - title: 2023 Form IT540iWEB(2023)D1, Schedule E, 10E + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=8 + - title: 2022 Form IT540iWEB(2022)D1, Schedule E, 10E + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=7 + - title: 2021 Form IT540iWEB(2022)D1, Schedule E, 10E + href: https://www.taxformfinder.org/forms/2021/2021-louisiana-form-it540i.pdf#page=8 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/in_effect.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/in_effect.yaml new file mode 100644 index 000000000..553e4beb9 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/in_effect.yaml @@ -0,0 +1,16 @@ +description: Louisiana reduces the exempt adjusted gross income if this is true. + +values: + 2021-01-01: true + 2022-01-01: false +metadata: + unit: bool + period: year + label: Louisiana exempt adjusted gross income reduction in effect + reference: + - title: 2021 Louisiana Individual Income Tax Return IT-540 Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=9 + - title: 2022 Louisiana Individual Income Tax Return IT-540 Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=9 + - title: 2023 Louisiana Individual Income Tax Return IT-540 Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=10 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/rate.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/rate.yaml new file mode 100644 index 000000000..3bcd2b580 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/reduction/rate.yaml @@ -0,0 +1,29 @@ +description: Louisiana reduces the exempt adjusted gross income by this rate, based on the exempt income amount. + +brackets: + - threshold: + 2021-01-01: 0 + rate: + 2021-01-01: 0 + - threshold: + 2021-01-01: 15_000 + rate: + 2021-01-01: 0.25 + - threshold: + 2021-01-01: 50_000 + rate: + 2021-01-01: 0.45 + +metadata: + reference: + - title: 2021 Louisiana Individual Income Tax Return IT-540 Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=9 + - title: 2022 Louisiana Individual Income Tax Return IT-540 Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=9 + - title: 2023 Louisiana Individual Income Tax Return IT-540 Instructions + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=10 + threshold_unit: currency-USD + rate_unit: /1 + type: marginal_rate + period: year + label: Louisiana exempt adjusted gross income reduction rate diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/retirement/cap.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/retirement/cap.yaml new file mode 100644 index 000000000..5d4acc386 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/retirement/cap.yaml @@ -0,0 +1,25 @@ +description: Louisiana caps the retirement income exemption of this amount for filers, based on age. + +brackets: + - threshold: + 2021-01-01: 0 + amount: + 2021-01-01: 0 + - threshold: + 2001-01-01: 65 + amount: + 2001-01-01: 6_000 + +metadata: + reference: + - title: Louisiana statutes, RS 47:44 - Annual retirement or disability income; exemption from taxation (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=102133 + - title: General Information for Filing Your 2023 Louisiana Resident Individual Income Tax Return | Exemption Code 06E + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2023)D1.pdf#page=7 + - title: General Information for Filing Your 2022 Louisiana Resident Individual Income Tax Return | Exemption Code 06E + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=6 + threshold_unit: year + amount_unit: currency-USD + type: single_amount + period: year + label: Louisiana retirement income exemption cap diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/sources.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/sources.yaml new file mode 100644 index 000000000..eb90ac860 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exempt_income/sources.yaml @@ -0,0 +1,43 @@ +description: Louisiana exempts these sources from adjusted gross income. +values: + 2021-01-01: + - us_govt_interest # 01E + # Louisiana State Employees’ Retirement Benefits 02E + # Louisiana State Teachers’ Retirement Benefits 03E + - military_retirement_pay # 04E + # Other Retirement Benefits 05E + - la_retirement_exemption_person # 06E + - taxable_social_security # 07E + # Native American Income 08E + # START Savings Program Contributions 09E + - la_military_pay_exclusion # 10E + # Road Home 11E + # Recreation Volunteer 13E + # Volunteer Firefighter 14E + # Voluntary Retrofit Residential Structure 16E + # Elementary and Secondary School Tuition 17E + # Educational Expenses for Home-Schooled Children 18E + # Educational Expenses for a Quality Public Education 19E + # Capital Gain from Sale of Louisiana Business 20E + # Employment of Certain Qualified Disabled Individuals 21E + # S Bank Shareholder Income Exclusion 22E + # Entity Level Taxes Paid to Other States 23E + # Pass–Through Entity Exclusion 24E + # COVID-19 Relief Benefits 27E + - la_disability_income_exemption_person # 49E + +metadata: + unit: list + label: Louisiana adjusted gross income exempt income + period: year + reference: + - title: General Information for Filing Your 2023 Louisiana Resident Individual Income Tax Return | Exemption Code 49E + href: https://revenue.louisiana.gov/TaxForms/IT540i%20WEB(2023)%20INSTRUCTIONS.pdf#page=9 + - title: General Information for Filing Your 2022 Louisiana Resident Individual Income Tax Return | Exemption Code 49E + href: https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=8 + - title: Louisiana statutes, RS 47:44 - Annual retirement or disability income; exemption from taxation (B) + href: https://www.legis.la.gov/legis/Law.aspx?d=102133 + - title: Louisiana statutes, RS 47:44 - Annual retirement or disability income; exemption from taxation (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=102133 + - title: R.S. 47:293(9)(e) + href: http://www.legis.la.gov/legis/Law.aspx?d=101760 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/additional_amount.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/additional_amount.yaml deleted file mode 100644 index 0c6c958a2..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/additional_amount.yaml +++ /dev/null @@ -1,15 +0,0 @@ -description: Louisiana allows this exemption from income for each additional exemption past the personal -values: - 2021-01-01: 1_000 - -metadata: - period: year - unit: currency-USD - label: Louisiana additional exemption amount - reference: - - title: Louisiana Resident Income Tax Return Tax Table 2021 - href: "https://revenue.louisiana.gov/TaxForms/IT540TT%20(2021).pdf" - - title: Louisiana Resident Income Tax Return Tax Table 2022 - href: "https://revenue.louisiana.gov/TaxForms/IT540(2022)%20Tax%20Table.pdf" - - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:294 — Personal exemptions and credit for dependents, B - href: https://www.legis.la.gov/legis/Law.aspx?d=101761 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/aged.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/aged.yaml new file mode 100644 index 000000000..747994192 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/aged.yaml @@ -0,0 +1,26 @@ +description: Louisiana reduces taxable income by this amount for each aged head or spouse. + +brackets: + - threshold: + 2014-01-01: 0 + amount: + 2014-01-01: 0 + - threshold: + 2014-01-01: 65 + amount: + 2014-01-01: 1_000 + +metadata: + reference: + # The aged exemption amount is not defined in the legal code but is present in the tax forms + - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:79 — Credits of individuals against net income §79, A, (2) + href: https://www.legis.la.gov/legis/Law.aspx?d=102518 + - title: 2023 Louisiana Individual Income Tax Return IT-540 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=2 + - title: 2022 Louisiana Individual Income Tax Return IT-540 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=2 + threshold_unit: year + amount_unit: currency-USD + type: single_amount + period: year + label: Louisiana aged exemption amount diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/blind.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/blind.yaml new file mode 100644 index 000000000..04c6eb339 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/blind.yaml @@ -0,0 +1,13 @@ +description: Louisiana reduces taxable income by this amount for each blind head or spouse. +values: + 2014-01-01: 1_000 + +metadata: + reference: + - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:79 — Credits of individuals against net income §79, A, (2) + href: https://www.legis.la.gov/legis/Law.aspx?d=102518 + - title: Tax Computation Worksheet R-6935 + href: https://www.revenue.louisiana.gov/taxforms/6935(11_02)F.pdf#page=1 + unit: currency-USD + period: year + label: Louisiana blind exemption amount diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/dependent.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/dependent.yaml new file mode 100644 index 000000000..bfc2b9eb7 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/dependent.yaml @@ -0,0 +1,15 @@ +description: Louisiana reduces taxable income by this amount for each dependent. +values: + 1983-01-01: 1_000 + +metadata: + reference: + - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:294 — Personal exemptions and credit for dependents, B + href: https://www.legis.la.gov/legis/Law.aspx?d=101761 + - title: 2023 Louisiana Individual Income Tax Return IT-540 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=2 + - title: 2022 Louisiana Individual Income Tax Return IT-540 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=2 + unit: currency-USD + period: year + label: Louisiana dependent exemption amount diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal.yaml new file mode 100644 index 000000000..373cbc55c --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal.yaml @@ -0,0 +1,26 @@ +description: Louisiana reduces taxable income by this personal exemption amount, based on filing status. +SINGLE: + 1983-01-01: 4_500 +SEPARATE: + 1983-01-01: 4_500 +HEAD_OF_HOUSEHOLD: + 1983-01-01: 9_000 +JOINT: + 1983-01-01: 9_000 +SURVIVING_SPOUSE: + 1983-01-01: 9_000 + +metadata: + unit: currency-USD + period: year + breakdown: + - filing_status + label: Louisiana personal exemption amount + + reference: + - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:294 — Personal exemptions and credit for dependents, A + href: https://www.legis.la.gov/legis/Law.aspx?d=101761 + - title: 2023 LOUISIANA TAX TABLE + href: https://revenue.louisiana.gov/TaxForms/IT540(2023)%20TT.pdf#page=1 + - title: 2022 LOUISIANA TAX TABLE + href: https://revenue.louisiana.gov/TaxForms/IT540(2022)%20Tax%20Table.pdf#page=1 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal_amount.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal_amount.yaml deleted file mode 100644 index 70202c06f..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/personal_amount.yaml +++ /dev/null @@ -1,15 +0,0 @@ -description: Louisiana allows this personal exemption from income -values: - 1983-01-01: 4_500 - -metadata: - period: year - unit: currency-USD - label: Louisiana personal exemption amount - reference: - - title: Louisiana Resident Income Tax Return Tax Table 2021 - href: "https://revenue.louisiana.gov/TaxForms/IT540TT%20(2021).pdf" - - title: Louisiana Resident Income Tax Return Tax Table 2022 - href: "https://revenue.louisiana.gov/TaxForms/IT540(2022)%20Tax%20Table.pdf" - - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:294 — Personal exemptions and credit for dependents, A - href: https://www.legis.la.gov/legis/Law.aspx?d=101761 diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/widow.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/widow.yaml new file mode 100644 index 000000000..32eb77366 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/exemptions/widow.yaml @@ -0,0 +1,16 @@ +description: Louisiana reduces taxable income by this amount for each qualifying widow(er). +values: + 1983-01-01: 1_000 + +metadata: + reference: + # The widow exemption amount is not defined in the legal code but is present in the tax forms + - title: Louisiana Laws Revised Statutes, Title 47 — Revenue and taxation, RS 47:294 — Personal exemptions and credit for dependents, B + href: https://www.legis.la.gov/legis/Law.aspx?d=101761 + - title: 2023 Louisiana Individual Income Tax Return IT-540 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2023)%20F.pdf#page=2 + - title: 2022 Louisiana Individual Income Tax Return IT-540 + href: https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=2 + unit: currency-USD + period: year + label: Louisiana qualifying widow exemption amount diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/main/head_of_household.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/main/head_of_household.yaml new file mode 100644 index 000000000..3945e4c7b --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/main/head_of_household.yaml @@ -0,0 +1,30 @@ +description: Louisiana taxes the income of head of household filers at this rate. + +brackets: + - threshold: + 2009-01-01: 0 + rate: + 2009-01-01: 0.02 + 2022-01-01: 0.0185 + - threshold: + 2009-01-01: 12_500 + rate: + 2009-01-01: 0.04 + 2022-01-01: 0.035 + - threshold: + 2009-01-01: 50_000 + rate: + 2009-01-01: 0.06 + 2022-01-01: 0.0425 + +metadata: + reference: + - title: LA Legal Code | Section 47:32, part (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=101946 + - title: Individual Income Tax-Determination of Tax + href: https://revenue.louisiana.gov/IndividualIncomeTax # tax rates not mentioned in tax forms + label: Louisiana income tax rate head of household filers + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + period: year diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/main/joint.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/main/joint.yaml new file mode 100644 index 000000000..5ae5496ff --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/main/joint.yaml @@ -0,0 +1,30 @@ +description: Louisiana taxes the income of joint filers at this rate. + +brackets: + - threshold: + 2009-01-01: 0 + rate: + 2009-01-01: 0.02 + 2022-01-01: 0.0185 + - threshold: + 2009-01-01: 25_000 + rate: + 2009-01-01: 0.04 + 2022-01-01: 0.035 + - threshold: + 2009-01-01: 100_000 + rate: + 2009-01-01: 0.06 + 2022-01-01: 0.0425 + +metadata: + reference: + - title: LA Legal Code | Section 47:32, part (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=101946 + - title: Individual Income Tax-Determination of Tax + href: https://revenue.louisiana.gov/IndividualIncomeTax # tax rates not mentioned in tax forms + label: Louisiana income tax rate joint filers + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + period: year diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/main/separate.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/main/separate.yaml new file mode 100644 index 000000000..5c9155efe --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/main/separate.yaml @@ -0,0 +1,29 @@ +description: Louisiana taxes the income of married individuals filing separate returns at this rate. +brackets: + - threshold: + 2009-01-01: 0 + rate: + 2009-01-01: 0.02 + 2022-01-01: 0.0185 + - threshold: + 2009-01-01: 12_500 + rate: + 2009-01-01: 0.04 + 2022-01-01: 0.035 + - threshold: + 2009-01-01: 50_000 + rate: + 2009-01-01: 0.06 + 2022-01-01: 0.0425 + +metadata: + reference: + - title: LA Legal Code | Section 47:32, part (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=101946 + - title: Individual Income Tax-Determination of Tax + href: https://revenue.louisiana.gov/IndividualIncomeTax # tax rates not mentioned in tax forms + label: Louisiana income tax rate married separate filers + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + period: year diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/main/single.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/main/single.yaml new file mode 100644 index 000000000..0365f1c41 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/main/single.yaml @@ -0,0 +1,30 @@ +description: Louisiana taxes the income of single filers at this rate. + +brackets: + - threshold: + 2009-01-01: 0 + rate: + 2009-01-01: 0.02 + 2022-01-01: 0.0185 + - threshold: + 2009-01-01: 12_500 + rate: + 2009-01-01: 0.04 + 2022-01-01: 0.035 + - threshold: + 2009-01-01: 50_000 + rate: + 2009-01-01: 0.06 + 2022-01-01: 0.0425 + +metadata: + reference: + - title: LA Legal Code | Section 47:32, part (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=101946 + - title: Individual Income Tax-Determination of Tax + href: https://revenue.louisiana.gov/IndividualIncomeTax # tax rates not mentioned in tax forms + label: Louisiana income tax rate single filers + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + period: year diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/main/widow.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/main/widow.yaml new file mode 100644 index 000000000..48b9685b2 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/la/tax/income/main/widow.yaml @@ -0,0 +1,30 @@ +description: Louisiana taxes the income of widow filers at this rate. + +brackets: + - threshold: + 2009-01-01: 0 + rate: + 2009-01-01: 0.02 + 2022-01-01: 0.0185 + - threshold: + 2009-01-01: 25_000 + rate: + 2009-01-01: 0.04 + 2022-01-01: 0.035 + - threshold: + 2009-01-01: 100_000 + rate: + 2009-01-01: 0.06 + 2022-01-01: 0.0425 + +metadata: + reference: + - title: LA Legal Code | Section 47:32, part (A) + href: https://www.legis.la.gov/legis/Law.aspx?d=101946 + - title: Individual Income Tax-Determination of Tax + href: https://revenue.louisiana.gov/IndividualIncomeTax # tax rates not mentioned in tax forms + label: Louisiana income tax rate widow filers + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + period: year diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/head_of_household.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/rates/head_of_household.yaml deleted file mode 100644 index b570d6da9..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/head_of_household.yaml +++ /dev/null @@ -1,26 +0,0 @@ -description: Louisiana levies income taxes at these rates for filers who file as head of household. -brackets: - - threshold: - 2009-01-01: 0 - rate: - 2009-01-01: 0.02 - 2022-01-01: 0.0185 - - threshold: - 2009-01-01: 12_500 - rate: - 2009-01-01: 0.04 - 2022-01-01: 0.0315 - - threshold: - 2009-01-01: 50_000 - rate: - 2009-01-01: 0.06 - 2022-01-01: 0.0425 -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - threshold_period: year - label: Louisiana head of household income tax rates - reference: - - title: Louisiana Department of Revenue Individual Income Tax - href: "https://revenue.louisiana.gov/individualincometax" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/joint.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/rates/joint.yaml deleted file mode 100644 index 9ac266af6..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/joint.yaml +++ /dev/null @@ -1,27 +0,0 @@ -description: Louisiana levies income taxes at these rates for filers who are married filing jointly -brackets: - - threshold: - 2009-01-01: 0 - rate: - 2009-01-01: 0.02 - 2022-01-01: 0.0185 - - threshold: - 2009-01-01: 25_000 - rate: - 2009-01-01: 0.04 - 2022-01-01: 0.035 - - threshold: - 2009-01-01: 100_000 - rate: - 2009-01-01: 0.06 - 2022-01-01: 0.0425 - -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - threshold_period: year - label: Louisiana married filing joint income tax rates - reference: - - title: Louisiana Department of Revenue Individual Income Tax - href: "https://revenue.louisiana.gov/individualincometax" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/separate.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/rates/separate.yaml deleted file mode 100644 index 0b7662231..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/separate.yaml +++ /dev/null @@ -1,27 +0,0 @@ -description: Louisiana levies income taxes at these rates for filers who are married filing separately -brackets: - - threshold: - 2009-01-01: 0 - rate: - 2009-01-01: 0.02 - 2022-01-01: 0.0185 - - threshold: - 2009-01-01: 12_500 - rate: - 2009-01-01: 0.04 - 2022-01-01: 0.035 - - threshold: - 2009-01-01: 50_000 - rate: - 2009-01-01: 0.06 - 2022-01-01: 0.0425 - -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - threshold_period: year - label: Louisiana married filing separately income tax rates - reference: - - title: Louisiana Department of Revenue Individual Income Tax - href: "https://revenue.louisiana.gov/individualincometax" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/single.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/rates/single.yaml deleted file mode 100644 index b700ade98..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/single.yaml +++ /dev/null @@ -1,27 +0,0 @@ -description: Louisiana levies income taxes at these rates for filers who file as single -brackets: - - threshold: - 2009-01-01: 0 - rate: - 2009-01-01: 0.02 - 2022-01-01: 0.0185 - - threshold: - 2009-01-01: 12_500 - rate: - 2009-01-01: 0.04 - 2022-01-01: 0.035 - - threshold: - 2009-01-01: 50_000 - rate: - 2009-01-01: 0.06 - 2022-01-01: 0.0425 - -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - threshold_period: year - label: Louisiana single filer income tax rates - reference: - - title: Louisiana Department of Revenue Individual Income Tax - href: "https://revenue.louisiana.gov/individualincometax" diff --git a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/widow.yaml b/fiscalsim_us/parameters/gov/states/la/tax/income/rates/widow.yaml deleted file mode 100644 index 1b0a14103..000000000 --- a/fiscalsim_us/parameters/gov/states/la/tax/income/rates/widow.yaml +++ /dev/null @@ -1,27 +0,0 @@ -description: Louisiana levies income taxes at these rates for filers who are a qualified suriving spouse (widow) -brackets: - - threshold: - 2009-01-01: 0 - rate: - 2009-01-01: 0.02 - 2022-01-01: 0.0185 - - threshold: - 2009-01-01: 25_000 - rate: - 2009-01-01: 0.04 - 2022-01-01: 0.035 - - threshold: - 2009-01-01: 100_000 - rate: - 2009-01-01: 0.06 - 2022-01-01: 0.0425 - -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - threshold_period: year - label: Louisiana widow income tax rates - reference: - - title: Louisiana Department of Revenue Individual Income Tax - href: "https://revenue.louisiana.gov/individualincometax" From 2f2e67052922de17c61de4bf538c7d1191aa7100 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Mon, 11 Nov 2024 10:38:44 -0700 Subject: [PATCH 2/5] Update LA variables --- .../agi/la_federal_retirement_benefits.py | 16 ------ .../tax/income/agi/la_other_subtractions.py | 39 ------------- .../la/tax/income/agi/la_total_additions.py | 19 ------- .../tax/income/agi/la_total_subtractions.py | 15 ----- .../credits/cdcc/la_non_refundable_cdcc.py | 25 +++++++++ .../income/credits/cdcc/la_refundable_cdcc.py | 18 ++++++ .../states/la/tax/income/credits/la_eitc.py | 18 ++---- .../credits/la_nonrefundable_childcare.py | 36 ------------ .../credits/la_nonrefundable_credits.py | 25 --------- .../la_nonrefundable_priority_3_credits.py | 15 ----- .../credits/la_other_nonrefundable_p3.py | 56 ------------------- .../income/credits/la_other_refundable_p2.py | 38 ------------- .../income/credits/la_refundable_childcare.py | 41 -------------- .../income/credits/la_refundable_credits.py | 42 -------------- .../la_refundable_priority_2_credits.py | 15 ----- .../la_refundable_priority_4_credits.py | 22 -------- .../credits/la_refundable_school_ready.py | 19 ------- ...a_quality_rating_of_child_care_facility.py | 10 ++++ ..._school_readiness_credit_eligible_child.py | 20 +++++++ ..._school_readiness_credit_non_refundable.py | 14 +++++ .../la_school_readiness_credit_refundable.py | 13 +++++ ...ol_readiness_credit_refundable_eligible.py | 17 ++++++ .../la_school_readiness_tax_credit.py | 32 +++++++++++ .../deductions/la_federal_tax_deduction.py | 30 ++++++++++ .../deductions/la_itemized_deductions.py | 29 ++++++++++ .../exempt_income/la_agi_exempt_income.py | 53 ++++++++++++++++++ .../la_disability_income_exemption_person.py | 29 ++++++++++ .../la_retirement_exemption_person.py | 22 ++++++++ .../la_military_pay_exclusion.py | 18 ++++++ .../la/tax/income/exemptions/la_exemptions.py | 17 ++++++ .../personal/blind/la_blind_exemption.py | 19 +++++++ .../blind/la_blind_exemption_person.py | 24 ++++++++ .../blind/la_receives_blind_exemption.py | 12 ++++ .../exemptions/personal/la_aged_exemption.py | 18 ++++++ .../personal/la_dependents_exemption.py | 21 +++++++ .../personal/la_personal_exemption.py | 16 ++++++ .../exemptions/personal/la_widow_exemption.py | 19 +++++++ .../gov/states/la/tax/income/la_agi.py | 15 +++++ .../gov/states/la/tax/income/la_exemptions.py | 30 ---------- .../gov/states/la/tax/income/la_income_tax.py | 7 +-- .../income/la_income_tax_before_credits.py | 36 ------------ ...ncome_tax_before_non_refundable_credits.py | 38 +++++++++++++ ...la_income_tax_before_refundable_credits.py | 12 ++-- ...nefits.py => la_non_refundable_credits.py} | 7 ++- ...t_benefits.py => la_refundable_credits.py} | 8 ++- .../states/la/tax/income/la_taxable_income.py | 35 ++++-------- .../la/tax/income/la_withheld_income_tax.py | 19 +++++++ 47 files changed, 581 insertions(+), 518 deletions(-) delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/agi/la_federal_retirement_benefits.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/agi/la_other_subtractions.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_additions.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_subtractions.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_childcare.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_priority_3_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_nonrefundable_p3.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_refundable_p2.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_childcare.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_2_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_4_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_school_ready.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_quality_rating_of_child_care_facility.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_eligible_child.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_non_refundable.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable_eligible.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_tax_credit.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_federal_tax_deduction.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_itemized_deductions.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_agi_exempt_income.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/la_exemptions.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption_person.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_receives_blind_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/la_agi.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/la_exemptions.py delete mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_credits.py create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.py rename fiscalsim_us/variables/gov/states/la/tax/income/{agi/la_state_teacher_retirement_benefits.py => la_non_refundable_credits.py} (51%) rename fiscalsim_us/variables/gov/states/la/tax/income/{agi/la_state_employee_retirement_benefits.py => la_refundable_credits.py} (53%) create mode 100644 fiscalsim_us/variables/gov/states/la/tax/income/la_withheld_income_tax.py diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_federal_retirement_benefits.py b/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_federal_retirement_benefits.py deleted file mode 100644 index 54d7ac2e2..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_federal_retirement_benefits.py +++ /dev/null @@ -1,16 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_federal_retirement_benefits(Variable): - """Amount of retirement benefits recieved from a - Federal Retirement System - """ - - value_type = float - entity = TaxUnit - label = "Louisiana state teacher retirement benefits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - # If this gets implimented in a federal level variable - # delete this one and change in parameter subtractions.sources.yaml diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_other_subtractions.py b/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_other_subtractions.py deleted file mode 100644 index 71dc412f2..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_other_subtractions.py +++ /dev/null @@ -1,39 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_other_subtractions(Variable): - """ - Other subtractions from louisiana taxable income. - These include the following exemptions from income with - the associated codes: - 05E – Other Retirement Benefits - 06E – Annual Retirement Income Exemption for Taxpayers 65 - Years of Age or Older - 08E – Native American Income - 09E – START Savings Program Contribution - 10E – Military Pay Exclusion - 11E – Road Home - 13E – Recreation Volunteer - 14E – Volunteer Firefighter - 16E – Voluntary Retrofit Residential Structure - 17E – Elementary and Secondary School Tuition - 18E – Educational Expenses for Home-Schooled Children - 19E – Educational Expenses for a Quality Public Education - 20E – Capital Gain from Sale of Louisiana Business - 21E – Employment of Certain Qualified Disabled Individuals - 22E – S Bank Shareholder Income Exclusion - 23E – Entity Level Taxes Paid to Other States - 24E – Pass–Through Entity Exclusion - 25E – IRC 280C Expense - 27E – COVID-19 Relief Benefits - 28E – START K12 Savings Program Contributions - 29E – Digital Nomad - 30E – Certain Adoptions - """ - - value_type = float - entity = TaxUnit - label = "Louisiana other subtractions from AGI" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_additions.py b/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_additions.py deleted file mode 100644 index d7577682e..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_additions.py +++ /dev/null @@ -1,19 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_total_additions(Variable): - """ - Additions to Louisiana adjusted income - Lines 2A-D on Form IT-540 Schedule E. These additions include - * Interest and dividend income from other states and their political subdivisions - * Recapture of START contributions - * Recapture of START K12 contributions - * Add back of pass-through entity - """ - - value_type = float - entity = TaxUnit - label = "Louisiana total additions to AGI" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_subtractions.py b/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_subtractions.py deleted file mode 100644 index bc232fd49..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_total_subtractions.py +++ /dev/null @@ -1,15 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_total_subtractions(Variable): - """ - Subtractions from louisiana adjusted income - """ - - value_type = float - entity = TaxUnit - label = "Louisiana total subtractions from AGI" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - adds = "gov.states.la.tax.income.agi.subtractions.sources" diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.py new file mode 100644 index 000000000..c5dbdbff2 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.py @@ -0,0 +1,25 @@ +from fiscalsim_us.model_api import * + + +class la_non_refundable_cdcc(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana non-refundable Child and Dependent Care Credit" + unit = USD + definition_period = YEAR + reference = "http://legis.la.gov/Legis/Law.aspx?d=101769" + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + p = parameters( + period + ).gov.states.la.tax.income.credits.cdcc.non_refundable + us_cdcc = tax_unit("cdcc", period) + us_agi = tax_unit("adjusted_gross_income", period) + match = p.match.calc(us_agi, right=True) + uncapped_credit = us_cdcc * match + # The non refundable credit is capped for taxpayers with AGI above the threshold + top_threshold = p.match.thresholds[-1] + agi_over_cap_threshold = us_agi > top_threshold + capped_credit = min_(uncapped_credit, p.upper_bracket_cap) + return where(agi_over_cap_threshold, capped_credit, uncapped_credit) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.py new file mode 100644 index 000000000..243d63a07 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.py @@ -0,0 +1,18 @@ +from fiscalsim_us.model_api import * + + +class la_refundable_cdcc(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana refundable Child and Dependent Care Credit" + unit = USD + definition_period = YEAR + reference = "http://legis.la.gov/Legis/Law.aspx?d=101769" + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + p = parameters(period).gov.states.la.tax.income.credits.cdcc.refundable + # determine LA cdcc amount + us_cdcc = tax_unit("cdcc", period) + us_agi = tax_unit("adjusted_gross_income", period) + return us_cdcc * p.match.calc(us_agi, right=True) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_eitc.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_eitc.py index bec22e05a..a414472e6 100644 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_eitc.py +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_eitc.py @@ -2,23 +2,15 @@ class la_eitc(Variable): - """ - Louisiana earned income tax credit - """ - value_type = float entity = TaxUnit - label = "Louisiana EITC" + label = "Louisiana Earned Income Tax Credit" unit = USD definition_period = YEAR - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) + reference = "https://www.legis.la.gov/legis/Law.aspx?d=453085" defined_for = StateCode.LA def formula(tax_unit, period, parameters): - federal_eitc = tax_unit("earned_income_tax_credit", period) - p = parameters(period).gov.states.la.tax.income.credits.refundable_p2 - - return federal_eitc * p.eitc_mult + federal_eitc = tax_unit("eitc", period) + p = parameters(period).gov.states.la.tax.income.credits + return federal_eitc * p.eitc.match diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_childcare.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_childcare.py deleted file mode 100644 index 293fcc9a1..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_childcare.py +++ /dev/null @@ -1,36 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_nonrefundable_childcare(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana refundable childcare credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.la.tax.income.credits.nonrefundable_p3.nonrefundable_child_care - agi = tax_unit("adjusted_gross_income", period) - fed_cdcc = tax_unit("cdcc", period) - - # for agi under income floor can use the refundable credit - nonrefundable = agi > p.income_floor - fed_cdcc = fed_cdcc * nonrefundable - - income_mult = p.income_mult.calc(agi) - credit = fed_cdcc * income_mult - - # for agi over the threshold the credit is the minimum of - # fed_cdcc * income_mult and the limit for above the threshold - return where( - agi > p.income_threshold, - min_(credit, p.above_threshold_max), - credit, - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_credits.py deleted file mode 100644 index 8db5fc9db..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_credits.py +++ /dev/null @@ -1,25 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_nonrefundable_credits(Variable): - """ - Louisiana nonrefundable priority 1 credits - Line 11 on Form IT-540. These credits include - the following with codes: - * 100 - Premium tax credit - * 120 - Bone Marrow credit - * 150 - Qualified Playgrounds - * 155 - Debt Issuance - * 199 - Other - """ - - value_type = float - entity = TaxUnit - label = "Louisiana nonrefundable credits" - unit = USD - definition_period = YEAR - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - defined_for = StateCode.LA diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_priority_3_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_priority_3_credits.py deleted file mode 100644 index 39f2fc88f..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_nonrefundable_priority_3_credits.py +++ /dev/null @@ -1,15 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_nonrefundable_priority_3_credits(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana nonrefundable priority 3 income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - adds = "gov.states.la.tax.income.credits.nonrefundable_p3.sources" diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_nonrefundable_p3.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_nonrefundable_p3.py deleted file mode 100644 index a1857fd04..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_nonrefundable_p3.py +++ /dev/null @@ -1,56 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_other_nonrefundable_p3(Variable): - """ - Louisiana nonrefundable priority 3 credits not yet implimented as separate variables - Form IT-540 line 20 - These include the following credits with codes: - 202 – Organ Donation - 208 – Previously Unemployed - 221 – Owner of Accessible and Barrier-free Home – - 224 – New Jobs Credit - 228 – Eligible Re-entrants – - 236 – Apprenticeship (2007) - 251 – Motion Picture Investment - 252 – Research and Development - 253 – Historic Structures - 254 – Digital Interactive Media - 257 – Capital Company - 258 – LA Community Development Financial Institution (LCDFI) - 259 – New Markets - 261 – Motion Picture Infrastructure - 262 – Angel Investor - 300 – Biomed/University Research - 305 – Tax Equalization - 310 – Manufacturing Establishment - 412 – Refund by Utilities - 424 – Donation to School Tuition Organization - 454 – QMC Music Job Creation Credit - 457 – Neighborhood Assistance - 458 – Research and Development - 459 – Ports of Louisiana Import Export Cargo - 460 – LA Import - 461 – LA Work Opportunity - 462 – Youth Jobs - 463 – Apprenticeship (2022) - 464 – Donation to Qualified Foster Care Charitable Organization - 500 – Inventory Tax Credit Carried Forward and ITEP - 502 – Ad Valorem Natural Gas Credit Carried Forward - 504 – Atchafalaya Trace - 506 – Cane River Heritage - 508 – Ports of Louisiana Investor - 510 – Enterprise Zone - 550 – Recycling Credit - """ - - value_type = float - entity = TaxUnit - label = "Louisiana nonrefundable priority 3 income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_refundable_p2.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_refundable_p2.py deleted file mode 100644 index 26ad2c650..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_other_refundable_p2.py +++ /dev/null @@ -1,38 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_other_refundable_p2(Variable): - """ - Other Louisiana refundable priority 2 credits listed - on Schedule F for IT-540. These credits include the - following with codes: - * 52F - Ad Valorem Offshore Vessels - * 54F – Telephone Company Property - * 54F – Telephone Company Property - * 58F – Milk Producers - * 59F – Technology Commercialization - * 60F – Historic Residential - * 62F – Musical and Theatrical Production - * 65F – School Readiness Child Care Provider - * 66F – School Readiness Child Care Directors and Staff - * 67F – School Readiness Business-Supported Child Care - * 68F – School Readiness Fees and Grants to Resource and - Referral Agencies - * 70F – Retention and Modernization - * 73F – Digital Interactive Media & Software - * 76F – Stillborn Child - * 77F – Funeral and Burial Expense for a Pregnancy-related Death - * 80F – Other Refundable Credit - """ - - unit = USD - value_type = float - entity = TaxUnit - label = "Louisiana other refundable priority 2 income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_childcare.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_childcare.py deleted file mode 100644 index 8d8003392..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_childcare.py +++ /dev/null @@ -1,41 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_refundable_childcare(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana refundable childcare credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.la.tax.income.credits.refundable_p2.refundable_child_care - agi = tax_unit("adjusted_gross_income", period) - childcare_expenses = tax_unit("tax_unit_childcare_expenses", period) - - # check for eligible children - person = tax_unit.members - dependent = person("is_tax_unit_dependent", period) - age = person("age", period) - child = age < p.child_age_limit - eligible = dependent & child - eligible_children = tax_unit.sum(eligible) - - max_expense = p.expense_limit.calc(eligible_children) - expense = min_(childcare_expenses, max_expense) - - # line 6 of worksheet - tax_unit_min_income = tax_unit("min_head_spouse_earned", period) - credit = min_(expense, tax_unit_min_income) - - income_mult = p.income_mult.calc(agi) - mult = p.mult - - return credit * income_mult * mult diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_credits.py deleted file mode 100644 index 24da47116..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_credits.py +++ /dev/null @@ -1,42 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_refundable_credits(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana refundable income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - - def formula(tax_unit, period, parameters): - priority_2_refund = tax_unit( - "la_refundable_priority_2_credits", period - ) - - # line 18 - floor at 0 since the priority 3 credits are nonrefundable - tax_afer_p_2_credits = max_( - 0, - tax_unit("la_income_tax_before_refundable_credits", period) - - priority_2_refund, - ) - - priority_3_nonrefund_amount = tax_unit( - "la_nonrefundable_priority_3_credits", period - ) - - # either refund the rest of the tax liability (leftover from p2) - # or refund the total amount of p3 credits, whichever is less - priority_3_nonrefund_add = min_( - tax_afer_p_2_credits, priority_3_nonrefund_amount - ) - - priority_4_refund = tax_unit( - "la_refundable_priority_4_credits", period - ) - - return priority_2_refund + priority_3_nonrefund_add + priority_4_refund diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_2_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_2_credits.py deleted file mode 100644 index d79f12251..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_2_credits.py +++ /dev/null @@ -1,15 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_refundable_priority_2_credits(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana refundable priority 2 income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - adds = "gov.states.la.tax.income.credits.refundable_p2.sources" diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_4_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_4_credits.py deleted file mode 100644 index 2f7263d39..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_priority_4_credits.py +++ /dev/null @@ -1,22 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_refundable_priority_4_credits(Variable): - """ - louisiana refundable priority 4 credits - Line 25 on Form IT-540. These credits include the - following with codes: - * 50F - Inventory Tax - * 51F - Ad Valorem Natural Gas - """ - - value_type = float - entity = TaxUnit - label = "Louisiana refundable priority 4 income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_school_ready.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_school_ready.py deleted file mode 100644 index d2902fa4b..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/credits/la_refundable_school_ready.py +++ /dev/null @@ -1,19 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_refundable_school_ready(Variable): - """ - louisiana refundable school readiness credit - Line 14 on Form IT-540. - """ - - value_type = float - entity = TaxUnit - label = "Louisiana refundable priority 4 income tax credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.LA - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_quality_rating_of_child_care_facility.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_quality_rating_of_child_care_facility.py new file mode 100644 index 000000000..1e0328a40 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_quality_rating_of_child_care_facility.py @@ -0,0 +1,10 @@ +from fiscalsim_us.model_api import * + + +class la_quality_rating_of_child_care_facility(Variable): + value_type = int + entity = Person + label = "Quality rating of child care facility for the Louisiana school readiness tax credit" + definition_period = YEAR + defined_for = StateCode.LA + reference = "https://www.revenue.louisiana.gov/IndividualIncomeTax/SchoolReadinessTaxCredit" diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_eligible_child.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_eligible_child.py new file mode 100644 index 000000000..013e1c9a6 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_eligible_child.py @@ -0,0 +1,20 @@ +from fiscalsim_us.model_api import * + + +class la_school_readiness_credit_eligible_child(Variable): + value_type = bool + entity = Person + label = "Eligible child for the Louisiana school readiness tax credit" + definition_period = YEAR + reference = "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf#page=15" + defined_for = StateCode.LA + + def formula(person, period, parameters): + p = parameters( + period + ).gov.states.la.tax.income.credits.school_readiness + dependent = person("is_tax_unit_dependent", period) + age = person("age", period) + age_eligible = age < p.age_threshold + + return dependent & age_eligible diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_non_refundable.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_non_refundable.py new file mode 100644 index 000000000..e6720f943 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_non_refundable.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class la_school_readiness_credit_non_refundable(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana non-refundable school readiness tax credit" + unit = USD + definition_period = YEAR + reference = "https://www.revenue.louisiana.gov/IndividualIncomeTax/SchoolReadinessTaxCredit" + defined_for = StateCode.LA + + adds = ["la_school_readiness_tax_credit"] + subtracts = ["la_school_readiness_tax_credit_refundable"] diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable.py new file mode 100644 index 000000000..4368b58f2 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable.py @@ -0,0 +1,13 @@ +from fiscalsim_us.model_api import * + + +class la_school_readiness_credit_refundable(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana refundable school readiness tax credit" + unit = USD + definition_period = YEAR + reference = "https://www.revenue.louisiana.gov/IndividualIncomeTax/SchoolReadinessTaxCredit" + defined_for = "la_school_readiness_credit_refundable_eligible" + + adds = ["la_school_readiness_tax_credit"] diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable_eligible.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable_eligible.py new file mode 100644 index 000000000..5af7fa0c3 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_credit_refundable_eligible.py @@ -0,0 +1,17 @@ +from fiscalsim_us.model_api import * + + +class la_school_readiness_credit_refundable_eligible(Variable): + value_type = bool + entity = TaxUnit + label = "Louisiana refundable school readiness tax credit eligibility" + definition_period = YEAR + reference = "https://www.revenue.louisiana.gov/IndividualIncomeTax/SchoolReadinessTaxCredit" + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + p = parameters(period).gov.states.la.tax.income.credits.cdcc.refundable + # determine if it is nonrefundable or refundable + us_agi = tax_unit("adjusted_gross_income", period) + top_threshold = p.match.thresholds[-1] + return us_agi <= top_threshold diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_tax_credit.py b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_tax_credit.py new file mode 100644 index 000000000..ed925ae14 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/credits/school_readiness/la_school_readiness_tax_credit.py @@ -0,0 +1,32 @@ +from fiscalsim_us.model_api import * + + +class la_school_readiness_credit(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana school readiness tax credit" + unit = USD + definition_period = YEAR + reference = "https://www.revenue.louisiana.gov/IndividualIncomeTax/SchoolReadinessTaxCredit" + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + person = tax_unit.members + p = parameters( + period + ).gov.states.la.tax.income.credits.school_readiness + # determine school readiness credit amount + child_care_credit = add( + tax_unit, period, ["la_refundable_cdcc", "la_non_refundable_cdcc"] + ) + eligible_child = person( + "la_school_readiness_credit_eligible_child", period + ) + quality_rating = person( + "la_quality_rating_of_child_care_facility", period + ) + child_credit_percent = child_care_credit * p.rate.calc(quality_rating) + # la_cdcc times the percentage + amount = eligible_child * child_credit_percent + + return tax_unit.sum(amount) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_federal_tax_deduction.py b/fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_federal_tax_deduction.py new file mode 100644 index 000000000..f387b408e --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_federal_tax_deduction.py @@ -0,0 +1,30 @@ +from fiscalsim_us.model_api import * + + +class la_federal_tax_deduction(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana federal tax deduction" + unit = USD + definition_period = YEAR + reference = [ + "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2", # 2022 repealed + "https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=3", # 2021 line 9 + "https://law.justia.com/codes/louisiana/2021/revised-statutes/title-47/rs-298/", # (3) + ] + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + tax_before_refundable_credits = tax_unit( + "income_tax_before_refundable_credits", period + ) + reductions = add( + tax_unit, + period, + ["form_4972_lumpsum_distributions", "premium_tax_credit"], + ) + amount = max_(0, tax_before_refundable_credits - reductions) + + # The deduction was discontinued in 2022 + p = parameters(period).gov.states.la.tax.income.deductions.federal_tax + return amount * p.availability diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_itemized_deductions.py b/fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_itemized_deductions.py new file mode 100644 index 000000000..31e5d91e1 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/deductions/la_itemized_deductions.py @@ -0,0 +1,29 @@ +from fiscalsim_us.model_api import * + + +class la_itemized_deductions(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana itemized deductions" + unit = USD + definition_period = YEAR + reference = [ + "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2", # 2022 line 8B-line 8C + "https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=3", # 2021 line 8A-line 8C + "https://www.legis.la.gov/Legis/Law.aspx?d=101760", # (3) + ] + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + p = parameters(period).gov.states.la.tax.income.deductions.itemized + federal_standard_deduction = tax_unit("standard_deduction", period) + # Louisiana limits the itemized deductions to the amount of either the federal medical + # expense deduction or the total federal itemized deductions + # less the federal standard deduction + relevant_itemized_deductions = add( + tax_unit, period, p.relevant_federal_deductions + ) + reduced_relevant_itemized_deductions = max_( + relevant_itemized_deductions - federal_standard_deduction, 0 + ) + return reduced_relevant_itemized_deductions * p.excess_fraction diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_agi_exempt_income.py b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_agi_exempt_income.py new file mode 100644 index 000000000..8959548cc --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_agi_exempt_income.py @@ -0,0 +1,53 @@ +from fiscalsim_us.model_api import * + + +class la_agi_exempt_income(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana income that is exempt from the adjusted gross income" + defined_for = StateCode.LA + unit = USD + reference = ( + "https://revenue.louisiana.gov/TaxForms/IT540i(2021)%20Instructions.pdf#page=9", + "https://revenue.louisiana.gov/TaxForms/IT540WEB(2021)%20F.pdf", + ) + definition_period = YEAR + + # Functions as subtractions. + def formula(tax_unit, period, parameters): + p = parameters(period).gov.states.la.tax.income.exempt_income + total_exempt_income = add(tax_unit, period, p.sources) + if p.reduction.in_effect: + # Option 1 is to reduce the exempt income by a marginal rate + reduced_exempt_income = p.reduction.rate.calc(total_exempt_income) + # Option 2 is to reduce the federal tax deduction by the percentage of + # exempt income to AGI + agi = tax_unit("adjusted_gross_income", period) + exempt_income_rate = np.zeros_like(agi) + mask = agi != 0 + exempt_income_rate[mask] = total_exempt_income[mask] / agi[mask] + # The step by step calculation is as follows: + # Line 1, representing federal AGI is divided by Line 4H + # which is the total exempt income. This rate (exempt_income_rate) is multiplied by + # Line 9 of the Form IT-540, representing the federal tax deduction + federal_tax_deduction = tax_unit( + "la_federal_tax_deduction", period + ) + # Multiply the federal tax deduction by the exempt income rate + reduced_federal_tax_deduction = ( + federal_tax_deduction * exempt_income_rate + ) + # The smaller of the two options is applied if taxable income exceeds zero + # Mentioned from the IT-540 instructions, Page 9, Line 4I + smaller_adjustment = min_( + reduced_federal_tax_deduction, reduced_exempt_income + ) + # The smaller of the two options is applied if taxable income exceeds zero + federal_tax_deduction_eligible = federal_tax_deduction > 0 + final_exempt_income_reduction = where( + federal_tax_deduction_eligible, + smaller_adjustment, + reduced_exempt_income, + ) + return max_(total_exempt_income - final_exempt_income_reduction, 0) + return total_exempt_income diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.py b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.py new file mode 100644 index 000000000..3f99ccb9e --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.py @@ -0,0 +1,29 @@ +from fiscalsim_us.model_api import * + + +class la_disability_income_exemption_person(Variable): + value_type = float + entity = Person + label = "Louisiana disability income exemption for each person" + unit = USD + definition_period = YEAR + reference = "https://www.legis.la.gov/legis/Law.aspx?d=102133" # (B) + defined_for = StateCode.LA + + def formula(person, period, parameters): + p = parameters( + period + ).gov.states.la.tax.income.exempt_income.disability + # The disability_benefits variable includes only taxable disability benefits. + disability_benefits = person("disability_benefits", period) + capped_disability_benefits = min_(disability_benefits, p.cap) + is_head_or_spouse = person("is_tax_unit_head_or_spouse", period) + total_disablity_exemption = ( + capped_disability_benefits * is_head_or_spouse + ) + # People who reveive the blind exemption are not eligible for + # the disability income exemption + blind_exemption_received = person( + "la_receives_blind_exemption", period + ) + return where(blind_exemption_received, 0, total_disablity_exemption) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.py b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.py new file mode 100644 index 000000000..622699716 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.py @@ -0,0 +1,22 @@ +from fiscalsim_us.model_api import * + + +class la_retirement_exemption_person(Variable): + value_type = float + entity = Person + label = "Louisiana retirement exemption for each person" + unit = USD + definition_period = YEAR + reference = "https://www.legis.la.gov/legis/Law.aspx?d=102133" + defined_for = StateCode.LA + + def formula(person, period, parameters): + pension_income = person("taxable_pension_income", period) + age = person("age", period) + p = parameters( + period + ).gov.states.la.tax.income.exempt_income.retirement + cap = p.cap.calc(age) + deductible_pensions = min_(pension_income, cap) + is_head_or_spouse = person("is_tax_unit_head_or_spouse", period) + return deductible_pensions * is_head_or_spouse diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.py b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.py new file mode 100644 index 000000000..e22ad4689 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.py @@ -0,0 +1,18 @@ +from fiscalsim_us.model_api import * + + +class la_military_pay_exclusion(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana military pay exclusion" + unit = USD + definition_period = YEAR + defined_for = StateCode.LA + reference = "http://www.legis.la.gov/legis/Law.aspx?d=101760" + + def formula(tax_unit, period, parameters): + p = parameters( + period + ).gov.states.la.tax.income.exempt_income.military_pay_exclusion + military_pay = add(tax_unit, period, ["military_service_income"]) + return min_(p.max_amount, military_pay) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/la_exemptions.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/la_exemptions.py new file mode 100644 index 000000000..b17bc0163 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/la_exemptions.py @@ -0,0 +1,17 @@ +from fiscalsim_us.model_api import * + + +class la_exemptions(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana exemptions" + unit = USD + definition_period = YEAR + defined_for = StateCode.LA + adds = [ + "la_personal_exemption", + "la_blind_exemption", + "la_dependents_exemption", + "la_widow_exemption", + "la_aged_exemption", + ] diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption.py new file mode 100644 index 000000000..a40289c5e --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption.py @@ -0,0 +1,19 @@ +from fiscalsim_us.model_api import * + + +class la_blind_exemption(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana blind exemption" + unit = USD + definition_period = YEAR + reference = [ + "https://www.revenue.louisiana.gov/taxforms/6935(11_02)F.pdf#page=1", + "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2", + ] + # Even though the tax computation worksheet refers "blind exemption" as credits, the instructions for + # preparing tax form line 6a-6b specifies it as exemption. (the legal code also mentions deaf and totally disabled conditions, + # but they are not mentioned either in the tax computation worksheet or tax form.) + defined_for = StateCode.LA + + adds = ["la_blind_exemption_person"] diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption_person.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption_person.py new file mode 100644 index 000000000..5b8b2db18 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_blind_exemption_person.py @@ -0,0 +1,24 @@ +from fiscalsim_us.model_api import * + + +class la_blind_exemption_person(Variable): + value_type = float + entity = Person + label = "Louisiana blind exemption for each individual" + unit = USD + definition_period = YEAR + reference = [ + "https://www.revenue.louisiana.gov/taxforms/6935(11_02)F.pdf#page=1", + "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2", + ] + # Even though the tax computation worksheet refers "blind exemption" as credits, the instructions for + # preparing tax form line 6a-6b specifies it as exemption. (the legal code also mentions deaf and totally disabled conditions, + # but they are not mentioned either in the tax computation worksheet or tax form.) + defined_for = "la_receives_blind_exemption" + + def formula(person, period, parameters): + p = parameters(period).gov.states.la.tax.income.exemptions + blind = person("is_blind", period).astype(int) + head_or_spouse = person("is_tax_unit_head_or_spouse", period) + blind_head_or_spouse = head_or_spouse & blind + return blind_head_or_spouse * p.blind diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_receives_blind_exemption.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_receives_blind_exemption.py new file mode 100644 index 000000000..b2eb6daaf --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/blind/la_receives_blind_exemption.py @@ -0,0 +1,12 @@ +from fiscalsim_us.model_api import * + + +class la_receives_blind_exemption(Variable): + value_type = bool + entity = Person + label = "Filer receives the Louisiana blind exemption over the subtraction" + definition_period = YEAR + # RS 47:44.1 indicates that filers can only take either the exemption or subtraction. + reference = "https://www.legis.la.gov/legis/Law.aspx?d=102133" + defined_for = StateCode.LA + default_value = True diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.py new file mode 100644 index 000000000..c3a7fd9c0 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.py @@ -0,0 +1,18 @@ +from fiscalsim_us.model_api import * + + +class la_aged_exemption(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana aged exemption" + unit = USD + definition_period = YEAR + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + p = parameters(period).gov.states.la.tax.income.exemptions + age_head = tax_unit("age_head", period) + age_spouse = tax_unit("age_spouse", period) + head_amount = p.aged.calc(age_head) + spouse_amount = p.aged.calc(age_spouse) + return head_amount + spouse_amount diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.py new file mode 100644 index 000000000..5121d2300 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.py @@ -0,0 +1,21 @@ +from fiscalsim_us.model_api import * + + +class la_dependents_exemption(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana qualified dependents exemption" + reference = [ + "https://www.revenue.louisiana.gov/taxforms/6935(11_02)F.pdf#page=1", + "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf#page=2", + ] + # Even though the tax computation worksheet refers "dependent exemption" as credits, the instructions for + # preparing tax form line 6a-6b specifies it as exemption. + unit = USD + definition_period = YEAR + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + dependents = tax_unit("tax_unit_dependents", period) + p = parameters(period).gov.states.la.tax.income.exemptions + return dependents * p.dependent diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.py new file mode 100644 index 000000000..3213146ed --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.py @@ -0,0 +1,16 @@ +from fiscalsim_us.model_api import * + + +class la_personal_exemption(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana personal exemption" + reference = "https://www.legis.la.gov/legis/Law.aspx?d=101761" + unit = USD + definition_period = YEAR + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + filing_status = tax_unit("filing_status", period) + p = parameters(period).gov.states.la.tax.income.exemptions + return p.personal[filing_status] diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.py b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.py new file mode 100644 index 000000000..26cbc168a --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.py @@ -0,0 +1,19 @@ +from fiscalsim_us.model_api import * + + +class la_widow_exemption(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana qualifying widow exemption" + reference = ( + "https://www.revenue.louisiana.gov/taxforms/6935(11_02)F.pdf#page=1" + ) + unit = USD + definition_period = YEAR + defined_for = StateCode.LA + + def formula(tax_unit, period, parameters): + person = tax_unit.members + is_widowed = tax_unit.any(person("is_widowed", period)) + p = parameters(period).gov.states.la.tax.income.exemptions + return is_widowed * p.widow diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_agi.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_agi.py new file mode 100644 index 000000000..193e15830 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_agi.py @@ -0,0 +1,15 @@ +from fiscalsim_us.model_api import * + + +class la_agi(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana adjusted gross income income" + defined_for = StateCode.LA + unit = USD + definition_period = YEAR + + def formula(tax_unit, period, parameters): + agi = tax_unit("adjusted_gross_income", period) + exempt_income = tax_unit("la_agi_exempt_income", period) + return max_(agi - exempt_income, 0) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_exemptions.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_exemptions.py deleted file mode 100644 index 5d3157870..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/la_exemptions.py +++ /dev/null @@ -1,30 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_exemptions(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana exemptions amount" - unit = USD - definition_period = YEAR - reference = () - defined_for = StateCode.LA - - def formula(tax_unit, period, parameters): - p = parameters(period).gov.states.la.tax.income.exemptions - filing_status = tax_unit("filing_status", period) - statuses = filing_status.possible_values - single_separate = (filing_status == statuses.SINGLE) | ( - filing_status == statuses.SEPARATE - ) - - dependents = tax_unit("tax_unit_dependents", period) - aged_blind = tax_unit("aged_blind_count", period) - - personal_multiplier = where(single_separate, 1, 2) - n_extra = dependents + aged_blind - - return ( - p.personal_amount * personal_multiplier - + p.additional_amount * n_extra - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax.py index 0ff502c54..b4c81a3e1 100644 --- a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax.py +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax.py @@ -5,12 +5,9 @@ class la_income_tax(Variable): value_type = float entity = TaxUnit label = "Louisiana income tax" + defined_for = StateCode.LA unit = USD definition_period = YEAR - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - defined_for = StateCode.LA + adds = ["la_income_tax_before_refundable_credits"] subtracts = ["la_refundable_credits"] diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_credits.py deleted file mode 100644 index 9b213c8f3..000000000 --- a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_credits.py +++ /dev/null @@ -1,36 +0,0 @@ -from fiscalsim_us.model_api import * - - -class la_income_tax_before_credits(Variable): - value_type = float - entity = TaxUnit - label = "Louisiana income tax before credits" - unit = USD - definition_period = YEAR - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - defined_for = StateCode.LA - - def formula(tax_unit, period, parameters): - filing_status = tax_unit("filing_status", period) - statuses = filing_status.possible_values - taxable_income = tax_unit("la_taxable_income", period) - p = parameters(period).gov.states.la.tax.income.rates - return select( - [ - filing_status == statuses.SINGLE, - filing_status == statuses.SEPARATE, - filing_status == statuses.JOINT, - filing_status == statuses.SURVIVING_SPOUSE, - filing_status == statuses.HEAD_OF_HOUSEHOLD, - ], - [ - p.single.calc(taxable_income), - p.separate.calc(taxable_income), - p.joint.calc(taxable_income), - p.widow.calc(taxable_income), - p.head_of_household.calc(taxable_income), - ], - ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.py new file mode 100644 index 000000000..687330c35 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.py @@ -0,0 +1,38 @@ +from fiscalsim_us.model_api import * + + +class la_income_tax_before_non_refundable_credits(Variable): + value_type = float + entity = TaxUnit + label = "Louisiana income tax before non-refundable credits" + defined_for = StateCode.LA + unit = USD + definition_period = YEAR + reference = "https://www.legis.la.gov/legis/Law.aspx?d=101946" + + def formula(tax_unit, period, parameters): + income = tax_unit("la_taxable_income", period) + filing_status = tax_unit("filing_status", period) + status = filing_status.possible_values + p = parameters(period).gov.states.la.tax.income.main + # The exemption amount is applied to the bottom tax rate and to the top tax rate + exemptions = tax_unit("la_exemptions", period) + bottom_tax_rate = p.single.rates[0] + exempt_income_tax = exemptions * bottom_tax_rate + pre_exemption_tax_amount = select( + [ + filing_status == status.SINGLE, + filing_status == status.JOINT, + filing_status == status.SEPARATE, + filing_status == status.SURVIVING_SPOUSE, + filing_status == status.HEAD_OF_HOUSEHOLD, + ], + [ + p.single.calc(income), + p.joint.calc(income), + p.separate.calc(income), + p.widow.calc(income), + p.head_of_household.calc(income), + ], + ) + return max_(pre_exemption_tax_amount - exempt_income_tax, 0) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_refundable_credits.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_refundable_credits.py index 13b94418c..a69f557bf 100644 --- a/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_refundable_credits.py +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_income_tax_before_refundable_credits.py @@ -7,13 +7,11 @@ class la_income_tax_before_refundable_credits(Variable): label = "Louisiana income tax before refundable credits" unit = USD definition_period = YEAR - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) defined_for = StateCode.LA def formula(tax_unit, period, parameters): - itax_before_credits = tax_unit("la_income_tax_before_credits", period) - nonrefundable_credits = tax_unit("la_nonrefundable_credits", period) - return max_(0, itax_before_credits - nonrefundable_credits) + before_non_refundable_credits = tax_unit( + "la_income_tax_before_non_refundable_credits", period + ) + non_refundable_credits = tax_unit("la_non_refundable_credits", period) + return max_(before_non_refundable_credits - non_refundable_credits, 0) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_state_teacher_retirement_benefits.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_non_refundable_credits.py similarity index 51% rename from fiscalsim_us/variables/gov/states/la/tax/income/agi/la_state_teacher_retirement_benefits.py rename to fiscalsim_us/variables/gov/states/la/tax/income/la_non_refundable_credits.py index 18677ec5b..7cc1f5e0e 100644 --- a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_state_teacher_retirement_benefits.py +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_non_refundable_credits.py @@ -1,10 +1,11 @@ from fiscalsim_us.model_api import * -class la_state_teacher_retirement_benefits(Variable): +class la_non_refundable_credits(Variable): value_type = float entity = TaxUnit - label = "Louisiana state teacher retirement benefits" + label = "Louisiana non-refundable credits" + defined_for = StateCode.LA unit = USD definition_period = YEAR - defined_for = StateCode.LA + adds = "gov.states.la.tax.income.credits.non_refundable" diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_state_employee_retirement_benefits.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_refundable_credits.py similarity index 53% rename from fiscalsim_us/variables/gov/states/la/tax/income/agi/la_state_employee_retirement_benefits.py rename to fiscalsim_us/variables/gov/states/la/tax/income/la_refundable_credits.py index aa55e2c8b..1bd776039 100644 --- a/fiscalsim_us/variables/gov/states/la/tax/income/agi/la_state_employee_retirement_benefits.py +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_refundable_credits.py @@ -1,10 +1,12 @@ from fiscalsim_us.model_api import * -class la_state_employee_retirement_benefits(Variable): +class la_refundable_credits(Variable): value_type = float entity = TaxUnit - label = "Louisiana state empoyees' retirement benefits" + label = "Louisiana refundable credits" + defined_for = StateCode.LA unit = USD definition_period = YEAR - defined_for = StateCode.LA + + adds = "gov.states.la.tax.income.credits.refundable" diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_taxable_income.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_taxable_income.py index e4ac9f686..460f6d461 100644 --- a/fiscalsim_us/variables/gov/states/la/tax/income/la_taxable_income.py +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_taxable_income.py @@ -5,30 +5,19 @@ class la_taxable_income(Variable): value_type = float entity = TaxUnit label = "Louisiana taxable income" + defined_for = StateCode.LA unit = USD definition_period = YEAR - reference = ( - "https://revenue.louisiana.gov/TaxForms/IT540WEB(2022)%20F%20D2.pdf", - "https://revenue.louisiana.gov/TaxForms/IT540iWEB(2022)D1.pdf", - ) - defined_for = StateCode.LA def formula(tax_unit, period, parameters): - ADDS = ["adjusted_gross_income", "la_total_additions"] - SUBTRACTS = ["la_total_subtractions", "la_exemptions"] - - la_agi = add(tax_unit, period, ADDS) - add(tax_unit, period, SUBTRACTS) - - # LA allows tax units to subtract from income any portion of federal - # medical expense deductions that is more than the standard deduction - filing_status = tax_unit("filing_status", period) - itemizing = tax_unit("tax_unit_itemizes", period) - std_deduct = parameters(period).gov.irs.deductions.standard.amount[ - filing_status - ] - medical_deduct = tax_unit("medical_expense_deduction", period) - - excess_fed_deduct = max_(0, medical_deduct - std_deduct) - - # return max_(0, la_agi - excess_fed_deduct) - return where(itemizing, la_agi - excess_fed_deduct, la_agi) + itemizes = tax_unit("tax_unit_itemizes", period) + # Louisana does not provide a standard deduction + itemized_deductions = tax_unit("la_itemized_deductions", period) + claimed_itemized_deductions = itemizes * itemized_deductions + fed_tax_deduction = tax_unit("la_federal_tax_deduction", period) + return max_( + tax_unit("la_agi", period) + - claimed_itemized_deductions + - fed_tax_deduction, + 0, + ) diff --git a/fiscalsim_us/variables/gov/states/la/tax/income/la_withheld_income_tax.py b/fiscalsim_us/variables/gov/states/la/tax/income/la_withheld_income_tax.py new file mode 100644 index 000000000..60df4f372 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/la/tax/income/la_withheld_income_tax.py @@ -0,0 +1,19 @@ +from fiscalsim_us.model_api import * + + +class la_withheld_income_tax(Variable): + value_type = float + entity = Person + label = "Louisiana withheld income tax" + defined_for = StateCode.LA + unit = USD + definition_period = YEAR + + def formula(person, period, parameters): + agi = person("adjusted_gross_income_person", period) + p_irs = parameters(period).gov.irs.deductions.standard + # We apply the base IRS standard deduction amount + standard_deduction = p_irs.amount["SINGLE"] + reduced_agi = max_(agi - standard_deduction, 0) + p = parameters(period).gov.states.la.tax.income + return p.main.single.calc(reduced_agi) From f6c08c7efe159ac6c34d353d77eb7684cf64cc71 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Mon, 11 Nov 2024 11:13:15 -0700 Subject: [PATCH 3/5] Updated LA tests --- .../credits/cdcc/la_non_refundable_cdcc.yaml | 44 +++++ .../credits/cdcc/la_refundable_cdcc.yaml | 26 +++ ...chool_readiness_credit_eligible_child.yaml | 27 +++ ..._readiness_credit_refundable_eligible.yaml | 23 +++ .../la_school_readiness_tax_credit.yaml | 139 +++++++++++++++ .../states/la/tax/income/credits/la_eitc.yaml | 15 ++ .../la/tax/income/deductions/integration.yaml | 36 ++++ .../deductions/la_federal_tax_deduction.yaml | 29 +++ .../deductions/la_itemized_deductions.yaml | 72 ++++++++ ...la_disability_income_exemption_person.yaml | 65 +++++++ .../la_retirement_exemption_person.yaml | 97 ++++++++++ .../la_military_pay_exclusion.yaml | 32 ++++ .../personal/la_aged_exemption.yaml | 35 ++++ .../personal/la_blind_exemption_person.yaml | 105 +++++++++++ .../personal/la_dependents_exemption.yaml | 23 +++ .../personal/la_personal_exemption.yaml | 31 ++++ .../personal/la_widow_exemption.yaml | 43 +++++ .../gov/states/la/tax/income/integration.yaml | 134 ++++++++++++++ .../gov/states/la/tax/income/la_agi.yaml | 17 ++ .../la/tax/income/la_agi_exempt_income.yaml | 44 +++++ .../la/tax/income/la_agi_subtractions.yaml | 16 -- .../la/tax/income/la_credit_priorities.yaml | 105 ----------- .../gov/states/la/tax/income/la_credits.yaml | 166 ------------------ .../states/la/tax/income/la_exemptions.yaml | 111 ------------ ...ome_tax_before_non_refundable_credits.yaml | 91 ++++++++++ ..._income_tax_before_refundable_credits.yaml | 17 ++ .../gov/states/la/tax/income/la_tax.yaml | 29 --- .../la/tax/income/la_taxable_income.yaml | 84 +++------ .../la/tax/income/la_withheld_income_tax.yaml | 29 +++ 29 files changed, 1201 insertions(+), 484 deletions(-) create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_eligible_child.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_refundable_eligible.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_tax_credit.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/la_eitc.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/integration.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_federal_tax_deduction.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_itemized_deductions.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_blind_exemption_person.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_exempt_income.yaml delete mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_subtractions.yaml delete mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credit_priorities.yaml delete mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credits.yaml delete mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_exemptions.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_refundable_credits.yaml delete mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_tax.yaml create mode 100644 fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_withheld_income_tax.yaml diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.yaml new file mode 100644 index 000000000..dbe05e29f --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_non_refundable_cdcc.yaml @@ -0,0 +1,44 @@ +- name: AGI ineligible + period: 2006 + input: + adjusted_gross_income: 25_000 + cdcc: 1_000 + state_code: LA + output: + la_non_refundable_cdcc: 0 + +- name: 30% match above 25k + period: 2023 + input: + adjusted_gross_income: 25_001 + cdcc: 1_000 + state_code: LA + output: + la_non_refundable_cdcc: 300 + +- name: Match over 60k capped at $25 + period: 2023 + input: + adjusted_gross_income: 60_001 + cdcc: 1_000 + state_code: LA + output: + la_non_refundable_cdcc: 25 + +- name: Match over 60k, uncapped + period: 2023 + input: + adjusted_gross_income: 60_001 + cdcc: 100 + state_code: LA + output: + la_non_refundable_cdcc: 10 + +- name: Match over 60k, uncapped + period: 2023 + input: + adjusted_gross_income: 35_001 + cdcc: 100 + state_code: LA + output: + la_non_refundable_cdcc: 10 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.yaml new file mode 100644 index 000000000..3bb53546b --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/cdcc/la_refundable_cdcc.yaml @@ -0,0 +1,26 @@ +- name: Match of 50% + period: 2007 + input: + adjusted_gross_income: 25_000 + cdcc: 1_000 + state_code: LA + output: + la_refundable_cdcc: 500 + +- name: AGI ineligible + period: 2007 + input: + adjusted_gross_income: 25_001 + cdcc: 1_000 + state_code: LA + output: + la_refundable_cdcc: 0 + +- name: Match of 25% pre 2007 + period: 2006 + input: + adjusted_gross_income: 24_999 + cdcc: 1_000 + state_code: LA + output: + la_refundable_cdcc: 250 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_eligible_child.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_eligible_child.yaml new file mode 100644 index 000000000..daf7ea8cc --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_eligible_child.yaml @@ -0,0 +1,27 @@ +- name: LA child care expense tax credit eligible child test 1 + period: 2021 + input: + age: 5 + is_tax_unit_dependent: True + state_code: LA + output: + la_school_readiness_credit_eligible_child: true + +- name: LA child care expense tax credit eligible child test 2 + period: 2021 + input: + age: 7 + is_tax_unit_dependent: true + state_code: LA + output: + la_school_readiness_credit_eligible_child: false + +- name: LA child care expense tax credit eligible child test 3 + period: 2021 + input: + age: 5 + is_tax_unit_dependent: false + state_code: LA + output: + la_school_readiness_credit_eligible_child: false + diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_refundable_eligible.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_refundable_eligible.yaml new file mode 100644 index 000000000..3ca3c64fd --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_credit_refundable_eligible.yaml @@ -0,0 +1,23 @@ +- name: LA child care expense tax credit refundable eligibility test 1 + period: 2021 + input: + adjusted_gross_income: 0 + state_code: LA + output: + la_school_readiness_credit_refundable_eligible: true + +- name: LA child care expense tax credit refundable eligibility test 2 + period: 2021 + input: + adjusted_gross_income: 25_000 + state_code: LA + output: + la_school_readiness_credit_refundable_eligible: true + +- name: LA child care expense tax credit refundable eligibility test 3 + period: 2021 + input: + adjusted_gross_income: 25_001 + state_code: LA + output: + la_school_readiness_credit_refundable_eligible: false diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_tax_credit.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_tax_credit.yaml new file mode 100644 index 000000000..55bdd603a --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/child_care_expense_credit/la_school_readiness_tax_credit.yaml @@ -0,0 +1,139 @@ +- name: 3 eligible children, all 5 stars quality rating + period: 2021 + input: + people: + person1: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 5 + person2: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 5 + person3: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 5 + tax_units: + tax_unit: + la_refundable_cdcc: 50 + members: [person1, person2, person3] + households: + household: + state_code: LA + output: + #50*2+50*2+50*2=300 + la_school_readiness_credit: 300 + +- name: 2 eligible children, all 5 stars quality rating + period: 2021 + input: + people: + person1: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 5 + person2: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 5 + person3: + la_school_readiness_credit_eligible_child: false + tax_units: + tax_unit: + la_non_refundable_cdcc: 50 + members: [person1, person2, person3] + households: + household: + state_code: LA + output: + #50*2+50*2=200 + la_school_readiness_credit: 200 + +- name: 3 eligible children, one 5 stars quality rating, one 4 stars quality rating, one 3 stars quality rating + period: 2021 + input: + people: + person1: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 5 + person2: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 4 + person3: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 3 + tax_units: + tax_unit: + la_refundable_cdcc: 20 + la_non_refundable_cdcc: 30 + members: [person1, person2, person3] + households: + household: + state_code: LA + output: + #50*2+50*1.5+50*1=225 + la_school_readiness_credit: 225 + +- name: 3 eligible children, one 3 stars quality rating, one 2 stars quality rating, one 1 star quality rating + period: 2021 + input: + people: + person1: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 3 + person2: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 2 + person3: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 1 + tax_units: + tax_unit: + members: [person1, person2, person3] + la_non_refundable_cdcc: 50 + households: + household: + state_code: LA + output: + #50*1+50*0.5+50*0=75 + la_school_readiness_credit: 75 + +- name: 1 eligible children, 2 stars quality rating + period: 2021 + input: + people: + person1: + la_school_readiness_credit_eligible_child: true + la_quality_rating_of_child_care_facility: 2 + person2: + la_school_readiness_credit_eligible_child: false + person3: + la_school_readiness_credit_eligible_child: false + tax_units: + tax_unit: + members: [person1, person2, person3] + la_non_refundable_cdcc: 50 + households: + household: + state_code: LA + output: + #50*0.5=25 + la_school_readiness_credit: 25 + +- name: 1 eligible children, 2 stars quality rating + period: 2021 + input: + people: + person1: + la_school_readiness_credit_eligible_child: false + la_quality_rating_of_child_care_facility: 2 + person2: + la_school_readiness_credit_eligible_child: false + person3: + la_school_readiness_credit_eligible_child: false + tax_units: + tax_unit: + members: [person1, person2, person3] + la_non_refundable_cdcc: 50 + households: + household: + state_code: LA + output: + #0 + la_school_readiness_credit: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/la_eitc.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/la_eitc.yaml new file mode 100644 index 000000000..cd194b781 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/credits/la_eitc.yaml @@ -0,0 +1,15 @@ +- name: 5% of federal EITC after 2019. + period: 2023 + input: + eitc: 100 + state_code: LA + output: + la_eitc: 5 + +- name: If no federal EITC, no Louisiana EITC. + period: 2023 + input: + eitc: 0 + state_code: LA + output: + la_eitc: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/integration.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/integration.yaml new file mode 100644 index 000000000..97253bb70 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/integration.yaml @@ -0,0 +1,36 @@ +- name: Test of LA federal tax deduction + absolute_error_margin: 0.01 + period: 2021 + input: + people: + person1: + age: 44 + employment_income: 159_010 + taxable_interest_income: 5_505 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + person2: + age: 44 + employment_income: 160_010 + taxable_interest_income: 5_505 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + tax_units: + tax_unit: + members: [person1, person2] + premium_tax_credit: 0 # not in TAXSIM35 + local_income_tax: 0 # not in TAXSIM35 + state_sales_tax: 0 # not in TAXSIM35 + spm_units: + spm_unit: + members: [person1, person2] + snap: 0 # not in TAXSIM35 + tanf: 0 # not in TAXSIM35 + households: + household: + members: [person1, person2] + state_fips: 22 # LA + output: # expected results from patched TAXSIM35 2024-01-27 version + la_federal_tax_deduction: 61_643.58 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_federal_tax_deduction.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_federal_tax_deduction.yaml new file mode 100644 index 000000000..7e93c7ed2 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_federal_tax_deduction.yaml @@ -0,0 +1,29 @@ +- name: Partial reduction of deduction + period: 2021 + input: + state_code: LA + income_tax_before_refundable_credits: 1_200 + form_4972_lumpsum_distributions: 600 + premium_tax_credit: 500 + output: + la_federal_tax_deduction: 100 + +- name: Capped at 0 + period: 2021 + input: + state_code: LA + income_tax_before_refundable_credits: 1_000 + form_4972_lumpsum_distributions: 600 + premium_tax_credit: 800 + output: + la_federal_tax_deduction: 0 + +- name: Deduction repealed in 2022 + period: 2022 + input: + state_code: LA + income_tax_before_refundable_credits: 1_300 + form_4972_lumpsum_distributions: 600 + premium_tax_credit: 500 + output: + la_federal_tax_deduction: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_itemized_deductions.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_itemized_deductions.yaml new file mode 100644 index 000000000..008bbd579 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/deductions/la_itemized_deductions.yaml @@ -0,0 +1,72 @@ +- name: Outside Louisiana, no Louisiana deductions + period: 2022 + input: + state_code: NY + standard_deduction: 12_950 + tax_unit_itemizes: false + output: + la_itemized_deductions: 0 + +- name: 2022 Louisiana deduction given Single status, with medical expense deduction 20_000 + period: 2022 + input: + state_code: LA + standard_deduction: 12_950 + medical_expense_deduction: 20_000 + tax_unit_itemizes: true + output: + la_itemized_deductions: 7_050 + +- name: 2022 Louisiana deduction given Single status, with medical expense deduction 20_000 + period: 2022 + input: + state_code: LA + standard_deduction: 12_950 + medical_expense_deduction: 20_000 + tax_unit_itemizes: true + output: + la_itemized_deductions: 7_050 + +- name: 2021 Louisiana deduction given Single status, with federal itemized deductions 30_000 + period: 2021 + input: + state_code: LA + standard_deduction: 12_550 + medical_expense_deduction: 20_000 + taxable_income_deductions_if_itemizing: 30_000 + tax_unit_itemizes: true + output: + la_itemized_deductions: 17_450 + #30_000-12_550 + +- name: 2021 Louisiana deduction given Single status, with federal itemized deductions 10_000 + period: 2021 + input: + state_code: LA + standard_deduction: 12_550 + medical_expense_deduction: 20_000 + taxable_income_deductions_if_itemizing: 10_000 + tax_unit_itemizes: true + output: + la_itemized_deductions: 0 + #10_000-12_550<0 + +- name: 2022 Louisiana deduction given Head of Household status, with medical expense deduction 20_000 + period: 2022 + input: + state_code: LA + standard_deduction: 19_400 + medical_expense_deduction: 20_000 + tax_unit_itemizes: true + output: + la_itemized_deductions: 600 + +- name: 2022 Louisiana deduction given Head of Widow status, with medical expense deduction 20_000 + period: 2022 + input: + state_code: LA + standard_deduction: 25_900 + medical_expense_deduction: 20_000 + tax_unit_itemizes: true + output: + la_itemized_deductions: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.yaml new file mode 100644 index 000000000..50afab13f --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_disability_income_exemption_person.yaml @@ -0,0 +1,65 @@ +- name: Disability benefits less than disability income exemption. + period: 2022 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + disability_benefits: 3_000 + la_receives_blind_exemption: false + person2: + is_tax_unit_head_or_spouse: true + disability_benefits: 0 + la_receives_blind_exemption: false + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_disability_income_exemption_person: [3_000, 0] + +- name: Disability benefits greater than disability income exemption. + period: 2022 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + disability_benefits: 0 + la_receives_blind_exemption: false + person2: + is_tax_unit_head_or_spouse: true + disability_benefits: 7_000 + la_receives_blind_exemption: false + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_disability_income_exemption_person: [0, 6_000] + +- name: Person receiving teh blind exemption + period: 2022 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + disability_benefits: 0 + la_receives_blind_exemption: false + person2: + is_tax_unit_head_or_spouse: true + disability_benefits: 7_000 + la_receives_blind_exemption: true + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_disability_income_exemption_person: [0, 0] diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.yaml new file mode 100644 index 000000000..028770843 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/la_retirement_exemption_person.yaml @@ -0,0 +1,97 @@ +- name: Aged head + period: 2020 + input: + people: + person1: + age: 65 + is_tax_unit_head: 1 + taxable_pension_income: 3_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: LA + output: + la_retirement_exemption_person: 3_000 + +- name: Aged head with pension income lower than cap amount + period: 2020 + input: + people: + person1: + age: 67 + is_tax_unit_head: 1 + taxable_pension_income: 3_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: LA + output: + la_retirement_exemption_person: 3_000 + +- name: Aged head with pension income higher than cap amount + period: 2020 + input: + people: + person1: + age: 67 + is_tax_unit_head: 1 + taxable_pension_income: 7_000 + tax_units: + tax_unit: + members: [person1] + households: + household: + members: [person1] + state_code: LA + output: + la_retirement_exemption_person: 6_000 + +- name: Aged spouse + period: 2020 + input: + people: + person1: + age: 64 + is_tax_unit_head: 1 + taxable_pension_income: 2_000 + person2: + age: 65 + is_tax_unit_spouse: 1 + taxable_pension_income: 3_000 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_retirement_exemption_person: [0, 3_000] + +- name: Aged head and spouse + period: 2020 + input: + people: + person1: + age: 66 + is_tax_unit_head: 1 + taxable_pension_income: 3_000 + person2: + age: 65 + is_tax_unit_spouse: 1 + taxable_pension_income: 7_000 + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_retirement_exemption_person: [3_000, 6_000] diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.yaml new file mode 100644 index 000000000..d234c9fbb --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exempt_income/military_pay_exclusion/la_military_pay_exclusion.yaml @@ -0,0 +1,32 @@ +- name: Compensation less than 30,000 dollars before 2022 + period: 2021 + input: + military_service_income: 10_000 + state_code: LA + output: + la_military_pay_exclusion: 10_000 + +- name: Compensation more than 30,000 dollars before 2022 + period: 2021 + input: + military_service_income: 31_000 + state_code: LA + output: + la_military_pay_exclusion: 30_000 + +- name: Compensation less than 50,000 dollars after 2022 + period: 2022 + input: + military_service_income: 10_000 + state_code: LA + output: + la_military_pay_exclusion: 10_000 + +- name: Compensation more than 50,000 dollars after 2022 + period: 2022 + input: + military_service_income: 51_000 + state_code: LA + output: + la_military_pay_exclusion: 50_000 + diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.yaml new file mode 100644 index 000000000..8ba7fbbce --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_aged_exemption.yaml @@ -0,0 +1,35 @@ +- name: No eligible people + period: 2020 + input: + state_code: LA + age_head: 64 + age_spouse: 64 + output: + la_aged_exemption: 0 + +- name: Aged head + period: 2020 + input: + state_code: LA + age_head: 65 + age_spouse: 64 + output: + la_aged_exemption: 1_000 + +- name: Aged spouse + period: 2020 + input: + state_code: LA + age_head: 64 + age_spouse: 65 + output: + la_aged_exemption: 1_000 + +- name: Both aged + period: 2020 + input: + state_code: LA + age_head: 65 + age_spouse: 65 + output: + la_aged_exemption: 2_000 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_blind_exemption_person.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_blind_exemption_person.yaml new file mode 100644 index 000000000..f51d5ce50 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_blind_exemption_person.yaml @@ -0,0 +1,105 @@ +- name: Blind head and not blind spouse + period: 2021 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + is_blind: true + la_receives_blind_exemption: true + person2: + is_tax_unit_head_or_spouse: true + is_blind: false + la_receives_blind_exemption: true + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_blind_exemption_person: [1_000, 0] + +- name: Both blind + period: 2021 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + is_blind: true + la_receives_blind_exemption: true + person2: + is_tax_unit_head_or_spouse: true + is_blind: true + la_receives_blind_exemption: true + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_blind_exemption_person: [1_000, 1_000] + +- name: No blind people + period: 2021 + input: + people: + person1: + is_tax_unit_head: true + is_blind: false + person2: + is_tax_unit_spouse: true + is_blind: false + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_blind_exemption_person: [0, 0] + +- name: Blind non head or spouse + period: 2021 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + is_blind: true + person2: + is_tax_unit_head_or_spouse: false + is_blind: true + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_blind_exemption_person: [1_000, 0] + +- name: Does not receive blind exemption + period: 2021 + input: + people: + person1: + is_tax_unit_head_or_spouse: true + is_blind: true + la_receives_blind_exemption: false + person2: + is_tax_unit_head_or_spouse: false + is_blind: true + la_receives_blind_exemption: true + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_blind_exemption_person: [0, 0] diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.yaml new file mode 100644 index 000000000..ee9c6d9bb --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_dependents_exemption.yaml @@ -0,0 +1,23 @@ +- name: Two dependents gets $2k exemption. + period: 2022 + input: + state_code: LA + tax_unit_dependents: 2 + output: + la_dependents_exemption: 2_000 + +- name: One dependent gets $1k exemption. + period: 2022 + input: + state_code: LA + tax_unit_dependents: 1 + output: + la_dependents_exemption: 1_000 + +- name: No dependent gets $0 exemption. + period: 2022 + input: + state_code: LA + tax_unit_dependents: 0 + output: + la_dependents_exemption: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.yaml new file mode 100644 index 000000000..03f3fe88f --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_personal_exemption.yaml @@ -0,0 +1,31 @@ +- name: Single filer gets $4500 exemption. + period: 2022 + input: + state_code: LA + filing_status: SINGLE + output: + la_personal_exemption: 4_500 + +- name: Joint filer gets $9k exemption. + period: 2022 + input: + state_code: LA + filing_status: JOINT + output: + la_personal_exemption: 9_000 + +- name: Head of household filer gets $9k exemption. + period: 2022 + input: + state_code: LA + filing_status: HEAD_OF_HOUSEHOLD + output: + la_personal_exemption: 9_000 + +- name: Separate filer gets $4500 exemption. + period: 2022 + input: + state_code: LA + filing_status: SEPARATE + output: + la_personal_exemption: 4_500 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.yaml new file mode 100644 index 000000000..76bc42637 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/exemptions/personal/la_widow_exemption.yaml @@ -0,0 +1,43 @@ +- name: Qualifying widow + period: 2021 + input: + people: + person1: + age: 64 + is_tax_unit_head: 1 + is_widowed: True + person2: + age: 64 + is_tax_unit_spouse: 1 + is_widowed: False + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_widow_exemption: 1_000 + +- name: Non widow + period: 2021 + input: + people: + person1: + age: 64 + is_tax_unit_head: 1 + is_widowed: False + person2: + age: 64 + is_tax_unit_spouse: 1 + is_widowed: False + tax_units: + tax_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: LA + output: + la_widow_exemption: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml new file mode 100644 index 000000000..2f5ffbd68 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml @@ -0,0 +1,134 @@ +- name: Tax unit with taxsimid 98672 in e21.its.csv and e21.ots.csv + absolute_error_margin: 0.01 + period: 2021 + input: + people: + person1: + age: 50 + employment_income: 131_010 + taxable_interest_income: 5_505 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + person2: + age: 50 + employment_income: 157_010 + taxable_interest_income: 5_505 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + person3: + age: 16 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + person4: + age: 16 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + person5: + age: 16 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + person6: + age: 16 + ssi: 0 # not in TAXSIM35 + state_supplement: 0 # not in TAXSIM35 + wic: 0 # not in TAXSIM35 + tax_units: + tax_unit: + members: [person1, person2, person3, person4, person5, person6] + premium_tax_credit: 0 # not in TAXSIM35 + local_income_tax: 0 # not in TAXSIM35 + state_sales_tax: 0 # not in TAXSIM35 + spm_units: + spm_unit: + members: [person1, person2, person3, person4, person5, person6] + snap: 0 # not in TAXSIM35 + tanf: 0 # not in TAXSIM35 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + state_fips: 22 # LA + output: # expected results from patched TAXSIM35 2024-01-30 version + ctc: 8_000 + refundable_ctc: 8_000 + non_refundable_ctc: 0 + la_exemptions: 13_000 + la_taxable_income: 244_826.42 + +- name: Tax unit with taxsimid 99960 in e21.its.csv and e21.ots.csv + absolute_error_margin: 0.01 + period: 2021 + input: + people: + person1: + age: 55 + employment_income: 145010 + taxable_interest_income: 5505.0 + person2: + age: 55 + employment_income: 118010 + taxable_interest_income: 5505.0 + households: + household: + members: [person1, person2] + state_fips: 22 # LA + output: # expected results from patched TAXSIM35 2024-02-05 version + la_income_tax: 10869.59 + +- name: Tax unit with taxsimid 47193 in f21.its.csv and f21.ots.csv + absolute_error_margin: 0.01 + period: 2021 + input: + people: + person1: + age: 63 + employment_income: 40010 + taxable_interest_income: 11010 + taxable_private_pension_income: 10000 + social_security_retirement: 24000 + person2: + age: 16 + person3: + age: 16 + person4: + age: 16 + tax_units: + tax_unit: + members: [person1, person2, person3, person4] + premium_tax_credit: 0 # not in TAXSIM35 + spm_units: + spm_unit: + members: [person1, person2, person3, person4] + snap: 0 # not in TAXSIM35 + tanf: 0 # not in TAXSIM35 + households: + household: + members: [person1, person2, person3, person4] + state_fips: 22 # LA + output: # expected results from patched TAXSIM35 2024-03-04 version + la_agi_exempt_income: 19_050 + la_agi: 62_370 + la_taxable_income: 54_297.6 + +- name: Tax unit with taxsimid 48858 in f21.its.csv and f21.ots.csv + absolute_error_margin: 0.01 + period: 2021 + input: + people: + person1: + age: 67 + employment_income: 29_010 + taxable_interest_income: 11_010 + taxable_private_pension_income: 12_000 + social_security_retirement: 24_000 + households: + household: + members: [person1] + state_fips: 22 # LA + output: # expected results from patched TAXSIM35 2024-03-16 version + la_agi: 48_870 + la_income_tax: 1_252.96 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi.yaml new file mode 100644 index 000000000..3a54ec504 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi.yaml @@ -0,0 +1,17 @@ +- name: Calculation + period: 2020 + input: + state_code: LA + adjusted_gross_income: 3_000 + la_agi_exempt_income: 1_000 + output: + la_agi: 2_000 + +- name: Capped at 0 + period: 2020 + input: + state_code: LA + adjusted_gross_income: 1_000 + la_agi_exempt_income: 2_000 + output: + la_agi: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_exempt_income.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_exempt_income.yaml new file mode 100644 index 000000000..c8c5a1e54 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_exempt_income.yaml @@ -0,0 +1,44 @@ +- name: Unreduced exempt income + period: 2021 + input: + state_code: LA + adjusted_gross_income: 30_000 + la_retirement_exemption_person: 3_000 + taxable_social_security: 1_000 + la_federal_tax_deduction: 0 + output: + la_agi_exempt_income: 4_000 + +- name: Reduced exempt income + period: 2021 + input: + state_code: LA + adjusted_gross_income: 80_000 + la_retirement_exemption_person: 20_000 + taxable_social_security: 1_000 + la_federal_tax_deduction: 0 + output: + la_agi_exempt_income: 19_500 + +- name: After 2021, the exempt income will not be reduced + period: 2022 + input: + state_code: LA + adjusted_gross_income: 80_000 + la_retirement_exemption_person: 20_000 + taxable_social_security: 1_000 + la_federal_tax_deduction: 0 + output: + la_agi_exempt_income: 21_000 + +- name: The second option is to reduce the exempt income by the federal tax deduction + period: 2021 + input: + state_code: LA + adjusted_gross_income: 80_000 + la_retirement_exemption_person: 20_000 + taxable_social_security: 1_000 + la_federal_tax_deduction: 59_000 + output: + la_agi_exempt_income: 19_500 + diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_subtractions.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_subtractions.yaml deleted file mode 100644 index b3ef8033c..000000000 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_agi_subtractions.yaml +++ /dev/null @@ -1,16 +0,0 @@ -- name: LA subtractions from income - period: 2021 - absolute_error_margin: 0 - input: - filing_status: SINGLE - adjusted_gross_income: 100_000 - us_govt_interest: 1_000 - tax_unit_taxable_social_security: 1_000 - la_state_employee_retirement_benefits: 1_000 - la_state_teacher_retirement_benefits: 1_000 - la_federal_retirement_benefits: 1_000 - la_other_subtractions: 1_000 - la_exemptions: 0 - state_code: LA - output: - la_taxable_income: 94_000 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credit_priorities.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credit_priorities.yaml deleted file mode 100644 index b4ac44409..000000000 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credit_priorities.yaml +++ /dev/null @@ -1,105 +0,0 @@ -- name: LA income tax p1 credit - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_nonrefundable_credits: 1_000 - state_code: LA - output: - la_income_tax: 4_000 - -- name: LA income tax p1 credit nonrefundable - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_nonrefundable_credits: 6_000 - state_code: LA - output: - la_income_tax: 0 - -- name: LA p2 credit nonrefundable - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_refundable_priority_2_credits: 6_000 - state_code: LA - output: - la_income_tax: -1_000 - -- name: LA p1 and p2 credits mixed - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_nonrefundable_credits: 3_000 - la_refundable_priority_2_credits: 6_000 - state_code: LA - output: - la_income_tax: -4_000 - -- name: LA p1 and p2 credits mixed extra nonrefundable - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_nonrefundable_credits: 6_000 - la_refundable_priority_2_credits: 6_000 - state_code: LA - output: - la_income_tax: -6_000 - -- name: LA p2 and p3 credits refund - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_refundable_priority_2_credits: 6_000 - la_nonrefundable_priority_3_credits: 1_000 - state_code: LA - output: - la_income_tax: -1_000 - -- name: LA p2 and p3 credits no refund - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_refundable_priority_2_credits: 3_000 - la_nonrefundable_priority_3_credits: 1_000 - state_code: LA - output: - la_income_tax: 1_000 - -- name: LA p2 and p3 credits extra p3 - period: 2021 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_refundable_priority_2_credits: 3_000 - la_nonrefundable_priority_3_credits: 3_000 - state_code: LA - output: - la_income_tax: 0 - -- name: LA p2, p3, and p4 credits - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_income_tax_before_credits: 5_000 - la_refundable_priority_2_credits: 3_000 - la_nonrefundable_priority_3_credits: 1_000 - la_refundable_priority_4_credits: 2_000 - state_code: LA - output: - la_income_tax: -1_000 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credits.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credits.yaml deleted file mode 100644 index 8dcfe0cac..000000000 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_credits.yaml +++ /dev/null @@ -1,166 +0,0 @@ -- name: Federal EITC of $500 and no qualifying children, LA EITC should be $25 - period: 2022 - absolute_error_margin: 0 - input: - earned_income_tax_credit: 500 - state_code: LA - output: - la_eitc: 25 - -- name: LA refundable childcare credit over $25,000 income limit - period: 2022 - absolute_error_margin: 0 - input: - people: - person1: - age: 33 - employment_income: 100_000 - person2: - age: 35 - employment_income: 50_000 - dependent1: - age: 8 - is_tax_unit_dependent: true - tax_units: - tax_unit: - members: [person1, person2, dependent1] - tax_unit_childcare_expenses: 1_000 - filing_status: JOINT - households: - household: - members: [person1, person2, dependent1] - state_code: LA - output: - la_refundable_childcare: 0 - -- name: LA refundable childcare credit one child - period: 2022 - absolute_error_margin: 0 - input: - people: - person1: - age: 33 - employment_income: 10_000 - person2: - age: 35 - employment_income: 10_000 - dependent1: - age: 8 - is_tax_unit_dependent: true - tax_units: - tax_unit: - members: [person1, person2, dependent1] - tax_unit_childcare_expenses: 4_000 - filing_status: JOINT - households: - household: - members: [person1, person2, dependent1] - state_code: LA - output: - la_refundable_childcare: 480 - -- name: LA refundable childcare credit 3 children - period: 2022 - absolute_error_margin: 0 - input: - people: - person1: - age: 33 - employment_income: 10_000 - person2: - age: 35 - employment_income: 10_000 - dependent1: - age: 8 - is_tax_unit_dependent: true - dependent2: - age: 9 - is_tax_unit_dependent: true - dependent3: - age: 7 - is_tax_unit_dependent: true - tax_units: - tax_unit: - members: [person1, person2, dependent1, dependent2, dependent3] - tax_unit_childcare_expenses: 7_000 - filing_status: JOINT - households: - household: - members: [person1, person2, dependent1, dependent2, dependent3] - state_code: LA - output: - la_refundable_childcare: 960 - -- name: LA refundable childcare credit one child spouse income below expenses - period: 2022 - absolute_error_margin: 0 - input: - people: - person1: - age: 33 - employment_income: 18_000 - person2: - age: 35 - employment_income: 2_000 - dependent1: - age: 8 - is_tax_unit_dependent: true - tax_units: - tax_unit: - members: [person1, person2, dependent1] - tax_unit_childcare_expenses: 4_000 - filing_status: JOINT - households: - household: - members: [person1, person2, dependent1] - state_code: LA - output: - la_refundable_childcare: 320 - -- name: LA nonrefundable child care credit below income floor ($0 nonrefundable) - period: 2022 - input: - adjusted_gross_income: 23_000 - cdcc: 2_000 - state_code: LA - output: - la_nonrefundable_childcare: 0 - -- name: LA nonrefundable child care credit - period: 2022 - input: - adjusted_gross_income: 30_000 - cdcc: 2_000 - state_code: LA - output: - la_nonrefundable_childcare: 600 - -- name: LA nonrefundable child care credit above income threshold - period: 2022 - input: - adjusted_gross_income: 60_001 - cdcc: 200 - state_code: LA - output: - la_nonrefundable_childcare: 20 - -- name: LA nonrefundable child care credit above income threshold with credit limit - period: 2022 - input: - adjusted_gross_income: 60_001 - cdcc: 1000 - state_code: LA - output: - la_nonrefundable_childcare: 25 - -- name: Addition of p2 refundable credits - period: 2022 - absolute_error_margin: 0 - input: - state_code: LA - earned_income_tax_credit: 500 - la_refundable_school_ready: 100 - la_refundable_childcare: 200 - la_other_refundable_p2: 100 - output: - la_refundable_priority_2_credits: 425 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_exemptions.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_exemptions.yaml deleted file mode 100644 index 6f51e6e4d..000000000 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_exemptions.yaml +++ /dev/null @@ -1,111 +0,0 @@ -- name: Single filer gets $4500 exemption. - period: 2022 - input: - state_code: LA - filing_status: SINGLE - output: - la_exemptions: 4_500 - -- name: Joint filer gets $9,000 exemption. - period: 2022 - input: - state_code: LA - filing_status: JOINT - output: - la_exemptions: 9_000 - -- name: Head of household filer gets $9,000 exemption. - period: 2022 - input: - state_code: LA - filing_status: HEAD_OF_HOUSEHOLD - output: - la_exemptions: 9_000 - -- name: Separate filer gets $4500 exemption. - period: 2022 - input: - state_code: LA - filing_status: SEPARATE - output: - la_exemptions: 4_500 - -- name: Joint 2 dependents gets $11,000 exemption - period: 2022 - absolute_error_margin: 0 - input: - filing_status: JOINT - state_code: LA - tax_unit_dependents: 2 - adjusted_gross_income: 100_000 - output: - la_exemptions: 11_000 - -- name: Single 2 dependents gets $6_500 exemption - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - state_code: LA - tax_unit_dependents: 2 - adjusted_gross_income: 100_000 - output: - la_exemptions: 6_500 - -- name: Single 1 dependents and 1 65+/blind gets $6,500 exemption - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - state_code: LA - tax_unit_dependents: 1 - aged_blind_count: 1 - adjusted_gross_income: 100_000 - output: - la_exemptions: 6_500 - -- name: 1 Blind not aged gets $10,000 exemption - period: 2021 - input: - people: - person1: - age: 64 - is_tax_unit_head: 1 - is_blind: 1 - person2: - age: 64 - is_tax_unit_spouse: 1 - is_blind: 0 - tax_units: - tax_unit: - members: [person1, person2] - filing_status: JOINT - households: - household: - members: [person1, person2] - state_code: LA - output: - la_exemptions: 10_000 - -- name: Non blind not aged gets $9,000 exemption - period: 2021 - input: - people: - person1: - age: 64 - is_tax_unit_head: 1 - is_blind: 0 - person2: - age: 64 - is_tax_unit_spouse: 1 - is_blind: 0 - tax_units: - tax_unit: - members: [person1, person2] - filing_status: JOINT - households: - household: - members: [person1, person2] - state_code: LA - output: - la_exemptions: 9_000 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.yaml new file mode 100644 index 000000000..5da792f63 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_non_refundable_credits.yaml @@ -0,0 +1,91 @@ +- name: Single family with 10,000 of income + period: 2021 + absolute_error_margin: 1 + input: + la_taxable_income: 10_000 + state_code: LA + filing_status: SINGLE + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 110 + +- name: Joint family with 40,000 of income + period: 2021 + absolute_error_margin: 1 + input: + la_taxable_income: 40_000 + state_code: LA + filing_status: JOINT + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 920 + +- name: Widow filer with 20,000 of income + period: 2021 + absolute_error_margin: 1 + input: + la_taxable_income: 20_000 + state_code: LA + filing_status: SURVIVING_SPOUSE + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 220 + +- name: Widow filer with 20,000 of income and 5 exemptions + period: 2021 + absolute_error_margin: 1 + input: + la_taxable_income: 20_000 + # In the tax table, 5 exemptions equal to an exemption amount of 12,000 + la_exemptions: 12_000 + state_code: LA + filing_status: SURVIVING_SPOUSE + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 160 + +- name: 2022 Single family with 10,000 of income + period: 2022 + absolute_error_margin: 1 + input: + la_taxable_income: 10_000 + state_code: LA + filing_status: SINGLE + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 101.75 + +- name: 2022 Joint family with 40,000 of income + period: 2022 + absolute_error_margin: 1 + input: + la_taxable_income: 40_000 + state_code: LA + filing_status: JOINT + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 821 + +- name: 2022 Widow filer with 20,000 of income + period: 2022 + absolute_error_margin: 1 + input: + la_taxable_income: 20_000 + state_code: LA + filing_status: SURVIVING_SPOUSE + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 203.5 + +- name: 2022 Widow filer with 20,000 of income and 5 exemptions + period: 2022 + absolute_error_margin: 1 + input: + la_taxable_income: 20_000 + # In the tax table, 5 exemptions equal to an exemption amount of 12,000 + la_exemptions: 12_000 + state_code: LA + filing_status: SURVIVING_SPOUSE + output: + # Output from the LA taxtables + la_income_tax_before_non_refundable_credits: 148 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_refundable_credits.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_refundable_credits.yaml new file mode 100644 index 000000000..82033beef --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_income_tax_before_refundable_credits.yaml @@ -0,0 +1,17 @@ +- name: Simple calculation + period: 2022 + input: + la_income_tax_before_non_refundable_credits: 1_000 + state_code: LA + la_non_refundable_credits: 500 + output: + la_income_tax_before_refundable_credits: 500 + +- name: Capped at 0 + period: 2022 + input: + la_income_tax_before_non_refundable_credits: 400 + state_code: LA + la_non_refundable_credits: 500 + output: + la_income_tax_before_refundable_credits: 0 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_tax.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_tax.yaml deleted file mode 100644 index e2cf1c7ac..000000000 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_tax.yaml +++ /dev/null @@ -1,29 +0,0 @@ -- name: LA tax no income - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_taxable_income: 0 - state_code: LA - output: - la_income_tax: 0.0 - -- name: LA first tax bracket - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_taxable_income: 12_000 - state_code: LA - output: - la_income_tax: 222 - -- name: LA all tax brackets - period: 2022 - absolute_error_margin: 0 - input: - filing_status: SINGLE - la_taxable_income: 100_000 - state_code: LA - output: - la_income_tax: 3668.75 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml index 9e6235f9e..9f60497fc 100644 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_taxable_income.yaml @@ -1,73 +1,43 @@ -- name: LA taxable income not itemizing with additions - period: 2022 - absolute_error_margin: 0 +- name: Unit test 1 + period: 2020 input: - tax_unit_itemizes: false - filing_status: SINGLE state_code: LA - adjusted_gross_income: 100_000 - la_total_additions: 1_000 - la_exemptions: 0 + la_agi: 3_000 + tax_unit_itemizes: true + la_itemized_deductions: 1_000 + la_federal_tax_deduction: 0 output: - la_taxable_income: 101_000 + la_taxable_income: 2_000 -- name: LA taxable income not itemizing with subtractions - period: 2022 - absolute_error_margin: 0 +- name: Unit test 2 + period: 2020 input: - tax_unit_itemizes: false - filing_status: SINGLE state_code: LA - adjusted_gross_income: 100_000 - la_total_subtractions: 1_000 - la_exemptions: 2_000 + la_agi: 3_000 + tax_unit_itemizes: true + la_itemized_deductions: 4_000 + la_federal_tax_deduction: 0 output: - la_taxable_income: 97_000 + la_taxable_income: 0 -- name: LA taxable income not itemizing additions and exemptions - period: 2022 - absolute_error_margin: 0 +- name: Tax unit does not itemize + period: 2020 input: - tax_unit_itemizes: false - filing_status: SINGLE state_code: LA - adjusted_gross_income: 100_000 - la_total_additions: 1_000 - output: - la_taxable_income: 96_500 - -- name: LA taxable income not itemizing additions and exemptions joint - period: 2022 - absolute_error_margin: 0 - input: + la_agi: 3_000 tax_unit_itemizes: false - filing_status: JOINT - state_code: LA - adjusted_gross_income: 100_000 - la_total_additions: 1_000 - output: - la_taxable_income: 92_000 - -- name: LA taxable income itemizing additions and exemptions joint - period: 2022 - absolute_error_margin: 0 - input: - tax_unit_itemizes: true - filing_status: JOINT - state_code: LA - adjusted_gross_income: 100_000 - la_total_additions: 1_000 + la_itemized_deductions: 1_000 + la_federal_tax_deduction: 0 output: - la_taxable_income: 92_000 + la_taxable_income: 3_000 -- name: LA taxable income itemizing single with medical expenses - period: 2022 - absolute_error_margin: 0 +- name: Tax unit does not itemize but takes federal tax deduction + period: 2020 input: - tax_unit_itemizes: true - filing_status: SINGLE state_code: LA - adjusted_gross_income: 100_000 - medical_expense_deduction: 14_950 + la_agi: 3_000 + tax_unit_itemizes: false + la_itemized_deductions: 1_000 + la_federal_tax_deduction: 400 output: - la_taxable_income: 93_500 + la_taxable_income: 2_600 diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_withheld_income_tax.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_withheld_income_tax.yaml new file mode 100644 index 000000000..910578bb4 --- /dev/null +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/la_withheld_income_tax.yaml @@ -0,0 +1,29 @@ +- name: Person with income over the standard deduction amount + period: 2022 + absolute_error_margin: 0.01 + input: + adjusted_gross_income_person: 15_000 + filing_status: JOINT + state_code: LA + output: + la_withheld_income_tax: 37.925 + +- name: Changing the filing status should not change the output + period: 2022 + absolute_error_margin: 0.01 + input: + adjusted_gross_income_person: 15_000 + filing_status: SURVIVING_SPOUSE + state_code: LA + output: + la_withheld_income_tax: 37.925 + +- name: Capped at 0 + period: 2022 + absolute_error_margin: 0.01 + input: + adjusted_gross_income_person: 12_000 + filing_status: SURVIVING_SPOUSE + state_code: LA + output: + la_withheld_income_tax: 0 From 2b0c3f66f8f11917cfa57641bc22bba9167744e1 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Mon, 11 Nov 2024 11:34:33 -0700 Subject: [PATCH 4/5] Updated la/tax/income/integration.yaml test --- .../baseline/gov/states/la/tax/income/integration.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml index 2f5ffbd68..0b7d43f05 100644 --- a/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml +++ b/fiscalsim_us/tests/policy/baseline/gov/states/la/tax/income/integration.yaml @@ -54,10 +54,10 @@ state_fips: 22 # LA output: # expected results from patched TAXSIM35 2024-01-30 version ctc: 8_000 - refundable_ctc: 8_000 - non_refundable_ctc: 0 + refundable_ctc: 12_000 + non_refundable_ctc: -4_000 la_exemptions: 13_000 - la_taxable_income: 244_826.42 + la_taxable_income: 240_826.42 - name: Tax unit with taxsimid 99960 in e21.its.csv and e21.ots.csv absolute_error_margin: 0.01 From dc2cd17833753cf2d4e4923b32322efd15f39b86 Mon Sep 17 00:00:00 2001 From: Richard Evans Date: Thu, 14 Nov 2024 00:07:45 -0700 Subject: [PATCH 5/5] Updated version --- CHANGELOG.md | 7 +++++++ changelog.yaml | 5 +++++ setup.py | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 916f76478..17cdf5aab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.3.4] - 2024-11-14 00:30:00 + +### Added + +- Updated and fixed Louisiana parameters, variables and tests. + ## [0.3.3] - 2024-11-07 23:30:00 ### Added @@ -239,6 +245,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - First prototype version based off of openfisca-us and tax-calculator. +[0.3.4]: https://github.com/TheCGO/fiscalsim-us/compare/v0.3.3...v0.3.4 [0.3.3]: https://github.com/TheCGO/fiscalsim-us/compare/v0.3.2...v0.3.3 [0.3.2]: https://github.com/TheCGO/fiscalsim-us/compare/v0.3.1...v0.3.2 [0.3.1]: https://github.com/TheCGO/fiscalsim-us/compare/v0.3.0...v0.3.1 diff --git a/changelog.yaml b/changelog.yaml index e795f5c73..4abc4d1ac 100644 --- a/changelog.yaml +++ b/changelog.yaml @@ -214,3 +214,8 @@ - Updated and fixed Kentucky, Maryland, and Vermont parameters, variables and tests. - Removed `tools/taxcalc/` directory date: 2024-11-07 23:30:00 +- bump: patch + changes: + added: + - Updated and fixed Louisiana parameters, variables and tests. + date: 2024-11-14 00:30:00 diff --git a/setup.py b/setup.py index 0cd70d434..e478525bf 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name="fiscalsim-us", - version="0.3.3", + version="0.3.4", author="Richard W. Evans", author_email="rick@abundance.institute", long_description=readme, @@ -18,6 +18,7 @@ "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering :: Information Analysis", ], description="FiscalSim federal and state individual tax and benefit system for the US",