Skip to content
Closed
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
4 changes: 2 additions & 2 deletions policyengine_us/reforms/local/ny/mamdani_income_tax.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,21 @@ def formula(tax_unit, period, parameters):
filing_status = tax_unit("filing_status", period)
filing_statuses = filing_status.possible_values
p = parameters(period).gov.local.ny.nyc.tax.income.rates
# Default covers SINGLE
regular_tax = select(
[
filing_status == filing_statuses.SINGLE,
filing_status == filing_statuses.JOINT,
filing_status == filing_statuses.HEAD_OF_HOUSEHOLD,
filing_status == filing_statuses.SURVIVING_SPOUSE,
filing_status == filing_statuses.SEPARATE,
],
[
p.single.calc(taxable_income),
p.joint.calc(taxable_income),
p.head_of_household.calc(taxable_income),
p.surviving_spouse.calc(taxable_income),
p.separate.calc(taxable_income),
],
default=p.single.calc(taxable_income),
)
mamdani_tax = add(tax_unit, period, ["nyc_mamdani_income_tax"])
return regular_tax + mamdani_tax
Expand Down
11 changes: 2 additions & 9 deletions policyengine_us/variables/contrib/taxsim/taxsim_mstat.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,10 @@ def formula(tax_unit, period, parameters):
fstatus = filing_status.possible_values
return select(
[
filing_status == fstatus.SINGLE,
filing_status == fstatus.HEAD_OF_HOUSEHOLD,
filing_status == fstatus.JOINT,
filing_status == fstatus.SEPARATE,
filing_status == fstatus.SURVIVING_SPOUSE,
],
[
1,
1,
2,
6,
8,
],
[2, 6, 8],
default=1, # SINGLE, HEAD_OF_HOUSEHOLD
)
2 changes: 1 addition & 1 deletion policyengine_us/variables/contrib/taxsim/taxsim_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ def formula(tax_unit, period, parameters):
state_code_str == "WA",
],
[21, 22, 33, 48],
default=0,
default=0, # All other states (no state tax calculation)
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ def formula(person, period, parameters):
[
dependent & ~joint,
dependent & joint,
~dependent & ~joint,
~dependent & joint,
],
[
PellGrantHouseholdType.DEPENDENT_SINGLE,
PellGrantHouseholdType.DEPENDENT_NOT_SINGLE,
PellGrantHouseholdType.INDEPENDENT_SINGLE,
PellGrantHouseholdType.INDEPENDENT_NOT_SINGLE,
],
# Default covers INDEPENDENT_SINGLE (~dependent & ~joint)
default=PellGrantHouseholdType.INDEPENDENT_SINGLE,
)
5 changes: 3 additions & 2 deletions policyengine_us/variables/gov/hhs/ccdf/ccdf_age_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,16 @@ def formula(person, period, parameters):
home_based = person("is_ccdf_home_based", period)
return select(
[
((age < 1.5) & ~home_based) | ((age < 2) & home_based),
((age < 2) & ~home_based) | ((age < 3) & home_based),
age < 6,
age < 13,
],
[
CCDFAgeGroup.INFANT,
CCDFAgeGroup.TODDLER,
CCDFAgeGroup.PRESCHOOLER,
CCDFAgeGroup.SCHOOL_AGE,
],
# Default covers INFANT: (age < 1.5 & ~home_based) | (age < 2 & home_based)
# as well as ages 13+
default=CCDFAgeGroup.INFANT,
)
4 changes: 2 additions & 2 deletions policyengine_us/variables/gov/hhs/ccdf/ccdf_market_rate.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ def formula(person, period, parameters):
hours_per_week = hours_per_day * days_per_week
periods_per_week = select(
[
duration_of_care == durations_of_care.WEEKLY,
duration_of_care == durations_of_care.DAILY,
duration_of_care == durations_of_care.PART_DAY,
duration_of_care == durations_of_care.HOURLY,
],
[1, days_per_week, days_per_week, hours_per_week],
[days_per_week, days_per_week, hours_per_week],
default=1, # Covers WEEKLY duration of care
)
return rate_per_period * periods_per_week * WEEKS_IN_YEAR
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,17 @@ def formula(person, period, parameters):
# Core mapping, in precedence order:
return select(
[
~eligible,
disabled | il_hbi_senior,
non_expansion_adult,
expansion_adult | il_hbi_adult,
child | il_hbi_child,
],
[
MedicaidGroup.NONE,
MedicaidGroup.AGED_DISABLED,
MedicaidGroup.NON_EXPANSION_ADULT,
MedicaidGroup.EXPANSION_ADULT,
MedicaidGroup.CHILD,
],
# Default covers ineligible persons (~eligible)
default=MedicaidGroup.NONE,
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,24 @@ def formula(person, period, parameters):

# Build boolean masks for each status
status = filing_status.possible_values
statuses = [
status.SINGLE,
status.JOINT,
status.HEAD_OF_HOUSEHOLD,
status.SURVIVING_SPOUSE,
status.SEPARATE,
]
in_status = [filing_status == s for s in statuses]

p = parameters(period).gov.hhs.medicare.part_b.irmaa

irmaa_amount = select(
in_status,
[
p.single.calc(magi),
filing_status == status.JOINT,
filing_status == status.HEAD_OF_HOUSEHOLD,
filing_status == status.SURVIVING_SPOUSE,
filing_status == status.SEPARATE,
],
[
p.joint.calc(magi),
p.head_of_household.calc(magi),
p.surviving_spouse.calc(magi),
p.separate.calc(magi),
],
# Default covers SINGLE filing status
default=p.single.calc(magi),
)

# IRMAA amounts are monthly, multiply by MONTHS_IN_YEAR to get annual
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ def formula(tax_unit, period, parameters):
filing_statuses = filing_status.possible_values
return select(
[
filing_status == filing_statuses.SINGLE,
filing_status == filing_statuses.JOINT,
filing_status == filing_statuses.SEPARATE,
filing_status == filing_statuses.HEAD_OF_HOUSEHOLD,
filing_status == filing_statuses.SURVIVING_SPOUSE,
],
[
p.amount.single.calc(nyc_taxable_income),
p.amount.joint.calc(nyc_taxable_income),
p.amount.separate.calc(nyc_taxable_income),
p.amount.head_of_household.calc(nyc_taxable_income),
p.amount.surviving_spouse.calc(nyc_taxable_income),
],
# Default covers SINGLE
default=p.amount.single.calc(nyc_taxable_income),
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@ def formula(tax_unit, period, parameters):
rates = parameters(period).gov.local.ny.nyc.tax.income.rates
return select(
[
filing_status == filing_statuses.SINGLE,
filing_status == filing_statuses.JOINT,
filing_status == filing_statuses.HEAD_OF_HOUSEHOLD,
filing_status == filing_statuses.SURVIVING_SPOUSE,
filing_status == filing_statuses.SEPARATE,
],
[
rates.single.calc(taxable_income),
rates.joint.calc(taxable_income),
rates.head_of_household.calc(taxable_income),
rates.surviving_spouse.calc(taxable_income),
rates.separate.calc(taxable_income),
],
# Default covers SINGLE
default=rates.single.calc(taxable_income),
)
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@ def formula(tax_unit, period, parameters):

return select(
[
filing_status == statuses.SINGLE,
filing_status == statuses.SEPARATE,
filing_status == statuses.JOINT,
filing_status == statuses.SURVIVING_SPOUSE,
filing_status == statuses.HEAD_OF_HOUSEHOLD,
],
[
p.single.calc(taxable_income),
p.separate.calc(taxable_income),
p.joint.calc(taxable_income),
p.surviving_spouse.calc(taxable_income),
p.head_of_household.calc(taxable_income),
],
# Default covers SINGLE filing status
default=p.single.calc(taxable_income),
)
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ def formula(person, period, parameters):
p.weighted_average_tuition.technical_institutes,
p.weighted_average_tuition.four_year_college,
],
# Default covers two-year college students (neither technical nor four-year)
default=p.weighted_average_tuition.two_year_college,
)
return min_(uncapped, cap)
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,6 @@ def formula(person, period, parameters):
agi_attributed_to_head, right=True
),
],
# Default of 0 covers any edge cases not explicitly matched
default=0,
)
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,6 @@ def formula(tax_unit, period, parameters):
ArizonaFilingStatus.SINGLE,
ArizonaFilingStatus.SEPARATE,
],
# Default covers HEAD_OF_HOUSEHOLD and SURVIVING_SPOUSE (both map to AZ HEAD_OF_HOUSEHOLD)
default=ArizonaFilingStatus.HEAD_OF_HOUSEHOLD,
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ def formula(tax_unit, period, parameters):
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,
],
[
p.single.calc(income),
p.head_of_household.calc(income),
p.joint.calc(income),
p.separate.calc(income),
],
# Default covers SINGLE filing status
default=p.single.calc(income),
)
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@ def formula(tax_unit, period, parameters):
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,
],
[
p.income_limit.single,
p.income_limit.joint.calc(dependents),
p.income_limit.head_of_household.calc(dependents),
p.income_limit.separate,
],
# Default covers SINGLE filing status
default=p.income_limit.single,
)
return income <= income_limit
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ def formula(tax_unit, period, parameters):

