From 9d352f23d61ca3a0c0c2886757945ca8fd2d6d81 Mon Sep 17 00:00:00 2001 From: patrickneyland Date: Mon, 6 Nov 2023 16:42:53 -0700 Subject: [PATCH 1/5] added orginal az tax code --- .../parameters/gov/states/az/README.md | 57 ++++++++++- .../parameters/gov/states/az/index.yaml | 4 - .../tax/income/credits/adjustment_table.yaml | 98 +++++++++++++++++++ .../ceiling/qualifying_foster.yaml | 26 ----- .../ceiling/qualifying_organization.yaml | 25 ----- .../credits/dependent_credit/amount.yaml | 23 ----- .../dependent_credit/reduction/increment.yaml | 14 --- .../reduction/percentage.yaml | 14 --- .../dependent_credit/reduction/start.yaml | 24 ----- .../family_income/head_of_household.yaml | 35 +++++++ .../income/credits/family_income/joint.yaml | 31 ++++++ .../family_income/single_seperate.yaml | 18 ++++ .../family_tax_credits/amount/cap.yaml | 24 ----- .../family_tax_credits/amount/per_person.yaml | 14 --- .../income_limit/head_of_household.yaml | 34 ------- .../income_limit/joint.yaml | 30 ------ .../income_limit/separate.yaml | 14 --- .../income_limit/single.yaml | 14 --- .../income_limit/widow.yaml | 33 ------- .../tax/income/credits/joint_limitation.yaml | 10 ++ .../tax/income/credits/other_limitation.yaml | 10 ++ .../charitable_deduction_limit.yaml | 10 ++ .../az/tax/income/deductions/standard.yaml | 26 +++++ .../income/deductions/standard/amount.yaml | 27 ----- .../deductions/standard/increased/rate.yaml | 16 --- .../tax/income/exemptions/age_threshold.yaml | 9 ++ .../az/tax/income/exemptions/aged_amount.yaml | 11 +++ .../tax/income/exemptions/blind_amount.yaml | 10 ++ .../az/tax/income/main/head_of_household.yaml | 39 -------- .../gov/states/az/tax/income/main/joint.yaml | 39 -------- .../states/az/tax/income/main/joint_hoh.yaml | 19 ++++ .../states/az/tax/income/main/separate.yaml | 39 -------- .../gov/states/az/tax/income/main/single.yaml | 39 -------- .../az/tax/income/main/single_seperate.yaml | 19 ++++ .../gov/states/az/tax/income/main/widow.yaml | 39 -------- .../subtractions/capital_gains/rate.yaml | 16 --- .../pension/public_pension_cap.yaml | 16 --- .../tax/income/subtractions/subtractions.yaml | 16 --- .../additions/az_agi_additions.py | 13 +++ .../income/adjusted_gross_income/az_agi.py | 18 ++++ .../exemptions/az_aged_blind_exemption.py | 34 +++++++ .../exemptions/az_agi_exemptions.py | 20 ++++ .../exemptions/az_other_exemptions.py | 11 +++ .../az_parents_grandparents_exemption.py | 11 +++ .../subtractions/az_agi_subtractions.py | 14 +++ .../az_capital_gains_subtractions.py | 34 +++++++ .../gov/states/az/tax/income/az_income_tax.py | 1 + .../income/az_income_tax_before_credits.py | 23 +++++ ...ncome_tax_before_non_refundable_credits.py | 32 ------ ...az_income_tax_before_refundable_credits.py | 9 +- .../tax/income/az_non_refundable_credits.py | 10 -- .../az/tax/income/az_refundable_credits.py | 10 -- .../states/az/tax/income/az_taxable_income.py | 10 -- .../tax/income/credits/az_dependent_credit.py | 39 ++++++++ .../income/credits/az_family_income_credit.py | 76 ++++++++++++++ .../credits/az_nonrefundable_credits.py | 19 ++++ .../income/credits/az_refundable_credits.py | 13 +++ .../az_charitable_contributions_credit.py | 36 ------- ..._to_qualifying_charitable_organizations.py | 14 --- ...to_qualifying_foster_care_organizations.py | 14 --- .../az_dependent_tax_credit.py | 28 ------ .../credits/family_tax_credit/az_agi.py | 10 -- .../family_tax_credit/az_family_tax_credit.py | 19 ---- .../az_family_tax_credit_eligible.py | 35 ------- .../itemized/az_itemized_deductions.py | 64 ------------ .../standard/az_base_standard_deduction.py | 16 --- ..._deduction_for_charitable_contributions.py | 24 ----- .../standard/az_standard_deduction.py | 16 --- .../az_public_pension_exclusion.py | 27 ----- .../az_long_term_capital_gains_subtraction.py | 22 ----- .../income/taxable_income/az_deductions.py | 17 ++++ .../taxable_income/az_taxable_income.py | 17 ++++ .../itemized/az_itemized_deductions.py | 39 ++++++++ .../standard/az_contribution_credits.py | 15 +++ .../standard/az_prior_year_carryover.py | 13 +++ ...az_sd_increase_charitable_contributions.py | 25 +++++ .../standard/az_standard_deduction.py | 19 ++++ 77 files changed, 837 insertions(+), 972 deletions(-) delete mode 100644 fiscalsim_us/parameters/gov/states/az/index.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/adjustment_table.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_foster.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_organization.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/amount.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/increment.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/percentage.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/start.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/head_of_household.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/joint.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/single_seperate.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/cap.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/per_person.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/head_of_household.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/joint.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/separate.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/single.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/widow.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/joint_limitation.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/credits/other_limitation.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/deductions/charitable_deduction_limit.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/amount.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/increased/rate.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/age_threshold.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/aged_amount.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/blind_amount.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/head_of_household.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/joint.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/separate.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/single.yaml create mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/main/widow.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/capital_gains/rate.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/pension/public_pension_cap.yaml delete mode 100644 fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/additions/az_agi_additions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/az_agi.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_agi_exemptions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_other_exemptions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_parents_grandparents_exemption.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_non_refundable_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/az_non_refundable_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/az_refundable_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/az_taxable_income.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/az_nonrefundable_credits.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/az_refundable_credits.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_credit.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_charitable_organizations.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_foster_care_organizations.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/dependent_credit/az_dependent_tax_credit.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_agi.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit_eligible.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/deductions/itemized/az_itemized_deductions.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_base_standard_deduction.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_increased_standard_deduction_for_charitable_contributions.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_standard_deduction.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/subtractions/az_public_pension_exclusion.py delete mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/subtractions/capital_gains/az_long_term_capital_gains_subtraction.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_deductions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_taxable_income.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py create mode 100644 fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py diff --git a/fiscalsim_us/parameters/gov/states/az/README.md b/fiscalsim_us/parameters/gov/states/az/README.md index 84583aa98..8dedbd147 100644 --- a/fiscalsim_us/parameters/gov/states/az/README.md +++ b/fiscalsim_us/parameters/gov/states/az/README.md @@ -1 +1,56 @@ -# Arizona \ No newline at end of file +# Arizona +* Arizona has long had a progressive tax system but has recently transitioned to a flat tax for individual income tax that will begin tax year 2023. +* We do not model Small Business Income on line 13 of form 2022 AZ 140 Resident Personal Income Tax Return. +## Exemptions +Here is a list of exemptions available to Arizona residents +* Age 65 or over (modeled) +* Blind (modeled) +* Other Exemptions (not modeled) +* Qualifying parents and grandparents (not modeled) +## Adjustments - Additions and Subtractions for AGI +### Additions +Here is a list of additions to Arizona AGI found on 2022 Arizona form 140. None of the additions are modeled in FiscalSim. +* Non-Arizona municipal interest (not modeled) ☒ +* Partnership Income adjustment (not modeled) ☒ +* Total federal depreciation (not modeled) ☒ +* Other Additions to Income (not modeled) ☒ +### Subtractions +* Total net capital gain or (loss) (modeled) +* Total net short term capital gain or (loss) (modeled) +* Total net long-term capital gain or (loss) (modeled) +* Net long-term capital gain from assets aquired after December 31, 2011 (modeled) +* Net capital gain derived from investment in qualified small business (not modeled) +* Recalculated Arizona depreciation (not modeled) +* Partnership income adjustment (not modeled) +* Interest on U.S. obligations such as U.S. savings bonds and treasury bills (not modeled) +* Exclusion for federal, Arizona state or local government pensions (up to $2,500 per taxpayer) (not modeled) +* Exclusion for benefits, annuities and pensions for retired/retainer pay of the uniformed services (not modeled) +* U.S. Social Security or Railroad Retirement Act benefits included as income on your federal return (taxable amount) (modeled) +* Certain wages of American Indians (not modeled) +* Pay recieved for active service as a member of hte reserves, national gaurd, or the U.S. armed forces (not modeled) +* Net operating loss adjustment (not modeled) +* Contributions to 529 College Savings Plans (not modeled) +* Contributions to 529A (ABLE accounts) (not modeled) +## Deductions +The model selects the greater value between the Itemized and Standard Deduction variables for Arizona. Below are lists of what are included for each of the respective deductions. +### Itemized Deductions +* Adjustments to Medical and Dental Expenses (fully modeled) + * Medical and dental expenses + * Medical expenses allowed to be taken as a federal itemized deduction. +* Adjustment to Interest Deduction (not modeled) +* Adjustments to Charitable Contributions +* Adjustments to State Income Taxes +* Other Adjustments +### Standard Deduction +Arizona has a +## Non-refundable Credits +* Dependent Tax Credit (modeled) +* Family income tax credit (modeled) +* Nonrefundable Credits from Arizona Form 301 (not modeled) +## Refundable Credits +Here is a list of AZ refundable credits with a notation of which are included in this model. This list comes from the 2022 Resident Personal Income Tax Return. +* Increased Excise Tax Credit (not modeled) +* Property Tax Credit from Arizona Form 140PTC (not modeled) +* Other refundable credits (line 58) + * Credit for Increased Research Activities - Individuals (Form 308-I) (not modeled) + * Credit for Qualified Facilities (Form 349) (not modeled) \ No newline at end of file diff --git a/fiscalsim_us/parameters/gov/states/az/index.yaml b/fiscalsim_us/parameters/gov/states/az/index.yaml deleted file mode 100644 index 2852e302a..000000000 --- a/fiscalsim_us/parameters/gov/states/az/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metadata: - propagate_metadata_to_children: true - economy: false - household: false diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/adjustment_table.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/adjustment_table.yaml new file mode 100644 index 000000000..1f0aa67e2 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/adjustment_table.yaml @@ -0,0 +1,98 @@ +description: Arizon limits the amount of dependent tax credit. + +brackets: +- threshold: + 2022-01-01: -.inf + amount: + 2022-01-01: 0 +- threshold: + 2022-01-01: 1 + amount: + 2022-01-01: .95 +- threshold: + 2022-01-01: 1_000 + amount: + 2022-01-01: .90 +- threshold: + 2022-01-01: 2_000 + amount: + 2022-01-01: .85 +- threshold: + 2022-01-01: 3_000 + amount: + 2022-01-01: .80 +- threshold: + 2022-01-01: 4_000 + amount: + 2022-01-01: .75 +- threshold: + 2022-01-01: 5_000 + amount: + 2022-01-01: .70 +- threshold: + 2022-01-01: 6_000 + amount: + 2022-01-01: .65 +- threshold: + 2022-01-01: 7_000 + amount: + 2022-01-01: .60 +- threshold: + 2022-01-01: 8_000 + amount: + 2022-01-01: .55 +- threshold: + 2022-01-01: 9_000 + amount: + 2022-01-01: .50 +- threshold: + 2022-01-01: 10_000 + amount: + 2022-01-01: .45 +- threshold: + 2022-01-01: 11_000 + amount: + 2022-01-01: .40 +- threshold: + 2022-01-01: 12_000 + amount: + 2022-01-01: .35 +- threshold: + 2022-01-01: 13_000 + amount: + 2022-01-01: .30 +- threshold: + 2022-01-01: 14_000 + amount: + 2022-01-01: .25 +- threshold: + 2022-01-01: 15_000 + amount: + 2022-01-01: .20 +- threshold: + 2022-01-01: 16_000 + amount: + 2022-01-01: .15 +- threshold: + 2022-01-01: 17_000 + amount: + 2022-01-01: .10 +- threshold: + 2022-01-01: 18_000 + amount: + 2022-01-01: .05 +- threshold: + 2022-01-01: 19_000 + amount: + 2022-01-01: 0 + + +metadata: + threshold_unit: currency-USD + amount_unit: /1 + threshold_period: year + type: single_amount + label: Arizona adjustment table for Dependent Tax Credit + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_foster.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_foster.yaml deleted file mode 100644 index 804221f8f..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_foster.yaml +++ /dev/null @@ -1,26 +0,0 @@ -description: Arizona caps the credit for contributions to a qualifying foster care charitable organization at this amount. -metadata: - label: Arizona credit for contributions to foster organizations cap - - unit: currency-USD - breakdown: - - filing_status - reference: - - title: Ariz. Rev. Stat. § 43-1088 (B) - href: https://casetext.com/statute/arizona-revised-statutes/title-43-taxation-of-income/chapter-10-individuals/article-5-credits/section-43-1088-effective-until-ninety-one-days-after-adjournment-credit-for-contribution-to-qualifying-charitable-organizations-definitions - - title: Arizona Schedule A - href: https://azdor.gov/forms/individual/itemized-deduction-adjustments-form - - title: Credit for Contributions to Qualifying Charitable Foster - href: https://azdor.gov/forms/tax-credits-forms/credit-contributions-qualifying-foster-care-charitable-organizations - -JOINT: - 2021-01-01: 1_000 -HEAD_OF_HOUSEHOLD: - 2021-01-01: 1_000 -WIDOW: - 2021-01-01: 1_000 -SINGLE: - 2021-01-01: 1_000 -SEPARATE: - 2021-01-01: 500 - diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_organization.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_organization.yaml deleted file mode 100644 index a7479c89a..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/charitable_contribution/ceiling/qualifying_organization.yaml +++ /dev/null @@ -1,25 +0,0 @@ -description: Arizona caps its credit for contributions to Arizona-based organizations at this amount. -metadata: - label: Arizona charitable contribution credit cap - period: year - unit: currency-USD - breakdown: - - filing_status - reference: - - title: Ariz. Rev. Stat. § 43-1088 (A) - href: https://casetext.com/statute/arizona-revised-statutes/title-43-taxation-of-income/chapter-10-individuals/article-5-credits/section-43-1088-effective-until-ninety-one-days-after-adjournment-credit-for-contribution-to-qualifying-charitable-organizations-definitions - - title: Arizona Schedule A Year 2022 Page 1 - href: https://azdor.gov/forms/individual/itemized-deduction-adjustments-form#page=1 - - title: Credit for Contributions to Qualifying Charitable Organizations - href: https://azdor.gov/forms/tax-credits-forms/credit-contributions-qualifying-charitable-organizations - -JOINT: - 2021-01-01: 800 -HEAD_OF_HOUSEHOLD: - 2021-01-01: 800 -WIDOW: - 2021-01-01: 800 -SINGLE: - 2021-01-01: 800 -SEPARATE: - 2021-01-01: 400 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/amount.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/amount.yaml deleted file mode 100644 index e9903581b..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/amount.yaml +++ /dev/null @@ -1,23 +0,0 @@ -description: Arizona allows this base amount under the dependent tax credit, based on the dependent age. -metadata: - type: single_amount - period: year - threshold_unit: age - amount_unit: currency-USD - label: Arizona dependent tax credit amount - reference: - - title: Arizona Form 140 - 2021 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page=20 - - title: Arizona Form 140 - 2022 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page=21 - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1073.01 (B), (1) & (2) - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01073-01.htm -brackets: - - threshold: - 2021-01-01: 0 - amount: - 2021-01-01: 100 - - threshold: - 2021-01-01: 17 - amount: - 2021-01-01: 25 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/increment.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/increment.yaml deleted file mode 100644 index d7991856e..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/increment.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Arizona reduces the dependent tax credit amount in these increments of federal adjusted gross income. -metadata: - period: year - unit: currency-USD - label: Arizona dependent tax credit reduction increment - reference: - - title: Arizona Form 140 - 2021 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page=20 - - title: Arizona Form 140 - 2022 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page=21 - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1073.01 (C), (1) & (2) - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01073-01.htm -values: - 2021-01-01: 1_000 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/percentage.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/percentage.yaml deleted file mode 100644 index f3eb90045..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/percentage.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Arizona reduces the dependent tax credit amount by this percentage based on the federal adjusted gross income increments. -metadata: - period: year - unit: /1 - label: Arizona dependent tax credit reduction percentage - reference: - - title: Arizona Form 140 - 2021 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page=20 - - title: Arizona Form 140 - 2022 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page=21 - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1073.01 (C), (1) & (2) - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01073-01.htm -values: - 2021-01-01: 0.05 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/start.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/start.yaml deleted file mode 100644 index 0c00f427c..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/dependent_credit/reduction/start.yaml +++ /dev/null @@ -1,24 +0,0 @@ -description: Arizona phases the dependent tax credit out for filers with adjusted gross income above this threshold. -SINGLE: - 2021-01-01: 200_000 -JOINT: - 2021-01-01: 400_000 -HEAD_OF_HOUSEHOLD: - 2021-01-01: 200_000 -SEPARATE: - 2021-01-01: 200_000 -WIDOW: - 2021-01-01: 200_000 -metadata: - unit: currency-USD - period: year - label: Arizona dependent tax credit phase out start - reference: - - title: Arizona Form 140 - 2021 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page=20 - - title: Arizona Form 140 - 2022 Resident Personal Income Tax Return - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page=21 - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1073.01 (C), (1) & (2) - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01073-01.htm - breakdown: - - filing_status diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/head_of_household.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/head_of_household.yaml new file mode 100644 index 000000000..668dc4129 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/head_of_household.yaml @@ -0,0 +1,35 @@ +description: Arizona Family Income Tax Credit income limitations for head_of_household filers + +brackets: +- threshold: + 2022-01-01: 0 + amount: + 2022-01-01: 20_000 +- threshold: + 2022-01-01: 2 + amount: + 2022-01-01: 20_135 +- threshold: + 2022-01-01: 3 + amount: + 2022-01-01: 23_800 +- threshold: + 2022-01-01: 4 + amount: + 2022-01-01: 25_200 +- threshold: + 2022-01-01: 5 + amount: + 2022-01-01: 26_575 + + + +metadata: + threshold_unit: /1 + amount_unit: currency-USD + threshold_period: year + type: single_amount + label: Arizona Family Income Tax Credit income limitations for head_of_household filers + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/joint.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/joint.yaml new file mode 100644 index 000000000..e923a3824 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/joint.yaml @@ -0,0 +1,31 @@ +description: Arizona Family Income Tax Credit income limitations for joint filers + +brackets: +- threshold: + 2022-01-01: 0 + amount: + 2022-01-01: 20_000 +- threshold: + 2022-01-01: 2 + amount: + 2022-01-01: 23_600 +- threshold: + 2022-01-01: 3 + amount: + 2022-01-01: 27_300 +- threshold: + 2022-01-01: 4 + amount: + 2022-01-01: 31_000 + + + +metadata: + threshold_unit: /1 + amount_unit: currency-USD + threshold_period: year + type: single_amount + label: Arizona Family Income Tax Credit income limitations for joint filers + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/single_seperate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/single_seperate.yaml new file mode 100644 index 000000000..c75797bd6 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_income/single_seperate.yaml @@ -0,0 +1,18 @@ +description: Arizona Family Income Tax Credit income limitations for single and seperate filers + +brackets: +- threshold: + 2022-01-01: 0 + amount: + 2022-01-01: 10_000 + + +metadata: + threshold_unit: /1 + amount_unit: currency-USD + threshold_period: year + type: single_amount + label: Arizona Family Income Tax Credit income limitations for single and seperate filers + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/cap.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/cap.yaml deleted file mode 100644 index cdc4300bb..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/cap.yaml +++ /dev/null @@ -1,24 +0,0 @@ -description: Arizona caps its family tax credit at this total amount, depending on filing status. -metadata: - period: year - unit: currency-USD - label: Arizona family tax credit maximum amount - breakdown: - - filing_status -SINGLE: - 2021-01-01: 120 -HEAD_OF_HOUSEHOLD: - 2021-01-01: 240 -JOINT: - 2021-01-01: 240 -WIDOW: - 2021-01-01: 240 -SEPARATE: - 2021-01-01: 120 -reference: - - title: 43-1073. Family income tax credit (B) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page23 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/per_person.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/per_person.yaml deleted file mode 100644 index dd67517cb..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/amount/per_person.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Arizona provides the following family income tax credit amount per person. -metadata: - unit: currency-USD - period: year - label: Arizona Family Income Tax Credit amount - reference: - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1073. Family income tax credit (B) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page23 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 -values: - 2021-01-01: 40 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/head_of_household.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/head_of_household.yaml deleted file mode 100644 index 12e5c7db0..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/head_of_household.yaml +++ /dev/null @@ -1,34 +0,0 @@ -description: Arizona qualifies head of household with income below this amount for the family tax credit. -metadata: - type: single_amount - threshold_unit: dependent - rate_unit: currency-USD - label: Arizona family tax credit head of household maximum income - reference: - - title: 43-1073. Family income tax credit (a) (1, 5-8) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page22 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 -brackets: - - threshold: - 2021-01-01: 0 - amount: - 2021-01-01: 20_000 - - threshold: - 2021-01-01: 2 - amount: - 2021-01-01: 20_135 - - threshold: - 2021-01-01: 3 - amount: - 2021-01-01: 23_800 - - threshold: - 2021-01-01: 4 - amount: - 2021-01-01: 25_200 - - threshold: - 2021-01-01: 5 - amount: - 2021-01-01: 26_575 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/joint.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/joint.yaml deleted file mode 100644 index c9b7566b6..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/joint.yaml +++ /dev/null @@ -1,30 +0,0 @@ -description: Arizona qualifies joint filers with income below this amount for the family tax credit. -metadata: - type: single_amount - threshold_unit: dependent - rate_unit: currency-USD - label: Arizona family tax credit joint maximum income - reference: - - title: 43-1073. Family income tax credit (a) (1-4) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page22 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 -brackets: - - threshold: - 2021-01-01: 0 - amount: - 2021-01-01: 20_000 - - threshold: - 2021-01-01: 2 - amount: - 2021-01-01: 23_600 - - threshold: - 2021-01-01: 3 - amount: - 2021-01-01: 27_300 - - threshold: - 2021-01-01: 4 - amount: - 2021-01-01: 31_000 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/separate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/separate.yaml deleted file mode 100644 index 3570a6157..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/separate.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Arizona qualifies separate filers with income below this amount for the family tax credit. -metadata: - period: year - unit: currency-USD - label: Arizona family tax credit separate maximum income - reference: - - title: 43-1073. Family income tax credit (a) (9) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page22 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 -values: - 2021-01-01: 10_000 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/single.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/single.yaml deleted file mode 100644 index 5b6aff647..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/single.yaml +++ /dev/null @@ -1,14 +0,0 @@ -description: Arizona qualifies single filers with income below this amount for the family tax credit. -metadata: - period: year - unit: currency-USD - label: Arizona family tax credit single maximum income - reference: - - title: 43-1073. Family income tax credit (a) (9) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page22 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 -values: - 2021-01-01: 10_000 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/widow.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/widow.yaml deleted file mode 100644 index 9712ef633..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/family_tax_credits/income_limit/widow.yaml +++ /dev/null @@ -1,33 +0,0 @@ -description: Arizona qualifies widow with income below this amount for the family tax credit. -metadata: - type: single_amount - rate_unit: currency-USD - label: Arizona family tax credit widow maximum income - reference: - - title: 43-1073. Family income tax credit (a) (1, 5-8) - href: https://www.azleg.gov/ars/43/01073.htm - - title: 2022 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i-2D.pdf#page22 - - title: 2021 Arizona Tax Form Instructions Line50 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140i-2D.pdf#page21 -brackets: - - threshold: - 2021-01-01: 0 - amount: - 2021-01-01: 20_000 - - threshold: - 2021-01-01: 2 - amount: - 2021-01-01: 20_135 - - threshold: - 2021-01-01: 3 - amount: - 2021-01-01: 23_800 - - threshold: - 2021-01-01: 4 - amount: - 2021-01-01: 25_200 - - threshold: - 2021-01-01: 5 - amount: - 2021-01-01: 26_575 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/joint_limitation.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/joint_limitation.yaml new file mode 100644 index 000000000..654532a93 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/joint_limitation.yaml @@ -0,0 +1,10 @@ +description: Income limitation for Arizona joint filers for dependent tax credit +values: + 2022-01-01: 400_000 +metadata: + period: year + unit: currency-USD + label: Income limitation for Arizona joint filers for dependent tax credit + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/credits/other_limitation.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/other_limitation.yaml new file mode 100644 index 000000000..1dd3a1b25 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/credits/other_limitation.yaml @@ -0,0 +1,10 @@ +description: Income limitation for Arizona non-joint filers for dependent tax credit +values: + 2022-01-01: 200_000 +metadata: + period: year + unit: currency-USD + label: Income limitation for Arizona non-joint filers for dependent tax credit + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/charitable_deduction_limit.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/charitable_deduction_limit.yaml new file mode 100644 index 000000000..5fdf2f21e --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/charitable_deduction_limit.yaml @@ -0,0 +1,10 @@ +description: Arizona allows 27% of charitable contributions to be added to the standard deduction. +values: + 2022-01-01: 0.27 +metadata: + period: year + unit: currency-USD + label: Arizona blind exemption + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml new file mode 100644 index 000000000..a354e12d6 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml @@ -0,0 +1,26 @@ +description: Kansas provides this base standard deduction. +metadata: + label: Arizona standard deduction + period: year + unit: currency-USD + breakdown: + - filing_status + reference: + - title: AZ 2022 For 140 Instructions, page 20 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-calculating + +JOINT: + 2022-01-01: 25_900 +HEAD_OF_HOUSEHOLD: + 2022-01-01: 19_400 +SINGLE: + 2022-01-01: 12_950 +SEPARATE: + 2022-01-01: 12_950 +WIDOW: + # The standard deduction chart on page 20 does not specify + # a deduction amount of widow filers. Page 5 indicates that + # if a filer files as a widow on their federal return, they + # may file as head of household on their AZ return. + # Therefore, the deduction is the same as head of household. + 2022-01-01: 19_400 \ No newline at end of file diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/amount.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/amount.yaml deleted file mode 100644 index 87be257d5..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/amount.yaml +++ /dev/null @@ -1,27 +0,0 @@ -description: Arizona provides filers a standard deduction of this amount, depending on their filing status. -metadata: - label: Arizona standard deduction - period: year - unit: currency-USD - breakdown: - - filing_status - reference: - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/forms/individual/form-140-arizona-resident-personal-income-tax-booklet - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf#page=43 -JOINT: - 2021-01-01: 25_100 - 2022-01-01: 25_900 -HEAD_OF_HOUSEHOLD: - 2021-01-01: 18_800 - 2022-01-01: 19_400 -WIDOW: - 2021-01-01: 25_100 - 2022-01-01: 25_900 -SINGLE: - 2021-01-01: 12_550 - 2022-01-01: 12_950 -SEPARATE: - 2021-01-01: 12_550 - 2022-01-01: 12_950 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/increased/rate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/increased/rate.yaml deleted file mode 100644 index 63b6f2b37..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard/increased/rate.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Arizona increases the standard deduction by this fraction of charitable contributions that would have been allowed if the taxpayer elected to claim itemized deductions. -metadata: - label: Arizona increased standard deduction for charitable contributions rate - period: year - unit: currency-USD - reference: - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf#page=24 - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf#page=43 - - title: 43-1041. Optional standard deduction Line I - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01041.htm - -values: - 2019-01-01: 0.25 - 2022-01-01: 0.27 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/age_threshold.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/age_threshold.yaml new file mode 100644 index 000000000..df2f21eb6 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/age_threshold.yaml @@ -0,0 +1,9 @@ +description: Arizona provides an additional exemption for taxpayers 65 and older. +values: + 2022-01-01: 65 +metadata: + unit: year + label: AZ exemption age threshold + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/aged_amount.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/aged_amount.yaml new file mode 100644 index 000000000..551bcdca1 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/aged_amount.yaml @@ -0,0 +1,11 @@ +description: Arizona provides an exemption for each filer and spouse who is 65 or older. +values: + 2022-01-01: 2_100 + +metadata: + period: year + unit: currency-USD + label: Arizona aged exemption + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/blind_amount.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/blind_amount.yaml new file mode 100644 index 000000000..8447493ed --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/exemptions/blind_amount.yaml @@ -0,0 +1,10 @@ +description: Arizona provides an exeption for each filer and spouse who is blind. +values: + 2022-01-01: 1_500 +metadata: + period: year + unit: currency-USD + label: Arizona blind exemption + reference: + - title: 2022 Arizona Income Tax Form 140 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/head_of_household.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/head_of_household.yaml deleted file mode 100644 index 7abdad3b0..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/head_of_household.yaml +++ /dev/null @@ -1,39 +0,0 @@ -description: Arizona taxes the personal income for head of household filers at this rate. -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - label: Arizona income tax rate head of household filers - reference: - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1011 - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01011.htm - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf -brackets: - - threshold: - 2019-01-01: 0 - rate: - 2019-01-01: 0.0259 - 2022-01-01: 0.0255 - - threshold: - 2019-01-01: 53_000 - 2021-01-01: 55_615 - 2022-01-01: 57_305 - rate: - 2019-01-01: 0.0334 - 2022-01-01: 0.0298 - - threshold: - 2019-01-01: 106_000 - 2021-01-01: 111_229 - 2022-01-01: .inf - rate: - 2019-01-01: 0.0417 - - threshold: - 2019-01-01: 318_000 - 2021-01-01: 333_684 - 2022-01-01: .inf - # in 2021 Arizona broke the highest income tax rate up into a 1.00% base rate and 3.5% surcharge - rate: - 2019-01-01: 0.045 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint.yaml deleted file mode 100644 index 2cc48befa..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint.yaml +++ /dev/null @@ -1,39 +0,0 @@ -description: Arizona taxes the personal income for joint filers at this rate. -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - label: Arizona income tax rate joint filers - reference: - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1011 - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01011.htm - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf -brackets: - - threshold: - 2019-01-01: 0 - rate: - 2019-01-01: 0.0259 - 2022-01-01: 0.0255 - - threshold: - 2019-01-01: 53_000 - 2021-01-01: 55_615 - 2022-01-01: 57_305 - rate: - 2019-01-01: 0.0334 - 2022-01-01: 0.0298 - - threshold: - 2019-01-01: 106_000 - 2021-01-01: 111_229 - 2022-01-01: .inf - rate: - 2019-01-01: 0.0417 - - threshold: - 2019-01-01: 318_000 - 2021-01-01: 333_684 - 2022-01-01: .inf - # in 2021 Arizona broke the highest income tax rate up into a 1.00% base rate and 3.5% surcharge - rate: - 2019-01-01: 0.045 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml new file mode 100644 index 000000000..2aa0a6361 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml @@ -0,0 +1,19 @@ +description: Progressive rate schedule for joint or head of household filers in AZ. +metadata: + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + name: az_income_tax_rate_joint + label: AZ state income tax rates for joint filers + reference: + - title: AZ form 140, page 14 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-calculating +brackets: + - threshold: + 2022-01-01: 0 + rate: + 2022-01-01: 0.0255 + - threshold: + 2022-01-01: 57_305 + rate: + 2022-01-01: 0.0298 \ No newline at end of file diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/separate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/separate.yaml deleted file mode 100644 index cb77d828d..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/separate.yaml +++ /dev/null @@ -1,39 +0,0 @@ -description: Arizona taxes the personal income for separate filers at this rate. -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - label: Arizona income tax rate separate filers - reference: - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1011 - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01011.htm - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf -brackets: - - threshold: - 2019-01-01: 0 - rate: - 2019-01-01: 0.0259 - 2022-01-01: 0.0255 - - threshold: - 2019-01-01: 26_500 - 2021-01-01: 27_808 - 2022-01-01: 28_653 - rate: - 2019-01-01: 0.0334 - 2022-01-01: 0.0298 - - threshold: - 2019-01-01: 53_000 - 2021-01-01: 55_615 - 2022-01-01: .inf - rate: - 2019-01-01: 0.0417 - - threshold: - 2019-01-01: 159_000 - 2021-01-01: 166_843 - 2022-01-01: .inf - # in 2021 Arizona broke the highest income tax rate up into a 1.00% base rate and 3.5% surcharge - rate: - 2019-01-01: 0.045 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/single.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/single.yaml deleted file mode 100644 index 12701c233..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/single.yaml +++ /dev/null @@ -1,39 +0,0 @@ -description: Arizona taxes the personal income for single filers at this rate. -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - label: Arizona income tax rate single filers - reference: - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1011 - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01011.htm - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf -brackets: - - threshold: - 2019-01-01: 0 - rate: - 2019-01-01: 0.0259 - 2022-01-01: 0.0255 - - threshold: - 2019-01-01: 26_500 - 2021-01-01: 27_808 - 2022-01-01: 28_653 - rate: - 2019-01-01: 0.0334 - 2022-01-01: 0.0298 - - threshold: - 2019-01-01: 53_000 - 2021-01-01: 55_615 - 2022-01-01: .inf - rate: - 2019-01-01: 0.0417 - - threshold: - 2019-01-01: 159_000 - 2021-01-01: 166_843 - 2022-01-01: .inf - # in 2021 Arizona broke the highest income tax rate up into a 1.00% base rate and 3.5% surcharge - rate: - 2019-01-01: 0.045 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml new file mode 100644 index 000000000..395d4eed0 --- /dev/null +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml @@ -0,0 +1,19 @@ +description: Progressive rate schedule for single or seperate filers in AZ. +metadata: + type: marginal_rate + threshold_unit: currency-USD + rate_unit: /1 + name: az_income_tax_rate_single + label: AZ state income tax rates for single filers + reference: + - title: AZ form 140, page 14 + href: https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-calculating +brackets: + - threshold: + 2022-01-01: 0 + rate: + 2022-01-01: 0.0255 + - threshold: + 2022-01-01: 28_653 + rate: + 2022-01-01: 0.0298 \ No newline at end of file diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/widow.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/widow.yaml deleted file mode 100644 index 5f4dfb563..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/widow.yaml +++ /dev/null @@ -1,39 +0,0 @@ -description: Arizona taxes the personal income for widow filers at this rate. -metadata: - type: marginal_rate - threshold_unit: currency-USD - rate_unit: /1 - label: Arizona income tax rate widow filers - reference: - - title: Arizona State Legislature Title 43 - Taxation of Income, Chapter 10, Article 5, 43-1011 - href: https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01011.htm - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf -brackets: - - threshold: - 2019-01-01: 0 - rate: - 2019-01-01: 0.0259 - 2022-01-01: 0.0255 - - threshold: - 2019-01-01: 53_000 - 2021-01-01: 55_615 - 2022-01-01: 57_305 - rate: - 2019-01-01: 0.0334 - 2022-01-01: 0.0298 - - threshold: - 2019-01-01: 106_000 - 2021-01-01: 111_229 - 2022-01-01: .inf - rate: - 2019-01-01: 0.0417 - - threshold: - 2019-01-01: 318_000 - 2021-01-01: 333_684 - 2022-01-01: .inf - # in 2021 Arizona broke the highest income tax rate up into a 1.00% base rate and 3.5% surcharge - rate: - 2019-01-01: 0.045 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/capital_gains/rate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/capital_gains/rate.yaml deleted file mode 100644 index 37697ed27..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/capital_gains/rate.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Arizona subtracts this fraction of long term capital gains from adjusted gross income. -metadata: - label: Arizona long-term net capital gains subtraction rate - period: year - unit: /1 - reference: - - title: 43-1022. Subtractions from Arizona gross income (22) - href: https://www.azleg.gov/ars/43/01022.htm - - title: 2022 Arizona Resident Personal Income Tax Return Form140 Line24 - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140.pdf#page=1 - - title: 2022 Arizona Resident Personal Income Tax Form140 Instructions - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i.pdf#page=13 -values: - 2013-01-01: 0.1 - 2014-01-01: 0.2 - 2015-01-01: 0.25 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/pension/public_pension_cap.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/pension/public_pension_cap.yaml deleted file mode 100644 index 7a40e2bc4..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/pension/public_pension_cap.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Arizona caps the pension exclusion at this amount. -metadata: - label: Arizona pension exclusion cap - period: year - unit: currency-USD - reference: - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf#page=18 - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf#page=23 - - title: 43-1022. Subtractions from Arizona gross income (2) - href: https://www.azleg.gov/ars/43/01022.htm - -values: - 2021-01-01: 2_500 - diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml deleted file mode 100644 index cb22163c1..000000000 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/subtractions/subtractions.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: Arizona counts these sources as subtractions. -values: - 2021-01-01: - # salt_refund_income - # - us_govt_interest - - az_public_pension_exclusion - - az_long_term_capital_gains_subtraction -metadata: - unit: list - reference: - - title: 2022 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf#page=30 - - title: 2021 Arizona Form 140 Resident Personal Income Tax Booklet - href: https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf#page=25 - - title: 43-1022. Subtractions from Arizona gross income - href: https://www.azleg.gov/ars/43/01022.htm diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/additions/az_agi_additions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/additions/az_agi_additions.py new file mode 100644 index 000000000..94f04748b --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/additions/az_agi_additions.py @@ -0,0 +1,13 @@ +from fiscalsim_us.model_api import * + + +class az_agi_additions(Variable): + value_type = float + entity = TaxUnit + label = "AZ AGI additions" + unit = USD + documentation = "Additions to AZ AGI over federal AGI." + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + # No additions modeled in FiscalSim US. diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/az_agi.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/az_agi.py new file mode 100644 index 000000000..11a641b13 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/az_agi.py @@ -0,0 +1,18 @@ +from fiscalsim_us.model_api import * + + +class az_agi(Variable): + value_type = float + entity = TaxUnit + label = "AZ adjusted gross income" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + + def formula(tax_unit, period, parameters): + agi = tax_unit("adjusted_gross_income", period) + additions = tax_unit("az_agi_additions", period) + subtractions = tax_unit("az_agi_subtractions", period) + exemptions = tax_unit("az_agi_exemptions", period) + return max_(0, agi + additions - subtractions - exemptions) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py new file mode 100644 index 000000000..6fc892888 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py @@ -0,0 +1,34 @@ +from fiscalsim_us.model_api import * + + +class az_aged_blind_exemption(Variable): + value_type = float + entity = TaxUnit + label = "AZ additional exemption for aged or blind" + unit = USD + documentation = ( + "Exemptions from AZ AGI for spouse and filers aged and or blind." + ) + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + def formula(tax_unit, period, parameters): + + # Aged/blind exemption + p = parameters(period).gov.states["az"].tax.income.exemptions + blind_head = tax_unit("blind_head", period).astype(int) + blind_spouse = tax_unit("blind_spouse", period).astype(int) + age_threshold = p.age_threshold + aged_amount = p.aged_amount + blind_amount = p.blind_amount + aged_head = (tax_unit("age_head", period) >= age_threshold).astype(int) + aged_spouse = (tax_unit("age_spouse", period) >= age_threshold).astype( + int + ) + aged_count = aged_head + aged_spouse + blind_count = blind_head + blind_spouse + + aged_exemption = aged_count * aged_amount + blind_exemption = blind_count * blind_amount + + return aged_exemption + blind_exemption diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_agi_exemptions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_agi_exemptions.py new file mode 100644 index 000000000..105e01f83 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_agi_exemptions.py @@ -0,0 +1,20 @@ +from fiscalsim_us.model_api import * + + +class az_agi_exemptions(Variable): + value_type = float + entity = TaxUnit + label = "AZ AGI exemptions" + unit = USD + documentation = "Exemptions from AZ AGI over federal AGI." + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + def formula(tax_unit, period, parameters): + aged_blind = tax_unit("az_aged_blind_exemption", period) + parents_grandparents = tax_unit( + "az_parents_grandparents_exemption", period + ) + other = tax_unit("az_other_exemptions", period) + + return aged_blind + parents_grandparents + other diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_other_exemptions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_other_exemptions.py new file mode 100644 index 000000000..a80644623 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_other_exemptions.py @@ -0,0 +1,11 @@ +from fiscalsim_us.model_api import * + + +class az_other_exemptions(Variable): + value_type = float + entity = TaxUnit + label = "AZ other exemptions" + unit = USD + documentation = "Arizona income tax form 140" + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_parents_grandparents_exemption.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_parents_grandparents_exemption.py new file mode 100644 index 000000000..2f48ced24 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_parents_grandparents_exemption.py @@ -0,0 +1,11 @@ +from fiscalsim_us.model_api import * + + +class az_parents_grandparents_exemption(Variable): + value_type = float + entity = TaxUnit + label = "AZ additional exemption for qualifyting parents and grandparents" + unit = USD + documentation = "Arizona income tax form 140" + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py new file mode 100644 index 000000000..28ecba911 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class az_agi_subtractions(Variable): + value_type = float + entity = TaxUnit + label = "AZ AGI subtractions" + unit = USD + documentation = "Subtractions from AZ AGI over federal AGI." + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + adds = ["az_capital_gains_subtractions", + "tax_unit_taxable_social_security"] diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py new file mode 100644 index 000000000..8c6db9daa --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py @@ -0,0 +1,34 @@ +from fiscalsim_us.model_api import * + + +class az_capital_gains_subtractions(Variable): + value_type = float + entity = TaxUnit + label = "AZ capital gains subtractions" + unit = USD + documentation = "Additions to AZ AGI over federal AGI." + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + def formula(tax_unit, period, parameters): + + # capital_gains_subtractions + net_long_term_capital_gain = tax_unit( + "net_long_term_capital_gain", period + ) + net_short_term_capital_gain = tax_unit( + "net_short_term_capital_gain", period + ) + net_capital_gain = tax_unit( + "net_capital_gain", period + ) + cg_additions = .25 * (net_capital_gain + + net_long_term_capital_gain + + net_short_term_capital_gain) + + # cg_from_small_business = tax_unit( + # "long_term_capital_gains_on_small_business_stock", period + # ) + + return cg_additions # + cg_from_small_business + \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax.py index adbae3ef2..c39d7a02d 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax.py @@ -7,6 +7,7 @@ class az_income_tax(Variable): label = "Arizona income tax" unit = USD definition_period = YEAR + reference = "https://azdor.gov/forms/individual/resident-personal-income-tax-return-non-calculating-fillable" defined_for = StateCode.AZ adds = ["az_income_tax_before_refundable_credits"] diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_credits.py new file mode 100644 index 000000000..d67ad7f86 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_credits.py @@ -0,0 +1,23 @@ +from fiscalsim_us.model_api import * + + +class az_income_tax_before_credits(Variable): + value_type = float + entity = TaxUnit + label = "Arizona income tax before credits" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/resident-personal-income-tax-return-non-calculating-fillable" + defined_for = StateCode.AZ + + def formula(tax_unit, period, parameters): + filing_status = tax_unit("filing_status", period) + taxable_income = tax_unit("az_taxable_income", period) + p = parameters(period).gov.states.az.tax.income.main + tax = where( + filing_status == filing_status.possible_values.SINGLE + or filing_status == filing_status.possible_values.SEPARATE, + p.single_seperate.calc(taxable_income), + p.joint_hoh.calc(taxable_income), + ) + return tax diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_non_refundable_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_non_refundable_credits.py deleted file mode 100644 index a66bcd9ff..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_non_refundable_credits.py +++ /dev/null @@ -1,32 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_income_tax_before_non_refundable_credits(Variable): - value_type = float - entity = TaxUnit - label = "Arizona income tax before non-refundable credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - income = tax_unit("az_taxable_income", period) - filing_status = tax_unit("filing_status", period) - p = parameters(period).gov.states.az.tax.income.main - status = filing_status.possible_values - return select( - [ - filing_status == status.SINGLE, - filing_status == status.HEAD_OF_HOUSEHOLD, - filing_status == status.JOINT, - filing_status == status.SEPARATE, - filing_status == status.WIDOW, - ], - [ - p.single.calc(income), - p.head_of_household.calc(income), - p.joint.calc(income), - p.separate.calc(income), - p.widow.calc(income), - ], - ) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_refundable_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_refundable_credits.py index 6d02c122d..6ef02ae6f 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_refundable_credits.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/az_income_tax_before_refundable_credits.py @@ -7,11 +7,10 @@ class az_income_tax_before_refundable_credits(Variable): label = "Arizona income tax before refundable credits" unit = USD definition_period = YEAR + reference = "https://azdor.gov/forms/individual/resident-personal-income-tax-return-non-calculating-fillable" defined_for = StateCode.AZ def formula(tax_unit, period, parameters): - before_non_refundable_credits = tax_unit( - "az_income_tax_before_non_refundable_credits", period - ) - non_refundable_credits = tax_unit("az_non_refundable_credits", period) - return max_(before_non_refundable_credits - non_refundable_credits, 0) + tax_before_credits = tax_unit("az_income_tax_before_credits", period) + nonrefundable_credits = tax_unit("az_nonrefundable_credits", period) + return max_(0, tax_before_credits - nonrefundable_credits) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_non_refundable_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_non_refundable_credits.py deleted file mode 100644 index 3b8d7791d..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/az_non_refundable_credits.py +++ /dev/null @@ -1,10 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_non_refundable_credits(Variable): - value_type = float - entity = TaxUnit - label = "Arizona non-refundable credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.AZ diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_refundable_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_refundable_credits.py deleted file mode 100644 index 05a069e7a..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/az_refundable_credits.py +++ /dev/null @@ -1,10 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_refundable_credits(Variable): - value_type = float - entity = TaxUnit - label = "Arizona refundable credits" - unit = USD - definition_period = YEAR - defined_for = StateCode.AZ diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/az_taxable_income.py b/fiscalsim_us/variables/gov/states/az/tax/income/az_taxable_income.py deleted file mode 100644 index 9a16c9882..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/az_taxable_income.py +++ /dev/null @@ -1,10 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_taxable_income(Variable): - value_type = float - entity = TaxUnit - label = "Arizona taxable income" - unit = USD - definition_period = YEAR - defined_for = StateCode.AZ diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py new file mode 100644 index 000000000..e0efc5d31 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py @@ -0,0 +1,39 @@ +from fiscalsim_us.model_api import * + + +class az_dependent_credit(Variable): + value_type = float + entity = TaxUnit + label = "AZ dependent tax credit" + unit = USD + documentation = ( + "AZ nonrefundable credits added on lines 49,50, and 51 of form 140" + ) + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + def formula(tax_unit, period, parameters): + person = tax_unit.members + dependent = person("is_tax_unit_dependent", period) + under_17_count = person("age", period) < 17 + over_17_count = person("age", period) >= 17 + dependents_under_17 = tax_unit.sum(under_17_count & dependent) + dependents_17_and_over = tax_unit.sum(over_17_count & dependent) + filing_status = tax_unit("filing_status", period) + agi = tax_unit("adjusted_gross_income", period) + p = parameters(period).gov.states.az.tax.income.credits + joint_difference = agi - p.joint_limitation + other_difference = agi - p.other_limitation + # Table one of credit work sheet + line_1 = dependents_under_17 * 100 + line_2 = dependents_17_and_over * 25 + + credit_before_adjustment = line_1 + line_2 + + credit_after_adjustment = where( + filing_status == filing_status.possible_values.JOINT, + p.adjustment_table.calc(joint_difference) * credit_before_adjustment, + p.adjustment_table.calc(other_difference) * credit_before_adjustment, + ) + + return credit_after_adjustment \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py new file mode 100644 index 000000000..44f98205b --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py @@ -0,0 +1,76 @@ +from fiscalsim_us.model_api import * + + +class az_family_income_credit(Variable): + value_type = float + entity = TaxUnit + label = "AZ Family Income Tax Credit" + unit = USD + documentation = ( + "AZ Family Income Tax Credit on line 50 of form 140" + ) + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + + def formula(tax_unit, period, parameters): + person = tax_unit.members + dependent = person("is_tax_unit_dependent", period) + dep_count = tax_unit.sum(dependent) + + aged_blind = tax_unit("az_aged_blind_exemption", period) + other = tax_unit("az_other_exemptions", period) + parents = tax_unit("az_parents_grandparents_exemption", period) + az_agi = tax_unit("az_agi", period) + worksheet_1 = aged_blind + other + parents + az_agi + + p = parameters(period).gov.states.az.tax.income.credits.family_income + filing_status = tax_unit("filing_status", period) + status = filing_status.possible_values + + single = p.single_seperate + joint = p.joint + hoh = p.head_of_household + widow = p.head_of_household + separate = p.single_seperate + + qualifies_limit = select( + [ + filing_status == status.SINGLE, + filing_status == status.JOINT, + filing_status == status.HEAD_OF_HOUSEHOLD, + filing_status == status.WIDOW, + filing_status == status.SEPARATE, + ], + [ + single.calc(dep_count), + joint.calc(dep_count), + hoh.calc(dep_count), + widow.calc(dep_count), + separate.calc(dep_count), + ], + ) + + worksheet_2_line_2 = where( + filing_status == filing_status.possible_values.JOINT, + 2, + 1, + ) + + worksheet_2_line_3 = dep_count + worksheet_2_line_2 + worksheet_2_line_4 = worksheet_2_line_3 * 40 + worksheet_2_line_5 = where( + filing_status == status.JOINT or + filing_status == status.WIDOW or + filing_status == status.HEAD_OF_HOUSEHOLD, + 240, + 120, + ) + worksheet_2_line_6 = min_(worksheet_2_line_4, worksheet_2_line_5) + + return where( + worksheet_1 <= qualifies_limit, + worksheet_2_line_6, + 0, + ) + \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_nonrefundable_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_nonrefundable_credits.py new file mode 100644 index 000000000..616b58636 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_nonrefundable_credits.py @@ -0,0 +1,19 @@ +from fiscalsim_us.model_api import * + + +class az_nonrefundable_credits(Variable): + value_type = float + entity = TaxUnit + label = "AZ nonrefundable credits" + unit = USD + documentation = ( + "AZ nonrefundable credits added on lines 49,50, and 51 of form 140" + ) + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR + + def formula(tax_unit, period, parameters): + dependent_credit = tax_unit("az_dependent_credit", period) + family_income_credit = tax_unit("az_family_income_credit", period) + + return dependent_credit + family_income_credit diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_refundable_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_refundable_credits.py new file mode 100644 index 000000000..b5818aaff --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_refundable_credits.py @@ -0,0 +1,13 @@ +from fiscalsim_us.model_api import * + + +class az_refundable_credits(Variable): + value_type = float + entity = TaxUnit + label = "AZ refundable credits" + unit = USD + documentation = ( + "AZ refundable credits added on lines 56, 57, and 58 of form 140" + ) + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + definition_period = YEAR diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_credit.py deleted file mode 100644 index 92c41b58a..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_credit.py +++ /dev/null @@ -1,36 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_charitable_contributions_credit(Variable): - value_type = float - entity = TaxUnit - label = "Arizona charitable contributions credit" - unit = USD - definition_period = YEAR - defined_for = StateCode.AZ - reference = ( - "https://law.justia.com/codes/arizona/2022/title-43/section-43-1088/" - ) - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.az.tax.income.credits.charitable_contribution.ceiling - charitable_contributions = tax_unit( - "az_charitable_contributions_to_qualifying_charitable_organizations", - period, - ) - foster_care_contributions = tax_unit( - "az_charitable_contributions_to_qualifying_foster_care_organizations", - period, - ) - filing_status = tax_unit("filing_status", period) - capped_charitable_contributions = min_( - charitable_contributions, p.qualifying_organization[filing_status] - ) - capped_foster_care_contributions = min_( - foster_care_contributions, p.qualifying_foster[filing_status] - ) - return ( - capped_charitable_contributions + capped_foster_care_contributions - ) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_charitable_organizations.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_charitable_organizations.py deleted file mode 100644 index d3902a15a..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_charitable_organizations.py +++ /dev/null @@ -1,14 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_charitable_contributions_to_qualifying_charitable_organizations( - Variable -): - value_type = float - entity = TaxUnit - label = "Charitable contributions to qualifying charitable organizations in Arizona" - definition_period = YEAR - defined_for = StateCode.AZ - reference = ( - "https://law.justia.com/codes/arizona/2022/title-43/section-43-1088/" - ) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_foster_care_organizations.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_foster_care_organizations.py deleted file mode 100644 index 15c9ad444..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/charitable_contribution/az_charitable_contributions_to_qualifying_foster_care_organizations.py +++ /dev/null @@ -1,14 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_charitable_contributions_to_qualifying_foster_care_organizations( - Variable -): - value_type = float - entity = TaxUnit - label = "Charitable contributions to qualifying foster care organizations in Arizona" - definition_period = YEAR - defined_for = StateCode.AZ - reference = ( - "https://law.justia.com/codes/arizona/2022/title-43/section-43-1088/" - ) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/dependent_credit/az_dependent_tax_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/dependent_credit/az_dependent_tax_credit.py deleted file mode 100644 index 3706b9feb..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/dependent_credit/az_dependent_tax_credit.py +++ /dev/null @@ -1,28 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_dependent_tax_credit(Variable): - value_type = float - entity = TaxUnit - label = "Arizona dependent tax credit" - unit = USD - documentation = "https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01073-01.htm" - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - person = tax_unit.members - p = parameters( - period - ).gov.states.az.tax.income.credits.dependent_credit - dependent = person("is_tax_unit_dependent", period) - age = person("age", period) - dependent_amount = p.amount.calc(age) * dependent - amount = tax_unit.sum(dependent_amount) - income = tax_unit("adjusted_gross_income", period) - filing_status = tax_unit("filing_status", period) - reduction_start = p.reduction.start[filing_status] - excess = max_(income - reduction_start, 0) - increments = np.ceil(excess / p.reduction.increment) - reduction_percentage = min_(increments * p.reduction.percentage, 1) - return amount * (1 - reduction_percentage) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_agi.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_agi.py deleted file mode 100644 index 3e33b1640..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_agi.py +++ /dev/null @@ -1,10 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_agi(Variable): - value_type = float - entity = TaxUnit - label = "Arizona adjusted gross income" - unit = USD - definition_period = YEAR - defined_for = StateCode.AZ diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit.py deleted file mode 100644 index d7d5ff7b5..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit.py +++ /dev/null @@ -1,19 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_family_tax_credit(Variable): - value_type = float - entity = TaxUnit - label = "Arizona Family Tax Credit" - unit = USD - definition_period = YEAR - defined_for = "az_family_tax_credit_eligible" - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.az.tax.income.credits.family_tax_credits.amount - filing_status = tax_unit("filing_status", period) - - amount = p.per_person * tax_unit("tax_unit_size", period) - return min_(amount, p.cap[filing_status]) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit_eligible.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit_eligible.py deleted file mode 100644 index 139c282af..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/family_tax_credit/az_family_tax_credit_eligible.py +++ /dev/null @@ -1,35 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_family_tax_credit_eligible(Variable): - value_type = bool - entity = TaxUnit - label = "Eligible for the Arizona Family Tax Credit" - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.az.tax.income.credits.family_tax_credits - income = tax_unit("az_agi", period) - filing_status = tax_unit("filing_status", period) - status = filing_status.possible_values - dependents = tax_unit("tax_unit_dependents", period) - income_limit = select( - [ - filing_status == status.SINGLE, - filing_status == status.JOINT, - filing_status == status.HEAD_OF_HOUSEHOLD, - filing_status == status.SEPARATE, - filing_status == status.WIDOW, - ], - [ - p.income_limit.single, - p.income_limit.joint.calc(dependents), - p.income_limit.head_of_household.calc(dependents), - p.income_limit.separate, - p.income_limit.widow.calc(dependents), - ], - ) - return income <= income_limit diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/itemized/az_itemized_deductions.py b/fiscalsim_us/variables/gov/states/az/tax/income/deductions/itemized/az_itemized_deductions.py deleted file mode 100644 index b60a24e3c..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/itemized/az_itemized_deductions.py +++ /dev/null @@ -1,64 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_itemized_deductions(Variable): - value_type = float - entity = TaxUnit - label = "Arizona Itemized Deductions" - unit = USD - documentation = "Arizona Form 140 Schedule A" - definition_period = YEAR - defined_for = StateCode.AZ - reference = ( - "https://law.justia.com/codes/arizona/2022/title-43/section-43-1042/", - "https://azdor.gov/forms/individual/itemized-deduction-adjustments-form", - "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-calculating", - ) - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - p = parameters(period).gov.irs.deductions - deductions = [ - deduction - for deduction in p.itemized_deductions - if deduction - not in [ - "salt_deduction", - "medical_expense_deduction", - "charitable_deduction", - ] - ] - federal_deductions = add(tax_unit, period, deductions) - # Arizona allows a deduction for medical and dental expenses - # that cannot be deducted from federal income taxes. - medical_expense = add(tax_unit, period, ["medical_expense"]) - medical_expense_deduction = tax_unit( - "medical_expense_deduction", period - ) - - az_medical_expense_deduction = max_( - 0, medical_expense - medical_expense_deduction - ) - - # Adjustments to Charitable Contributions - # Amount of charitable contributions for which you are claiming - # a credit under Arizona law. - charitable_deduction = tax_unit("charitable_deduction", period) - charitable_contributions_credit = tax_unit( - "az_charitable_contributions_credit", period - ) - - charitable_deduction_after_credit = max_( - charitable_deduction - charitable_contributions_credit, 0 - ) - - # Adjustment to State Income Taxes - add back real estate taxes - real_estate_taxes = add(tax_unit, period, ["real_estate_taxes"]) - - return ( - federal_deductions - + az_medical_expense_deduction - + charitable_deduction_after_credit - + real_estate_taxes - ) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_base_standard_deduction.py b/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_base_standard_deduction.py deleted file mode 100644 index 1104d282f..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_base_standard_deduction.py +++ /dev/null @@ -1,16 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_base_standard_deduction(Variable): - value_type = float - entity = TaxUnit - label = "Arizona base standard deduction" - unit = USD - documentation = "https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01041.htm" - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - p = parameters(period).gov.states.az.tax.income.deductions.standard - filing_status = tax_unit("filing_status", period) - return p.amount[filing_status] diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_increased_standard_deduction_for_charitable_contributions.py b/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_increased_standard_deduction_for_charitable_contributions.py deleted file mode 100644 index 0f500203b..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_increased_standard_deduction_for_charitable_contributions.py +++ /dev/null @@ -1,24 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_increased_standard_deduction_for_charitable_contributions(Variable): - value_type = float - entity = TaxUnit - label = "Arizona increased standard deduction for charitable contributions" - unit = USD - documentation = "https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01041.htm" - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.az.tax.income.deductions.standard.increased - charitable_deduction = tax_unit("charitable_deduction", period) - charitable_contributions_credit = tax_unit( - "az_charitable_contributions_credit", period - ) - charitable_deduction_after_credit = max_( - charitable_deduction - charitable_contributions_credit, 0 - ) - return p.rate * charitable_deduction_after_credit diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_standard_deduction.py b/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_standard_deduction.py deleted file mode 100644 index a1f8a3626..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/deductions/standard/az_standard_deduction.py +++ /dev/null @@ -1,16 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_standard_deduction(Variable): - value_type = float - entity = TaxUnit - label = "Arizona standard deduction" - unit = USD - documentation = "https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/43/01041.htm" - definition_period = YEAR - defined_for = StateCode.AZ - - adds = [ - "az_base_standard_deduction", - "az_increased_standard_deduction_for_charitable_contributions", - ] diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/subtractions/az_public_pension_exclusion.py b/fiscalsim_us/variables/gov/states/az/tax/income/subtractions/az_public_pension_exclusion.py deleted file mode 100644 index a91133c0d..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/subtractions/az_public_pension_exclusion.py +++ /dev/null @@ -1,27 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_public_pension_exclusion(Variable): - value_type = float - entity = TaxUnit - label = "Arizona Pension Exclusion" - unit = USD - definition_period = YEAR - reference = ( - "https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140BOOKLET.pdf#page=18" - "https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2021_140BOOKLET.pdf#page=23" - "https://www.azleg.gov/ars/43/01022.htm" - ) - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - p = parameters(period).gov.states.az.tax.income.subtractions.pension - person = tax_unit.members - is_head = person("is_tax_unit_head", period) - is_spouse = person("is_tax_unit_spouse", period) - pension_income = person("taxable_public_pension_income", period) - eligible_pension_income = pension_income * (is_head | is_spouse) - total_allowed_pension_exclusion = min_( - p.public_pension_cap, eligible_pension_income - ) - return tax_unit.sum(total_allowed_pension_exclusion) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/subtractions/capital_gains/az_long_term_capital_gains_subtraction.py b/fiscalsim_us/variables/gov/states/az/tax/income/subtractions/capital_gains/az_long_term_capital_gains_subtraction.py deleted file mode 100644 index 510cc931c..000000000 --- a/fiscalsim_us/variables/gov/states/az/tax/income/subtractions/capital_gains/az_long_term_capital_gains_subtraction.py +++ /dev/null @@ -1,22 +0,0 @@ -from fiscalsim_us.model_api import * - - -class az_long_term_capital_gains_subtraction(Variable): - value_type = float - entity = TaxUnit - label = "Arizona long-term capital gains subtraction" - unit = USD - documentation = "https://azdor.gov/sites/default/files/2023-03/FORMS_INDIVIDUAL_2022_140i.pdf#page=31" - definition_period = YEAR - defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): - p = parameters( - period - ).gov.states.az.tax.income.subtractions.capital_gains - - long_term_capital_gains = add( - tax_unit, period, ["long_term_capital_gains"] - ) - - return long_term_capital_gains * p.rate diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_deductions.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_deductions.py new file mode 100644 index 000000000..9d136a181 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_deductions.py @@ -0,0 +1,17 @@ +from fiscalsim_us.model_api import * + + +class az_deductions(Variable): + value_type = float + entity = TaxUnit + label = "AZ income deductions" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + + def formula(tax_unit, period, parameters): + return max_( + tax_unit("az_itemized_deductions", period), + tax_unit("az_standard_deduction", period), + ) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_taxable_income.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_taxable_income.py new file mode 100644 index 000000000..f966f8b90 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/az_taxable_income.py @@ -0,0 +1,17 @@ +from fiscalsim_us.model_api import * + + +class az_taxable_income(Variable): + value_type = float + entity = TaxUnit + label = "AZ taxable income" + unit = USD + documentation = "AZ AGI less taxable income deductions" + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + + def formula(tax_unit, period, parameters): + agi = tax_unit("az_agi", period) + deductions = tax_unit("az_deductions", period) + return max_(0, agi - deductions) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py new file mode 100644 index 000000000..d1ed2134b --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py @@ -0,0 +1,39 @@ +from fiscalsim_us.model_api import * + + +class az_itemized_deductions(Variable): + value_type = float + entity = TaxUnit + label = "AZ itemized deductions" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + + + def formula(tax_unit, period, parameters): + #medical_and_dental + expense = add(tax_unit, period, ["medical_expense"]) + fed_med_deduction = add(tax_unit, period, ["medical_expense_deduction"]) + line_3 = max_(0, expense - fed_med_deduction) + line_4 = where(fed_med_deduction > expense, + fed_med_deduction - expense, + 0) + #mortgage interest deduction is not modeled (line_5) + + #charitable_contributions + cash_donations = add(tax_unit, period, ["charitable_cash_donations"]) + non_cash_donations = add( + tax_unit, period, ["charitable_non_cash_donations"] + ) + prior_year_carryover = tax_unit("az_prior_year_carryover", period) + line_6 = cash_donations + non_cash_donations + prior_year_carryover + line_7 = tax_unit("az_contribution_credits", period) + + #federal itemized deductions + line_11 = add(tax_unit, period, ["itemized_taxable_income_deductions"]) + + deductions = line_3 + line_11 + adjustments = line_4 + line_6 + line_7 + + return max_(0, deductions - adjustments) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py new file mode 100644 index 000000000..b420fda10 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py @@ -0,0 +1,15 @@ +from fiscalsim_us.model_api import * + + +class az_contribution_credits(Variable): + value_type = float + entity = TaxUnit + label = "AZ charitable contribution credits" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + +# line 5C from page 3 of 2022 Form 140 +# This variable reduces the amount of standard +# deduction increase from charitable contributions diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py new file mode 100644 index 000000000..4f04d8661 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py @@ -0,0 +1,13 @@ +from fiscalsim_us.model_api import * + + +class az_prior_year_carryover(Variable): + value_type = float + entity = TaxUnit + label = "AZ proir year carryover of charitable contributions" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + +# line 3C from page 3 of 2022 Form 140 diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py new file mode 100644 index 000000000..d540f12bd --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py @@ -0,0 +1,25 @@ +from fiscalsim_us.model_api import * + + +class az_sd_increase_charitable_contributions(Variable): + value_type = float + entity = TaxUnit + label = "AZ standard deduction increase from charitable contributions" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + + + + def formula(tax_unit, period, parameters): + cash_donations = add(tax_unit, period, ["charitable_cash_donations"]) + non_cash_donations = add( + tax_unit, period, ["charitable_non_cash_donations"] + ) + prior_year_carryover = tax_unit("az_prior_year_carryover", period) + contribution_credits = tax_unit("az_contribution_credits", period) + limit_percentage = parameters(period).gov.states.az.tax.income.deductions.charitable_deduction_limit + additions = cash_donations + non_cash_donations + prior_year_carryover + + return (additions - contribution_credits) * limit_percentage diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py new file mode 100644 index 000000000..6a3ffa60d --- /dev/null +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py @@ -0,0 +1,19 @@ +from fiscalsim_us.model_api import * + + +class az_standard_deduction(Variable): + value_type = float + entity = TaxUnit + label = "AZ standard deduction" + unit = USD + definition_period = YEAR + reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" + defined_for = StateCode.AZ + + def formula(tax_unit, period, parameters): + standard_deduction = parameters( + period + ).gov.states.az.tax.income.deductions + filing_status = tax_unit("filing_status", period) + charitable_deduction_increase = tax_unit("az_sd_increase_charitable_contributions", period) + return standard_deduction.standard[filing_status] + charitable_deduction_increase From 8e8cd5e496d82f58e42efd863a09126afb252e21 Mon Sep 17 00:00:00 2001 From: patrickneyland Date: Mon, 6 Nov 2023 16:57:24 -0700 Subject: [PATCH 2/5] added AZ to state_income_tax.py and ..._before_refundable_credits.py --- fiscalsim_us/variables/gov/states/tax/income/state_income_tax.py | 1 + .../tax/income/state_income_tax_before_refundable_credits.py | 1 + 2 files changed, 2 insertions(+) diff --git a/fiscalsim_us/variables/gov/states/tax/income/state_income_tax.py b/fiscalsim_us/variables/gov/states/tax/income/state_income_tax.py index ad61e5f24..ceb3b623a 100644 --- a/fiscalsim_us/variables/gov/states/tax/income/state_income_tax.py +++ b/fiscalsim_us/variables/gov/states/tax/income/state_income_tax.py @@ -9,6 +9,7 @@ class state_income_tax(Variable): definition_period = YEAR adds = [ # state income tax variables listed in alphabetical order: + "az_income_tax", "ca_income_tax", "co_income_tax", "dc_income_tax", diff --git a/fiscalsim_us/variables/gov/states/tax/income/state_income_tax_before_refundable_credits.py b/fiscalsim_us/variables/gov/states/tax/income/state_income_tax_before_refundable_credits.py index 10ddd02fa..7df728f57 100644 --- a/fiscalsim_us/variables/gov/states/tax/income/state_income_tax_before_refundable_credits.py +++ b/fiscalsim_us/variables/gov/states/tax/income/state_income_tax_before_refundable_credits.py @@ -8,6 +8,7 @@ class state_income_tax_before_refundable_credits(Variable): unit = USD definition_period = YEAR adds = [ + "az_income_tax_before_refundable_credits", "ca_income_tax_before_refundable_credits", "co_income_tax_before_refundable_credits", "dc_income_tax_before_refundable_credits", From cc2558c56cb8da8de21d8d07be3e3ffb626b16f1 Mon Sep 17 00:00:00 2001 From: patrickneyland Date: Mon, 6 Nov 2023 17:06:45 -0700 Subject: [PATCH 3/5] adjusted az_capital_gains_subtractions --- .../exemptions/az_aged_blind_exemption.py | 1 - .../subtractions/az_agi_subtractions.py | 6 +++-- .../az_capital_gains_subtractions.py | 16 ++++++------- .../tax/income/credits/az_dependent_credit.py | 8 ++++--- .../income/credits/az_family_income_credit.py | 20 +++++++--------- .../itemized/az_itemized_deductions.py | 23 ++++++++++--------- .../standard/az_contribution_credits.py | 1 + .../standard/az_prior_year_carryover.py | 1 + ...az_sd_increase_charitable_contributions.py | 6 ++--- .../standard/az_standard_deduction.py | 9 ++++++-- 10 files changed, 48 insertions(+), 43 deletions(-) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py index 6fc892888..fa21a015c 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/exemptions/az_aged_blind_exemption.py @@ -13,7 +13,6 @@ class az_aged_blind_exemption(Variable): definition_period = YEAR def formula(tax_unit, period, parameters): - # Aged/blind exemption p = parameters(period).gov.states["az"].tax.income.exemptions blind_head = tax_unit("blind_head", period).astype(int) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py index 28ecba911..6b5780d3f 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_agi_subtractions.py @@ -10,5 +10,7 @@ class az_agi_subtractions(Variable): reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" definition_period = YEAR - adds = ["az_capital_gains_subtractions", - "tax_unit_taxable_social_security"] + adds = [ + "az_capital_gains_subtractions", + "tax_unit_taxable_social_security", + ] diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py index 8c6db9daa..42e1466d9 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py @@ -11,24 +11,22 @@ class az_capital_gains_subtractions(Variable): definition_period = YEAR def formula(tax_unit, period, parameters): - # capital_gains_subtractions net_long_term_capital_gain = tax_unit( - "net_long_term_capital_gain", period + "long_term_capital_gain", period ) net_short_term_capital_gain = tax_unit( "net_short_term_capital_gain", period ) - net_capital_gain = tax_unit( - "net_capital_gain", period + net_capital_gain = tax_unit("net_capital_gain", period) + cg_additions = 0.25 * ( + net_capital_gain + + net_long_term_capital_gain + + net_short_term_capital_gain ) - cg_additions = .25 * (net_capital_gain + - net_long_term_capital_gain + - net_short_term_capital_gain) # cg_from_small_business = tax_unit( # "long_term_capital_gains_on_small_business_stock", period # ) - return cg_additions # + cg_from_small_business - \ No newline at end of file + return cg_additions # + cg_from_small_business diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py index e0efc5d31..c3ea77853 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_dependent_credit.py @@ -32,8 +32,10 @@ def formula(tax_unit, period, parameters): credit_after_adjustment = where( filing_status == filing_status.possible_values.JOINT, - p.adjustment_table.calc(joint_difference) * credit_before_adjustment, - p.adjustment_table.calc(other_difference) * credit_before_adjustment, + p.adjustment_table.calc(joint_difference) + * credit_before_adjustment, + p.adjustment_table.calc(other_difference) + * credit_before_adjustment, ) - return credit_after_adjustment \ No newline at end of file + return credit_after_adjustment diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py index 44f98205b..a79a0bb4f 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/credits/az_family_income_credit.py @@ -6,13 +6,10 @@ class az_family_income_credit(Variable): entity = TaxUnit label = "AZ Family Income Tax Credit" unit = USD - documentation = ( - "AZ Family Income Tax Credit on line 50 of form 140" - ) + documentation = "AZ Family Income Tax Credit on line 50 of form 140" reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" definition_period = YEAR - def formula(tax_unit, period, parameters): person = tax_unit.members dependent = person("is_tax_unit_dependent", period) @@ -22,7 +19,7 @@ def formula(tax_unit, period, parameters): other = tax_unit("az_other_exemptions", period) parents = tax_unit("az_parents_grandparents_exemption", period) az_agi = tax_unit("az_agi", period) - worksheet_1 = aged_blind + other + parents + az_agi + worksheet_1 = aged_blind + other + parents + az_agi p = parameters(period).gov.states.az.tax.income.credits.family_income filing_status = tax_unit("filing_status", period) @@ -50,7 +47,7 @@ def formula(tax_unit, period, parameters): separate.calc(dep_count), ], ) - + worksheet_2_line_2 = where( filing_status == filing_status.possible_values.JOINT, 2, @@ -60,17 +57,16 @@ def formula(tax_unit, period, parameters): worksheet_2_line_3 = dep_count + worksheet_2_line_2 worksheet_2_line_4 = worksheet_2_line_3 * 40 worksheet_2_line_5 = where( - filing_status == status.JOINT or - filing_status == status.WIDOW or - filing_status == status.HEAD_OF_HOUSEHOLD, + filing_status == status.JOINT + or filing_status == status.WIDOW + or filing_status == status.HEAD_OF_HOUSEHOLD, 240, 120, ) - worksheet_2_line_6 = min_(worksheet_2_line_4, worksheet_2_line_5) + worksheet_2_line_6 = min_(worksheet_2_line_4, worksheet_2_line_5) - return where( + return where( worksheet_1 <= qualifies_limit, worksheet_2_line_6, 0, ) - \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py index d1ed2134b..7a68bcc14 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/itemized/az_itemized_deductions.py @@ -10,18 +10,19 @@ class az_itemized_deductions(Variable): reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" defined_for = StateCode.AZ - def formula(tax_unit, period, parameters): - #medical_and_dental + # medical_and_dental expense = add(tax_unit, period, ["medical_expense"]) - fed_med_deduction = add(tax_unit, period, ["medical_expense_deduction"]) + fed_med_deduction = add( + tax_unit, period, ["medical_expense_deduction"] + ) line_3 = max_(0, expense - fed_med_deduction) - line_4 = where(fed_med_deduction > expense, - fed_med_deduction - expense, - 0) - #mortgage interest deduction is not modeled (line_5) + line_4 = where( + fed_med_deduction > expense, fed_med_deduction - expense, 0 + ) + # mortgage interest deduction is not modeled (line_5) - #charitable_contributions + # charitable_contributions cash_donations = add(tax_unit, period, ["charitable_cash_donations"]) non_cash_donations = add( tax_unit, period, ["charitable_non_cash_donations"] @@ -30,10 +31,10 @@ def formula(tax_unit, period, parameters): line_6 = cash_donations + non_cash_donations + prior_year_carryover line_7 = tax_unit("az_contribution_credits", period) - #federal itemized deductions + # federal itemized deductions line_11 = add(tax_unit, period, ["itemized_taxable_income_deductions"]) - + deductions = line_3 + line_11 adjustments = line_4 + line_6 + line_7 - + return max_(0, deductions - adjustments) diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py index b420fda10..ba6f99756 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_contribution_credits.py @@ -10,6 +10,7 @@ class az_contribution_credits(Variable): reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" defined_for = StateCode.AZ + # line 5C from page 3 of 2022 Form 140 # This variable reduces the amount of standard # deduction increase from charitable contributions diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py index 4f04d8661..603ffddbf 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_prior_year_carryover.py @@ -10,4 +10,5 @@ class az_prior_year_carryover(Variable): reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" defined_for = StateCode.AZ + # line 3C from page 3 of 2022 Form 140 diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py index d540f12bd..bf4898d5f 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_sd_increase_charitable_contributions.py @@ -10,8 +10,6 @@ class az_sd_increase_charitable_contributions(Variable): reference = "https://azdor.gov/forms/individual/form-140-resident-personal-income-tax-form-non-fillable-form" defined_for = StateCode.AZ - - def formula(tax_unit, period, parameters): cash_donations = add(tax_unit, period, ["charitable_cash_donations"]) non_cash_donations = add( @@ -19,7 +17,9 @@ def formula(tax_unit, period, parameters): ) prior_year_carryover = tax_unit("az_prior_year_carryover", period) contribution_credits = tax_unit("az_contribution_credits", period) - limit_percentage = parameters(period).gov.states.az.tax.income.deductions.charitable_deduction_limit + limit_percentage = parameters( + period + ).gov.states.az.tax.income.deductions.charitable_deduction_limit additions = cash_donations + non_cash_donations + prior_year_carryover return (additions - contribution_credits) * limit_percentage diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py index 6a3ffa60d..5ac3b2f7f 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/taxable_income/deductions/standard/az_standard_deduction.py @@ -15,5 +15,10 @@ def formula(tax_unit, period, parameters): period ).gov.states.az.tax.income.deductions filing_status = tax_unit("filing_status", period) - charitable_deduction_increase = tax_unit("az_sd_increase_charitable_contributions", period) - return standard_deduction.standard[filing_status] + charitable_deduction_increase + charitable_deduction_increase = tax_unit( + "az_sd_increase_charitable_contributions", period + ) + return ( + standard_deduction.standard[filing_status] + + charitable_deduction_increase + ) From 1bf64c02849d2b0e301656a8df39ca3e95dc4618 Mon Sep 17 00:00:00 2001 From: patrickneyland Date: Tue, 19 Dec 2023 11:06:31 -0700 Subject: [PATCH 4/5] black formated files --- .../az/tax/income/deductions/standard.yaml | 2 +- .../states/az/tax/income/main/joint_hoh.yaml | 2 +- .../az/tax/income/main/single_seperate.yaml | 2 +- .../az_capital_gains_subtractions.py | 20 +++++++++---------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml index a354e12d6..f73f2070c 100644 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/deductions/standard.yaml @@ -23,4 +23,4 @@ WIDOW: # if a filer files as a widow on their federal return, they # may file as head of household on their AZ return. # Therefore, the deduction is the same as head of household. - 2022-01-01: 19_400 \ No newline at end of file + 2022-01-01: 19_400 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml index 2aa0a6361..cc6affb1b 100644 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/main/joint_hoh.yaml @@ -16,4 +16,4 @@ brackets: - threshold: 2022-01-01: 57_305 rate: - 2022-01-01: 0.0298 \ No newline at end of file + 2022-01-01: 0.0298 diff --git a/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml b/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml index 395d4eed0..f85eb0aa4 100644 --- a/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml +++ b/fiscalsim_us/parameters/gov/states/az/tax/income/main/single_seperate.yaml @@ -16,4 +16,4 @@ brackets: - threshold: 2022-01-01: 28_653 rate: - 2022-01-01: 0.0298 \ No newline at end of file + 2022-01-01: 0.0298 diff --git a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py index 42e1466d9..1b0ad41d6 100644 --- a/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py +++ b/fiscalsim_us/variables/gov/states/az/tax/income/adjusted_gross_income/subtractions/az_capital_gains_subtractions.py @@ -11,22 +11,22 @@ class az_capital_gains_subtractions(Variable): definition_period = YEAR def formula(tax_unit, period, parameters): - # capital_gains_subtractions - net_long_term_capital_gain = tax_unit( - "long_term_capital_gain", period - ) - net_short_term_capital_gain = tax_unit( - "net_short_term_capital_gain", period - ) + # # capital_gains_subtractions + # net_long_term_capital_gain = tax_unit( + # "long_term_capital_gain", period + # ) + # net_short_term_capital_gain = tax_unit( + # "net_short_term_capital_gain", period + # ) net_capital_gain = tax_unit("net_capital_gain", period) cg_additions = 0.25 * ( net_capital_gain - + net_long_term_capital_gain - + net_short_term_capital_gain + # + net_long_term_capital_gain + # + net_short_term_capital_gain ) # cg_from_small_business = tax_unit( # "long_term_capital_gains_on_small_business_stock", period # ) - return cg_additions # + cg_from_small_business + return cg_additions From 17e8fe8e11456246c3f79b80c8bb1dc617f7d986 Mon Sep 17 00:00:00 2001 From: patrickneyland Date: Tue, 19 Dec 2023 11:08:59 -0700 Subject: [PATCH 5/5] changed version number --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0e2f3e663..622ee9994 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name="fiscalsim-us", - version="0.2.5", + version="0.2.6", author="Center for Growth and Opportunity at Utah State University (CGO)", author_email="fiscalsim@thecgo.org", long_description=readme,