taxcalc 4.2.1__py3-none-any.whl → 4.3.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.
Files changed (123) hide show
  1. taxcalc/__init__.py +1 -1
  2. taxcalc/assumptions/ASSUMPTIONS.md +53 -0
  3. taxcalc/assumptions/README.md +17 -0
  4. taxcalc/assumptions/economic_assumptions_template.json +77 -0
  5. taxcalc/calcfunctions.py +7 -4
  6. taxcalc/data.py +10 -5
  7. taxcalc/policy.py +1 -1
  8. taxcalc/policy_current_law.json +4649 -288
  9. taxcalc/records.py +20 -15
  10. taxcalc/reforms/2017_law.json +125 -0
  11. taxcalc/reforms/2017_law.out.csv +10 -0
  12. taxcalc/reforms/ARPA.json +78 -0
  13. taxcalc/reforms/ARPA.out.csv +10 -0
  14. taxcalc/reforms/BrownKhanna.json +23 -0
  15. taxcalc/reforms/BrownKhanna.out.csv +10 -0
  16. taxcalc/reforms/CARES.json +40 -0
  17. taxcalc/reforms/CARES.out.csv +10 -0
  18. taxcalc/reforms/ConsolidatedAppropriationsAct2021.json +15 -0
  19. taxcalc/reforms/ConsolidatedAppropriationsAct2021.out.csv +10 -0
  20. taxcalc/reforms/Larson2019.json +36 -0
  21. taxcalc/reforms/Larson2019.out.csv +10 -0
  22. taxcalc/reforms/README.md +22 -0
  23. taxcalc/reforms/REFORMS.md +92 -0
  24. taxcalc/reforms/Renacci.json +61 -0
  25. taxcalc/reforms/Renacci.out.csv +10 -0
  26. taxcalc/reforms/SandersDeFazio.json +15 -0
  27. taxcalc/reforms/SandersDeFazio.out.csv +10 -0
  28. taxcalc/reforms/TCJA.json +160 -0
  29. taxcalc/reforms/TCJA.md +48 -0
  30. taxcalc/reforms/TCJA.out.csv +10 -0
  31. taxcalc/reforms/Trump2016.json +71 -0
  32. taxcalc/reforms/Trump2016.out.csv +10 -0
  33. taxcalc/reforms/Trump2017.json +51 -0
  34. taxcalc/reforms/Trump2017.out.csv +10 -0
  35. taxcalc/reforms/archive/Clinton2016.json +56 -0
  36. taxcalc/reforms/archive/RyanBrady.json +104 -0
  37. taxcalc/reforms/archive/TCJA_House.json +144 -0
  38. taxcalc/reforms/archive/TCJA_House_Amended.json +152 -0
  39. taxcalc/reforms/archive/TCJA_Reconciliation.json +187 -0
  40. taxcalc/reforms/archive/TCJA_Senate.json +116 -0
  41. taxcalc/reforms/archive/TCJA_Senate_111417.json +169 -0
  42. taxcalc/reforms/archive/TCJA_Senate_120117.json +174 -0
  43. taxcalc/reforms/cases.csv +10 -0
  44. taxcalc/reforms/clp.out.csv +10 -0
  45. taxcalc/reforms/ext.json +59 -0
  46. taxcalc/reforms/growfactors_ext.csv +65 -0
  47. taxcalc/reforms/ptaxes0.json +37 -0
  48. taxcalc/reforms/ptaxes0.out.csv +10 -0
  49. taxcalc/reforms/ptaxes1.json +21 -0
  50. taxcalc/reforms/ptaxes1.out.csv +10 -0
  51. taxcalc/reforms/ptaxes2.json +18 -0
  52. taxcalc/reforms/ptaxes2.out.csv +10 -0
  53. taxcalc/reforms/ptaxes3.json +28 -0
  54. taxcalc/reforms/ptaxes3.out.csv +10 -0
  55. taxcalc/taxcalcio.py +44 -22
  56. taxcalc/tests/benefits_expect.csv +169 -0
  57. taxcalc/tests/cmpi_cps_expect.txt +132 -0
  58. taxcalc/tests/cmpi_puf_expect.txt +132 -0
  59. taxcalc/tests/conftest.py +143 -0
  60. taxcalc/tests/cpscsv_agg_expect.csv +26 -0
  61. taxcalc/tests/puf_var_correl_coeffs_2016.csv +80 -0
  62. taxcalc/tests/puf_var_wght_means_by_year.csv +80 -0
  63. taxcalc/tests/pufcsv_agg_expect.csv +26 -0
  64. taxcalc/tests/pufcsv_mtr_expect.txt +63 -0
  65. taxcalc/tests/reforms.json +649 -0
  66. taxcalc/tests/reforms_expect.csv +65 -0
  67. taxcalc/tests/test_4package.py +67 -0
  68. taxcalc/tests/test_benefits.py +86 -0
  69. taxcalc/tests/test_calcfunctions.py +871 -0
  70. taxcalc/tests/test_calculator.py +1021 -0
  71. taxcalc/tests/test_compare.py +336 -0
  72. taxcalc/tests/test_compatible_data.py +338 -0
  73. taxcalc/tests/test_consumption.py +144 -0
  74. taxcalc/tests/test_cpscsv.py +163 -0
  75. taxcalc/tests/test_data.py +133 -0
  76. taxcalc/tests/test_decorators.py +332 -0
  77. taxcalc/tests/test_growdiff.py +102 -0
  78. taxcalc/tests/test_growfactors.py +94 -0
  79. taxcalc/tests/test_parameters.py +617 -0
  80. taxcalc/tests/test_policy.py +1557 -0
  81. taxcalc/tests/test_puf_var_stats.py +194 -0
  82. taxcalc/tests/test_pufcsv.py +385 -0
  83. taxcalc/tests/test_records.py +234 -0
  84. taxcalc/tests/test_reforms.py +386 -0
  85. taxcalc/tests/test_responses.py +41 -0
  86. taxcalc/tests/test_taxcalcio.py +755 -0
  87. taxcalc/tests/test_utils.py +792 -0
  88. taxcalc/validation/CSV_INPUT_VARS.md +29 -0
  89. taxcalc/validation/CSV_OUTPUT_VARS.md +63 -0
  90. taxcalc/validation/README.md +68 -0
  91. taxcalc/validation/taxsim35/Differences_Explained.md +54 -0
  92. taxcalc/validation/taxsim35/README.md +139 -0
  93. taxcalc/validation/taxsim35/expected_differences/a17-taxdiffs-expect.csv +25 -0
  94. taxcalc/validation/taxsim35/expected_differences/a18-taxdiffs-expect.csv +25 -0
  95. taxcalc/validation/taxsim35/expected_differences/a19-taxdiffs-expect.csv +25 -0
  96. taxcalc/validation/taxsim35/expected_differences/a20-taxdiffs-expect.csv +25 -0
  97. taxcalc/validation/taxsim35/expected_differences/a21-taxdiffs-expect.csv +25 -0
  98. taxcalc/validation/taxsim35/expected_differences/b17-taxdiffs-expect.csv +25 -0
  99. taxcalc/validation/taxsim35/expected_differences/b18-taxdiffs-expect.csv +25 -0
  100. taxcalc/validation/taxsim35/expected_differences/b19-taxdiffs-expect.csv +25 -0
  101. taxcalc/validation/taxsim35/expected_differences/b20-taxdiffs-expect.csv +25 -0
  102. taxcalc/validation/taxsim35/expected_differences/b21-taxdiffs-expect.csv +25 -0
  103. taxcalc/validation/taxsim35/expected_differences/c17-taxdiffs-expect.csv +25 -0
  104. taxcalc/validation/taxsim35/expected_differences/c18-taxdiffs-expect.csv +25 -0
  105. taxcalc/validation/taxsim35/expected_differences/c19-taxdiffs-expect.csv +25 -0
  106. taxcalc/validation/taxsim35/input_setup.py +67 -0
  107. taxcalc/validation/taxsim35/main_comparison.py +183 -0
  108. taxcalc/validation/taxsim35/prepare_taxcalc_input.py +161 -0
  109. taxcalc/validation/taxsim35/process_taxcalc_output.py +140 -0
  110. taxcalc/validation/taxsim35/taxsim_emulation.json +49 -0
  111. taxcalc/validation/taxsim35/taxsim_input.py +321 -0
  112. taxcalc/validation/taxsim35/tc_sims.py +98 -0
  113. taxcalc/validation/taxsim35/tests_35.py +80 -0
  114. taxcalc/validation/tests_35.sh +13 -0
  115. {taxcalc-4.2.1.dist-info → taxcalc-4.3.0.dist-info}/METADATA +3 -4
  116. taxcalc-4.3.0.dist-info/RECORD +139 -0
  117. {taxcalc-4.2.1.dist-info → taxcalc-4.3.0.dist-info}/WHEEL +1 -1
  118. taxcalc/tmd_growfactors.csv +0 -55
  119. taxcalc/tmd_weights.csv.gz +0 -0
  120. taxcalc-4.2.1.dist-info/RECORD +0 -34
  121. {taxcalc-4.2.1.dist-info → taxcalc-4.3.0.dist-info}/LICENSE +0 -0
  122. {taxcalc-4.2.1.dist-info → taxcalc-4.3.0.dist-info}/entry_points.txt +0 -0
  123. {taxcalc-4.2.1.dist-info → taxcalc-4.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,28 @@
1
+ // Raise Additional Medicare Tax (Form 8959) tax rate and earnings exclusion
2
+ // : current law AddMedTax earnings exclusion varies by filing status (MARS)
3
+ // and is not price indexed
4
+ // : current law AddMedTax is 0.009 on earnings in excess of the exclusion
5
+ // Reform_Baseline: 2017_law.json
6
+ // Reform_Description:
7
+ // - raise AddMedTax rate in 2019 (1)
8
+ // - raise AddMedTax earnings exclusion in 2019 (2)
9
+ // - begin price indexing AddMedTax earnings exclusion in years after 2019 (3)
10
+ // Reform_Parameter_Map:
11
+ // - 1: AMEDT_rt
12
+ // - 2: AMEDT_ec
13
+ // - 3: AMEDT_ec-indexed
14
+ // NOTE: this reform produces the following parameter values by year:
15
+ // 2018: 0.009 200000 250000 125000 200000 200000
16
+ // 2019: 0.010 250000 300000 150000 250000 250000
17
+ // 2020: 0.010 ...... price indexed 2019 values .....
18
+ {
19
+ "AMEDT_rt": {
20
+ "2019": 0.010
21
+ },
22
+ "AMEDT_ec": {
23
+ "2019": [250000, 300000, 150000, 250000, 250000]
24
+ },
25
+ "AMEDT_ec-indexed": {
26
+ "2019": true
27
+ }
28
+ }
@@ -0,0 +1,10 @@
1
+ RECID,c00100,standard,c04800,iitax,payrolltax
2
+ 11,30000.00,6723.42,18988.43,554.60,4590.00
3
+ 12,60000.00,6723.42,48988.43,5935.27,9180.00
4
+ 13,460000.00,6723.42,453276.58,132718.27,32475.05
5
+ 21,60000.00,13446.83,29400.57,-2177.25,9180.00
6
+ 22,120000.00,13446.83,89400.57,8226.47,18360.00
7
+ 23,240000.00,13446.83,209400.57,44745.39,36720.00
8
+ 31,30000.00,9899.84,11523.86,-3556.63,4590.00
9
+ 32,60000.00,9899.84,41523.86,2721.83,9180.00
10
+ 33,120000.00,9899.84,101523.86,17870.48,18360.00
taxcalc/taxcalcio.py CHANGED
@@ -74,6 +74,8 @@ class TaxCalcIO():
74
74
  self.puf_input_data = False
75
75
  self.cps_input_data = False
76
76
  self.tmd_input_data = False
77
+ self.tmd_weights = None
78
+ self.tmd_gfactor = None
77
79
  if isinstance(input_data, str):
78
80
  # remove any leading directory path from INPUT filename
79
81
  fname = os.path.basename(input_data)
@@ -90,6 +92,23 @@ class TaxCalcIO():
90
92
  if not self.cps_input_data and not os.path.isfile(input_data):
91
93
  msg = 'INPUT file could not be found'
92
94
  self.errmsg += 'ERROR: {}\n'.format(msg)
95
+ # if tmd_input_data is True, construct weights and gfactor paths
96
+ if self.tmd_input_data: # pragma: no cover
97
+ tmd_dir = os.path.dirname(input_data)
98
+ if 'TMD_AREA' in os.environ:
99
+ area = os.environ['TMD_AREA']
100
+ wfile = f'{area}_tmd_weights.csv.gz'
101
+ inp = f'{fname[:-4]}_{area}-{str(tax_year)[2:]}'
102
+ else: # using national weights
103
+ wfile = 'tmd_weights.csv.gz'
104
+ self.tmd_weights = os.path.join(tmd_dir, wfile)
105
+ self.tmd_gfactor = os.path.join(tmd_dir, 'tmd_growfactors.csv')
106
+ if not os.path.isfile(self.tmd_weights):
107
+ msg = f'weights file {self.tmd_weights} could not be found'
108
+ self.errmsg += 'ERROR: {}\n'.format(msg)
109
+ if not os.path.isfile(self.tmd_gfactor):
110
+ msg = f'gfactor file {self.tmd_gfactor} could not be found'
111
+ self.errmsg += 'ERROR: {}\n'.format(msg)
93
112
  elif isinstance(input_data, pd.DataFrame):
94
113
  inp = 'df-{}'.format(str(tax_year)[2:])
95
114
  else:
@@ -123,7 +142,7 @@ class TaxCalcIO():
123
142
  elif isinstance(reform, str):
124
143
  self.specified_reform = True
125
144
  # split any compound reform into list of simple reforms
126
- refnames = list()
145
+ refnames = []
127
146
  reforms = reform.split('+')
128
147
  for rfm in reforms:
129
148
  # remove any leading directory path from rfm filename
@@ -206,7 +225,7 @@ class TaxCalcIO():
206
225
  self.calc = None
207
226
  self.calc_base = None
208
227
  self.param_dict = None
209
- self.policy_dicts = list()
228
+ self.policy_dicts = []
210
229
 
211
230
  def init(self, input_data, tax_year, baseline, reform, assump,
212
231
  aging_input_data, exact_calculations):
@@ -234,7 +253,7 @@ class TaxCalcIO():
234
253
  # get assumption sub-dictionaries
235
254
  paramdict = Calculator.read_json_param_objects(None, assump)
236
255
  # get policy parameter dictionaries from --reform file(s)
237
- policydicts = list()
256
+ policydicts = []
238
257
  if self.specified_reform:
239
258
  reforms = reform.split('+')
240
259
  for ref in reforms:
@@ -252,9 +271,7 @@ class TaxCalcIO():
252
271
  self.errmsg += valerr_msg.__str__()
253
272
  # create GrowFactors base object that incorporates gdiff_baseline
254
273
  if self.tmd_input_data:
255
- gfactors_base = GrowFactors( # pragma: no cover
256
- Records.TMD_GROWFACTORS_FILENAME
257
- )
274
+ gfactors_base = GrowFactors(self.tmd_gfactor) # pragma: no cover
258
275
  else:
259
276
  gfactors_base = GrowFactors()
260
277
  gdiff_baseline.apply_to(gfactors_base)
@@ -266,9 +283,7 @@ class TaxCalcIO():
266
283
  self.errmsg += valerr_msg.__str__()
267
284
  # create GrowFactors ref object that has all gdiff objects applied
268
285
  if self.tmd_input_data:
269
- gfactors_ref = GrowFactors( # pragma: no cover
270
- Records.TMD_GROWFACTORS_FILENAME
271
- )
286
+ gfactors_ref = GrowFactors(self.tmd_gfactor) # pragma: no cover
272
287
  else:
273
288
  gfactors_ref = GrowFactors()
274
289
  gdiff_baseline.apply_to(gfactors_ref)
@@ -332,18 +347,25 @@ class TaxCalcIO():
332
347
  gfactors=gfactors_base,
333
348
  exact_calculations=exact_calculations
334
349
  )