return select(
[
filing_status == statuses.SINGLE,
filing_status == statuses.SEPARATE,
filing_status == statuses.JOINT,
filing_status == statuses.SURVIVING_SPOUSE,
filing_status == statuses.HEAD_OF_HOUSEHOLD,
],
[
p.single.calc(taxable_income),
p.separate.calc(taxable_income),
p.joint.calc(taxable_income),
p.surviving_spouse.calc(taxable_income),
p.head_of_household.calc(taxable_income),
],
# Default covers SINGLE filing status
default=p.single.calc(taxable_income),
)
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,19 @@ def formula(tax_unit, period, parameters):
federal_ctc = tax_unit("co_federal_ctc", period)
rate = select(
[
filing_status == statuses.SINGLE,
filing_status == statuses.JOINT,
filing_status == statuses.SEPARATE,
filing_status == statuses.SURVIVING_SPOUSE,
filing_status == statuses.HEAD_OF_HOUSEHOLD,
],
[
p.rate.single.calc(agi, right=True),
p.rate.joint.calc(agi, right=True),
p.rate.separate.calc(agi, right=True),
p.rate.surviving_spouse.calc(agi, right=True),
p.rate.head_of_household.calc(agi, right=True),
],
# Default covers SINGLE filing status
default=p.rate.single.calc(agi, right=True),
)
return rate * federal_ctc
else:
Expand All @@ -53,18 +53,18 @@ def formula(tax_unit, period, parameters):
eligible_children = tax_unit.sum(eligible_child)
amount_per_child = select(
[
filing_status == statuses.SINGLE,
filing_status == statuses.JOINT,
filing_status == statuses.SEPARATE,
filing_status == statuses.SURVIVING_SPOUSE,
filing_status == statuses.HEAD_OF_HOUSEHOLD,
],
[
p.amount.single.calc(agi, right=True),
p.amount.joint.calc(agi, right=True),
p.amount.separate.calc(agi, right=True),
p.amount.surviving_spouse.calc(agi, right=True),
p.amount.head_of_household.calc(agi, right=True),
],
# Default covers SINGLE filing status
default=p.amount.single.calc(agi, right=True),
)
return amount_per_child * eligible_children
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ def formula(tax_unit, period, parameters):

