Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- bump: minor
changes:
added:
- Add would_file_taxes_voluntarily input variable for voluntary tax filers.
changed:
- Update tax_unit_is_filer to use takes_up_eitc and would_file_taxes_voluntarily propensity variables from microdata.
28 changes: 20 additions & 8 deletions policyengine_us/variables/gov/irs/tax_unit_is_filer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@


class tax_unit_is_filer(Variable):
value_type = float
value_type = bool
entity = TaxUnit
label = "files taxes"
unit = USD
documentation = (
"Whether this tax unit has a non-zero income tax liability."
)
documentation = """
Whether this tax unit files a federal income tax return.

A tax unit files if any of the following apply:
1. They are legally required to file (IRC § 6012)
2. They take up EITC (implying they file to claim refundable credits)
3. They would file voluntarily (state requirements, documentation, habit)

The propensity variables (takes_up_eitc and would_file_taxes_voluntarily)
are assigned during microdata construction.
"""
definition_period = YEAR

"""
Expand Down Expand Up @@ -65,9 +72,14 @@ def formula(tax_unit, period, parameters):
income_over_exemption_amount | unearned_income_over_threshold
)

tax_refund = tax_unit("income_tax", period) < 0
not_required_but_likely_filer = ~required_to_file & tax_refund
# Tax units may file even when not required if:
# 1. They take up EITC (implying they file to claim refundable credits)
# 2. They would file voluntarily (state requirements, documentation, habit)
takes_up_eitc = tax_unit("takes_up_eitc", period)
would_file_voluntarily = tax_unit(
"would_file_taxes_voluntarily", period
)

# (a)(1)(D) is just definitions

return required_to_file | not_required_but_likely_filer
return required_to_file | takes_up_eitc | would_file_voluntarily
14 changes: 14 additions & 0 deletions policyengine_us/variables/gov/irs/would_file_taxes_voluntarily.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from policyengine_us.model_api import *


class would_file_taxes_voluntarily(Variable):
value_type = bool
entity = TaxUnit
label = "would file taxes voluntarily"
documentation = """
Whether this tax unit would file taxes even when not required and not
seeking a refund from refundable credits. Captures filing for reasons
such as state requirements, documentation needs, or habit.
"""
definition_period = YEAR
default_value = False
Loading