335
- elif self.tmd_input_data:
336
- recs = Records.tmd_constructor(
337
- data=input_data,
350
+ elif self.tmd_input_data: # pragma: no cover
351
+ wghts = pd.read_csv(self.tmd_weights)
352
+ recs = Records(
353
+ data=pd.read_csv(input_data),
354
+ start_year=Records.TMDCSV_YEAR,
355
+ weights=wghts,
338
356
  gfactors=gfactors_ref,
357
+ adjust_ratios=None,
339
358
  exact_calculations=exact_calculations
340
- ) # pragma: no cover
341
- recs_base = Records.tmd_constructor(
342
- data=input_data,
359
+ )
360
+ recs_base = Records(
361
+ data=pd.read_csv(input_data),
362
+ start_year=Records.TMDCSV_YEAR,
363
+ weights=wghts,
343
364
  gfactors=gfactors_base,
365
+ adjust_ratios=None,
344
366
  exact_calculations=exact_calculations
345
- ) # pragma: no cover
346
- else: # if not {cps|tmd}_input_data but aging_input_data
367
+ )
368
+ else: # if not {cps|tmd}_input_data but aging_input_data: puf
347
369
  recs = Records(
348
370
  data=input_data,
349
371
  gfactors=gfactors_ref,
@@ -541,7 +563,7 @@ class TaxCalcIO():
541
563
  doc = Calculator.reform_documentation(self.param_dict,
542
564
  self.policy_dicts[1:])
543
565
  doc_fname = self._output_filename.replace('.csv', '-doc.text')
544
- with open(doc_fname, 'w') as dfile:
566
+ with open(doc_fname, 'w', encoding='utf-8') as dfile:
545
567
  dfile.write(doc)
546
568
 
547
569
  def write_sqldb_file(self, dump_varset, mtr_paytax, mtr_inctax,
@@ -575,7 +597,7 @@ class TaxCalcIO():
575
597
  tab_fname = self._output_filename.replace('.csv', '-tab.text')
576
598
  # skip tables if there are not some positive weights
577
599
  if self.calc_base.total_weight() <= 0.:
578
- with open(tab_fname, 'w') as tfile:
600
+ with open(tab_fname, 'w', encoding='utf-8') as tfile:
579
601
  msg = 'No tables because sum of weights is not positive\n'
580
602
  tfile.write(msg)
581
603
  return
@@ -597,7 +619,7 @@ class TaxCalcIO():
597
619
  diff = nontax + change # using expanded_income under baseline policy
598
620
  diffdf = pd.DataFrame(data=np.column_stack(diff), columns=all_vars)
599
621
  # write each kind of distributional table
600
- with open(tab_fname, 'w') as tfile:
622
+ with open(tab_fname, 'w', encoding='utf-8') as tfile:
601
623
  TaxCalcIO.write_decile_table(distdf, tfile, tkind='Reform Totals')
602
624
  tfile.write('\n')
603
625
  TaxCalcIO.write_decile_table(diffdf, tfile, tkind='Differences')
@@ -730,7 +752,7 @@ class TaxCalcIO():
730
752
  '<head><title>{}</title></head>\n'
731
753
  '<body><center<h1>{}</h1></center></body>\n'
732
754
  '</html>\n').format(title, reason)
733
- with open(fname, 'w') as gfile:
755
+ with open(fname, 'w', encoding='utf-8') as gfile:
734
756
  gfile.write(txt)
735
757
 
736
758
  def minimal_output(self):
@@ -738,7 +760,7 @@ class TaxCalcIO():
738
760
  Extract minimal output and return it as Pandas DataFrame.
739
761
  """
740
762
  varlist = ['RECID', 'YEAR', 'WEIGHT', 'INCTAX', 'LSTAX', 'PAYTAX']
741
- odict = dict()
763
+ odict = {}
742
764
  scalc = self.calc
743
765
  odict['RECID'] = scalc.array('RECID') # id for tax filing unit
744
766
  odict['YEAR'] = self.tax_year() # tax calculation year
@@ -0,0 +1,169 @@
1
+ year,bname,benamt,bencnt,benavg
2
+ 2014,ssi,55.554,12.571,4.4
3
+ 2014,mcare,527.775,54.037,9.8
4
+ 2014,mcaid,407.903,72.079,5.7
5
+ 2014,snap,113.035,65.146,1.7
6
+ 2014,wic,4.44,20.215,0.2
7
+ 2014,tanf,33.735,8.371,4.0
8
+ 2014,vet,135.159,8.138,16.6
9
+ 2014,housing,41.069,11.249,3.7
10
+ 2015,ssi,57.988,12.779,4.5
11
+ 2015,mcare,556.933,55.527,10.0
12
+ 2015,mcaid,422.629,71.679,5.9
13
+ 2015,snap,126.182,65.301,1.9
14
+ 2015,wic,4.436,20.014,0.2
15
+ 2015,tanf,38.161,8.301,4.6
16
+ 2015,vet,145.755,8.38,17.4
17
+ 2015,housing,42.381,11.184,3.8
18
+ 2016,ssi,57.899,12.791,4.5
19
+ 2016,mcare,578.463,56.762,10.2
20
+ 2016,mcaid,420.579,70.542,6.0
21
+ 2016,snap,124.398,64.595,1.9
22
+ 2016,wic,4.343,19.525,0.2
23
+ 2016,tanf,30.99,8.107,3.8
24
+ 2016,vet,163.588,8.483,19.3
25
+ 2016,housing,43.004,11.076,3.9
26
+ 2017,ssi,58.387,13.019,4.5
27
+ 2017,mcare,614.584,58.213,10.6
28
+ 2017,mcaid,424.867,70.143,6.1
29
+ 2017,snap,125.99,64.815,1.9
30
+ 2017,wic,4.287,19.276,0.2
31
+ 2017,tanf,30.813,8.083,3.8
32
+ 2017,vet,168.419,8.71,19.3
33
+ 2017,housing,46.362,11.114,4.2
34
+ 2018,ssi,60.453,13.703,4.4
35
+ 2018,mcare,722.602,66.673,10.8
36
+ 2018,mcaid,492.308,78.083,6.3
37
+ 2018,snap,132.548,69.776,1.9
38
+ 2018,wic,4.683,20.906,0.2
39
+ 2018,tanf,32.44,8.566,3.8
40
+ 2018,vet,185.073,9.588,19.3
41
+ 2018,housing,50.957,12.151,4.2
42
+ 2019,ssi,62.022,14.051,4.4
43
+ 2019,mcare,785.38,68.889,11.4
44
+ 2019,mcaid,521.91,79.095,6.6
45
+ 2019,snap,134.687,70.802,1.9
46
+ 2019,wic,4.732,21.087,0.2
47
+ 2019,tanf,32.774,8.666,3.8
48
+ 2019,vet,189.738,9.83,19.3
49
+ 2019,housing,53.628,12.347,4.3
50
+ 2020,ssi,63.71,14.395,4.4
51
+ 2020,mcare,853.06,71.244,12.0
52
+ 2020,mcaid,552.864,80.056,6.9
53
+ 2020,snap,136.804,71.782,1.9
54
+ 2020,wic,4.788,21.253,0.2
55
+ 2020,tanf,33.079,8.748,3.8
56
+ 2020,vet,194.69,10.084,19.3
57
+ 2020,housing,56.359,12.512,4.5
58
+ 2021,ssi,65.258,14.72,4.4
59
+ 2021,mcare,921.857,73.527,12.5
60
+ 2021,mcaid,586.685,81.038,7.2
61
+ 2021,snap,138.874,72.753,1.9
62
+ 2021,wic,4.841,21.441,0.2
63
+ 2021,tanf,33.371,8.839,3.8
64
+ 2021,vet,200.093,10.342,19.3
65
+ 2021,housing,59.211,12.682,4.7
66
+ 2022,ssi,66.768,15.058,4.4
67
+ 2022,mcare,997.773,75.906,13.1
68
+ 2022,mcaid,622.363,82.023,7.6
69
+ 2022,snap,140.971,73.695,1.9
70
+ 2022,wic,4.888,21.579,0.2
71
+ 2022,tanf,33.689,8.926,3.8
72
+ 2022,vet,205.365,10.604,19.4
73
+ 2022,housing,62.291,12.875,4.8
74
+ 2023,ssi,68.326,15.404,4.4
75
+ 2023,mcare,1080.56,78.246,13.8
76
+ 2023,mcaid,661.23,83.053,8.0
77
+ 2023,snap,143.086,74.683,1.9
78
+ 2023,wic,4.947,21.752,0.2
79
+ 2023,tanf,34.076,9.018,3.8
80
+ 2023,vet,210.902,10.878,19.4
81
+ 2023,housing,65.482,13.053,5.0
82
+ 2024,ssi,69.61,15.728,4.4
83
+ 2024,mcare,1165.699,80.527,14.5
84
+ 2024,mcaid,703.669,84.012,8.4
85
+ 2024,snap,145.135,75.622,1.9
86
+ 2024,wic,4.995,21.909,0.2
87
+ 2024,tanf,34.35,9.092,3.8
88
+ 2024,vet,215.883,11.129,19.4
89
+ 2024,housing,68.765,13.232,5.2
90
+ 2025,ssi,71.237,16.053,4.4
91
+ 2025,mcare,1255.601,82.904,15.1
92
+ 2025,mcaid,749.369,84.979,8.8
93
+ 2025,snap,147.245,76.574,1.9
94
+ 2025,wic,5.05,22.057,0.2
95
+ 2025,tanf,34.585,9.163,3.8
96
+ 2025,vet,221.437,11.403,19.4
97
+ 2025,housing,72.233,13.415,5.4
98
+ 2026,ssi,72.635,16.369,4.4
99
+ 2026,mcare,1382.542,85.144,16.2
100
+ 2026,mcaid,757.799,85.921,8.8
101
+ 2026,snap,149.275,77.481,1.9
102
+ 2026,wic,5.098,22.205,0.2
103
+ 2026,tanf,34.929,9.249,3.8
104
+ 2026,vet,226.373,11.652,19.4
105
+ 2026,housing,75.754,13.57,5.6
106
+ 2027,ssi,74.021,16.662,4.4
107
+ 2027,mcare,1416.439,87.247,16.2
108
+ 2027,mcaid,766.18,86.85,8.8
109
+ 2027,snap,151.229,78.39,1.9
110
+ 2027,wic,5.146,22.352,0.2
111
+ 2027,tanf,35.168,9.314,3.8
112
+ 2027,vet,231.094,11.878,19.5
113
+ 2027,housing,79.351,13.723,5.8
114
+ 2028,ssi,75.216,16.938,4.4
115
+ 2028,mcare,1449.599,89.283,16.2
116
+ 2028,mcaid,774.409,87.74,8.8
117
+ 2028,snap,153.223,79.302,1.9
118
+ 2028,wic,5.19,22.53,0.2
119
+ 2028,tanf,35.548,9.404,3.8
120
+ 2028,vet,235.756,12.104,19.5
121
+ 2028,housing,80.302,13.857,5.8
122
+ 2029,ssi,76.541,17.224,4.4
123
+ 2029,mcare,1481.224,91.22,16.2
124
+ 2029,mcaid,782.194,88.602,8.8
125
+ 2029,snap,155.203,80.212,1.9
126
+ 2029,wic,5.231,22.698,0.2
127
+ 2029,tanf,35.867,9.483,3.8
128
+ 2029,vet,240.128,12.324,19.5
129
+ 2029,housing,81.378,14.026,5.8
130
+ 2030,ssi,77.819,17.488,4.4
131
+ 2030,mcare,1509.928,92.978,16.2
132
+ 2030,mcaid,790.237,89.477,8.8
133
+ 2030,snap,157.066,81.085,1.9
134
+ 2030,wic,5.27,22.87,0.2
135
+ 2030,tanf,36.18,9.557,3.8
136
+ 2030,vet,244.367,12.53,19.5
137
+ 2030,housing,82.351,14.187,5.8
138
+ 2031,ssi,78.857,17.699,4.5
139
+ 2031,mcare,1532.988,94.38,16.2
140
+ 2031,mcaid,797.255,90.237,8.8
141
+ 2031,snap,158.784,81.873,1.9
142
+ 2031,wic,5.313,23.047,0.2
143
+ 2031,tanf,36.49,9.639,3.8
144
+ 2031,vet,247.791,12.699,19.5
145
+ 2031,housing,83.299,14.327,5.8
146
+ 2032,ssi,79.862,17.902,4.5
147
+ 2032,mcare,1553.523,95.617,16.2
148
+ 2032,mcaid,803.732,90.937,8.8
149
+ 2032,snap,160.377,82.593,1.9
150
+ 2032,wic,5.354,23.222,0.2
151
+ 2032,tanf,36.782,9.701,3.8
152
+ 2032,vet,251.045,12.862,19.5
153
+ 2032,housing,84.103,14.431,5.8
154
+ 2033,ssi,80.757,18.094,4.5
155
+ 2033,mcare,1573.033,96.777,16.3
156
+ 2033,mcaid,809.874,91.615,8.8
157
+ 2033,snap,161.978,83.282,1.9
158
+ 2033,wic,5.374,23.33,0.2
159
+ 2033,tanf,36.919,9.743,3.8
160
+ 2033,vet,254.375,13.019,19.5
161
+ 2033,housing,84.96,14.556,5.8
162
+ 2034,ssi,81.748,18.304,4.5
163
+ 2034,mcare,1592.585,97.928,16.3
164
+ 2034,mcaid,816.316,92.304,8.8
165
+ 2034,snap,163.576,83.994,1.9
166
+ 2034,wic,5.409,23.478,0.2
167
+ 2034,tanf,37.246,9.826,3.8
168
+ 2034,vet,257.749,13.182,19.6
169
+ 2034,housing,85.791,14.683,5.8
@@ -0,0 +1,132 @@
1
+ TABLE for EITC
2
+ AGI category T-C SOI %diff
3
+ [-9e+99, 1) 0.014 0.210 -93.2
4
+ [1, 5000) 1.555 1.184 +31.3
5
+ [5000, 10000) 6.132 7.156 -14.3
6
+ [10000, 15000) 9.158 16.593 -44.8
7
+ [15000, 20000) 9.317 15.880 -41.3
8
+ [20000, 25000) 9.466 11.102 -14.7
9
+ [25000, 30000) 8.040 7.515 +7.0
10
+ [30000, 40000) 8.913 7.453 +19.6
11
+ [40000, 50000) 2.233 1.394 +60.3
12
+ [50000, 75000) 0.064 0.037 +71.8
13
+ [75000, 100000) 0.000 0.000 +nan
14
+ [100000, 200000) 0.000 0.000 +nan
15
+ [200000, 500000) 0.000 0.000 +nan
16
+ [500000, 1000000) 0.000 0.000 +nan
17
+ [1000000, 1500000) 0.000 0.000 +nan
18
+ [1500000, 2000000) 0.000 0.000 +nan
19
+ [2000000, 5000000) 0.000 0.000 +nan
20
+ [5000000, 10000000) 0.000 0.000 +nan
21
+ [10000000, 9e+99) 0.000 0.000 +nan
22
+ ALL 54.894 68.525 -19.9
23
+ TABLE for FCTC
24
+ AGI category T-C SOI %diff
25
+ [-9e+99, 1) 0.005 0.130 -96.0
26
+ [1, 5000) 0.083 0.079 +4.4
27
+ [5000, 10000) 1.118 1.474 -24.2
28
+ [10000, 15000) 2.386 4.258 -44.0
29
+ [15000, 20000) 3.064 5.210 -41.2
30
+ [20000, 25000) 3.837 4.658 -17.6
31
+ [25000, 30000) 4.121 4.317 -4.5
32
+ [30000, 40000) 7.408 7.232 +2.4
33
+ [40000, 50000) 6.128 5.285 +15.9
34
+ [50000, 75000) 11.886 9.415 +26.2
35
+ [75000, 100000) 8.466 6.407 +32.1
36
+ [100000, 200000) 7.568 5.222 +44.9
37
+ [200000, 500000) 0.004 0.002 +118.6
38
+ [500000, 1000000) 0.000 0.000 +nan
39
+ [1000000, 1500000) 0.000 0.000 +nan
40
+ [1500000, 2000000) 0.000 0.000 +nan
41
+ [2000000, 5000000) 0.000 0.000 +nan
42
+ [5000000, 10000000) 0.000 0.000 +nan
43
+ [10000000, 9e+99) 0.000 0.000 +nan
44
+ ALL 56.073 53.690 +4.4
45
+ TABLE for NIIT
46
+ AGI category T-C SOI %diff
47
+ [-9e+99, 1) 0.000 0.000 -100.0
48
+ [1, 5000) 0.000 0.000 +nan
49
+ [5000, 10000) 0.000 0.000 +nan
50
+ [10000, 15000) 0.000 0.000 +nan
51
+ [15000, 20000) 0.000 0.000 +nan
52
+ [20000, 25000) 0.000 0.000 +nan
53
+ [25000, 30000) 0.000 0.000 -100.0
54
+ [30000, 40000) 0.000 0.000 +nan
55
+ [40000, 50000) 0.000 0.000 +nan
56
+ [50000, 75000) 0.000 0.001 -100.0
57
+ [75000, 100000) 0.000 0.001 -100.0
58
+ [100000, 200000) 0.006 0.021 -73.8
59
+ [200000, 500000) 0.610 2.640 -76.9
60
+ [500000, 1000000) 0.665 3.136 -78.8
61
+ [1000000, 1500000) 0.134 1.671 -92.0
62
+ [1500000, 2000000) 0.086 1.077 -92.0
63
+ [2000000, 5000000) 0.261 3.127 -91.6
64
+ [5000000, 10000000) 0.230 2.095 -89.0
65
+ [10000000, 9e+99) 4.187 8.273 -49.4
66
+ ALL 6.179 22.043 -72.0
67
+ TABLE for ITAX
68
+ AGI category T-C SOI %diff
69
+ [-9e+99, 1) -0.020 0.242 -108.0
70
+ [1, 5000) -1.630 0.041 -4085.6
71
+ [5000, 10000) -7.182 0.368 -2051.5
72
+ [10000, 15000) -10.397 1.381 -852.7
73
+ [15000, 20000) -8.674 3.524 -346.2
74
+ [20000, 25000) -6.331 6.191 -202.3
75
+ [25000, 30000) -1.413 8.753 -116.1
76
+ [30000, 40000) 12.198 25.168 -51.5
77
+ [40000, 50000) 25.845 32.530 -20.6
78
+ [50000, 75000) 84.127 99.792 -15.7
79
+ [75000, 100000) 91.075 105.901 -14.0
80
+ [100000, 200000) 343.323 316.350 +8.5
81
+ [200000, 500000) 239.244 299.832 -20.2
82
+ [500000, 1000000) 62.869 154.389 -59.3
83
+ [1000000, 1500000) 26.106 66.324 -60.6
84
+ [1500000, 2000000) 5.167 39.672 -87.0
85
+ [2000000, 5000000) 7.754 101.489 -92.4
86
+ [5000000, 10000000) 7.473 56.334 -86.7
87
+ [10000000, 9e+99) 49.446 139.611 -64.6
88
+ ALL 918.982 1457.891 -37.0
89
+ TABLE for SETAX
90
+ AGI category T-C SOI %diff
91
+ [-9e+99, 1) 0.014 0.656 -97.9
92
+ [1, 5000) 0.101 0.555 -81.8
93
+ [5000, 10000) 0.319 1.896 -83.2
94
+ [10000, 15000) 0.744 3.514 -78.8
95
+ [15000, 20000) 0.859 2.823 -69.6
96
+ [20000, 25000) 1.466 1.996 -26.6
97
+ [25000, 30000) 4.396 1.802 +144.0
98
+ [30000, 40000) 7.328 3.360 +118.1
99
+ [40000, 50000) 5.875 2.820 +108.4
100
+ [50000, 75000) 7.655 5.958 +28.5
101
+ [75000, 100000) 4.147 5.275 -21.4
102
+ [100000, 200000) 9.513 12.149 -21.7
103
+ [200000, 500000) 5.037 9.686 -48.0
104
+ [500000, 1000000) 0.719 3.486 -79.4
105
+ [1000000, 1500000) 0.181 1.194 -84.8
106
+ [1500000, 2000000) 0.003 0.643 -99.5
107
+ [2000000, 5000000) 0.041 1.253 -96.7
108
+ [5000000, 10000000) 0.031 0.470 -93.4
109
+ [10000000, 9e+99) 0.073 0.638 -88.6
110
+ ALL 48.503 60.174 -19.4
111
+ TABLE for AMTAX
112
+ AGI category T-C SOI %diff
113
+ [-9e+99, 1) 0.000 0.022 -100.0
114
+ [1, 5000) 0.000 0.000 -100.0
115
+ [5000, 10000) 0.000 0.000 +nan
116
+ [10000, 15000) 0.000 0.000 -100.0
117
+ [15000, 20000) 0.000 0.000 -100.0
118
+ [20000, 25000) 0.000 0.000 -100.0
119
+ [25000, 30000) 0.000 0.000 -100.0
120
+ [30000, 40000) 0.000 0.004 -100.0
121
+ [40000, 50000) 0.000 0.007 -100.0
122
+ [50000, 75000) 0.000 0.006 -99.9
123
+ [75000, 100000) 0.000 0.003 -100.0
124
+ [100000, 200000) 0.013 0.037 -64.5
125
+ [200000, 500000) 1.045 1.836 -43.0
126
+ [500000, 1000000) 0.784 2.021 -61.2
127
+ [1000000, 1500000) 0.412 0.860 -52.1
128
+ [1500000, 2000000) 0.044 0.490 -91.1
129
+ [2000000, 5000000) 0.032 1.173 -97.3
130
+ [5000000, 10000000) 0.015 0.581 -97.3
131
+ [10000000, 9e+99) 0.029 0.979 -97.1
132
+ ALL 2.374 8.020 -70.4
@@ -0,0 +1,132 @@
1
+ TABLE for EITC
2
+ AGI category T-C SOI %diff
3
+ [-9e+99, 1) 0.174 0.210 -17.5
4
+ [1, 5000) 1.495 1.184 +26.2
5
+ [5000, 10000) 5.880 7.156 -17.8
6
+ [10000, 15000) 18.086 16.593 +9.0
7
+ [15000, 20000) 16.234 15.880 +2.2
8
+ [20000, 25000) 10.585 11.102 -4.7
9
+ [25000, 30000) 7.576 7.515 +0.8
10
+ [30000, 40000) 6.648 7.453 -10.8
11
+ [40000, 50000) 1.357 1.394 -2.7
12
+ [50000, 75000) 0.022 0.037 -42.5
13
+ [75000, 100000) 0.000 0.000 +nan
14
+ [100000, 200000) 0.000 0.000 +nan
15
+ [200000, 500000) 0.000 0.000 +nan
16
+ [500000, 1000000) 0.000 0.000 +nan
17
+ [1000000, 1500000) 0.000 0.000 +nan
18
+ [1500000, 2000000) 0.000 0.000 +nan
19
+ [2000000, 5000000) 0.000 0.000 +nan
20
+ [5000000, 10000000) 0.000 0.000 +nan
21
+ [10000000, 9e+99) 0.000 0.000 +nan
22
+ ALL 68.057 68.525 -0.7
23
+ TABLE for FCTC
24
+ AGI category T-C SOI %diff
25
+ [-9e+99, 1) 0.145 0.130 +11.2
26
+ [1, 5000) 0.115 0.079 +44.7
27
+ [5000, 10000) 1.084 1.474 -26.5
28
+ [10000, 15000) 4.701 4.258 +10.4
29
+ [15000, 20000) 5.414 5.210 +3.9
30
+ [20000, 25000) 4.675 4.658 +0.4
31
+ [25000, 30000) 4.539 4.317 +5.1
32
+ [30000, 40000) 6.884 7.232 -4.8
33
+ [40000, 50000) 5.032 5.285 -4.8
34
+ [50000, 75000) 8.874 9.415 -5.7
35
+ [75000, 100000) 6.192 6.407 -3.4
36
+ [100000, 200000) 5.623 5.222 +7.7
37
+ [200000, 500000) 0.000 0.002 -100.0
38
+ [500000, 1000000) 0.000 0.000 +nan
39
+ [1000000, 1500000) 0.000 0.000 +nan
40
+ [1500000, 2000000) 0.000 0.000 +nan
41
+ [2000000, 5000000) 0.000 0.000 +nan
42
+ [5000000, 10000000) 0.000 0.000 +nan
43
+ [10000000, 9e+99) 0.000 0.000 +nan
44
+ ALL 53.276 53.690 -0.8
45
+ TABLE for NIIT
46
+ AGI category T-C SOI %diff
47
+ [-9e+99, 1) 0.000 0.000 -100.0
48
+ [1, 5000) 0.000 0.000 +nan
49
+ [5000, 10000) 0.000 0.000 +nan
50
+ [10000, 15000) 0.000 0.000 +nan
51
+ [15000, 20000) 0.000 0.000 +nan
52
+ [20000, 25000) 0.000 0.000 +nan
53
+ [25000, 30000) 0.000 0.000 -100.0
54
+ [30000, 40000) 0.000 0.000 +nan
55
+ [40000, 50000) 0.000 0.000 +nan
56
+ [50000, 75000) 0.000 0.001 -100.0
57
+ [75000, 100000) 0.000 0.001 -100.0
58
+ [100000, 200000) 0.018 0.021 -14.3
59
+ [200000, 500000) 2.974 2.640 +12.7
60
+ [500000, 1000000) 3.896 3.136 +24.3
61
+ [1000000, 1500000) 2.244 1.671 +34.3
62
+ [1500000, 2000000) 1.605 1.077 +48.9
63
+ [2000000, 5000000) 4.848 3.127 +55.0
64
+ [5000000, 10000000) 3.452 2.095 +64.8
65
+ [10000000, 9e+99) 8.112 8.273 -1.9
66
+ ALL 27.149 22.043 +23.2
67
+ TABLE for ITAX
68
+ AGI category T-C SOI %diff
69
+ [-9e+99, 1) 3.729 0.242 +1437.7
70
+ [1, 5000) -2.402 0.041 -5973.3
71
+ [5000, 10000) -7.413 0.368 -2114.3
72
+ [10000, 15000) -22.411 1.381 -1722.4
73
+ [15000, 20000) -19.575 3.524 -655.5
74
+ [20000, 25000) -10.028 6.191 -262.0
75
+ [25000, 30000) -3.804 8.753 -143.5
76
+ [30000, 40000) 11.438 25.168 -54.6
77
+ [40000, 50000) 26.142 32.530 -19.6
78
+ [50000, 75000) 97.223 99.792 -2.6
79
+ [75000, 100000) 105.118 105.901 -0.7
80
+ [100000, 200000) 329.752 316.350 +4.2
81
+ [200000, 500000) 331.839 299.832 +10.7
82
+ [500000, 1000000) 172.070 154.389 +11.5
83
+ [1000000, 1500000) 75.630 66.324 +14.0
84
+ [1500000, 2000000) 44.087 39.672 +11.1
85
+ [2000000, 5000000) 114.164 101.489 +12.5
86
+ [5000000, 10000000) 64.082 56.334 +13.8
87
+ [10000000, 9e+99) 96.814 139.611 -30.7
88
+ ALL 1406.456 1457.891 -3.5
89
+ TABLE for SETAX
90
+ AGI category T-C SOI %diff
91
+ [-9e+99, 1) 0.761 0.656 +16.1
92
+ [1, 5000) 0.626 0.555 +12.7
93
+ [5000, 10000) 1.633 1.896 -13.8
94
+ [10000, 15000) 4.399 3.514 +25.2
95
+ [15000, 20000) 3.636 2.823 +28.8
96
+ [20000, 25000) 2.223 1.996 +11.4
97
+ [25000, 30000) 1.988 1.802 +10.3
98
+ [30000, 40000) 3.082 3.360 -8.3
99
+ [40000, 50000) 2.915 2.820 +3.4
100
+ [50000, 75000) 5.793 5.958 -2.8
101
+ [75000, 100000) 4.699 5.275 -10.9
102
+ [100000, 200000) 9.314 12.149 -23.3
103
+ [200000, 500000) 6.016 9.686 -37.9
104
+ [500000, 1000000) 1.637 3.486 -53.0
105
+ [1000000, 1500000) 0.490 1.194 -58.9
106
+ [1500000, 2000000) 0.188 0.643 -70.7
107
+ [2000000, 5000000) 0.282 1.253 -77.5
108
+ [5000000, 10000000) 0.063 0.470 -86.6
109
+ [10000000, 9e+99) 0.033 0.638 -94.8
110
+ ALL 49.779 60.174 -17.3
111
+ TABLE for AMTAX
112
+ AGI category T-C SOI %diff
113
+ [-9e+99, 1) 0.012 0.022 -45.5
114
+ [1, 5000) 0.000 0.000 -68.2
115
+ [5000, 10000) 0.000 0.000 +nan
116
+ [10000, 15000) 0.000 0.000 -63.4
117
+ [15000, 20000) 0.000 0.000 +38.3
118
+ [20000, 25000) 0.000 0.000 -80.3
119
+ [25000, 30000) 0.000 0.000 -22.1
120
+ [30000, 40000) 0.000 0.004 -98.0
121
+ [40000, 50000) 0.000 0.007 -99.6
122
+ [50000, 75000) 0.003 0.006 -54.3
123
+ [75000, 100000) 0.002 0.003 -31.4
124
+ [100000, 200000) 0.024 0.037 -35.5
125
+ [200000, 500000) 1.415 1.836 -22.9
126
+ [500000, 1000000) 1.806 2.021 -10.7
127
+ [1000000, 1500000) 0.737 0.860 -14.3
128
+ [1500000, 2000000) 0.379 0.490 -22.5
129
+ [2000000, 5000000) 0.901 1.173 -23.2
130
+ [5000000, 10000000) 0.459 0.581 -20.9
131
+ [10000000, 9e+99) 0.412 0.979 -57.9
132
+ ALL 6.151 8.020 -23.3