policyengine-us 1.449.6__py3-none-any.whl → 1.458.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/age_limit/threshold.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/amount.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/in_effect.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/rate.yaml +9 -0
- policyengine_us/parameters/gov/contrib/states/de/dependent_credit/phaseout/threshold.yaml +23 -0
- policyengine_us/parameters/gov/irs/deductions/qbi/max/reit_ptp_rate.yaml +13 -0
- policyengine_us/parameters/gov/states/ca/chhs/medi_cal_enrollment_freeze/in_effect.yaml +12 -0
- policyengine_us/parameters/gov/states/il/dhs/aabd/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +3 -5
- policyengine_us/parameters/gov/states/il/dhs/tanf/{qualified_noncitizen_status.yaml → qualified_noncitizen_statuses.yaml} +2 -2
- policyengine_us/parameters/gov/states/il/hfs/bcc/eligibility/age.yaml +12 -0
- policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/household_size.yaml +14 -0
- policyengine_us/parameters/gov/states/il/hfs/fpp/eligibility/income_limit.yaml +15 -0
- policyengine_us/parameters/gov/states/il/hfs/mpe/eligibility/income_limit.yaml +13 -0
- policyengine_us/parameters/gov/states/il/hfs/qualified_noncitizen_statuses.yaml +17 -0
- policyengine_us/parameters/gov/states/nj/tax/income/additions.yaml +12 -0
- policyengine_us/parameters/gov/states/nj/tax/income/gross_income_sources.yaml +32 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/amount.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_agi.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/max_child_age.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/at_home_parent/parent_max_earnings.yaml +6 -2
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/amount.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/child_age_threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ctc/reduction/start.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/earned_income/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/military_retirement/rate.yaml +26 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/non_refundable.yaml +5 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/birth_year.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/max.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/retirement/phase_out/threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/ss_benefits/phase_out/threshold.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/in_effect.yaml +2 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/personal_exemption.yaml +5 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/rate.yaml +5 -1
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/phase_out/threshold.yaml +9 -0
- policyengine_us/parameters/gov/states/ut/tax/income/credits/taxpayer/rate.yaml +4 -0
- policyengine_us/parameters/gov/states/ut/tax/income/rate.yaml +3 -0
- policyengine_us/reforms/reforms.py +7 -0
- policyengine_us/reforms/state_dependent_exemptions/repeal_state_dependent_exemptions.py +1 -1
- policyengine_us/reforms/states/de/__init__.py +3 -0
- policyengine_us/reforms/states/de/dependent_credit/de_dependent_credit_reform.py +165 -0
- policyengine_us/tests/policy/baseline/gov/hhs/medicaid/medicaid_enrolled.yaml +105 -0
- policyengine_us/tests/policy/baseline/gov/irs/income/taxable_income/deductions/qbid/qbid_amount.yaml +75 -3
- policyengine_us/tests/policy/baseline/gov/local/ca/la/general_relief/eligible/immigration/la_general_relief_immigration_status_eligible_person.yaml +2 -2
- policyengine_us/tests/policy/baseline/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.yaml +59 -5
- policyengine_us/tests/policy/baseline/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.yaml +2 -10
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.yaml +95 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_eligible.yaml +35 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/il_fpp_income_level.yaml +27 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/fpp/integration.yaml +116 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/il_hfs_immigration_status_eligible.yaml +47 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_eligible.yaml +39 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/il_mpe_income_eligible.yaml +23 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/mpe/integration.yaml +138 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/eligibility/il_smib_eligible.yaml +88 -0
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/smib/integration.yaml +73 -0
- policyengine_us/tests/policy/baseline/gov/states/ky/tax/income/credits/family_size_tax_credit/ky_family_size_tax_credit_rate.yaml +8 -8
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/credits/eitc/nj_eitc.yaml +8 -3
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integration.yaml +137 -0
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/taxable_income/nj_agi.yaml +7 -8
- policyengine_us/tests/policy/baseline/gov/states/tx/tanf/assistance_unit/tx_tanf_categorically_eligible_person.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.yaml +89 -0
- policyengine_us/tests/policy/baseline/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.yaml +50 -0
- policyengine_us/tests/policy/baseline/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.yaml +10 -6
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/territories/pr/tax/income/pr_agi_person.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/usda/snap/snap_min_allotment.yaml +3 -3
- policyengine_us/tests/policy/baseline/household/expense/health/has_bcc_qualifying_coverage.yaml +12 -0
- policyengine_us/tests/policy/contrib/state_dependent_exemptions/repeal_state_dependent_exemptions.yaml +25 -1
- policyengine_us/tests/policy/contrib/states/de/dependent_credit_reform_test.yaml +210 -0
- policyengine_us/variables/gov/hhs/medicaid/costs/medicaid_group.py +2 -2
- policyengine_us/variables/gov/hhs/medicaid/receives_medicaid.py +17 -0
- policyengine_us/variables/gov/irs/income/taxable_income/deductions/qualified_business_income_deduction/qbid_amount.py +16 -6
- policyengine_us/variables/gov/states/ca/chhs/is_ca_medicaid_immigration_status_eligible.py +25 -4
- policyengine_us/variables/gov/states/il/dhs/aabd/eligibility/il_aabd_immigration_status_eligible_person.py +1 -1
- policyengine_us/variables/gov/states/il/dhs/tanf/eligibility/il_tanf_immigration_status_eligible_person.py +1 -1
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_age_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_eligible.py +27 -0
- policyengine_us/variables/gov/states/il/hfs/bcc/eligibility/il_bcc_insurance_eligible.py +29 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_eligible.py +40 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/eligibility/il_fpp_income_eligible.py +18 -0
- policyengine_us/variables/gov/states/il/hfs/fpp/il_fpp_income_level.py +29 -0
- policyengine_us/variables/gov/states/il/hfs/hbwd/eligibility/il_hbwd_eligible.py +1 -1
- policyengine_us/variables/gov/states/il/hfs/{hbwd/eligibility/il_hbwd_immigration_status_eligible.py → il_hfs_immigration_status_eligible.py} +5 -8
- policyengine_us/variables/gov/states/il/hfs/mpe/eligibility/il_mpe_income_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/mpe/il_mpe_eligible.py +15 -0
- policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_categorical_eligible.py +26 -0
- policyengine_us/variables/gov/states/il/hfs/smib/eligibility/il_smib_eligible.py +28 -0
- policyengine_us/variables/gov/states/il/hfs/smib/il_smib.py +21 -0
- policyengine_us/variables/gov/states/il/hfs/smib/il_smib_person.py +24 -0
- policyengine_us/variables/gov/states/ky/tax/income/credits/family_size_credit/ky_family_size_tax_credit_rate.py +1 -1
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_additions.py +8 -3
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_gross_income.py +17 -0
- policyengine_us/variables/gov/states/nj/tax/income/adjusted_gross_income/nj_total_income.py +12 -6
- policyengine_us/variables/gov/states/nj/tax/income/credits/eitc/nj_eitc.py +7 -1
- policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit.py +20 -0
- policyengine_us/variables/gov/states/ut/tax/income/credits/military_retirement_credit/ut_military_retirement_credit_eligible.py +22 -0
- policyengine_us/variables/gov/states/wv/tax/income/credits/liftc/wv_low_income_family_tax_credit_fpg.py +1 -1
- policyengine_us/variables/household/expense/health/has_bcc_qualifying_coverage.py +16 -0
- policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py +1 -1
- policyengine_us/variables/household/income/spm_unit/spm_unit_tenure_type.py +17 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/METADATA +2 -2
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/RECORD +111 -60
- policyengine_us/parameters/gov/states/il/hfs/hbwd/eligibility/qualified_noncitizen_statuses.yaml +0 -21
- policyengine_us/tests/policy/baseline/gov/states/il/hfs/hbwd/eligibility/il_hbwd_immigration_status_eligible.yaml +0 -47
- policyengine_us/tests/policy/baseline/gov/states/nj/tax/income/integation.yaml +0 -57
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.449.6.dist-info → policyengine_us-1.458.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,14 +4,13 @@ from policyengine_us.model_api import *
|
|
|
4
4
|
class qbid_amount(Variable):
|
|
5
5
|
value_type = float
|
|
6
6
|
entity = Person
|
|
7
|
-
label =
|
|
8
|
-
"Per-cap qualified business income deduction amount for each person"
|
|
9
|
-
)
|
|
7
|
+
label = "Per-person qualified business income deduction amount"
|
|
10
8
|
unit = USD
|
|
11
9
|
definition_period = YEAR
|
|
12
10
|
reference = (
|
|
13
|
-
"https://www.law.cornell.edu/uscode/text/26/199A#b_1"
|
|
14
|
-
"https://www.irs.gov/pub/irs-prior/p535--2018.pdf"
|
|
11
|
+
"https://www.law.cornell.edu/uscode/text/26/199A#b_1",
|
|
12
|
+
"https://www.irs.gov/pub/irs-prior/p535--2018.pdf",
|
|
13
|
+
"https://www.irs.gov/pub/irs-pdf/f8995.pdf",
|
|
15
14
|
)
|
|
16
15
|
|
|
17
16
|
def formula(person, period, parameters):
|
|
@@ -53,4 +52,15 @@ class qbid_amount(Variable):
|
|
|
53
52
|
)
|
|
54
53
|
line26 = max_(0, adj_qbid_max - reduction)
|
|
55
54
|
line12 = where(adj_cap < adj_qbid_max, line26, 0)
|
|
56
|
-
|
|
55
|
+
# QBI component (Worksheet 12-A, line 13 / Form 8995 Line 5)
|
|
56
|
+
qbi_component = max_(line11, line12)
|
|
57
|
+
|
|
58
|
+
# REIT/PTP component (Form 8995 Lines 6-9)
|
|
59
|
+
# Per §199A(b)(1)(B), qualified REIT dividends and qualified PTP income
|
|
60
|
+
# receive a 20% deduction WITHOUT W-2 wage or UBIA limitations
|
|
61
|
+
reit_ptp_income = person("qualified_reit_and_ptp_income", period)
|
|
62
|
+
reit_ptp_component = p.max.reit_ptp_rate * max_(0, reit_ptp_income)
|
|
63
|
+
|
|
64
|
+
# Total QBID = QBI component + REIT/PTP component
|
|
65
|
+
# (Form 8995 Line 10: Add lines 5 and 9)
|
|
66
|
+
return qbi_component + reit_ptp_component
|
|
@@ -4,15 +4,36 @@ from policyengine_us.model_api import *
|
|
|
4
4
|
class is_ca_medicaid_immigration_status_eligible(Variable):
|
|
5
5
|
value_type = bool
|
|
6
6
|
entity = Person
|
|
7
|
-
label = "Eligible for California
|
|
7
|
+
label = "Eligible for California Medi-Cal without satisfactory immigration status"
|
|
8
8
|
definition_period = YEAR
|
|
9
|
-
reference =
|
|
9
|
+
reference = (
|
|
10
10
|
"https://california.public.law/codes/welfare_and_institutions_code_section_14007.8",
|
|
11
|
-
|
|
11
|
+
)
|
|
12
|
+
documentation = """
|
|
13
|
+
California Welfare and Institutions Code Section 14007.8 provides
|
|
14
|
+
state-funded Medi-Cal to individuals without satisfactory immigration
|
|
15
|
+
status based on age brackets. Starting January 1, 2026, new enrollments
|
|
16
|
+
for adults 19+ are frozen, but existing enrollees retain coverage.
|
|
17
|
+
"""
|
|
12
18
|
defined_for = StateCode.CA
|
|
13
19
|
|
|
14
20
|
def formula(person, period, parameters):
|
|
15
21
|
p = parameters(period).gov.states.ca.chhs
|
|
16
22
|
age = person("age", period)
|
|
17
23
|
pregnant = person("is_pregnant", period)
|
|
18
|
-
|
|
24
|
+
# Standard eligibility based on age or pregnancy
|
|
25
|
+
standard_eligible = (
|
|
26
|
+
p.eligible_regardless_of_immigration_status.calc(age) | pregnant
|
|
27
|
+
)
|
|
28
|
+
# Continuous coverage only applies after enrollment freeze
|
|
29
|
+
if p.medi_cal_enrollment_freeze.in_effect:
|
|
30
|
+
receives_medicaid = person("receives_medicaid", period)
|
|
31
|
+
# Section 14007.8 is specifically for undocumented immigrants
|
|
32
|
+
immigration_status = person("immigration_status", period)
|
|
33
|
+
undocumented = (
|
|
34
|
+
immigration_status
|
|
35
|
+
== immigration_status.possible_values.UNDOCUMENTED
|
|
36
|
+
)
|
|
37
|
+
continuous_coverage = receives_medicaid & undocumented
|
|
38
|
+
return standard_eligible | continuous_coverage
|
|
39
|
+
return standard_eligible
|
|
@@ -18,6 +18,6 @@ class il_aabd_immigration_status_eligible_person(Variable):
|
|
|
18
18
|
immigration_status_str = immigration_status.decode_to_str()
|
|
19
19
|
has_qualifying_status = np.isin(
|
|
20
20
|
immigration_status_str,
|
|
21
|
-
p.
|
|
21
|
+
p.qualified_noncitizen_statuses,
|
|
22
22
|
)
|
|
23
23
|
return has_qualifying_status | is_citizen
|
|
@@ -15,7 +15,7 @@ class il_tanf_immigration_status_eligible_person(Variable):
|
|
|
15
15
|
immigration_status_str = immigration_status.decode_to_str()
|
|
16
16
|
has_qualifying_status = np.isin(
|
|
17
17
|
immigration_status_str,
|
|
18
|
-
p.
|
|
18
|
+
p.qualified_noncitizen_statuses,
|
|
19
19
|
)
|
|
20
20
|
is_citizen = (
|
|
21
21
|
immigration_status == immigration_status.possible_values.CITIZEN
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_bcc_age_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Health Benefits for Persons with Breast or Cervical Cancer age eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = ("https://www.dhs.state.il.us/page.aspx?item=33528",)
|
|
10
|
+
defined_for = StateCode.IL
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.il.hfs.bcc.eligibility
|
|
14
|
+
age = person("age", period)
|
|
15
|
+
return age < p.age
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_bcc_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Health Benefits for Persons with Breast or Cervical Cancer eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=33528",
|
|
11
|
+
"https://www.dhs.state.il.us/page.aspx?item=33527",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.IL
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
is_female = person("is_female", period)
|
|
17
|
+
age_eligible = person("il_bcc_age_eligible", period)
|
|
18
|
+
immigration_eligible = person(
|
|
19
|
+
"il_hfs_immigration_status_eligible", period
|
|
20
|
+
)
|
|
21
|
+
insurance_eligible = person("il_bcc_insurance_eligible", period)
|
|
22
|
+
return (
|
|
23
|
+
is_female
|
|
24
|
+
& age_eligible
|
|
25
|
+
& immigration_eligible
|
|
26
|
+
& insurance_eligible
|
|
27
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_bcc_insurance_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois BCC insurance eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=33528",
|
|
11
|
+
"https://www.ilga.gov/legislation/ilcs/documents/030500050K5-2.htm",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.IL
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
# Per PM 06-20-02, persons are eligible if they are "uninsured".
|
|
17
|
+
# A person is NOT uninsured (thus ineligible) if they have:
|
|
18
|
+
# - Medicaid eligibility through another pathway
|
|
19
|
+
# - Health coverage that would pay for cancer treatment
|
|
20
|
+
#
|
|
21
|
+
# Exceptions that still qualify as "uninsured":
|
|
22
|
+
# - Coverage with limited benefits
|
|
23
|
+
# - Coverage where lifetime cap has been met/exceeded
|
|
24
|
+
# - Coverage that excludes cancer treatment
|
|
25
|
+
# - Indian Health Service coverage only
|
|
26
|
+
on_medicaid = person("receives_medicaid", period)
|
|
27
|
+
has_qualifying_coverage = person("has_bcc_qualifying_coverage", period)
|
|
28
|
+
has_disqualifying_coverage = on_medicaid | has_qualifying_coverage
|
|
29
|
+
return ~has_disqualifying_coverage
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_fpp_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Family Planning Program eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=146077",
|
|
11
|
+
"https://hfs.illinois.gov/medicalclients/familyplanning.html",
|
|
12
|
+
"https://www.ilga.gov/agencies/JCAR/EntirePart?titlepart=07700635",
|
|
13
|
+
)
|
|
14
|
+
defined_for = StateCode.IL
|
|
15
|
+
|
|
16
|
+
def formula(person, period, parameters):
|
|
17
|
+
# Note: Illinois has two Family Planning programs:
|
|
18
|
+
# 1. Family Planning Presumptive Eligibility (FPPE) - temporary
|
|
19
|
+
# coverage, does NOT require citizenship/immigration status
|
|
20
|
+
# 2. Ongoing Family Planning Program - 1 year coverage, REQUIRES
|
|
21
|
+
# US citizenship or qualified immigrant status
|
|
22
|
+
# This variable models the ongoing program. The only eligibility
|
|
23
|
+
# difference between the two is the immigration requirement.
|
|
24
|
+
|
|
25
|
+
income_eligible = person("il_fpp_income_eligible", period)
|
|
26
|
+
# Must NOT be pregnant (pregnant individuals should apply for
|
|
27
|
+
# maternal health programs instead)
|
|
28
|
+
not_pregnant = ~person("is_pregnant", period)
|
|
29
|
+
# Use shared IL HFS immigration status check
|
|
30
|
+
immigration_eligible = person(
|
|
31
|
+
"il_hfs_immigration_status_eligible", period
|
|
32
|
+
)
|
|
33
|
+
# Cannot be enrolled in other non-spenddown full medical coverage
|
|
34
|
+
not_on_medicaid = ~person("is_medicaid_eligible", period)
|
|
35
|
+
return (
|
|
36
|
+
income_eligible
|
|
37
|
+
& not_pregnant
|
|
38
|
+
& immigration_eligible
|
|
39
|
+
& not_on_medicaid
|
|
40
|
+
)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_fpp_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Family Planning Program income eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = (
|
|
10
|
+
"https://www.dhs.state.il.us/page.aspx?item=146077",
|
|
11
|
+
"https://hfs.illinois.gov/medicalclients/familyplanning.html",
|
|
12
|
+
)
|
|
13
|
+
defined_for = StateCode.IL
|
|
14
|
+
|
|
15
|
+
def formula(person, period, parameters):
|
|
16
|
+
p = parameters(period).gov.states.il.hfs.fpp.eligibility
|
|
17
|
+
income_level = person("il_fpp_income_level", period)
|
|
18
|
+
return income_level <= p.income_limit
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
from policyengine_us.variables.gov.hhs.tax_unit_fpg import fpg
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class il_fpp_income_level(Variable):
|
|
6
|
+
value_type = float
|
|
7
|
+
entity = Person
|
|
8
|
+
label = "Illinois Family Planning Program income level"
|
|
9
|
+
unit = "/1"
|
|
10
|
+
definition_period = YEAR
|
|
11
|
+
reference = (
|
|
12
|
+
"https://www.dhs.state.il.us/page.aspx?item=146077",
|
|
13
|
+
"https://hfs.illinois.gov/medicalclients/familyplanning.html",
|
|
14
|
+
)
|
|
15
|
+
defined_for = StateCode.IL
|
|
16
|
+
|
|
17
|
+
def formula(person, period, parameters):
|
|
18
|
+
# Only the applicant's income is counted (not household income)
|
|
19
|
+
income = person("adjusted_gross_income_person", period)
|
|
20
|
+
|
|
21
|
+
# Fixed household size of 2 per IL FPP policy
|
|
22
|
+
p = parameters(period).gov.states.il.hfs.fpp.eligibility
|
|
23
|
+
|
|
24
|
+
# Calculate FPG using fixed household size
|
|
25
|
+
state_group = person.household("state_group_str", period)
|
|
26
|
+
fpp_fpg = fpg(p.household_size, state_group, period, parameters)
|
|
27
|
+
|
|
28
|
+
# Return income as fraction of FPL
|
|
29
|
+
return income / fpp_fpg
|
|
@@ -20,7 +20,7 @@ class il_hbwd_eligible(Variable):
|
|
|
20
20
|
income_eligible = person("il_hbwd_income_eligible", period)
|
|
21
21
|
asset_eligible = person("il_hbwd_asset_eligible", period)
|
|
22
22
|
immigration_eligible = person(
|
|
23
|
-
"
|
|
23
|
+
"il_hfs_immigration_status_eligible", period
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
return (
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
from policyengine_us.model_api import *
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class il_hfs_immigration_status_eligible(Variable):
|
|
5
5
|
value_type = bool
|
|
6
6
|
entity = Person
|
|
7
|
-
label = "Illinois
|
|
8
|
-
definition_period =
|
|
9
|
-
reference =
|
|
10
|
-
"https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.310",
|
|
11
|
-
"https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.510",
|
|
12
|
-
)
|
|
7
|
+
label = "Illinois HFS programs immigration status eligible"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.310"
|
|
13
10
|
defined_for = StateCode.IL
|
|
14
11
|
|
|
15
12
|
def formula(person, period, parameters):
|
|
16
|
-
p = parameters(period).gov.states.il.hfs
|
|
13
|
+
p = parameters(period).gov.states.il.hfs
|
|
17
14
|
immigration_status = person("immigration_status", period)
|
|
18
15
|
is_citizen = (
|
|
19
16
|
immigration_status == immigration_status.possible_values.CITIZEN
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_mpe_income_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois MPE income eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.66"
|
|
10
|
+
defined_for = StateCode.IL
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
p = parameters(period).gov.states.il.hfs.mpe.eligibility
|
|
14
|
+
income_level = person("medicaid_income_level", period.this_year)
|
|
15
|
+
return income_level <= p.income_limit
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_mpe_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois Medicaid Presumptive Eligibility eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
reference = "https://www.law.cornell.edu/regulations/illinois/Ill-Admin-Code-tit-89-SS-120.66"
|
|
10
|
+
defined_for = StateCode.IL
|
|
11
|
+
|
|
12
|
+
def formula(person, period, parameters):
|
|
13
|
+
is_pregnant = person("is_pregnant", period.this_year)
|
|
14
|
+
income_eligible = person("il_mpe_income_eligible", period)
|
|
15
|
+
return is_pregnant & income_eligible
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_smib_categorical_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois SMIB categorical eligibility"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
documentation = (
|
|
10
|
+
"Eligible for SMIB based on categorical eligibility: "
|
|
11
|
+
"receiving AABD, TANF, or SSI benefits."
|
|
12
|
+
)
|
|
13
|
+
reference = (
|
|
14
|
+
"https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
|
|
15
|
+
"https://www.dhs.state.il.us/page.aspx?item=18685",
|
|
16
|
+
)
|
|
17
|
+
defined_for = StateCode.IL
|
|
18
|
+
|
|
19
|
+
def formula(person, period, parameters):
|
|
20
|
+
# AABD recipient
|
|
21
|
+
is_aabd = person("il_aabd_eligible_person", period)
|
|
22
|
+
# TANF recipient (SPM unit level, check if person is in eligible unit)
|
|
23
|
+
is_tanf = person.spm_unit("il_tanf_eligible", period)
|
|
24
|
+
# SSI recipient
|
|
25
|
+
is_ssi = person("is_ssi_eligible", period)
|
|
26
|
+
return is_aabd | is_tanf | is_ssi
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_smib_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Illinois SMIB Buy-In Program eligible"
|
|
8
|
+
definition_period = MONTH
|
|
9
|
+
documentation = (
|
|
10
|
+
"Eligible for Illinois Supplementary Medical Insurance Benefit "
|
|
11
|
+
"(SMIB) Buy-In Program. The program pays Medicare Part B premiums "
|
|
12
|
+
"for eligible individuals receiving AABD, TANF, SSI, or who qualify "
|
|
13
|
+
"as QMB/SLMB/QI under the Medicare Savings Program."
|
|
14
|
+
)
|
|
15
|
+
reference = (
|
|
16
|
+
"https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
|
|
17
|
+
"https://www.dhs.state.il.us/page.aspx?item=18685",
|
|
18
|
+
)
|
|
19
|
+
defined_for = StateCode.IL
|
|
20
|
+
|
|
21
|
+
def formula(person, period, parameters):
|
|
22
|
+
# Must be Medicare eligible (or meet other SMIB criteria)
|
|
23
|
+
is_medicare = person("is_medicare_eligible", period.this_year)
|
|
24
|
+
# Check categorical eligibility (AABD, TANF, SSI)
|
|
25
|
+
categorical_eligible = person("il_smib_categorical_eligible", period)
|
|
26
|
+
# Note: QMB/SLMB/QI eligibility will come from MSP when that PR merges
|
|
27
|
+
# For now, categorical eligibility is the primary path
|
|
28
|
+
return is_medicare & categorical_eligible
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_smib(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = SPMUnit
|
|
7
|
+
unit = USD
|
|
8
|
+
label = "Illinois SMIB Buy-In Program benefit"
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
documentation = (
|
|
11
|
+
"Illinois Supplementary Medical Insurance Benefit (SMIB) Buy-In "
|
|
12
|
+
"Program. The state pays Medicare Part B premiums for eligible "
|
|
13
|
+
"individuals receiving AABD, TANF, SSI, or who qualify under the "
|
|
14
|
+
"Medicare Savings Program (QMB, SLMB, QI)."
|
|
15
|
+
)
|
|
16
|
+
reference = (
|
|
17
|
+
"https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
|
|
18
|
+
"https://www.dhs.state.il.us/page.aspx?item=18685",
|
|
19
|
+
)
|
|
20
|
+
defined_for = StateCode.IL
|
|
21
|
+
adds = ["il_smib_person"]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class il_smib_person(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
unit = USD
|
|
8
|
+
label = "Illinois SMIB benefit (person)"
|
|
9
|
+
definition_period = MONTH
|
|
10
|
+
documentation = (
|
|
11
|
+
"Illinois Supplementary Medical Insurance Benefit (SMIB) Buy-In "
|
|
12
|
+
"Program benefit. The state pays the Medicare Part B premium for "
|
|
13
|
+
"eligible individuals."
|
|
14
|
+
)
|
|
15
|
+
reference = (
|
|
16
|
+
"https://www.ilga.gov/commission/jcar/admincode/089/089001200D00700R.html",
|
|
17
|
+
"https://www.dhs.state.il.us/page.aspx?item=18685",
|
|
18
|
+
)
|
|
19
|
+
defined_for = "il_smib_eligible"
|
|
20
|
+
|
|
21
|
+
def formula(person, period, parameters):
|
|
22
|
+
# SMIB pays the Part B premium
|
|
23
|
+
# base_part_b_premium is annual, convert to monthly
|
|
24
|
+
return person("base_part_b_premium", period.this_year) / MONTHS_IN_YEAR
|
|
@@ -16,7 +16,7 @@ class ky_family_size_tax_credit_rate(Variable):
|
|
|
16
16
|
income = tax_unit("ky_modified_agi", period)
|
|
17
17
|
fpg = parameters(period).gov.hhs.fpg
|
|
18
18
|
# This will be CONTIGUOUS_US for Kentucky.
|
|
19
|
-
state_group = tax_unit.household("
|
|
19
|
+
state_group = tax_unit.household("state_group_str", period)
|
|
20
20
|
p1 = fpg.first_person[state_group]
|
|
21
21
|
padd = fpg.additional_person[state_group]
|
|
22
22
|
family_size = tax_unit("tax_unit_size", period)
|
|
@@ -4,9 +4,14 @@ from policyengine_us.model_api import *
|
|
|
4
4
|
class nj_additions(Variable):
|
|
5
5
|
value_type = float
|
|
6
6
|
entity = Person
|
|
7
|
-
label = "New Jersey additions to
|
|
7
|
+
label = "New Jersey additions to gross income"
|
|
8
8
|
unit = USD
|
|
9
|
-
documentation = "Additions to
|
|
9
|
+
documentation = "Additions to New Jersey gross income per NJ Statute 54A:5-1. These are amounts added back to gross income that may have been excluded or deducted for federal purposes."
|
|
10
10
|
definition_period = YEAR
|
|
11
|
-
reference =
|
|
11
|
+
reference = (
|
|
12
|
+
"https://law.justia.com/codes/new-jersey/title-54a/section-54a-5-1/",
|
|
13
|
+
"https://www.nj.gov/treasury/taxation/pdf/current/1040.pdf", # Lines 28-38
|
|
14
|
+
)
|
|
12
15
|
defined_for = StateCode.NJ
|
|
16
|
+
|
|
17
|
+
adds = "gov.states.nj.tax.income.additions"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class nj_gross_income(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "New Jersey gross income"
|
|
8
|
+
unit = USD
|
|
9
|
+
documentation = "Gross income calculated from specific income categories per NJ statute, before additions and subtractions. This is built from gross income sources, not federal AGI."
|
|
10
|
+
definition_period = YEAR
|
|
11
|
+
reference = (
|
|
12
|
+
"https://law.justia.com/codes/new-jersey/title-54a/section-54a-5-1/",
|
|
13
|
+
"https://www.nj.gov/treasury/taxation/pdf/current/1040.pdf", # Lines 15-27
|
|
14
|
+
)
|
|
15
|
+
defined_for = StateCode.NJ
|
|
16
|
+
|
|
17
|
+
adds = "gov.states.nj.tax.income.gross_income_sources"
|
|
@@ -4,14 +4,20 @@ from policyengine_us.model_api import *
|
|
|
4
4
|
class nj_total_income(Variable):
|
|
5
5
|
value_type = float
|
|
6
6
|
entity = Person
|
|
7
|
-
label = "New Jersey total income
|
|
7
|
+
label = "New Jersey total income"
|
|
8
8
|
unit = USD
|
|
9
|
+
documentation = "New Jersey total income calculated as gross income plus additions minus subtractions per NJ Statute 54A:5-1. This is the income base before exclusions."
|
|
9
10
|
definition_period = YEAR
|
|
10
|
-
reference =
|
|
11
|
+
reference = (
|
|
12
|
+
"https://law.justia.com/codes/new-jersey/title-54a/section-54a-5-1/",
|
|
13
|
+
"https://www.nj.gov/treasury/taxation/pdf/current/1040.pdf",
|
|
14
|
+
)
|
|
11
15
|
defined_for = StateCode.NJ
|
|
12
16
|
|
|
13
17
|
def formula(person, period, parameters):
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
# NJ Total Income = Gross Income + Additions - Subtractions
|
|
19
|
+
# Per NJ Statute 54A:5-1 and Form NJ-1040
|
|
20
|
+
gross_income = person("nj_gross_income", period)
|
|
21
|
+
additions = person("nj_additions", period)
|
|
22
|
+
subtractions = person("nj_agi_subtractions", period)
|
|
23
|
+
return max_(0, gross_income + additions - subtractions)
|
|
@@ -35,10 +35,16 @@ class nj_eitc(Variable):
|
|
|
35
35
|
& federal_eitc_meets_income_test
|
|
36
36
|
& federal_eitc_takes_up
|
|
37
37
|
)
|
|
38
|
+
childless_eitc_age_eligible = tax_unit(
|
|
39
|
+
"nj_childless_eitc_age_eligible", period
|
|
40
|
+
)
|
|
41
|
+
childless_eitc_eligible = (
|
|
42
|
+
childless_eitc_age_eligible & federal_eitc_meets_income_test
|
|
43
|
+
)
|
|
38
44
|
federal_eitc = select(
|
|
39
45
|
[
|
|
40
46
|
federal_eitc_eligible,
|
|
41
|
-
|
|
47
|
+
childless_eitc_eligible,
|
|
42
48
|
],
|
|
43
49
|
[
|
|
44
50
|
tax_unit("eitc", period),
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ut_military_retirement_credit(Variable):
|
|
5
|
+
value_type = float
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Utah military retirement credit"
|
|
8
|
+
unit = USD
|
|
9
|
+
definition_period = YEAR
|
|
10
|
+
reference = "https://le.utah.gov/xcode/Title59/Chapter10/59-10-S1043.html"
|
|
11
|
+
defined_for = "ut_military_retirement_credit_eligible"
|
|
12
|
+
|
|
13
|
+
def formula(tax_unit, period, parameters):
|
|
14
|
+
military_retirement_pay = add(
|
|
15
|
+
tax_unit, period, ["military_retirement_pay"]
|
|
16
|
+
)
|
|
17
|
+
p = parameters(
|
|
18
|
+
period
|
|
19
|
+
).gov.states.ut.tax.income.credits.military_retirement
|
|
20
|
+
return military_retirement_pay * p.rate
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ut_military_retirement_credit_eligible(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = TaxUnit
|
|
7
|
+
label = "Eligible for the Utah military retirement credit"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://le.utah.gov/xcode/Title59/Chapter10/59-10-S1043.html"
|
|
10
|
+
defined_for = StateCode.UT
|
|
11
|
+
|
|
12
|
+
def formula(tax_unit, period, parameters):
|
|
13
|
+
# Has military retirement pay
|
|
14
|
+
military_retirement_pay = add(
|
|
15
|
+
tax_unit, period, ["military_retirement_pay"]
|
|
16
|
+
)
|
|
17
|
+
has_military_retirement_pay = military_retirement_pay > 0
|
|
18
|
+
# Cannot claim if claiming the retirement credit (code 18)
|
|
19
|
+
claims_retirement_credit = tax_unit(
|
|
20
|
+
"ut_claims_retirement_credit", period
|
|
21
|
+
)
|
|
22
|
+
return has_military_retirement_pay & ~claims_retirement_credit
|
|
@@ -16,7 +16,7 @@ class wv_low_income_family_tax_credit_fpg(Variable):
|
|
|
16
16
|
|
|
17
17
|
# max family size limit
|
|
18
18
|
n = tax_unit("tax_unit_size", period)
|
|
19
|
-
state_group = tax_unit.household("
|
|
19
|
+
state_group = tax_unit.household("state_group_str", period)
|
|
20
20
|
|
|
21
21
|
p_fpg = parameters(period).gov.hhs.fpg
|
|
22
22
|
p1 = p_fpg.first_person[state_group]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class has_bcc_qualifying_coverage(Variable):
|
|
5
|
+
value_type = bool
|
|
6
|
+
entity = Person
|
|
7
|
+
label = "Has health coverage that qualifies for breast/cervical cancer treatment"
|
|
8
|
+
definition_period = YEAR
|
|
9
|
+
reference = "https://www.dhs.state.il.us/page.aspx?item=33528"
|
|
10
|
+
# Per PM 06-20-02, a person is considered "uninsured" for BCC purposes
|
|
11
|
+
# unless they have coverage that would pay for cancer treatment.
|
|
12
|
+
# The following do NOT count as qualifying coverage:
|
|
13
|
+
# - Coverage with limited benefits
|
|
14
|
+
# - Coverage where lifetime cap has been met/exceeded
|
|
15
|
+
# - Coverage that excludes cancer treatment
|
|
16
|
+
# - Indian Health Service coverage only
|
policyengine_us/variables/household/income/person/dividends/qualified_reit_and_ptp_income.py
CHANGED
|
@@ -6,7 +6,7 @@ class qualified_reit_and_ptp_income(Variable):
|
|
|
6
6
|
entity = Person
|
|
7
7
|
label = "REIT and PTP Income"
|
|
8
8
|
unit = USD
|
|
9
|
-
documentation = "REIT and
|
|
9
|
+
documentation = "REIT and Publicly Traded Partnership Income. Part of the QBID calculation."
|
|
10
10
|
definition_period = YEAR
|
|
11
11
|
reference = "https://www.law.cornell.edu/uscode/text/26/1#h_11"
|
|
12
12
|
uprating = "calibration.gov.irs.soi.qualified_dividend_income"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from policyengine_us.model_api import *
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SPMUnitTenureType(Enum):
|
|
5
|
+
OWNER_WITH_MORTGAGE = "owner with mortgage"
|
|
6
|
+
OWNER_WITHOUT_MORTGAGE = "owner without mortgage"
|
|
7
|
+
RENTER = "renter"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class spm_unit_tenure_type(Variable):
|
|
11
|
+
value_type = Enum
|
|
12
|
+
entity = SPMUnit
|
|
13
|
+
possible_values = SPMUnitTenureType
|
|
14
|
+
default_value = SPMUnitTenureType.RENTER
|
|
15
|
+
label = "SPM unit tenure type"
|
|
16
|
+
documentation = "Maps to Census SPM_TENMORTSTATUS codes: 1=owner with mortgage, 2=owner without mortgage, 3=renter"
|
|
17
|
+
definition_period = YEAR
|