return select(
[
filing_status == status.SINGLE,
filing_status == status.JOINT,
filing_status == status.SEPARATE,
filing_status == status.SURVIVING_SPOUSE,
filing_status == status.HEAD_OF_HOUSEHOLD,
],
[
p.single.calc(agi, right=True),
p.joint.calc(agi, right=True),
p.separate.calc(agi, right=True),
p.surviving_spouse.calc(agi, right=True),
p.head_of_household.calc(agi, right=True),
],
# Default covers SINGLE filing status
default=p.single.calc(agi, right=True),
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@ def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.ct.tax.income.rates
itax_before_personal_credits = select(
[
filing_status == status.SINGLE,
filing_status == status.JOINT,
filing_status == status.SEPARATE,
filing_status == status.SURVIVING_SPOUSE,
filing_status == status.HEAD_OF_HOUSEHOLD,
],
[
p.single.calc(taxable_income),
p.joint.calc(taxable_income),
p.separate.calc(taxable_income),
p.surviving_spouse.calc(taxable_income),
p.head_of_household.calc(taxable_income),
],
# Default covers SINGLE filing status
default=p.single.calc(taxable_income),
)
add_back = tax_unit("ct_income_tax_phase_out_add_back", period)
tax_recapture = tax_unit("ct_income_tax_recapture", period)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@ def formula(tax_unit, period, parameters):
income = tax_unit("ga_taxable_income", period)
return select(
[
filing_status == status.SINGLE,
filing_status == status.SEPARATE,
filing_status == status.JOINT,
filing_status == status.HEAD_OF_HOUSEHOLD,
filing_status == status.SURVIVING_SPOUSE,
],
[
p.single.calc(income),
p.separate.calc(income),
p.joint.calc(income),
p.head_of_household.calc(income),
p.surviving_spouse.calc(income),
],
# Default covers SINGLE
default=p.single.calc(income),
)
Loading
Loading