policyengine-us 1.351.4__py3-none-any.whl → 1.352.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/reforms/reforms.py +0 -7
- policyengine_us/tests/utilities/test_ucgid_hierarchical.py +58 -0
- policyengine_us/variables/household/demographic/geographic/ucgid/ucgid.py +97 -0
- policyengine_us/variables/household/demographic/geographic/ucgid/ucgid_enum.py +551 -0
- policyengine_us/variables/household/demographic/geographic/ucgid/ucgid_str.py +12 -0
- policyengine_us/variables/household/demographic/household/household_count.py +9 -0
- policyengine_us/variables/household/demographic/spm_unit/spm_unit_count.py +9 -0
- policyengine_us/variables/household/demographic/tax_unit/tax_unit_count.py +9 -0
- {policyengine_us-1.351.4.dist-info → policyengine_us-1.352.0.dist-info}/METADATA +1 -1
- {policyengine_us-1.351.4.dist-info → policyengine_us-1.352.0.dist-info}/RECORD +13 -9
- policyengine_us/reforms/second_earner/__init__.py +0 -3
- policyengine_us/reforms/second_earner/second_earner_tax_reform.py +0 -820
- policyengine_us/tests/policy/contrib/second_earner/second_earner_tax_reform.yaml +0 -371
- {policyengine_us-1.351.4.dist-info → policyengine_us-1.352.0.dist-info}/WHEEL +0 -0
- {policyengine_us-1.351.4.dist-info → policyengine_us-1.352.0.dist-info}/entry_points.txt +0 -0
- {policyengine_us-1.351.4.dist-info → policyengine_us-1.352.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
- name: Two people, both with income in the first bracket
|
|
2
|
-
period: 2023
|
|
3
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
4
|
-
input:
|
|
5
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
6
|
-
people:
|
|
7
|
-
person1:
|
|
8
|
-
is_tax_unit_head_or_spouse: true
|
|
9
|
-
taxable_income_person: 20_000
|
|
10
|
-
person2:
|
|
11
|
-
is_tax_unit_head_or_spouse: true
|
|
12
|
-
taxable_income_person: 1_000
|
|
13
|
-
tax_units:
|
|
14
|
-
tax_unit:
|
|
15
|
-
members: [person1, person2]
|
|
16
|
-
capital_gains_excluded_from_taxable_income: 0
|
|
17
|
-
filing_status: JOINT
|
|
18
|
-
output:
|
|
19
|
-
income_tax_main_rates: 2_100
|
|
20
|
-
|
|
21
|
-
- name: Two people, spouse in second single bracket
|
|
22
|
-
period: 2023
|
|
23
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
24
|
-
input:
|
|
25
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
26
|
-
people:
|
|
27
|
-
person1:
|
|
28
|
-
is_tax_unit_head_or_spouse: true
|
|
29
|
-
taxable_income_person: 20_000
|
|
30
|
-
person2:
|
|
31
|
-
is_tax_unit_head_or_spouse: true
|
|
32
|
-
taxable_income_person: 15_000
|
|
33
|
-
tax_units:
|
|
34
|
-
tax_unit:
|
|
35
|
-
members: [person1, person2]
|
|
36
|
-
capital_gains_excluded_from_taxable_income: 0
|
|
37
|
-
filing_status: JOINT
|
|
38
|
-
output:
|
|
39
|
-
income_tax_main_rates: 3_580
|
|
40
|
-
|
|
41
|
-
- name: Two people, spouse in second single bracket - reform not applied
|
|
42
|
-
period: 2023
|
|
43
|
-
input:
|
|
44
|
-
gov.contrib.second_earner_reform.in_effect: false
|
|
45
|
-
people:
|
|
46
|
-
person1:
|
|
47
|
-
is_tax_unit_head_or_spouse: true
|
|
48
|
-
person2:
|
|
49
|
-
is_tax_unit_head_or_spouse: true
|
|
50
|
-
tax_units:
|
|
51
|
-
tax_unit:
|
|
52
|
-
members: [person1, person2]
|
|
53
|
-
capital_gains_excluded_from_taxable_income: 0
|
|
54
|
-
filing_status: JOINT
|
|
55
|
-
taxable_income: 45_000
|
|
56
|
-
output:
|
|
57
|
-
income_tax_main_rates: 4_960
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- name: Spouse with higher income becomes primary earner
|
|
61
|
-
period: 2023
|
|
62
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
63
|
-
input:
|
|
64
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
65
|
-
people:
|
|
66
|
-
person1:
|
|
67
|
-
is_tax_unit_head_or_spouse: true
|
|
68
|
-
taxable_income_person: 20_000
|
|
69
|
-
person2:
|
|
70
|
-
is_tax_unit_head_or_spouse: true
|
|
71
|
-
taxable_income_person: 40_000
|
|
72
|
-
is_primary_earner: true
|
|
73
|
-
tax_units:
|
|
74
|
-
tax_unit:
|
|
75
|
-
members: [person1, person2]
|
|
76
|
-
capital_gains_excluded_from_taxable_income: 0
|
|
77
|
-
filing_status: JOINT
|
|
78
|
-
output:
|
|
79
|
-
income_tax_main_rates: 6_540
|
|
80
|
-
|
|
81
|
-
- name: One person with one dependent taxes as head of household
|
|
82
|
-
period: 2023
|
|
83
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
84
|
-
input:
|
|
85
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
86
|
-
people:
|
|
87
|
-
person1:
|
|
88
|
-
taxable_income_person: 40_000
|
|
89
|
-
person2:
|
|
90
|
-
age: 10
|
|
91
|
-
tax_units:
|
|
92
|
-
tax_unit:
|
|
93
|
-
members: [person1, person2]
|
|
94
|
-
capital_gains_excluded_from_taxable_income: 0
|
|
95
|
-
output:
|
|
96
|
-
income_tax_main_rates: 4_486
|
|
97
|
-
|
|
98
|
-
- name: One person alone is taxed as single
|
|
99
|
-
period: 2023
|
|
100
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
101
|
-
input:
|
|
102
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
103
|
-
people:
|
|
104
|
-
person1:
|
|
105
|
-
taxable_income_person: 15_000
|
|
106
|
-
tax_units:
|
|
107
|
-
tax_unit:
|
|
108
|
-
members: [person1]
|
|
109
|
-
capital_gains_excluded_from_taxable_income: 0
|
|
110
|
-
output:
|
|
111
|
-
income_tax_main_rates: 1_580
|
|
112
|
-
|
|
113
|
-
- name: Joint couple with one dependent, cg exclusion included
|
|
114
|
-
period: 2023
|
|
115
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
116
|
-
input:
|
|
117
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
118
|
-
people:
|
|
119
|
-
person1:
|
|
120
|
-
age: 40
|
|
121
|
-
taxable_income_person: 30_000
|
|
122
|
-
person2:
|
|
123
|
-
age: 40
|
|
124
|
-
taxable_income_person: 15_000
|
|
125
|
-
person3:
|
|
126
|
-
age: 16
|
|
127
|
-
taxable_income_person: 1_000
|
|
128
|
-
tax_units:
|
|
129
|
-
tax_unit:
|
|
130
|
-
members: [person1, person2, person3]
|
|
131
|
-
capital_gains_excluded_from_taxable_income: 2_000
|
|
132
|
-
output:
|
|
133
|
-
income_tax_main_rates: 4_620
|
|
134
|
-
|
|
135
|
-
- name: Integration, joint household with one depedent, reform not applied
|
|
136
|
-
period: 2023
|
|
137
|
-
input:
|
|
138
|
-
gov.contrib.second_earner_reform.in_effect: false
|
|
139
|
-
people:
|
|
140
|
-
person1:
|
|
141
|
-
age: 40
|
|
142
|
-
employment_income: 50_000
|
|
143
|
-
person2:
|
|
144
|
-
age: 40
|
|
145
|
-
employment_income: 40_000
|
|
146
|
-
person3:
|
|
147
|
-
age: 16
|
|
148
|
-
employment_income: 1_000
|
|
149
|
-
tax_units:
|
|
150
|
-
tax_unit:
|
|
151
|
-
members: [person1, person2, person3]
|
|
152
|
-
output:
|
|
153
|
-
adjusted_gross_income: 90_000
|
|
154
|
-
adjusted_gross_income_person: [50_000, 40_000, 0]
|
|
155
|
-
exemptions: 0
|
|
156
|
-
taxable_income_deductions: 27_700
|
|
157
|
-
taxable_income: 62_300
|
|
158
|
-
income_tax_main_rates: 7_036
|
|
159
|
-
|
|
160
|
-
- name: Integration, joint household with one depedent, reform applied
|
|
161
|
-
period: 2023
|
|
162
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
163
|
-
input:
|
|
164
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
165
|
-
people:
|
|
166
|
-
person1:
|
|
167
|
-
age: 40
|
|
168
|
-
employment_income: 50_000
|
|
169
|
-
person2:
|
|
170
|
-
age: 40
|
|
171
|
-
employment_income: 40_000
|
|
172
|
-
person3:
|
|
173
|
-
age: 16
|
|
174
|
-
employment_income: 1_000
|
|
175
|
-
tax_units:
|
|
176
|
-
tax_unit:
|
|
177
|
-
members: [person1, person2, person3]
|
|
178
|
-
output:
|
|
179
|
-
adjusted_gross_income: 90_000
|
|
180
|
-
adjusted_gross_income_person: [50_000, 40_000, 0]
|
|
181
|
-
taxable_income: 62_300
|
|
182
|
-
exemptions: 0
|
|
183
|
-
taxable_income_deductions: 27_700
|
|
184
|
-
taxable_income_deductions_person: [27_700, 13_850, 0]
|
|
185
|
-
taxable_income_person: [22_300, 26_150, 0]
|
|
186
|
-
income_tax_main_rates: 5_154
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
- name: Two people both without income
|
|
190
|
-
period: 2024
|
|
191
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
192
|
-
input:
|
|
193
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
194
|
-
people:
|
|
195
|
-
person1:
|
|
196
|
-
age: 40
|
|
197
|
-
person2:
|
|
198
|
-
age: 40
|
|
199
|
-
tax_units:
|
|
200
|
-
tax_unit:
|
|
201
|
-
members: [person1, person2]
|
|
202
|
-
filing_status: JOINT
|
|
203
|
-
output:
|
|
204
|
-
basic_standard_deduction_person: [29_200, 14_600]
|
|
205
|
-
|
|
206
|
-
- name: Taxable income deductions - standard deduction case
|
|
207
|
-
period: 2024
|
|
208
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
209
|
-
input:
|
|
210
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
211
|
-
people:
|
|
212
|
-
person1:
|
|
213
|
-
age: 40
|
|
214
|
-
earned_income: 50_000
|
|
215
|
-
person2:
|
|
216
|
-
age: 40
|
|
217
|
-
earned_income: 30_000
|
|
218
|
-
tax_units:
|
|
219
|
-
tax_unit:
|
|
220
|
-
members: [person1, person2]
|
|
221
|
-
filing_status: JOINT
|
|
222
|
-
tax_unit_itemizes: false
|
|
223
|
-
output:
|
|
224
|
-
taxable_income_deductions_person: [29_200, 14_600]
|
|
225
|
-
|
|
226
|
-
- name: Taxable income deductions - itemizing case
|
|
227
|
-
period: 2024
|
|
228
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
229
|
-
input:
|
|
230
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
231
|
-
people:
|
|
232
|
-
person1:
|
|
233
|
-
age: 40
|
|
234
|
-
earned_income: 50_000
|
|
235
|
-
person2:
|
|
236
|
-
age: 40
|
|
237
|
-
earned_income: 30_000
|
|
238
|
-
tax_units:
|
|
239
|
-
tax_unit:
|
|
240
|
-
members: [person1, person2]
|
|
241
|
-
filing_status: JOINT
|
|
242
|
-
tax_unit_itemizes: true
|
|
243
|
-
taxable_income_deductions_if_itemizing: 40_000
|
|
244
|
-
output:
|
|
245
|
-
taxable_income_deductions_person: [20_000, 20_000]
|
|
246
|
-
|
|
247
|
-
- name: Integration test - joint household with one dependent
|
|
248
|
-
period: 2024
|
|
249
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
250
|
-
input:
|
|
251
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
252
|
-
people:
|
|
253
|
-
person1: # Head
|
|
254
|
-
age: 40
|
|
255
|
-
employment_income: 50_000
|
|
256
|
-
person2: # Spouse
|
|
257
|
-
age: 40
|
|
258
|
-
employment_income: 30_000
|
|
259
|
-
person3: # Dependent
|
|
260
|
-
age: 16
|
|
261
|
-
employment_income: 1_000
|
|
262
|
-
tax_units:
|
|
263
|
-
tax_unit:
|
|
264
|
-
members: [person1, person2, person3]
|
|
265
|
-
filing_status: JOINT
|
|
266
|
-
output:
|
|
267
|
-
# Income variables
|
|
268
|
-
adjusted_gross_income: 80_000
|
|
269
|
-
adjusted_gross_income_person: [50_000, 30_000, 0]
|
|
270
|
-
taxable_income: 50_800 # AGI minus standard deduction
|
|
271
|
-
taxable_income_person: [20_800, 15_400, 0] # Individual taxable incomes
|
|
272
|
-
# Deduction variables
|
|
273
|
-
basic_standard_deduction: 29_200
|
|
274
|
-
basic_standard_deduction_person: [29_200, 14_600, 0] # Head gets joint, spouse gets single
|
|
275
|
-
taxable_income_deductions: 29_200
|
|
276
|
-
taxable_income_deductions_person: [29_200, 14_600, 0]
|
|
277
|
-
# Tax variables
|
|
278
|
-
income_tax_main_rates: 3_696
|
|
279
|
-
|
|
280
|
-
- name: Capital gains tax test, two people with CG taxes
|
|
281
|
-
period: 2024
|
|
282
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
283
|
-
input:
|
|
284
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
285
|
-
people:
|
|
286
|
-
person1:
|
|
287
|
-
age: 40
|
|
288
|
-
adjusted_net_capital_gain_person: 150_000
|
|
289
|
-
taxable_income_person: 150_000
|
|
290
|
-
is_tax_unit_head_or_spouse: true
|
|
291
|
-
qualified_dividend_income: 11_000
|
|
292
|
-
person2:
|
|
293
|
-
age: 40
|
|
294
|
-
is_tax_unit_head_or_spouse: true
|
|
295
|
-
adjusted_net_capital_gain_person: 100_000
|
|
296
|
-
taxable_income_person: 100_000
|
|
297
|
-
tax_units:
|
|
298
|
-
tax_unit:
|
|
299
|
-
members: [person1, person2]
|
|
300
|
-
filing_status: JOINT
|
|
301
|
-
output:
|
|
302
|
-
capital_gains_tax: 16_338.75
|
|
303
|
-
|
|
304
|
-
- name: AMT test
|
|
305
|
-
period: 2024
|
|
306
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
307
|
-
input:
|
|
308
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
309
|
-
people:
|
|
310
|
-
person1:
|
|
311
|
-
age: 40
|
|
312
|
-
amt_income_person: 150_000
|
|
313
|
-
is_primary_earner: true
|
|
314
|
-
person2:
|
|
315
|
-
age: 40
|
|
316
|
-
amt_income_person: 100_000
|
|
317
|
-
tax_units:
|
|
318
|
-
tax_unit:
|
|
319
|
-
members: [person1, person2]
|
|
320
|
-
filing_status: JOINT
|
|
321
|
-
output:
|
|
322
|
-
alternative_minimum_tax: 8_060
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
- name: Counterfactual integration test - single household with one dependent - reform not applied
|
|
326
|
-
period: 2024
|
|
327
|
-
input:
|
|
328
|
-
gov.contrib.second_earner_reform.in_effect: false
|
|
329
|
-
people:
|
|
330
|
-
person1:
|
|
331
|
-
age: 40
|
|
332
|
-
employment_income: 150_000
|
|
333
|
-
person2:
|
|
334
|
-
age: 10
|
|
335
|
-
tax_units:
|
|
336
|
-
tax_unit:
|
|
337
|
-
members: [person1, person2]
|
|
338
|
-
output:
|
|
339
|
-
# Income variables
|
|
340
|
-
adjusted_gross_income: 150_000
|
|
341
|
-
taxable_income: 128_100
|
|
342
|
-
# Deduction variables
|
|
343
|
-
basic_standard_deduction: 21_900
|
|
344
|
-
taxable_income_deductions: 21_900
|
|
345
|
-
# Tax variables
|
|
346
|
-
income_tax_main_rates: 22_093
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
- name: Integration test - single household with one dependent - nothing should change
|
|
350
|
-
period: 2024
|
|
351
|
-
reforms: policyengine_us.reforms.second_earner.second_earner_tax_reform.second_earner_tax_reform
|
|
352
|
-
input:
|
|
353
|
-
gov.contrib.second_earner_reform.in_effect: true
|
|
354
|
-
people:
|
|
355
|
-
person1:
|
|
356
|
-
age: 40
|
|
357
|
-
employment_income: 150_000
|
|
358
|
-
person2:
|
|
359
|
-
age: 10
|
|
360
|
-
tax_units:
|
|
361
|
-
tax_unit:
|
|
362
|
-
members: [person1, person2]
|
|
363
|
-
output:
|
|
364
|
-
# Income variables
|
|
365
|
-
adjusted_gross_income: 150_000
|
|
366
|
-
taxable_income: 128_100
|
|
367
|
-
# Deduction variables
|
|
368
|
-
basic_standard_deduction: 21_900
|
|
369
|
-
taxable_income_deductions: 21_900
|
|
370
|
-
# Tax variables
|
|
371
|
-
income_tax_main_rates: 22_093
|
|
File without changes
|
|
File without changes
|
|
File without changes
|