policyengine-us 1.370.2__py3-none-any.whl → 1.372.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.
Potentially problematic release.
This version of policyengine-us might be problematic. Click here for more details.
- policyengine_us/parameters/gov/bls/cpi/c_cpi_u.yaml +2 -4
- policyengine_us/parameters/gov/bls/cpi/cpi_u.yaml +1 -3
- policyengine_us/parameters/gov/bls/cpi/cpi_w.yaml +2 -17
- policyengine_us/parameters/gov/hhs/uprating.yaml +4 -3
- policyengine_us/parameters/gov/irs/uprating.py +9 -23
- policyengine_us/parameters/gov/ssa/uprating.yaml +7 -4
- policyengine_us/parameters/gov/usda/snap/uprating.yaml +1 -0
- policyengine_us/parameters/uprating_extensions.py +144 -0
- policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration.yaml +1 -1
- policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_eligible.yaml +3 -3
- policyengine_us/tests/policy/baseline/gov/ssa/ssi/ssi_amount_if_eligible.yaml +146 -0
- policyengine_us/tests/policy/baseline/gov/ssa/ssi/ssi_claim_is_joint.yaml +116 -5
- policyengine_us/tests/policy/baseline/gov/ssa/ssi/uncapped_ssi.yaml +4 -18
- policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py +108 -0
- policyengine_us/variables/gov/ssa/ssi/is_ssi_eligible.py +9 -2
- policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py +13 -8
- policyengine_us/variables/gov/ssa/ssi/ssi_claim_is_joint.py +5 -12
- {policyengine_us-1.370.2.dist-info → policyengine_us-1.372.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.370.2.dist-info → policyengine_us-1.372.0.dist-info}/RECORD +22 -19
- {policyengine_us-1.370.2.dist-info → policyengine_us-1.372.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.370.2.dist-info → policyengine_us-1.372.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.370.2.dist-info → policyengine_us-1.372.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -304,14 +304,12 @@ values:
|
|
|
304
304
|
2032-02-01: 203.1 # 2033 value.
|
|
305
305
|
2033-02-01: 207.1 # 2034 value.
|
|
306
306
|
2034-02-01: 211.2 # 2035 value.
|
|
307
|
-
|
|
307
|
+
# Values for 2035-2100 are set programmatically in uprating_extensions.py
|
|
308
308
|
metadata:
|
|
309
|
+
economy: false
|
|
309
310
|
unit: currency-USD
|
|
310
311
|
label: Chained CPI-U
|
|
311
|
-
economy: false
|
|
312
312
|
reference:
|
|
313
|
-
- title: "su.data.0.Current (SUUR0000SA0)"
|
|
314
|
-
href: https://download.bls.gov/pub/time.series/su/su.data.0.Current
|
|
315
313
|
- title: CBO | Tax Parameters and Effective Marginal Tax Rates | June 2024
|
|
316
314
|
# Source: https://www.cbo.gov/data/budget-economic-data#10
|
|
317
315
|
# Row: 159
|
|
@@ -1359,14 +1359,12 @@ values:
|
|
|
1359
1359
|
2032-02-01: 372.7 # 2033 value.
|
|
1360
1360
|
2033-02-01: 381.0 # 2034 value.
|
|
1361
1361
|
2034-02-01: 389.6 # 2035 value.
|
|
1362
|
-
|
|
1362
|
+
# Values for 2035-2100 are set programmatically in uprating_extensions.py
|
|
1363
1363
|
metadata:
|
|
1364
1364
|
unit: currency-USD
|
|
1365
1365
|
label: CPI-U
|
|
1366
1366
|
economy: false
|
|
1367
1367
|
reference:
|
|
1368
|
-
- title: BLS Data Viewer | Consumer Price Index for All Urban Consumers (CPI-U)
|
|
1369
|
-
href: https://beta.bls.gov/dataViewer/view/timeseries/CUUR0000SA0
|
|
1370
1368
|
- title: CBO | Tax Parameters and Effective Marginal Tax Rates | June 2024
|
|
1371
1369
|
# Source: https://www.cbo.gov/data/budget-economic-data#10
|
|
1372
1370
|
# Row: 158
|
|
@@ -1386,27 +1386,12 @@ values:
|
|
|
1386
1386
|
2033-08-01: 377.038 # 2033Q3: 384.9 * 309.141 / 315.587
|
|
1387
1387
|
2033-11-01: 379.193 # 2033Q4: 387.1 * 309.141 / 315.587
|
|
1388
1388
|
2034-02-01: 381.250 # 2034Q1: 389.2 * 309.141 / 315.587
|
|
1389
|
-
|
|
1390
|
-
2034-08-01: 385.561 # 2034Q3: 393.6 * 309.141 / 315.587
|
|
1391
|
-
2034-11-01: 387.716 # 2034Q4: 395.8 * 309.141 / 315.587
|
|
1392
|
-
2035-02-01: 389.871 # 2035Q1: 398.0 * 309.141 / 315.587
|
|
1393
|
-
2035-05-01: 392.026 # 2035Q2: 400.2 * 309.141 / 315.587
|
|
1394
|
-
2035-08-01: 394.279 # 2035Q3: 402.5 * 309.141 / 315.587
|
|
1395
|
-
2035-11-01: 396.434 # 2035Q4: 404.7 * 309.141 / 315.587
|
|
1396
|
-
|
|
1389
|
+
# Values for 2035-2100 are set programmatically in uprating_extensions.py
|
|
1397
1390
|
metadata:
|
|
1398
1391
|
unit: currency-USD
|
|
1399
1392
|
label: CPI-W
|
|
1400
1393
|
economy: false
|
|
1401
1394
|
reference:
|
|
1402
|
-
- title:
|
|
1403
|
-
href: https://beta.bls.gov/dataViewer/view/timeseries/CWUR0000SA0
|
|
1404
|
-
- title: CBO | Tax Parameters and Effective Marginal Tax Rates | June 2024
|
|
1405
|
-
# Source: https://www.cbo.gov/data/budget-economic-data#10
|
|
1406
|
-
# Quarterly: Row 51
|
|
1407
|
-
href: https://www.cbo.gov/system/files/2024-06/51135-2024-06-Economic-Projections.xlsx
|
|
1408
|
-
- title: CBO | Tax Parameters and Effective Marginal Tax Rates | January 2025
|
|
1409
|
-
# Source: https://www.cbo.gov/data/budget-economic-data#10
|
|
1395
|
+
- title: CBO | Economic and Budget Projections | January 2025
|
|
1410
1396
|
# Quarterly: Row 51
|
|
1411
1397
|
href: https://www.cbo.gov/system/files/2025-01/51135-2025-01-Economic-Projections.xlsx
|
|
1412
|
-
|
|
@@ -16,10 +16,11 @@ values:
|
|
|
16
16
|
2033-01-01: 383.9
|
|
17
17
|
2034-01-01: 392.5
|
|
18
18
|
2035-01-01: 401.3
|
|
19
|
+
# Values for 2036-2100 are set programmatically in uprating_extensions.py
|
|
19
20
|
metadata:
|
|
20
|
-
unit: currency-USD
|
|
21
|
-
label: Poverty line uprating
|
|
22
21
|
economy: false
|
|
22
|
+
unit: currency-USD
|
|
23
|
+
label: HHS uprating
|
|
23
24
|
reference:
|
|
24
25
|
- title: 2025 Annual Update of the HHS Poverty Guidelines
|
|
25
26
|
href: https://www.govinfo.gov/app/details/FR-2025-01-17/2025-01377
|
|
@@ -27,4 +28,4 @@ metadata:
|
|
|
27
28
|
href: https://www.federalregister.gov/documents/2024/01/17/2024-00796/annual-update-of-the-hhs-poverty-guidelines
|
|
28
29
|
- title: CBO Budget and Economic Outlook | 2024 to 2034
|
|
29
30
|
# Jan 2025 Economic Projections | 2. Calendar Year | Row 51
|
|
30
|
-
href: https://www.cbo.gov/data/budget-economic-data#4
|
|
31
|
+
href: https://www.cbo.gov/data/budget-economic-data#4
|
|
@@ -1,26 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
from policyengine_core.periods import instant
|
|
1
|
+
"""IRS uprating parameter setup.
|
|
3
2
|
|
|
3
|
+
This module imports the unified uprating extension functionality.
|
|
4
|
+
The actual extension logic is in parameters/uprating_extensions.py.
|
|
5
|
+
"""
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
start = end.offset(-MONTHS_IN_YEAR, MONTH)
|
|
9
|
-
monthly_cpi_values = []
|
|
10
|
-
for month in range(MONTHS_IN_YEAR):
|
|
11
|
-
monthly_cpi_values += [cpi(start.offset(month, MONTH))]
|
|
12
|
-
return sum(monthly_cpi_values) / MONTHS_IN_YEAR
|
|
7
|
+
from policyengine_us.parameters.uprating_extensions import (
|
|
8
|
+
set_all_uprating_parameters as set_irs_uprating_parameter,
|
|
9
|
+
)
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
IRS_UPRATING_START_YEAR = 2010
|
|
18
|
-
IRS_UPRATING_END_YEAR = 2035
|
|
19
|
-
|
|
20
|
-
uprating_index: Parameter = parameters.gov.irs.uprating
|
|
21
|
-
# Note: range is inclusive of start and exclusive of end, so we add 1
|
|
22
|
-
for year in range(IRS_UPRATING_START_YEAR, IRS_UPRATING_END_YEAR + 1):
|
|
23
|
-
irs_cpi = get_irs_cpi(parameters, year - 1)
|
|
24
|
-
uprating_index.update(period=f"year:{year}-01-01:1", value=irs_cpi)
|
|
25
|
-
uprating_index.update(start=instant(f"{year}-01-01"), value=irs_cpi)
|
|
26
|
-
return parameters
|
|
11
|
+
# For backward compatibility, we keep the same function name
|
|
12
|
+
# but it now calls the unified function that handles all uprating parameters
|
|
@@ -4,8 +4,8 @@ values:
|
|
|
4
4
|
2022-01-01: 268.421 # 2021Q3: (267.789 + 268.387 + 269.086) / 3
|
|
5
5
|
2023-01-01: 291.901 # 2022Q3: (292.219 + 291.629 + 291.854) / 3
|
|
6
6
|
2024-01-01: 301.236 # 2023Q3: (299.899 + 301.551 + 302.257) / 3
|
|
7
|
+
2025-01-01: 308.767 # 2024Q3: 2.5% COLA announced by SSA
|
|
7
8
|
# Forecasts from marrying CPI-W actuals with CBO's CPI-U forecast.
|
|
8
|
-
2025-01-01: 310.866 # 2024Q3: 315.6 * 306.199 / 310.989
|
|
9
9
|
2026-01-01: 318.155 # 2025Q3: 323.0 * 306.199 / 310.989
|
|
10
10
|
2027-01-01: 326.149 # 2026Q3: 330.1 * 306.199 / 310.989
|
|
11
11
|
2028-01-01: 332.241 # 2027Q3: 337.3 * 306.199 / 310.989
|
|
@@ -16,10 +16,13 @@ values:
|
|
|
16
16
|
2033-01-01: 370.656 # 2032Q3: 376.3 * 306.199 / 310.989
|
|
17
17
|
2034-01-01: 379.028 # 2033Q3: 384.8 * 306.199 / 310.989
|
|
18
18
|
2035-01-01: 387.598 # 2034Q3: 393.5 * 306.199 / 310.989
|
|
19
|
+
# Values for 2036-2100 are set programmatically in uprating_extensions.py
|
|
19
20
|
metadata:
|
|
21
|
+
economy: false
|
|
20
22
|
unit: currency-USD
|
|
21
23
|
label: SSA uprating
|
|
22
|
-
economy: false
|
|
23
24
|
reference:
|
|
24
|
-
- title:
|
|
25
|
-
href: https://www.ssa.gov/oact/cola/
|
|
25
|
+
- title: Historical values
|
|
26
|
+
href: https://www.ssa.gov/oact/cola/colaseries.html
|
|
27
|
+
- title: CBO Economic Projections, February 2024.
|
|
28
|
+
href: https://www.cbo.gov/publication/59710
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"""Unified script to extend all uprating factors through 2100."""
|
|
2
|
+
|
|
3
|
+
from policyengine_us.model_api import *
|
|
4
|
+
from policyengine_core.periods import instant
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def get_irs_cpi(parameters: ParameterNode, year: int) -> float:
|
|
8
|
+
"""Calculate IRS CPI based on Chained CPI-U average from Sep to Aug."""
|
|
9
|
+
cpi = parameters.gov.bls.cpi.c_cpi_u
|
|
10
|
+
end = instant(f"{year}-08-01")
|
|
11
|
+
start = end.offset(-MONTHS_IN_YEAR, MONTH)
|
|
12
|
+
monthly_cpi_values = []
|
|
13
|
+
for month in range(MONTHS_IN_YEAR):
|
|
14
|
+
monthly_cpi_values += [cpi(start.offset(month, MONTH))]
|
|
15
|
+
return sum(monthly_cpi_values) / MONTHS_IN_YEAR
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def extend_parameter_values(
|
|
19
|
+
parameter: Parameter,
|
|
20
|
+
last_projected_year: int,
|
|
21
|
+
end_year: int,
|
|
22
|
+
period_month: int = 1,
|
|
23
|
+
period_day: int = 1,
|
|
24
|
+
) -> None:
|
|
25
|
+
"""
|
|
26
|
+
Extend a parameter's values from last_projected_year to end_year using
|
|
27
|
+
the growth rate from the last two years of projections.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
parameter: The parameter to extend
|
|
31
|
+
last_projected_year: The last year with actual/projected values
|
|
32
|
+
end_year: The year to extend values through
|
|
33
|
+
period_month: The month for the period (default 1 for January)
|
|
34
|
+
period_day: The day for the period (default 1)
|
|
35
|
+
"""
|
|
36
|
+
# Calculate the growth rate from the last two years of projections
|
|
37
|
+
date_format = f"-{period_month:02d}-{period_day:02d}"
|
|
38
|
+
second_to_last_value = parameter(f"{last_projected_year - 1}{date_format}")
|
|
39
|
+
last_value = parameter(f"{last_projected_year}{date_format}")
|
|
40
|
+
growth_rate = last_value / second_to_last_value
|
|
41
|
+
|
|
42
|
+
# Apply growth rate for years beyond projections
|
|
43
|
+
for year in range(last_projected_year + 1, end_year + 1):
|
|
44
|
+
previous_value = parameter(f"{year - 1}{date_format}")
|
|
45
|
+
new_value = previous_value * growth_rate
|
|
46
|
+
parameter.update(period=f"year:{year}{date_format}:1", value=new_value)
|
|
47
|
+
|
|
48
|
+
# Set the final value for periods after the last year
|
|
49
|
+
final_value = parameter(f"{end_year}{date_format}")
|
|
50
|
+
parameter.update(
|
|
51
|
+
start=instant(f"{end_year}{date_format}"), value=final_value
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def set_all_uprating_parameters(parameters: ParameterNode) -> ParameterNode:
|
|
56
|
+
"""
|
|
57
|
+
Extend all uprating parameters through 2100.
|
|
58
|
+
|
|
59
|
+
This function programmatically extends various uprating factors used
|
|
60
|
+
throughout the US tax and benefit system, including:
|
|
61
|
+
- IRS uprating (based on Chained CPI-U)
|
|
62
|
+
- SNAP uprating (October values)
|
|
63
|
+
- SSA uprating (January values)
|
|
64
|
+
- HHS poverty guideline uprating (January values)
|
|
65
|
+
"""
|
|
66
|
+
END_YEAR = 2100
|
|
67
|
+
|
|
68
|
+
# IRS uprating - special case that computes from CPI
|
|
69
|
+
IRS_UPRATING_START_YEAR = 2010
|
|
70
|
+
IRS_LAST_PROJECTED_YEAR = 2035
|
|
71
|
+
|
|
72
|
+
uprating_index = parameters.gov.irs.uprating
|
|
73
|
+
|
|
74
|
+
# Calculate the growth rate from the last two years of CPI projections
|
|
75
|
+
cpi_second_to_last = get_irs_cpi(parameters, IRS_LAST_PROJECTED_YEAR - 2)
|
|
76
|
+
cpi_last = get_irs_cpi(parameters, IRS_LAST_PROJECTED_YEAR - 1)
|
|
77
|
+
growth_rate = cpi_last / cpi_second_to_last
|
|
78
|
+
|
|
79
|
+
# Apply IRS uprating
|
|
80
|
+
for year in range(IRS_UPRATING_START_YEAR, END_YEAR + 1):
|
|
81
|
+
if year <= IRS_LAST_PROJECTED_YEAR:
|
|
82
|
+
# Use actual CPI values through the last projected year
|
|
83
|
+
irs_cpi = get_irs_cpi(parameters, year - 1)
|
|
84
|
+
else:
|
|
85
|
+
# For all years after LAST_PROJECTED_YEAR, apply the constant growth rate
|
|
86
|
+
irs_cpi = uprating_index(f"{year - 1}-01-01") * growth_rate
|
|
87
|
+
uprating_index.update(period=f"year:{year}-01-01:1", value=irs_cpi)
|
|
88
|
+
uprating_index.update(start=instant(f"{END_YEAR}-01-01"), value=irs_cpi)
|
|
89
|
+
|
|
90
|
+
# SNAP uprating (October values, last projection year 2034)
|
|
91
|
+
extend_parameter_values(
|
|
92
|
+
parameters.gov.usda.snap.uprating,
|
|
93
|
+
last_projected_year=2034,
|
|
94
|
+
end_year=END_YEAR,
|
|
95
|
+
period_month=10,
|
|
96
|
+
period_day=1,
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
# SSA uprating (January values, last projection year 2035)
|
|
100
|
+
extend_parameter_values(
|
|
101
|
+
parameters.gov.ssa.uprating,
|
|
102
|
+
last_projected_year=2035,
|
|
103
|
+
end_year=END_YEAR,
|
|
104
|
+
period_month=1,
|
|
105
|
+
period_day=1,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
# HHS poverty guideline uprating (January values, last projection year 2035)
|
|
109
|
+
extend_parameter_values(
|
|
110
|
+
parameters.gov.hhs.uprating,
|
|
111
|
+
last_projected_year=2035,
|
|
112
|
+
end_year=END_YEAR,
|
|
113
|
+
period_month=1,
|
|
114
|
+
period_day=1,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# CPI-U (February values, last projection year 2034)
|
|
118
|
+
extend_parameter_values(
|
|
119
|
+
parameters.gov.bls.cpi.cpi_u,
|
|
120
|
+
last_projected_year=2034,
|
|
121
|
+
end_year=END_YEAR,
|
|
122
|
+
period_month=2,
|
|
123
|
+
period_day=1,
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
# Chained CPI-U (February values, last projection year 2034)
|
|
127
|
+
extend_parameter_values(
|
|
128
|
+
parameters.gov.bls.cpi.c_cpi_u,
|
|
129
|
+
last_projected_year=2034,
|
|
130
|
+
end_year=END_YEAR,
|
|
131
|
+
period_month=2,
|
|
132
|
+
period_day=1,
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
# CPI-W (February values, last projection year 2034)
|
|
136
|
+
extend_parameter_values(
|
|
137
|
+
parameters.gov.bls.cpi.cpi_w,
|
|
138
|
+
last_projected_year=2034,
|
|
139
|
+
end_year=END_YEAR,
|
|
140
|
+
period_month=2,
|
|
141
|
+
period_day=1,
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
return parameters
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
period: 2022
|
|
3
3
|
input:
|
|
4
4
|
meets_ssi_resource_test: true
|
|
5
|
-
|
|
5
|
+
is_ssi_aged_blind_disabled: true
|
|
6
6
|
output:
|
|
7
7
|
is_ssi_eligible: true
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
period: 2022
|
|
11
11
|
input:
|
|
12
12
|
meets_ssi_resource_test: false
|
|
13
|
-
|
|
13
|
+
is_ssi_aged_blind_disabled: true
|
|
14
14
|
output:
|
|
15
15
|
is_ssi_eligible: false
|
|
16
16
|
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
period: 2022
|
|
19
19
|
input:
|
|
20
20
|
meets_ssi_resource_test: true
|
|
21
|
-
|
|
21
|
+
is_ssi_aged_blind_disabled: false
|
|
22
22
|
output:
|
|
23
23
|
is_ssi_eligible: false
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
- name: Case A, single disabled parent with non eligible dependent child.
|
|
2
|
+
period: 2025-01
|
|
3
|
+
input:
|
|
4
|
+
people:
|
|
5
|
+
person1:
|
|
6
|
+
age: 30
|
|
7
|
+
is_disabled: true
|
|
8
|
+
person2:
|
|
9
|
+
age: 4
|
|
10
|
+
is_tax_unit_dependent: true
|
|
11
|
+
spm_units:
|
|
12
|
+
spm_unit:
|
|
13
|
+
members: [person1, person2]
|
|
14
|
+
households:
|
|
15
|
+
household:
|
|
16
|
+
members: [person1, person2]
|
|
17
|
+
output:
|
|
18
|
+
ssi_amount_if_eligible: [967, 0]
|
|
19
|
+
|
|
20
|
+
- name: Case A1, single disabled parent with a disabled child.
|
|
21
|
+
period: 2025-01
|
|
22
|
+
input:
|
|
23
|
+
people:
|
|
24
|
+
person1:
|
|
25
|
+
age: 30
|
|
26
|
+
is_disabled: true
|
|
27
|
+
is_tax_unit_head: true
|
|
28
|
+
person2:
|
|
29
|
+
age: 4
|
|
30
|
+
is_tax_unit_dependent: true
|
|
31
|
+
is_disabled: true
|
|
32
|
+
spm_units:
|
|
33
|
+
spm_unit:
|
|
34
|
+
members: [person1, person2]
|
|
35
|
+
households:
|
|
36
|
+
household:
|
|
37
|
+
members: [person1, person2]
|
|
38
|
+
output:
|
|
39
|
+
ssi_amount_if_eligible: [967, 967]
|
|
40
|
+
|
|
41
|
+
- name: Case A2, single healthy parent with a disabled child.
|
|
42
|
+
period: 2025-01
|
|
43
|
+
input:
|
|
44
|
+
people:
|
|
45
|
+
person1:
|
|
46
|
+
age: 30
|
|
47
|
+
is_tax_unit_head: true
|
|
48
|
+
person2:
|
|
49
|
+
age: 4
|
|
50
|
+
is_tax_unit_dependent: true
|
|
51
|
+
is_disabled: true
|
|
52
|
+
spm_units:
|
|
53
|
+
spm_unit:
|
|
54
|
+
members: [person1, person2]
|
|
55
|
+
households:
|
|
56
|
+
household:
|
|
57
|
+
members: [person1, person2]
|
|
58
|
+
output:
|
|
59
|
+
ssi_amount_if_eligible: [0, 967]
|
|
60
|
+
|
|
61
|
+
- name: Case B, joint filers, one of them is disabled.
|
|
62
|
+
period: 2025-01
|
|
63
|
+
input:
|
|
64
|
+
people:
|
|
65
|
+
person1:
|
|
66
|
+
age: 30
|
|
67
|
+
is_disabled: true
|
|
68
|
+
person2:
|
|
69
|
+
age: 22
|
|
70
|
+
spm_units:
|
|
71
|
+
spm_unit:
|
|
72
|
+
members: [person1, person2]
|
|
73
|
+
households:
|
|
74
|
+
household:
|
|
75
|
+
members: [person1, person2]
|
|
76
|
+
output:
|
|
77
|
+
ssi_amount_if_eligible: [967, 0]
|
|
78
|
+
|
|
79
|
+
- name: Case B1, joint filers, both of them are disabled.
|
|
80
|
+
period: 2025-01
|
|
81
|
+
input:
|
|
82
|
+
people:
|
|
83
|
+
person1:
|
|
84
|
+
age: 30
|
|
85
|
+
is_disabled: true
|
|
86
|
+
is_tax_unit_head: true
|
|
87
|
+
person2:
|
|
88
|
+
age: 22
|
|
89
|
+
is_disabled: true
|
|
90
|
+
is_tax_unit_spouse: true
|
|
91
|
+
spm_units:
|
|
92
|
+
spm_unit:
|
|
93
|
+
members: [person1, person2]
|
|
94
|
+
households:
|
|
95
|
+
household:
|
|
96
|
+
members: [person1, person2]
|
|
97
|
+
output:
|
|
98
|
+
ssi_amount_if_eligible: [725, 725]
|
|
99
|
+
|
|
100
|
+
- name: Case C, two adults, one eligible and the other ineligible, and a eligible child.
|
|
101
|
+
period: 2025-01
|
|
102
|
+
input:
|
|
103
|
+
people:
|
|
104
|
+
person1:
|
|
105
|
+
age: 30
|
|
106
|
+
is_disabled: true
|
|
107
|
+
is_tax_unit_head: true
|
|
108
|
+
person2:
|
|
109
|
+
age: 22
|
|
110
|
+
person3:
|
|
111
|
+
age: 5
|
|
112
|
+
is_disabled: true
|
|
113
|
+
is_tax_unit_dependent: true
|
|
114
|
+
spm_units:
|
|
115
|
+
spm_unit:
|
|
116
|
+
members: [person1, person2, person3]
|
|
117
|
+
households:
|
|
118
|
+
household:
|
|
119
|
+
members: [person1, person2, person3]
|
|
120
|
+
output:
|
|
121
|
+
ssi_amount_if_eligible: [967, 0, 967]
|
|
122
|
+
|
|
123
|
+
- name: Case C1, joint filers, both head and spouse eligible, and a eligible child.
|
|
124
|
+
period: 2025-01
|
|
125
|
+
input:
|
|
126
|
+
people:
|
|
127
|
+
person1:
|
|
128
|
+
age: 30
|
|
129
|
+
is_disabled: true
|
|
130
|
+
is_tax_unit_head: true
|
|
131
|
+
person2:
|
|
132
|
+
age: 22
|
|
133
|
+
is_disabled: true
|
|
134
|
+
is_tax_unit_spouse: true
|
|
135
|
+
person3:
|
|
136
|
+
age: 5
|
|
137
|
+
is_disabled: true
|
|
138
|
+
is_tax_unit_dependent: true
|
|
139
|
+
spm_units:
|
|
140
|
+
spm_unit:
|
|
141
|
+
members: [person1, person2, person3]
|
|
142
|
+
households:
|
|
143
|
+
household:
|
|
144
|
+
members: [person1, person2, person3]
|
|
145
|
+
output:
|
|
146
|
+
ssi_amount_if_eligible: [725, 725, 967]
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
- name: SSI claim is joint
|
|
1
|
+
- name: Case 1, SSI claim is joint.
|
|
2
2
|
period: 2023
|
|
3
3
|
input:
|
|
4
4
|
people:
|
|
5
5
|
# Single person in a marital unit
|
|
6
6
|
person1:
|
|
7
|
-
|
|
7
|
+
is_disabled: true
|
|
8
8
|
is_tax_unit_head: true
|
|
9
9
|
# Two people in a marital unit, both SSI eligible
|
|
10
10
|
person2:
|
|
11
|
-
|
|
11
|
+
is_disabled: true
|
|
12
12
|
is_tax_unit_head: true
|
|
13
13
|
person3:
|
|
14
|
-
|
|
14
|
+
is_disabled: true
|
|
15
15
|
is_tax_unit_spouse: true
|
|
16
16
|
# Person not eligible for SSI
|
|
17
17
|
person4:
|
|
18
|
-
|
|
18
|
+
is_disabled: false
|
|
19
19
|
is_tax_unit_head: true
|
|
20
20
|
tax_units:
|
|
21
21
|
tax_unit1:
|
|
@@ -33,3 +33,114 @@
|
|
|
33
33
|
members: [person4]
|
|
34
34
|
output:
|
|
35
35
|
ssi_claim_is_joint: [false, true, true, false]
|
|
36
|
+
|
|
37
|
+
- name: Case 2, SSI claim is not joint.
|
|
38
|
+
period: 2023
|
|
39
|
+
input:
|
|
40
|
+
people:
|
|
41
|
+
# Single person in a marital unit
|
|
42
|
+
person1:
|
|
43
|
+
is_disabled: true
|
|
44
|
+
is_tax_unit_head: true
|
|
45
|
+
# Two people in a marital unit, only one SSI eligible
|
|
46
|
+
person2:
|
|
47
|
+
is_disabled: true
|
|
48
|
+
is_tax_unit_head: true
|
|
49
|
+
person3:
|
|
50
|
+
is_disabled: false
|
|
51
|
+
is_tax_unit_spouse: true
|
|
52
|
+
# Person not eligible for SSI
|
|
53
|
+
person4:
|
|
54
|
+
is_disabled: false
|
|
55
|
+
is_tax_unit_head: true
|
|
56
|
+
tax_units:
|
|
57
|
+
tax_unit1:
|
|
58
|
+
members: [person1]
|
|
59
|
+
tax_unit2:
|
|
60
|
+
members: [person2, person3]
|
|
61
|
+
tax_unit3:
|
|
62
|
+
members: [person4]
|
|
63
|
+
marital_units:
|
|
64
|
+
marital_unit1:
|
|
65
|
+
members: [person1]
|
|
66
|
+
marital_unit2:
|
|
67
|
+
members: [person2, person3]
|
|
68
|
+
marital_unit3:
|
|
69
|
+
members: [person4]
|
|
70
|
+
output:
|
|
71
|
+
ssi_claim_is_joint: [false, false, false, false]
|
|
72
|
+
|
|
73
|
+
- name: Case 3, eligible head with an eligible child, not joint.
|
|
74
|
+
period: 2023
|
|
75
|
+
input:
|
|
76
|
+
people:
|
|
77
|
+
person1:
|
|
78
|
+
is_disabled: true
|
|
79
|
+
is_tax_unit_head: true
|
|
80
|
+
person2:
|
|
81
|
+
age: 4
|
|
82
|
+
is_disabled: true
|
|
83
|
+
is_tax_unit_dependent: true
|
|
84
|
+
marital_units:
|
|
85
|
+
marital_unit:
|
|
86
|
+
members: [person1]
|
|
87
|
+
tax_units:
|
|
88
|
+
tax_unit:
|
|
89
|
+
members: [person1, person2]
|
|
90
|
+
output:
|
|
91
|
+
ssi_claim_is_joint: [false, false]
|
|
92
|
+
|
|
93
|
+
- name: Case 4, two adults, one eligible and the other is not, and a eligible child.
|
|
94
|
+
period: 2025-01
|
|
95
|
+
input:
|
|
96
|
+
people:
|
|
97
|
+
person1:
|
|
98
|
+
age: 30
|
|
99
|
+
is_disabled: true
|
|
100
|
+
is_tax_unit_head: true
|
|
101
|
+
person2:
|
|
102
|
+
age: 22
|
|
103
|
+
is_tax_unit_spouse: true
|
|
104
|
+
person3:
|
|
105
|
+
age: 5
|
|
106
|
+
is_disabled: true
|
|
107
|
+
is_tax_unit_dependent: true
|
|
108
|
+
marital_units:
|
|
109
|
+
marital_unit:
|
|
110
|
+
members: [person1, person2]
|
|
111
|
+
spm_units:
|
|
112
|
+
spm_unit:
|
|
113
|
+
members: [person1, person2, person3]
|
|
114
|
+
households:
|
|
115
|
+
household:
|
|
116
|
+
members: [person1, person2, person3]
|
|
117
|
+
output:
|
|
118
|
+
ssi_claim_is_joint: [false, false, false]
|
|
119
|
+
|
|
120
|
+
- name: Case 5, martial unit, both head and spouse eligible, and a eligible child.
|
|
121
|
+
period: 2025-01
|
|
122
|
+
input:
|
|
123
|
+
people:
|
|
124
|
+
person1:
|
|
125
|
+
age: 30
|
|
126
|
+
is_disabled: true
|
|
127
|
+
is_tax_unit_head: true
|
|
128
|
+
person2:
|
|
129
|
+
age: 22
|
|
130
|
+
is_disabled: true
|
|
131
|
+
is_tax_unit_spouse: true
|
|
132
|
+
person3:
|
|
133
|
+
age: 5
|
|
134
|
+
is_disabled: true
|
|
135
|
+
is_tax_unit_dependent: true
|
|
136
|
+
marital_units:
|
|
137
|
+
marital_unit:
|
|
138
|
+
members: [person1, person2]
|
|
139
|
+
spm_units:
|
|
140
|
+
spm_unit:
|
|
141
|
+
members: [person1, person2, person3]
|
|
142
|
+
households:
|
|
143
|
+
household:
|
|
144
|
+
members: [person1, person2, person3]
|
|
145
|
+
output:
|
|
146
|
+
ssi_claim_is_joint: [true, true, false]
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
period: 2022
|
|
3
3
|
input:
|
|
4
4
|
ssi_amount_if_eligible: 100
|
|
5
|
-
|
|
6
|
-
is_ssi_eligible_individual: true
|
|
5
|
+
is_ssi_eligible: true
|
|
7
6
|
ssi_countable_income: 0
|
|
8
7
|
output:
|
|
9
8
|
uncapped_ssi: 100
|
|
@@ -12,8 +11,7 @@
|
|
|
12
11
|
period: 2022
|
|
13
12
|
input:
|
|
14
13
|
ssi_amount_if_eligible: 100
|
|
15
|
-
|
|
16
|
-
is_ssi_eligible_individual: true
|
|
14
|
+
is_ssi_eligible: true
|
|
17
15
|
ssi_countable_income: 99
|
|
18
16
|
output:
|
|
19
17
|
uncapped_ssi: 1
|
|
@@ -22,28 +20,16 @@
|
|
|
22
20
|
period: 2022
|
|
23
21
|
input:
|
|
24
22
|
ssi_amount_if_eligible: 100
|
|
25
|
-
|
|
26
|
-
is_ssi_eligible_individual: true
|
|
23
|
+
is_ssi_eligible: true
|
|
27
24
|
ssi_countable_income: 101
|
|
28
25
|
output:
|
|
29
26
|
uncapped_ssi: -1
|
|
30
27
|
|
|
31
|
-
- name: Fails resource test
|
|
32
|
-
period: 2022
|
|
33
|
-
input:
|
|
34
|
-
ssi_amount_if_eligible: 100
|
|
35
|
-
meets_ssi_resource_test: false
|
|
36
|
-
is_ssi_eligible_individual: true
|
|
37
|
-
ssi_countable_income: 0
|
|
38
|
-
output:
|
|
39
|
-
uncapped_ssi: 0
|
|
40
|
-
|
|
41
28
|
- name: Not eligible
|
|
42
29
|
period: 2022
|
|
43
30
|
input:
|
|
44
31
|
ssi_amount_if_eligible: 100
|
|
45
|
-
|
|
46
|
-
is_ssi_eligible_individual: false
|
|
32
|
+
is_ssi_eligible: false
|
|
47
33
|
ssi_countable_income: 0
|
|
48
34
|
output:
|
|
49
35
|
uncapped_ssi: 0
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"""Test unified uprating extensions through 2100."""
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def test_all_uprating_factors_extend_to_2100():
|
|
5
|
+
"""Test that all uprating factors extend through 2100 with consistent growth rates."""
|
|
6
|
+
from policyengine_us import Microsimulation
|
|
7
|
+
|
|
8
|
+
sim = Microsimulation()
|
|
9
|
+
parameters = sim.tax_benefit_system.parameters
|
|
10
|
+
|
|
11
|
+
# Define all uprating parameters to test with their specific periods
|
|
12
|
+
uprating_params = [
|
|
13
|
+
("IRS", parameters.gov.irs.uprating, "-01-01"),
|
|
14
|
+
("SNAP", parameters.gov.usda.snap.uprating, "-10-01"),
|
|
15
|
+
("SSA", parameters.gov.ssa.uprating, "-01-01"),
|
|
16
|
+
("HHS", parameters.gov.hhs.uprating, "-01-01"),
|
|
17
|
+
("CPI-U", parameters.gov.bls.cpi.cpi_u, "-02-01"),
|
|
18
|
+
("Chained CPI-U", parameters.gov.bls.cpi.c_cpi_u, "-02-01"),
|
|
19
|
+
("CPI-W", parameters.gov.bls.cpi.cpi_w, "-02-01"),
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
for name, param, date_suffix in uprating_params:
|
|
23
|
+
# Test that values exist and are positive for future years
|
|
24
|
+
test_years = [2035, 2050, 2075, 2100]
|
|
25
|
+
values = []
|
|
26
|
+
|
|
27
|
+
for year in test_years:
|
|
28
|
+
value = param(f"{year}{date_suffix}")
|
|
29
|
+
assert (
|
|
30
|
+
value > 0
|
|
31
|
+
), f"No positive {name} uprating value for year {year}"
|
|
32
|
+
values.append(value)
|
|
33
|
+
|
|
34
|
+
# Test that values are monotonically increasing
|
|
35
|
+
for i in range(1, len(values)):
|
|
36
|
+
assert (
|
|
37
|
+
values[i] > values[i - 1]
|
|
38
|
+
), f"{name} uprating should increase from {test_years[i-1]} to {test_years[i]}"
|
|
39
|
+
|
|
40
|
+
# Test that growth is consistent in the extended period
|
|
41
|
+
# Use years after the projection period ends
|
|
42
|
+
year1, year2, year3 = 2040, 2041, 2042
|
|
43
|
+
val1 = param(f"{year1}{date_suffix}")
|
|
44
|
+
val2 = param(f"{year2}{date_suffix}")
|
|
45
|
+
val3 = param(f"{year3}{date_suffix}")
|
|
46
|
+
|
|
47
|
+
growth_rate_1 = val2 / val1
|
|
48
|
+
growth_rate_2 = val3 / val2
|
|
49
|
+
|
|
50
|
+
# Growth rates should be approximately equal (within 0.1%)
|
|
51
|
+
assert (
|
|
52
|
+
abs(growth_rate_1 - growth_rate_2) < 0.001
|
|
53
|
+
), f"{name} growth rate should be consistent: {growth_rate_1:.5f} vs {growth_rate_2:.5f}"
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def test_uprating_growth_rates_are_reasonable():
|
|
57
|
+
"""Test that all uprating growth rates are within reasonable bounds."""
|
|
58
|
+
from policyengine_us import Microsimulation
|
|
59
|
+
|
|
60
|
+
sim = Microsimulation()
|
|
61
|
+
parameters = sim.tax_benefit_system.parameters
|
|
62
|
+
|
|
63
|
+
# Annual growth rates should be between 0.5% and 5% for inflation measures
|
|
64
|
+
min_annual_growth = 1.005
|
|
65
|
+
max_annual_growth = 1.05
|
|
66
|
+
|
|
67
|
+
# Test all uprating parameters
|
|
68
|
+
uprating_params = [
|
|
69
|
+
("IRS", parameters.gov.irs.uprating, "-01-01"),
|
|
70
|
+
("SNAP", parameters.gov.usda.snap.uprating, "-10-01"),
|
|
71
|
+
("SSA", parameters.gov.ssa.uprating, "-01-01"),
|
|
72
|
+
("HHS", parameters.gov.hhs.uprating, "-01-01"),
|
|
73
|
+
("CPI-U", parameters.gov.bls.cpi.cpi_u, "-02-01"),
|
|
74
|
+
("Chained CPI-U", parameters.gov.bls.cpi.c_cpi_u, "-02-01"),
|
|
75
|
+
("CPI-W", parameters.gov.bls.cpi.cpi_w, "-02-01"),
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
year1, year2 = 2050, 2051
|
|
79
|
+
|
|
80
|
+
for name, param, date_suffix in uprating_params:
|
|
81
|
+
value_year1 = param(f"{year1}{date_suffix}")
|
|
82
|
+
value_year2 = param(f"{year2}{date_suffix}")
|
|
83
|
+
growth_rate = value_year2 / value_year1
|
|
84
|
+
|
|
85
|
+
assert (
|
|
86
|
+
min_annual_growth <= growth_rate <= max_annual_growth
|
|
87
|
+
), f"{name} growth rate {growth_rate:.4f} outside reasonable bounds [{min_annual_growth:.3f}, {max_annual_growth:.3f}]"
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def test_cpi_relationships():
|
|
91
|
+
"""Test that CPI indices maintain expected relationships."""
|
|
92
|
+
from policyengine_us import Microsimulation
|
|
93
|
+
|
|
94
|
+
sim = Microsimulation()
|
|
95
|
+
parameters = sim.tax_benefit_system.parameters
|
|
96
|
+
|
|
97
|
+
# Test a few years to ensure relationships are maintained
|
|
98
|
+
test_years = [2040, 2060, 2080, 2100]
|
|
99
|
+
|
|
100
|
+
for year in test_years:
|
|
101
|
+
cpi_u = parameters.gov.bls.cpi.cpi_u(f"{year}-02-01")
|
|
102
|
+
c_cpi_u = parameters.gov.bls.cpi.c_cpi_u(f"{year}-02-01")
|
|
103
|
+
|
|
104
|
+
# Chained CPI-U typically grows slower than regular CPI-U
|
|
105
|
+
# due to substitution effects, but not always
|
|
106
|
+
# Just verify both exist and are positive
|
|
107
|
+
assert cpi_u > 0, f"CPI-U should be positive in {year}"
|
|
108
|
+
assert c_cpi_u > 0, f"Chained CPI-U should be positive in {year}"
|
|
@@ -8,6 +8,13 @@ class is_ssi_eligible(Variable):
|
|
|
8
8
|
definition_period = YEAR
|
|
9
9
|
|
|
10
10
|
def formula(person, period, parameters):
|
|
11
|
+
abd_person = person("is_ssi_aged_blind_disabled", period)
|
|
11
12
|
meets_resource_test = person("meets_ssi_resource_test", period)
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
is_qualified_noncitizen = person("is_ssi_qualified_noncitizen", period)
|
|
14
|
+
immigration_status = person("immigration_status", period)
|
|
15
|
+
is_citizen = (
|
|
16
|
+
immigration_status == immigration_status.possible_values.CITIZEN
|
|
17
|
+
)
|
|
18
|
+
meets_immigration_status = is_qualified_noncitizen | is_citizen
|
|
19
|
+
|
|
20
|
+
return abd_person & meets_resource_test & meets_immigration_status
|
|
@@ -8,14 +8,19 @@ class ssi_amount_if_eligible(Variable):
|
|
|
8
8
|
unit = USD
|
|
9
9
|
definition_period = YEAR
|
|
10
10
|
reference = "https://www.law.cornell.edu/uscode/text/42/1382#b"
|
|
11
|
+
defined_for = "is_ssi_eligible"
|
|
11
12
|
|
|
12
13
|
def formula(person, period, parameters):
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
)
|
|
20
|
-
* MONTHS_IN_YEAR
|
|
14
|
+
p = parameters(period).gov.ssa.ssi.amount
|
|
15
|
+
is_dependent = person("is_tax_unit_dependent", period)
|
|
16
|
+
head_or_spouse_amount = where(
|
|
17
|
+
person("ssi_claim_is_joint", period),
|
|
18
|
+
p.couple / 2,
|
|
19
|
+
p.individual,
|
|
21
20
|
)
|
|
21
|
+
# Adults amount is based on whether it is a joint claim
|
|
22
|
+
# Dependents always use individual amount.
|
|
23
|
+
ssi_per_month = where(
|
|
24
|
+
is_dependent, p.individual, head_or_spouse_amount
|
|
25
|
+
)
|
|
26
|
+
return ssi_per_month * MONTHS_IN_YEAR
|
|
@@ -6,17 +6,10 @@ class ssi_claim_is_joint(Variable):
|
|
|
6
6
|
entity = Person
|
|
7
7
|
label = "SSI claim is joint"
|
|
8
8
|
definition_period = YEAR
|
|
9
|
-
defined_for = "is_ssi_eligible_individual"
|
|
10
9
|
|
|
11
10
|
def formula(person, period, parameters):
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
# include spouses (max of 2 people), not dependents or children.
|
|
18
|
-
# Dependents would be in the same tax_unit or family, but not the same
|
|
19
|
-
# marital_unit. Marital units are defined in entities.py as:
|
|
20
|
-
# "An unmarried person, or a married and co-habiting couple."
|
|
21
|
-
num_in_marriage = person.marital_unit.nb_persons()
|
|
22
|
-
return num_in_marriage == 2
|
|
11
|
+
abd_person = person("is_ssi_aged_blind_disabled", period)
|
|
12
|
+
is_head_or_spouse = person("is_tax_unit_head_or_spouse", period)
|
|
13
|
+
eligible_person = abd_person & is_head_or_spouse
|
|
14
|
+
|
|
15
|
+
return person.marital_unit.sum(eligible_person) > 1
|
|
@@ -8,6 +8,7 @@ policyengine_us/typing.py,sha256=ixLAOFjSnepNEAZ63DhhBZHRw0rBgjH81y_z4hTjhEE,298
|
|
|
8
8
|
policyengine_us/data/__init__.py,sha256=TuwzfG1RS1KzvMptMbpbEfiaRG5RPCXQK5gYBwzDkBc,47
|
|
9
9
|
policyengine_us/data/zip_code_dataset.py,sha256=PvA4Jldyu21XEuJMGRAcNLxjlJnDSJ7iVTBdy2c1Mp8,337
|
|
10
10
|
policyengine_us/parameters/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
11
|
+
policyengine_us/parameters/uprating_extensions.py,sha256=qK945oDjs2UxHVg5fWkVISghsaaqoDk0h_WRxN01hug,5070
|
|
11
12
|
policyengine_us/parameters/calibration/gov/aca/enrollment/state.yaml,sha256=NjN2M7pJxG6q78KR3-I3cIZCVjDayrswc65RISZmetY,1794
|
|
12
13
|
policyengine_us/parameters/calibration/gov/aca/spending/state.yaml,sha256=1kvJIiu-cYEbXPAaBQcOqSE3ShXfALag-1Pdw3sdEes,2018
|
|
13
14
|
policyengine_us/parameters/calibration/gov/cbo/income_by_source.yaml,sha256=xuzSBHECTYR7XwFhVgNrAOy1ffEUO2W0mo6g3MzwU24,6719
|
|
@@ -106,9 +107,9 @@ policyengine_us/parameters/gov/aca/slcsp/max_child_age.yaml,sha256=H0zXuEv7vVUxd
|
|
|
106
107
|
policyengine_us/parameters/gov/aca/spending/state.yaml,sha256=1kvJIiu-cYEbXPAaBQcOqSE3ShXfALag-1Pdw3sdEes,2018
|
|
107
108
|
policyengine_us/parameters/gov/bls/README.md,sha256=mvQn4hzE0XxaeeC-1ifo6jfCYly_3kXBpGAOHIFtrEo,35
|
|
108
109
|
policyengine_us/parameters/gov/bls/cpi/README.md,sha256=ch6EGah8vqYgD4eOPb5NaKp8jD8U00JG5_NxvgrHm-8,29
|
|
109
|
-
policyengine_us/parameters/gov/bls/cpi/c_cpi_u.yaml,sha256=
|
|
110
|
-
policyengine_us/parameters/gov/bls/cpi/cpi_u.yaml,sha256=
|
|
111
|
-
policyengine_us/parameters/gov/bls/cpi/cpi_w.yaml,sha256=
|
|
110
|
+
policyengine_us/parameters/gov/bls/cpi/c_cpi_u.yaml,sha256=ahXQdHFJG4QTdG1PduWEwX9qeIfSy8Trb7KUKNLp_HQ,7671
|
|
111
|
+
policyengine_us/parameters/gov/bls/cpi/cpi_u.yaml,sha256=tpi1qDrQC-Kl8tkQzn5gj17l-59gYTu-6cyzqpq94MQ,27737
|
|
112
|
+
policyengine_us/parameters/gov/bls/cpi/cpi_w.yaml,sha256=Aiv9SIifEtIXEtNpNMWOFz3ELZ0nAJ4dsyaZE3oGmO4,29153
|
|
112
113
|
policyengine_us/parameters/gov/contrib/README.md,sha256=6ug3-8sV30Mlz4uVQbO2nsQ3X0BfLRGpjRPXuD4aUkM,14
|
|
113
114
|
policyengine_us/parameters/gov/contrib/dc_tax_threshold_joint_ratio.yaml,sha256=t-x2bZHeltkqwVZJXrMCOrqCSrRRzUunDOXBIgqAw6w,164
|
|
114
115
|
policyengine_us/parameters/gov/contrib/additional_tax_bracket/bracket.yaml,sha256=QWzfPBK2MwVkNTaH_6q5ebdqanPdIB56iQepvKbKT5A,23686
|
|
@@ -360,7 +361,7 @@ policyengine_us/parameters/gov/fcc/lifeline/amount/standard.yaml,sha256=i94DV8Ow
|
|
|
360
361
|
policyengine_us/parameters/gov/hhs/README.md,sha256=-K3nU8bLJDb5t222i9zQRp2LOhpqtszN_7-Zfi_3PH0,48
|
|
361
362
|
policyengine_us/parameters/gov/hhs/fpg.yaml,sha256=O0GRTHiNjLvpS1kJBZRg5dZtDUwgijEJBZd9qpvp7nM,2619
|
|
362
363
|
policyengine_us/parameters/gov/hhs/index.yaml,sha256=diih4UjZz-5dZSiO89js5pJ-G3PO3kWspE7ybH4kCqk,66
|
|
363
|
-
policyengine_us/parameters/gov/hhs/uprating.yaml,sha256=
|
|
364
|
+
policyengine_us/parameters/gov/hhs/uprating.yaml,sha256=wy33MD3JtpWBCnq6aBjIA7ba-UjGmKCGgbDTxL9es6s,1148
|
|
364
365
|
policyengine_us/parameters/gov/hhs/ccdf/README.md,sha256=5u4-bwFTCDWgj6711QBPRQMoJSUfXBp_o_1UTxITl8Y,37
|
|
365
366
|
policyengine_us/parameters/gov/hhs/ccdf/age_limit.yaml,sha256=f4owI4F6qjaNtyZsjDwFXCfISEISR_piAjqxddc3fi0,293
|
|
366
367
|
policyengine_us/parameters/gov/hhs/ccdf/amount.yaml,sha256=2a8QXjkSjyzj1lsAgno79XU8fngz8YpMxw0xAvp8QSA,17822
|
|
@@ -467,7 +468,7 @@ policyengine_us/parameters/gov/hud/total_tenant_payment/adjusted_income_share.ya
|
|
|
467
468
|
policyengine_us/parameters/gov/hud/total_tenant_payment/income_share.yaml,sha256=9QlMKL43trmMBjsOCns9FTgpqonf3jyuTNsJ4wkOu1c,252
|
|
468
469
|
policyengine_us/parameters/gov/hud/total_tenant_payment/index.yaml,sha256=rHA75ZOkRKkoYkd4zjChiGfJF_G--G2ZfwG3LZLIf6I,85
|
|
469
470
|
policyengine_us/parameters/gov/irs/README.md,sha256=xVPG5PdyT2rCqyo7FYIWJh2RGmYi2iQg-4OM8tGnvuQ,33
|
|
470
|
-
policyengine_us/parameters/gov/irs/uprating.py,sha256=
|
|
471
|
+
policyengine_us/parameters/gov/irs/uprating.py,sha256=jiteQOplsLRbiSw9AR53ZVnf5tPLNCips04jvC6UKA4,438
|
|
471
472
|
policyengine_us/parameters/gov/irs/uprating.yaml,sha256=eWHiY-KVTNKaH4ls-TG0I9ZWX2T46x0kaTY-w55YLzA,167
|
|
472
473
|
policyengine_us/parameters/gov/irs/ald/README.md,sha256=W2ghpaFkMCePzJkUcylIX_glYWcTGV4Cm_pfqU50JPE,28
|
|
473
474
|
policyengine_us/parameters/gov/irs/ald/deductions.yaml,sha256=uRpDXeDB3DeGkXbmbW2VE1LOvvnzPdnLldXbpdpKgcY,2202
|
|
@@ -847,7 +848,7 @@ policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/in
|
|
|
847
848
|
policyengine_us/parameters/gov/simulation/labor_supply_responses/elasticities/substitution.yaml,sha256=q3b4i70HTPpRPbKU95QCRxL0wVxzi9_PRqDhGznd7Cs,1869
|
|
848
849
|
policyengine_us/parameters/gov/ssa/README.md,sha256=Rcxn6NYTRCJYhktw0-I4QxgcDsYYsqCKabBb7EJq4gw,39
|
|
849
850
|
policyengine_us/parameters/gov/ssa/nawi.yaml,sha256=Dbb8NPv7AEmaKPhHgDsWA5D54Q2aJPkr0OSccgDR4bw,4197
|
|
850
|
-
policyengine_us/parameters/gov/ssa/uprating.yaml,sha256=
|
|
851
|
+
policyengine_us/parameters/gov/ssa/uprating.yaml,sha256=qR8giFlpvxYxaeOopHqy8BiGT1OQQEz2X09elmbLNl4,1447
|
|
851
852
|
policyengine_us/parameters/gov/ssa/sga/READme.md,sha256=hQy92h15bvMGYcm66GgW2Q9S-dKjw3JAREixpeoIg4g,31
|
|
852
853
|
policyengine_us/parameters/gov/ssa/sga/blind.yaml,sha256=Rta-kqpG9JNIwTOE7B35sM5IMHsF2yBYPmF4_ILuSBw,599
|
|
853
854
|
policyengine_us/parameters/gov/ssa/sga/non_blind.yaml,sha256=6_3Rt5PEh66K7HJk1APn21cMo0xXBUKnF49o8RPifK8,1189
|
|
@@ -2996,7 +2997,7 @@ policyengine_us/parameters/gov/usda/snap/categorical_eligibility.yaml,sha256=P0R
|
|
|
2996
2997
|
policyengine_us/parameters/gov/usda/snap/expected_contribution.yaml,sha256=G_KHyiV2FlSVEvbM50p4M9c1MqqRRxWXMWI0dD8QGNk,266
|
|
2997
2998
|
policyengine_us/parameters/gov/usda/snap/max_allotment.yaml,sha256=ggXp6e-H_sLHTQEAn5-eFhh_h9rnN-iENMiQhZ8Ya3s,12065
|
|
2998
2999
|
policyengine_us/parameters/gov/usda/snap/takeup_rate.yaml,sha256=7vhUcW-vYntaCgMDtUTejOLFIwB09DL8OXgF4XSpUZg,260
|
|
2999
|
-
policyengine_us/parameters/gov/usda/snap/uprating.yaml,sha256=
|
|
3000
|
+
policyengine_us/parameters/gov/usda/snap/uprating.yaml,sha256=1IaszxANNLlV8niyVYmB1G7Y1tLaehRt3mMbelDDYuI,1028
|
|
3000
3001
|
policyengine_us/parameters/gov/usda/snap/asset_test/limit.yaml,sha256=_50BAmu84RumiXPCgCM4YBjV2drD15QzwQX38A0lhww,3013
|
|
3001
3002
|
policyengine_us/parameters/gov/usda/snap/emergency_allotment/allowed.yaml,sha256=F3wNVVVYi7YZ6R0i73854Dco26REbhMEfpy9HzpdYpw,631
|
|
3002
3003
|
policyengine_us/parameters/gov/usda/snap/emergency_allotment/in_effect.yaml,sha256=scGNcKkui593vmvpQtKr7X6rR1r7QeZTQvIHLvmfByo,2155
|
|
@@ -3514,15 +3515,16 @@ policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/incom
|
|
|
3514
3515
|
policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/labor_supply_behavioral_response.yaml,sha256=FqBkZcYs-EFj-pNtUAtW85ZyGn_riZ3_pH-8DP90ORU,1551
|
|
3515
3516
|
policyengine_us/tests/policy/baseline/gov/simulation/labor_supply_response/substitution_elasticity.yaml,sha256=Cfb3-vmZxtLJdDIimJsByRDqdYh1ds5lBCQVgShDDtQ,2032
|
|
3516
3517
|
policyengine_us/tests/policy/baseline/gov/ssa/ss/never_eligible_for_social_security_benefits.yaml,sha256=-l0F8L_YCNpNfwBtZLxEfPOCPea4ZHfGNAHRw3ozkYk,587
|
|
3517
|
-
policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration.yaml,sha256=
|
|
3518
|
+
policyengine_us/tests/policy/baseline/gov/ssa/ssi/integration.yaml,sha256=q4L7elUM4WmlSF-J0i9rtNd_Cq3uhAvz17vpPooBfdw,1554
|
|
3518
3519
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_aged_blind_disabled.yaml,sha256=tyim2uGywNbV57pL2M6DO2kH1I2lXZS6P2Vab2zyIRA,470
|
|
3519
3520
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_disabled.yaml,sha256=6m105fmpjOism7pvcXSubXjHoiT8e7Lcfpu6NwzxuRo,1244
|
|
3520
|
-
policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_eligible.yaml,sha256=
|
|
3521
|
+
policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_eligible.yaml,sha256=atAjx9vbFCBWwl3zxzauS76WzE2l5YUo1szVrcC7GJY,474
|
|
3521
3522
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_qualified_noncitizen.yaml,sha256=QiRg3QvNVv8J1pOPzTjyWT7OBy3dkzHWMqs6Vlbincs,1124
|
|
3522
3523
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/ssi.yaml,sha256=Ou49cO_GWSCbBGlFrN3b79Xk4wnUSLPA8fwrC7NSEhk,652
|
|
3523
|
-
policyengine_us/tests/policy/baseline/gov/ssa/ssi/
|
|
3524
|
+
policyengine_us/tests/policy/baseline/gov/ssa/ssi/ssi_amount_if_eligible.yaml,sha256=rDd7EeTMiS050o18i8gN5l-u1w1V1N3dh0Mcg31wWhg,3302
|
|
3525
|
+
policyengine_us/tests/policy/baseline/gov/ssa/ssi/ssi_claim_is_joint.yaml,sha256=IxiCuu8BPiq2nT9AX63UCz9f5upZllr8vdb5Mwn8imE,3558
|
|
3524
3526
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/ssi_countable_income.yaml,sha256=m9kaOqgr1Unn9NiJIaPHhVRoKNh-FLyvIAITcM9hmp8,3412
|
|
3525
|
-
policyengine_us/tests/policy/baseline/gov/ssa/ssi/uncapped_ssi.yaml,sha256=
|
|
3527
|
+
policyengine_us/tests/policy/baseline/gov/ssa/ssi/uncapped_ssi.yaml,sha256=oWN1uCK22O9GIal10m4QqTNJmMOWWaY-zyv68so1PVg,1031
|
|
3526
3528
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/eligibility/ssi_marital_both_eligible.yaml,sha256=U2uTvOy9ycwiZc1jiH4jMHl9Rsh90GDAmlxLLZEZZxE,1176
|
|
3527
3529
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/eligibility/income/is_ssi_blind_or_disabled_working_student_exclusion_eligible.yaml,sha256=ac0Zi_A3GWTLlAQnyr5WC-8whjqLbqTUsN3PP3O6nLQ,944
|
|
3528
3530
|
policyengine_us/tests/policy/baseline/gov/ssa/ssi/eligibility/income/ssi_blind_or_disabled_working_student_exclusion.yaml,sha256=zJjJKP8sn3nLxzwioPV3pi5lFJaBDGt3xJuO3gsv5KI,2006
|
|
@@ -5096,6 +5098,7 @@ policyengine_us/tests/policy/baseline/household/income/spm_unit/spm_unit_market_
|
|
|
5096
5098
|
policyengine_us/tests/policy/baseline/household/income/spm_unit/spm_unit_net_income.yaml,sha256=lZorN8LQYPCNpHDriLdLbaJ8vg3kHHK_UIVcbo7tkdk,218
|
|
5097
5099
|
policyengine_us/tests/policy/baseline/household/income/tax_unit/spouse_separate_adjusted_gross_income.yaml,sha256=zNhFBR3IFmCJjnScfTvpVfmUv3Xl-yIXKlFA3pNjwsg,373
|
|
5098
5100
|
policyengine_us/tests/policy/baseline/income/spm_unit_income_decile.yaml,sha256=1wLKnDqXKVBadZKYVGYlA1NpsS8VgHAlnV9JU97IRf4,1263
|
|
5101
|
+
policyengine_us/tests/policy/baseline/parameters/test_uprating_extensions.py,sha256=HVscmchTdhGQZDtIcPezVgQ8zc2b-7WVh8nQ07QcfQc,4253
|
|
5099
5102
|
policyengine_us/tests/policy/contrib/dc_kccatc.yaml,sha256=v4woAJveF3mZH6d4W3xAYlejcTIHTEQZM4nnenGNq-8,1786
|
|
5100
5103
|
policyengine_us/tests/policy/contrib/dc_single_joint_threshold_ratio.yaml,sha256=vDMmkKdvjCtR8uweKDptp1gt05OI78Pm7GoIL0Apxxg,632
|
|
5101
5104
|
policyengine_us/tests/policy/contrib/reported_state_income_tax.yaml,sha256=697RFAYWbmvD4LdQA-RHnIJ8nuu9wwEc2IRejdJ4QAQ,232
|
|
@@ -5767,10 +5770,10 @@ policyengine_us/variables/gov/ssa/ss/social_security_dependents.py,sha256=WN5uln
|
|
|
5767
5770
|
policyengine_us/variables/gov/ssa/ss/social_security_disability.py,sha256=1Jh83oHKbP_noFnOdDq9C6gqasbzed53YM_Ue0ExXDQ,264
|
|
5768
5771
|
policyengine_us/variables/gov/ssa/ss/social_security_retirement.py,sha256=9ohBrN-yMIewjHJvxlz-3vdoqrVmmOqiomQJeqKTBqs,257
|
|
5769
5772
|
policyengine_us/variables/gov/ssa/ss/social_security_survivors.py,sha256=8GuxrIPrHN-psTjkfzp3nvrJXEmbXisKiegkvenOzUg,257
|
|
5770
|
-
policyengine_us/variables/gov/ssa/ssi/is_ssi_eligible.py,sha256=
|
|
5773
|
+
policyengine_us/variables/gov/ssa/ssi/is_ssi_eligible.py,sha256=A6Cxz_7frbiSs9V7r95h3GSw0BkHPT5jN8YtvjyFRpI,771
|
|
5771
5774
|
policyengine_us/variables/gov/ssa/ssi/ssi.py,sha256=5XIl0mU-LRa5FMzK2Dguan_FKZG6GLiT_xD1rkZBRWI,462
|
|
5772
|
-
policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py,sha256=
|
|
5773
|
-
policyengine_us/variables/gov/ssa/ssi/ssi_claim_is_joint.py,sha256=
|
|
5775
|
+
policyengine_us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py,sha256=uxKoHiPPDkUVHL-l6hF-1QzhMcrLv8TOHGA2B-azOvs,884
|
|
5776
|
+
policyengine_us/variables/gov/ssa/ssi/ssi_claim_is_joint.py,sha256=NYwR2LVLV2xf1vbFG0r9ZwhQFVlZ_gLnV_F00RUU6_Y,485
|
|
5774
5777
|
policyengine_us/variables/gov/ssa/ssi/tax_unit_ssi.py,sha256=Gw8nl4n1c86m3gsEboYZ_52Mf8KurWnfnITFKRlMGCk,221
|
|
5775
5778
|
policyengine_us/variables/gov/ssa/ssi/uncapped_ssi.py,sha256=pVr8WqBmSIA0ZcoRGOIV9QrcBcKE05uq8au_B6DMfoI,511
|
|
5776
5779
|
policyengine_us/variables/gov/ssa/ssi/eligibility/income/_apply_ssi_exclusions.py,sha256=1aQNTEUuTVEEVWf_6wFN7-eCwSl4D6G9uyvzAnRBqXA,1806
|
|
@@ -8255,8 +8258,8 @@ policyengine_us/variables/input/farm_income.py,sha256=BEKxYmHNNnWJAAvULl5qZJigy5
|
|
|
8255
8258
|
policyengine_us/variables/input/geography.py,sha256=XmBlgXhzBoLRKk6R8taVZHqUw1eU8MbNeGS9iJ7_l44,4506
|
|
8256
8259
|
policyengine_us/variables/input/self_employment_income.py,sha256=PwsGz8R4lRikKWUYOhsC0qosNNLXq4f5SQmfw4S3mk8,511
|
|
8257
8260
|
policyengine_us/variables/input/self_employment_income_before_lsr.py,sha256=E8fcX9Nlyqz8dziHhQv_euutdmoIwFMMWePUwbbwv_w,379
|
|
8258
|
-
policyengine_us-1.
|
|
8259
|
-
policyengine_us-1.
|
|
8260
|
-
policyengine_us-1.
|
|
8261
|
-
policyengine_us-1.
|
|
8262
|
-
policyengine_us-1.
|
|
8261
|
+
policyengine_us-1.372.0.dist-info/METADATA,sha256=BMPMRc82wu6bbPBTxSkq_UmAGfvWH7jxlRdsNQ-weuk,1649
|
|
8262
|
+
policyengine_us-1.372.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
8263
|
+
policyengine_us-1.372.0.dist-info/entry_points.txt,sha256=MLaqNyNTbReALyKNkde85VkuFFpdPWAcy8VRG1mjczc,57
|
|
8264
|
+
policyengine_us-1.372.0.dist-info/licenses/LICENSE,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
|
|
8265
|
+
policyengine_us-1.372.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|