From 648620b082655cb4a5422d7feab762449bd4bce4 Mon Sep 17 00:00:00 2001 From: finpaul Date: Mon, 27 Nov 2023 18:15:20 -0700 Subject: [PATCH 1/5] Updates Michigan Tax Logic --- .../mi/tax/income/credits/eitc/match.yaml | 4 +--- .../additions_subtractions/mi_additions.py | 16 ++++++++++++++ .../additions_subtractions/mi_subtractions.py | 16 ++++++++++++++ .../mi_historic_preservation_amount.py | 16 ++++++++++++++ .../mi_historic_preservation_credit.py | 16 ++++++++++++++ .../non_refundable_credits/mi_income_tax.py | 21 +++++++++++++++++++ .../mi_income_tax_imposed_by_other_gov.py | 20 ++++++++++++++++++ ..._income_tax_imposed_by_other_gov_credit.py | 14 +++++++++++++ .../mi_total_tax_liability.py | 16 ++++++++++++++ .../non_refundable_credits/mi_use_tax.py | 14 +++++++++++++ .../mi_voluntary_contributions.py | 14 +++++++++++++ .../{ => refundable_credits}/mi_eitc.py | 0 .../mi_electing_flow_through_credit.py | 14 +++++++++++++ .../refundable_credits/mi_estimated_tax.py | 14 +++++++++++++ .../mi_farmland_preservation_tax_credit.py | 14 +++++++++++++ .../mi_historic_preservation_refundable.py | 14 +++++++++++++ .../mi_property_tax_credit.py | 14 +++++++++++++ .../mi_total_refunable_credits.py | 18 ++++++++++++++++ .../credits/refundable_credits/mi_withheld.py | 14 +++++++++++++ .../income/main/mi_income_subject_to_tax.py | 20 ++++++++++++++++++ .../mi_income_tax_before_credits.py | 0 .../states/mi/tax/income/main/mi_tax_due.py | 21 +++++++++++++++++++ .../mi/tax/income/main/mi_tax_overpaid.py | 21 +++++++++++++++++++ .../income/{ => main}/mi_taxable_income.py | 5 +++++ .../states/mi/tax/income/main/mi_total_agi.py | 17 +++++++++++++++ 25 files changed, 350 insertions(+), 3 deletions(-) create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py rename fiscalsim_us/variables/gov/states/mi/tax/income/credits/{ => refundable_credits}/mi_eitc.py (100%) create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py rename fiscalsim_us/variables/gov/states/mi/tax/income/{ => main}/mi_income_tax_before_credits.py (100%) create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py rename fiscalsim_us/variables/gov/states/mi/tax/income/{ => main}/mi_taxable_income.py (54%) create mode 100644 fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py diff --git a/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml b/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml index 5d4385bf5..d541e1446 100644 --- a/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml +++ b/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml @@ -12,7 +12,5 @@ values: 2008-01-01: 0.1 2009-01-01: 0.2 2012-01-01: 0.06 - # Reflected starting with 2023 tax form. - # In 2022, Michigan enacted a supplemental 24% match after tax filing season. - 2022-01-01: 0.3 + diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py new file mode 100644 index 000000000..f87034a1e --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py @@ -0,0 +1,16 @@ +from fiscalsim_us.model_api import * + + +class mi_additions(Variable): + """ + Line 11 on Michigan 2022 Individual Income Tax return form MI-1040. + These additions to income include the categories that are listed + in Michigan Line 9 of Schedule 1 found in the instructions + """ + + value_type = float + entity = TaxUnit + label = "MI additions to income" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py new file mode 100644 index 000000000..f78521ebc --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py @@ -0,0 +1,16 @@ +from fiscalsim_us.model_api import * + + +class mi_subtractions(Variable): + """ + Line 13 on Michigan 2022 Individual Income Tax return form MI-1040. + These subtractions to income include the categories that are listed + in Michigan Line 30 of Schedule 1 found in the instructions + """ + + value_type = float + entity = TaxUnit + label = "MI subtractions to income" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py new file mode 100644 index 000000000..d11c68736 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py @@ -0,0 +1,16 @@ +from fiscalsim_us.model_api import * + + +class mi_historic_preservation_amount(Variable): + """ + Line 19a on Michigan 2022 Individual Income Tax return form MI-1040. + If you are including Form 3581, enter the amount + from line 9. If you are including Form 5803, enter the amount from line 7. + """ + + value_type = float + entity = TaxUnit + label = "MI amount of Historic Preservation Tax Credit" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py new file mode 100644 index 000000000..2745d500f --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py @@ -0,0 +1,16 @@ +from fiscalsim_us.model_api import * + + +class mi_historic_preservation_credit(Variable): + """ + Line 19b on Michigan 2022 Individual Income Tax return form MI-1040. + If you are including Form 3581, enter the amount + from line 14. If you are including Form 5803, enter the amount from line 12. + """ + + value_type = float + entity = TaxUnit + label = "MI Credit of Historic Preservation Tax Credit" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py new file mode 100644 index 000000000..c8f3aef64 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py @@ -0,0 +1,21 @@ +from fiscalsim_us.model_api import * + + +class mi_income_tax(Variable): + """ + Line 20 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI income tax" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + def formula(tax_unit, period, parameters): + imposed = tax_unit("mi_income_tax_imposed_by_other_gov_credit", period) + historic = tax_unit("mi_historic_preservation_amount", period) + tax = tax_unit("mi_income_tax_before_credits", period) + credit = imposed + historic + return max(0, credit - tax) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py new file mode 100644 index 000000000..b3ba58f46 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py @@ -0,0 +1,20 @@ +from fiscalsim_us.model_api import * + + +class mi_income_tax_imposed_by_other_gov_amount(Variable): + """ + Line 18a on Michigan 2022 Individual Income Tax return form MI-1040. + This non-refundable credit includes the amount of income tax paid to: + - A nonreciprocal state + - A local government unit outside Michigan, including tax + paid to local units located in reciprocal states + - The District of Columbia + -A Canadian province. + """ + + value_type = float + entity = TaxUnit + label = "MI income tax amount imposed by goverment units outside of michigan" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py new file mode 100644 index 000000000..f03e20511 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_income_tax_imposed_by_other_gov_credit(Variable): + """ + Line 18b on Michigan 2022 Individual Income Tax return form MI-1040. + """ + + value_type = float + entity = TaxUnit + label = "MI income tax credit imposed by goverment units outside of michigan" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py new file mode 100644 index 000000000..a188eae63 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py @@ -0,0 +1,16 @@ +from fiscalsim_us.model_api import * + + +class mi_total_tax_liability(Variable): + """ + Line 24 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MT total tax liability" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + adds = ["mi_income_tax", "mi_voluntary_contributions","mi_use_tax"] \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py new file mode 100644 index 000000000..9f57fc1d0 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_use_tax(Variable): + """ + Line 23 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI use tax" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py new file mode 100644 index 000000000..907f378ad --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_voluntary_contributions(Variable): + """ + Line 22 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI volentary contributions" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/mi_eitc.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_eitc.py similarity index 100% rename from fiscalsim_us/variables/gov/states/mi/tax/income/credits/mi_eitc.py rename to fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_eitc.py diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py new file mode 100644 index 000000000..3ce0a30bb --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_electing_flow_through_credit(Variable): + """ + Line 29 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI allocated share of tax paid by an electing flow-through entity credit" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py new file mode 100644 index 000000000..d32011efb --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_estimated_tax(Variable): + """ + Line 31 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI Estimated Tax, Extension Payments, and Credit Forward" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py new file mode 100644 index 000000000..8aef7dca8 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_farmland_preservation_tax_credit(Variable): + """ + Line 26 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI Farmland Preservation Tax Credit" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py new file mode 100644 index 000000000..5850080c1 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_historic_preservation_refundable(Variable): + """ + Line 28 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI Historic Preservation Tax Credit Refundable" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py new file mode 100644 index 000000000..839975d79 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_property_tax_credit(Variable): + """ + Line 25 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI Property Tax Credit" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py new file mode 100644 index 000000000..720831b47 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py @@ -0,0 +1,18 @@ +from fiscalsim_us.model_api import * + + +class mi_total_refundable_credits(Variable): + """ + Line 33 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MT total refundable credits" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + adds = ["mi_property_tax_credit","mi_farmland_preservation_tax_credit","mi_eitc", + "mi_historic_preservation_refundable","mi_electing_flow_through_credit", + "mi_withheld","mi_estimated_tax"] \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py new file mode 100644 index 000000000..e32dc28b4 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py @@ -0,0 +1,14 @@ +from fiscalsim_us.model_api import * + + +class mi_withheld(Variable): + """ + Line 30 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI tax withheld" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py new file mode 100644 index 000000000..788dea709 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py @@ -0,0 +1,20 @@ +from fiscalsim_us.model_api import * + + +class mi_income_subject_to_tax(Variable): + """ + Line 14 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MI income subject to tax" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + def formula(tax_unit, period, parameters): + total = tax_unit("mi_total_agi", period) + subtractions = tax_unit("mi_subtractions", period) + + return max(0, subtractions - total) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/mi_income_tax_before_credits.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_tax_before_credits.py similarity index 100% rename from fiscalsim_us/variables/gov/states/mi/tax/income/mi_income_tax_before_credits.py rename to fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_tax_before_credits.py diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py new file mode 100644 index 000000000..d6e70d5b6 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py @@ -0,0 +1,21 @@ +from fiscalsim_us.model_api import * + + +class mi_tax_due(Variable): + """ + Line 34 on Michigan tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "Michigan Tax Due" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + +def formula(tax_unit, period, parameters): + line33 = tax_unit("mi_total_refundable_credits") + line24 = tax_unit("mi_total_tax_liability") + + return where(line33 < line24, line33 - line24, 0) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py new file mode 100644 index 000000000..92df4f57a --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py @@ -0,0 +1,21 @@ +from fiscalsim_us.model_api import * + + +class mi_tax_overpaid(Variable): + """ + Line 35 on Michigan tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "Michigan Tax Overpayed" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + +def formula(tax_unit, period, parameters): + line33 = tax_unit("mi_total_refundable_credits") + line24 = tax_unit("mi_total_tax_liability") + + return where(line33 > line24, line24 - line33, 0) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/mi_taxable_income.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py similarity index 54% rename from fiscalsim_us/variables/gov/states/mi/tax/income/mi_taxable_income.py rename to fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py index c13547919..2745c665d 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/mi_taxable_income.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py @@ -8,3 +8,8 @@ class mi_taxable_income(Variable): defined_for = StateCode.MI unit = USD definition_period = YEAR + + def formula(tax_unit, period, parameters): + income = tax_unit("mi_income_subject_to_tax", period) + exemption = tax_unit("mi_exemptions", period) + return max(0,exemption-income) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py new file mode 100644 index 000000000..6696e7473 --- /dev/null +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py @@ -0,0 +1,17 @@ +from fiscalsim_us.model_api import * + + +class mi_total_agi(Variable): + """ + Line 12 on Michigan individual income tax form MI-1040 + """ + + value_type = float + entity = TaxUnit + label = "MT total gross income" + unit = USD + definition_period = YEAR + defined_for = StateCode.MI + + adds = ["adjusted_gross_income", "mi_additions"] + \ No newline at end of file From 71b3bd47b7e8773b0cc0ed6ea47803ea1ebd43e2 Mon Sep 17 00:00:00 2001 From: finpaul Date: Mon, 27 Nov 2023 18:29:51 -0700 Subject: [PATCH 2/5] fixes to a couple of variables --- .../income/additions_subtractions/mi_additions.py | 4 ++-- .../income/additions_subtractions/mi_subtractions.py | 2 +- .../mi_historic_preservation_amount.py | 4 ++-- .../mi_historic_preservation_credit.py | 4 ++-- .../credits/non_refundable_credits/mi_income_tax.py | 6 +++--- .../mi_income_tax_imposed_by_other_gov.py | 8 +++++--- .../mi_income_tax_imposed_by_other_gov_credit.py | 8 +++++--- .../non_refundable_credits/mi_total_tax_liability.py | 2 +- .../credits/non_refundable_credits/mi_use_tax.py | 2 +- .../mi_voluntary_contributions.py | 2 +- .../mi_electing_flow_through_credit.py | 2 +- .../credits/refundable_credits/mi_estimated_tax.py | 2 +- .../mi_farmland_preservation_tax_credit.py | 2 +- .../mi_historic_preservation_refundable.py | 2 +- .../refundable_credits/mi_property_tax_credit.py | 2 +- .../refundable_credits/mi_total_refunable_credits.py | 12 +++++++++--- .../income/credits/refundable_credits/mi_withheld.py | 2 +- .../mi/tax/income/main/mi_income_subject_to_tax.py | 4 ++-- .../gov/states/mi/tax/income/main/mi_tax_due.py | 2 +- .../gov/states/mi/tax/income/main/mi_tax_overpaid.py | 2 +- .../states/mi/tax/income/main/mi_taxable_income.py | 4 ++-- .../gov/states/mi/tax/income/main/mi_total_agi.py | 1 - 22 files changed, 44 insertions(+), 35 deletions(-) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py index f87034a1e..94168eeb4 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_additions.py @@ -3,7 +3,7 @@ class mi_additions(Variable): """ - Line 11 on Michigan 2022 Individual Income Tax return form MI-1040. + Line 11 on Michigan 2022 Individual Income Tax return form MI-1040. These additions to income include the categories that are listed in Michigan Line 9 of Schedule 1 found in the instructions """ @@ -13,4 +13,4 @@ class mi_additions(Variable): label = "MI additions to income" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py index f78521ebc..b1eba9aea 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/additions_subtractions/mi_subtractions.py @@ -3,7 +3,7 @@ class mi_subtractions(Variable): """ - Line 13 on Michigan 2022 Individual Income Tax return form MI-1040. + Line 13 on Michigan 2022 Individual Income Tax return form MI-1040. These subtractions to income include the categories that are listed in Michigan Line 30 of Schedule 1 found in the instructions """ diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py index d11c68736..3b6b548e0 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_amount.py @@ -3,7 +3,7 @@ class mi_historic_preservation_amount(Variable): """ - Line 19a on Michigan 2022 Individual Income Tax return form MI-1040. + Line 19a on Michigan 2022 Individual Income Tax return form MI-1040. If you are including Form 3581, enter the amount from line 9. If you are including Form 5803, enter the amount from line 7. """ @@ -13,4 +13,4 @@ class mi_historic_preservation_amount(Variable): label = "MI amount of Historic Preservation Tax Credit" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py index 2745d500f..3c317a05b 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_historic_preservation_credit.py @@ -3,7 +3,7 @@ class mi_historic_preservation_credit(Variable): """ - Line 19b on Michigan 2022 Individual Income Tax return form MI-1040. + Line 19b on Michigan 2022 Individual Income Tax return form MI-1040. If you are including Form 3581, enter the amount from line 14. If you are including Form 5803, enter the amount from line 12. """ @@ -13,4 +13,4 @@ class mi_historic_preservation_credit(Variable): label = "MI Credit of Historic Preservation Tax Credit" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py index c8f3aef64..6dcc00d30 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py @@ -14,8 +14,8 @@ class mi_income_tax(Variable): defined_for = StateCode.MI def formula(tax_unit, period, parameters): - imposed = tax_unit("mi_income_tax_imposed_by_other_gov_credit", period) - historic = tax_unit("mi_historic_preservation_amount", period) - tax = tax_unit("mi_income_tax_before_credits", period) + imposed = tax_unit("mi_income_tax_imposed_by_other_gov_credit") + historic = tax_unit("mi_historic_preservation_amount") + tax = tax_unit("mi_income_tax_before_credits") credit = imposed + historic return max(0, credit - tax) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py index b3ba58f46..8a304412d 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov.py @@ -3,7 +3,7 @@ class mi_income_tax_imposed_by_other_gov_amount(Variable): """ - Line 18a on Michigan 2022 Individual Income Tax return form MI-1040. + Line 18a on Michigan 2022 Individual Income Tax return form MI-1040. This non-refundable credit includes the amount of income tax paid to: - A nonreciprocal state - A local government unit outside Michigan, including tax @@ -14,7 +14,9 @@ class mi_income_tax_imposed_by_other_gov_amount(Variable): value_type = float entity = TaxUnit - label = "MI income tax amount imposed by goverment units outside of michigan" + label = ( + "MI income tax amount imposed by goverment units outside of michigan" + ) unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py index f03e20511..49a84f949 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax_imposed_by_other_gov_credit.py @@ -3,12 +3,14 @@ class mi_income_tax_imposed_by_other_gov_credit(Variable): """ - Line 18b on Michigan 2022 Individual Income Tax return form MI-1040. + Line 18b on Michigan 2022 Individual Income Tax return form MI-1040. """ value_type = float entity = TaxUnit - label = "MI income tax credit imposed by goverment units outside of michigan" + label = ( + "MI income tax credit imposed by goverment units outside of michigan" + ) unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py index a188eae63..e2602f909 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_total_tax_liability.py @@ -13,4 +13,4 @@ class mi_total_tax_liability(Variable): definition_period = YEAR defined_for = StateCode.MI - adds = ["mi_income_tax", "mi_voluntary_contributions","mi_use_tax"] \ No newline at end of file + adds = ["mi_income_tax", "mi_voluntary_contributions", "mi_use_tax"] diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py index 9f57fc1d0..9916f52a2 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_use_tax.py @@ -11,4 +11,4 @@ class mi_use_tax(Variable): label = "MI use tax" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py index 907f378ad..4ba6a9a99 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_voluntary_contributions.py @@ -11,4 +11,4 @@ class mi_voluntary_contributions(Variable): label = "MI volentary contributions" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py index 3ce0a30bb..7ad833914 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_electing_flow_through_credit.py @@ -11,4 +11,4 @@ class mi_electing_flow_through_credit(Variable): label = "MI allocated share of tax paid by an electing flow-through entity credit" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py index d32011efb..77a7d241e 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_estimated_tax.py @@ -11,4 +11,4 @@ class mi_estimated_tax(Variable): label = "MI Estimated Tax, Extension Payments, and Credit Forward" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py index 8aef7dca8..8728a92eb 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_farmland_preservation_tax_credit.py @@ -11,4 +11,4 @@ class mi_farmland_preservation_tax_credit(Variable): label = "MI Farmland Preservation Tax Credit" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py index 5850080c1..180e4c3c9 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_historic_preservation_refundable.py @@ -11,4 +11,4 @@ class mi_historic_preservation_refundable(Variable): label = "MI Historic Preservation Tax Credit Refundable" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py index 839975d79..0e5636671 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_property_tax_credit.py @@ -11,4 +11,4 @@ class mi_property_tax_credit(Variable): label = "MI Property Tax Credit" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py index 720831b47..e7f9f15e7 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_total_refunable_credits.py @@ -13,6 +13,12 @@ class mi_total_refundable_credits(Variable): definition_period = YEAR defined_for = StateCode.MI - adds = ["mi_property_tax_credit","mi_farmland_preservation_tax_credit","mi_eitc", - "mi_historic_preservation_refundable","mi_electing_flow_through_credit", - "mi_withheld","mi_estimated_tax"] \ No newline at end of file + adds = [ + "mi_property_tax_credit", + "mi_farmland_preservation_tax_credit", + "mi_eitc", + "mi_historic_preservation_refundable", + "mi_electing_flow_through_credit", + "mi_withheld", + "mi_estimated_tax", + ] diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py index e32dc28b4..27e669902 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/refundable_credits/mi_withheld.py @@ -11,4 +11,4 @@ class mi_withheld(Variable): label = "MI tax withheld" unit = USD definition_period = YEAR - defined_for = StateCode.MI \ No newline at end of file + defined_for = StateCode.MI diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py index 788dea709..80bad8f8a 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py @@ -14,7 +14,7 @@ class mi_income_subject_to_tax(Variable): defined_for = StateCode.MI def formula(tax_unit, period, parameters): - total = tax_unit("mi_total_agi", period) - subtractions = tax_unit("mi_subtractions", period) + total = tax_unit("mi_total_agi") + subtractions = tax_unit("mi_subtractions") return max(0, subtractions - total) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py index d6e70d5b6..58b1b7a7d 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_due.py @@ -18,4 +18,4 @@ def formula(tax_unit, period, parameters): line33 = tax_unit("mi_total_refundable_credits") line24 = tax_unit("mi_total_tax_liability") - return where(line33 < line24, line33 - line24, 0) \ No newline at end of file + return where(line33 < line24, line33 - line24, 0) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py index 92df4f57a..76b1b5950 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_tax_overpaid.py @@ -18,4 +18,4 @@ def formula(tax_unit, period, parameters): line33 = tax_unit("mi_total_refundable_credits") line24 = tax_unit("mi_total_tax_liability") - return where(line33 > line24, line24 - line33, 0) \ No newline at end of file + return where(line33 > line24, line24 - line33, 0) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py index 2745c665d..eace15a7f 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py @@ -10,6 +10,6 @@ class mi_taxable_income(Variable): definition_period = YEAR def formula(tax_unit, period, parameters): - income = tax_unit("mi_income_subject_to_tax", period) - exemption = tax_unit("mi_exemptions", period) + income = tax_unit("mi_income_subject_to_tax") + exemption = tax_unit("mi_exemptions") return max(0,exemption-income) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py index 6696e7473..e44078460 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_total_agi.py @@ -14,4 +14,3 @@ class mi_total_agi(Variable): defined_for = StateCode.MI adds = ["adjusted_gross_income", "mi_additions"] - \ No newline at end of file From 415827314bab57c8aeb939c1c591003c90ae7981 Mon Sep 17 00:00:00 2001 From: finpaul Date: Mon, 27 Nov 2023 18:32:21 -0700 Subject: [PATCH 3/5] Fixes bug in a couple of variables --- .../credits/non_refundable_credits/mi_income_tax.py | 10 +++++----- .../mi/tax/income/main/mi_income_subject_to_tax.py | 6 +++--- .../gov/states/mi/tax/income/main/mi_taxable_income.py | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py index 6dcc00d30..f2bb556be 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py @@ -14,8 +14,8 @@ class mi_income_tax(Variable): defined_for = StateCode.MI def formula(tax_unit, period, parameters): - imposed = tax_unit("mi_income_tax_imposed_by_other_gov_credit") - historic = tax_unit("mi_historic_preservation_amount") - tax = tax_unit("mi_income_tax_before_credits") - credit = imposed + historic - return max(0, credit - tax) \ No newline at end of file + imposed = tax_unit("mi_income_tax_imposed_by_other_gov_credit") + historic = tax_unit("mi_historic_preservation_amount") + tax = tax_unit("mi_income_tax_before_credits") + credit = imposed + historic + return max(0, credit - tax) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py index 80bad8f8a..731438539 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py @@ -14,7 +14,7 @@ class mi_income_subject_to_tax(Variable): defined_for = StateCode.MI def formula(tax_unit, period, parameters): - total = tax_unit("mi_total_agi") - subtractions = tax_unit("mi_subtractions") + total = tax_unit("mi_total_agi") + subtractions = tax_unit("mi_subtractions") - return max(0, subtractions - total) \ No newline at end of file + return max(0, subtractions - total) \ No newline at end of file diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py index eace15a7f..d36e91abe 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py @@ -10,6 +10,6 @@ class mi_taxable_income(Variable): definition_period = YEAR def formula(tax_unit, period, parameters): - income = tax_unit("mi_income_subject_to_tax") - exemption = tax_unit("mi_exemptions") - return max(0,exemption-income) + income = tax_unit("mi_income_subject_to_tax") + exemption = tax_unit("mi_exemptions") + return max(0,exemption-income) From d03c2cdeb833438d0afa9d14e5c5e78838e78e30 Mon Sep 17 00:00:00 2001 From: finpaul Date: Mon, 27 Nov 2023 18:33:10 -0700 Subject: [PATCH 4/5] Fixes bug in a couple of variables --- .../income/credits/non_refundable_credits/mi_income_tax.py | 2 +- .../gov/states/mi/tax/income/main/mi_income_subject_to_tax.py | 4 ++-- .../gov/states/mi/tax/income/main/mi_taxable_income.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py index f2bb556be..6f6ca2760 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/credits/non_refundable_credits/mi_income_tax.py @@ -18,4 +18,4 @@ def formula(tax_unit, period, parameters): historic = tax_unit("mi_historic_preservation_amount") tax = tax_unit("mi_income_tax_before_credits") credit = imposed + historic - return max(0, credit - tax) \ No newline at end of file + return max(0, credit - tax) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py index 731438539..b33d6e23d 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_income_subject_to_tax.py @@ -16,5 +16,5 @@ class mi_income_subject_to_tax(Variable): def formula(tax_unit, period, parameters): total = tax_unit("mi_total_agi") subtractions = tax_unit("mi_subtractions") - - return max(0, subtractions - total) \ No newline at end of file + + return max(0, subtractions - total) diff --git a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py index d36e91abe..8811d66b8 100644 --- a/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py +++ b/fiscalsim_us/variables/gov/states/mi/tax/income/main/mi_taxable_income.py @@ -12,4 +12,4 @@ class mi_taxable_income(Variable): def formula(tax_unit, period, parameters): income = tax_unit("mi_income_subject_to_tax") exemption = tax_unit("mi_exemptions") - return max(0,exemption-income) + return max(0, exemption - income) From efa5a5a700cf8af88ab321ef2e4d65fd0766241b Mon Sep 17 00:00:00 2001 From: finpaul Date: Mon, 27 Nov 2023 19:03:48 -0700 Subject: [PATCH 5/5] Fixes bug in EITC --- .../gov/states/mi/tax/income/credits/eitc/match.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml b/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml index d541e1446..5d4385bf5 100644 --- a/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml +++ b/fiscalsim_us/parameters/gov/states/mi/tax/income/credits/eitc/match.yaml @@ -12,5 +12,7 @@ values: 2008-01-01: 0.1 2009-01-01: 0.2 2012-01-01: 0.06 - + # Reflected starting with 2023 tax form. + # In 2022, Michigan enacted a supplemental 24% match after tax filing season. + 2022-01-01: 0.3