-
-
Notifications
You must be signed in to change notification settings - Fork 150
/
index.html
1241 lines (958 loc) · 315 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<!-- *** NEVER EDIT THIS FILE BY HAND *** -->
<!-- *** INSTEAD EDIT index.htmx FILE *** -->
<html>
<head>
<title>Using Tax-Calculator</title>
<style>
div { max-width: 19cm }
</style>
</head>
<body>
<div>
<h1 id="top">Using Tax-Calculator</h1>
<p>This document tells you how to use Tax-Calculator, an open-source
federal income and payroll tax simulation model. The two ways of
using Tax-Calculator described here require no computer programming.
If you are interested in Python programming with Tax-Calculator, you
should read the tested recipes in our
<a href="https://PSLmodels.github.io/Tax-Calculator/cookbook.html">
Tax-Calculator Cookbook</a>. If you want to participate in the
development of Tax-Calculator — by asking a question, reporting
a bug, improving the documentation or making an enhancement to the
Python source code — you should go to
the <a href="https://github.com/PSLmodels/Tax-Calculator">
developer website</a>.</p>
<p>Please cite the source of your analysis as <q>Tax-Calculator
release #.#.#, author's calculations.</q> If you wish to link to
Tax-Calculator, this page is preferred. Additionally, we strongly
recommend that you describe the input data used, and provide a link to
the materials required to replicate your analysis or, at least, note
that those materials are available upon request.</p>
<h2 id="whatsnew">What's New</h2>
<p>A list of recent changes to Tax-Calculator can be viewed
<a href="https://github.com/PSLmodels/Tax-Calculator/blob/master/CHANGES.md#tax-calculator-change-history">here</a>.</p>
<p>To upgrade to the newest version of the Tax-Calculator package,
execute this command:<br><kbd>conda update -c PSLmodels taxcalc</kbd></p>
<h2 id="doc">Document Contents</h2>
<p><a href="#gui">TaxBrain GUI</a> to use Tax-Calculator via an
interactive web application</p>
<p><a href="#cli">tc CLI</a> to use Tax-Calculator on your computer
via the command line</p>
<p><a href="#pol">Policy Parameters</a> that specify tax reforms</p>
<p><a href="#input">Input Variables</a> that specify tax filing units</p>
<p><a href="#output">Output Variables</a> that describe tax results</p>
<p><a href="#params">Assumption Parameters</a> that specify economic
assumptions</p>
<h2 id="gui">TaxBrain GUI</h2>
<p>You can use Tax-Calculator via a graphical user interface (GUI)
provided by the <a href="https://www.ospc.org/taxbrain/">TaxBrain web
application</a>. This approach requires only an Internet connection
and web browser on your computer. TaxBrain (TB) uses a micro dataset
to produce both aggregate and distributional reform estimates for each
of ten years for a tax reform you specify. The calculations take just
a couple of minutes and there is flexibility to show different kinds
of distributional results as well as aggregate revenue results.</p>
<h3>Section Contents</h3>
<p><a href="#gui-spec-reform">Specify Tax Reform</a></p>
<p><a href="#gui-init-static">Initiate Static Analysis</a></p>
<p><a href="#gui-view-static">View/Download Static Results</a></p>
<p><a href="#gui-init-dynamic">Initiate Dynamic Analysis</a></p>
<h3 id="gui-spec-reform">Specify Tax Reform</h3>
<p>The first step in using TaxBrain is to set the Start Year for the
tax calculations. Then specify the values of policy parameters that
you want to change in your reform.</p>
<p>By default the policy parameter boxes contain Start Year values.
Simply replace the current-law value with the Start Year reform value.
If some or all of your reform provisions are going to begin after the
Start Year, simply fill in the pre-reform years with asterisks. So,
for example, if Start Year is 2017 and your reform calls for raising
the social security payroll tax rate to 13 percent in 2018 and then
to 14 percent in 2020, you would enter in that box the following:
<pre>*,0.13,*,0.14</pre>
This parameter is not indexed, so the 0.13 value for 2018 will be
extrapolated to 2019, and the 0.14 value for 2020 will be in force
in all subsequent years.</p>
<p><a href="#gui">Back to Section Contents</a></p>
<h3 id="gui-init-static">Initiate Static Analysis</h3>
<p>Simply click on the Show me the results! button to start the tax
calculations. That button will use the full sample and take a couple
of minutes to compute revenue and distributional results for each of
ten years beginning with the Start Year you specified.</p>
<p>There is also a Quick Calculation! button that produces results
only for the Start Year using a sub-sample of the full sample.</p>
<p><a href="#gui">Back to Section Contents</a></p>
<h3 id="gui-view-static">View/Download Static Results</h3>
<p>After the tax calculations are completed, you are shown a results
page that presents various options: you can specify, view and download
a total liabilities table, your can specify, view and download a
distribution table, you can use your reform to conduct different types
of dynamic analysis (via the button labeled Link to Dynamic
Simulations), and finally, you can go back to the policy parameters
page to modify your reform (via the button labeled Edit Parameters).</p>
<p>There are three variants of the <b>total liabilities table</b>.
The variant shown initially is Change, meaning the amounts are the
difference between liabilities under your reform and the liabilities
projected for current-law policy. You can also elect to see the
reform and current-law levels.</p>
<p>There are many variants of the <b>distribution table</b>. Try
clicking on the options to the left to define the nature of the table
and the year for which it is constructed. Try clicking on the options
to the right to specify which columns are included in the table. An
easy way to uncheck all the column boxes is to double click on the
Select All box.</p>
<p>There are three download options for each of these two tables:</p>
<p><b>Print</b> creates a new page in your browser that is suitable
for printing.</p>
<p><b>Copy</b> puts the table on the clipboard of your local computer
so that you can paste it anywhere on your computer. The copy on the
clipboard uses invisible tab characters to separate the table's
columns.</p>
<p><b>CSV</b> downloads to your computer a CSV-formatted file
containing the information in the table. CSV-formatted files can
be easily imported into any spreadsheet program.</p>
<p><a href="#gui">Back to Section Contents</a></p>
<h3 id="gui-init-dynamic">Initiate Dynamic Analysis</h3>
<p>After clicking on the Link to Dynamic Simulations on the static
results page, you are presented with a page that allows you to choose
three different types of dynamic simulations to conduct on your tax
reform:</p>
<p><b>Partial Equilibrium Simulation</b> is described this way:
<i>This approach answers the question, <q>how would taxpayer behavior
(income and deductions) affect revenue if all other prices in the
economy could stay the same?</q></i></p>
<p><b>Overlapping Generations Simulation</b> is described this way:
<i>This approach answers the question, <q>how does tax policy affect
macroeconomic aggregates and prices?</q></i></p>
<p><b>Macro Elasticity Simulation</b> is described this way:
<i>This approach harnesses econometric estimates of the historical
relationship between tax policy and the macro economy to predict the
effect of tax reforms on economic growth.</i></p>
Clicking on one of these choices will allow you to specify some
additional economic assumption parameters and initiate the dynamic
analysis using your economic assumptions.
<p><a href="#gui">Back to Section Contents</a>
<a href="#doc">Back to Document Contents</a></p>
<h2 id="cli">tc CLI</h2>
<p>You can use Tax-Calculator on your own computer via a command line
interface (CLI) called tc. This approach requires the installation of
Anaconda Python and the taxcalc package on your computer as well as
the use of a text editor to prepare simple files that are read by tc.
Computer programming knowledge is not required, but if you are
prevented from doing the easy installation or you are not willing to
work at the command line (Terminal on Mac or Command Prompt on
Windows) and use an editor (for example, TextEdit on Mac or Notepad on
Windows), then you should probably use the TaxBrain GUI.</p>
<p>If you are comfortable using an editor to prepare text files that
describe your tax reforms, but don't want to install Python and tc on
your computer, you can upload reform files to TaxBrain where all the
analysis is conducted (as described in the previous section). If you
are interested in this file-upload approach, skip the first part of
this section, read the next part on how to specify policy reform
files, and then skip to the last part of this section on how to upload
files to TaxBrain.</p>
<h3>Section Contents</h3>
<p><a href="#cli-install-test">Install/Test tc CLI</a></p>
<p><a href="#cli-spec-reform">Specify Tax Reform</a></p>
<p><a href="#cli-spec-assump">Specify Analysis Assumptions</a></p>
<p><a href="#cli-spec-funits">Specify Filing Units</a></p>
<p><a href="#cli-init-analysis">Initiate Reform Analysis</a></p>
<p><a href="#cli-tab-results">Tabulate Reform Results</a></p>
<p><a href="#cli-taxbrain-upload">Upload Files to TaxBrain</a></p>
<h3 id="cli-install-test">Install/Test tc CLI</h3>
<p>Installation of tc CLI involves several steps:</p>
<p><b>Install the free Anaconda Python distribution</b> by going to
the <a href="https://www.anaconda.com/download/">Anaconda download
page</a> and selecting Python 3.6. You should install Python 3.6
because we have discontinued support for Python 2.7 and are not yet
supporting Python 3.7. You must do this installation even if you already
have Python installed on your computer because the Anaconda
distribution contains all the additional Python packages that
Tax-Calculator uses to conduct tax calculations (many of which are not
included in other Python installations). You can install the Anaconda
distribution without having administrative privileges on your computer
and the Anaconda distribution will not interfere with any Python
installation that came as part of your computer’s operating
system.</p>
<p><b>Check your Anaconda Python installation</b> by entering the
following two commands at the operating system command prompt (which
is shown as <kbd>$</kbd> here, but would be <kbd>></kbd> on Windows)
in any directory:
<pre>$ conda --version</pre>
Expected output is something like <kbd>conda 4.4.7</kbd>
<pre>$ python --version</pre>
Expected output should contain the <kbd>Python 3.6</kbd> phrase as
well as the <kbd>Anaconda</kbd> phrase, the presence of which confirm
that the installation went smoothly.</p>
<p><b>Install the free taxcalc package</b> by entering the following:
<pre>$ conda install -c PSLmodels taxcalc</pre>
Expected output should contain information about all the additional
packages that Tax-Calculator needs. After all that information has
been shown on the screen, press the <kbd>y</kbd> key to proceed with
the package installation.</p>
<p><b>Check your installation of tc</b> (the CLI to Tax-Calculator) by
entering the following:
<pre>$ tc --test</pre>
Expected output (after about twenty seconds) is <kbd>PASSED
TEST</kbd>. If you get <kbd>FAILED TEST</kbd>, something went wrong
in the installation process. If the installation test fails, please
report your experience by creating a new issue at
<a href="https://github.com/PSLmodels/Tax-Calculator/issues">
this website</a> or by sending an email to one of the core maintainers
of Tax-Calculator listed at the bottom of the <i>What is TaxBrain?</i>
page at <a href="https://www.ospc.org/taxbrain/">this website</a>.
<p>If your installation passes the test, you are ready to begin using
tc to analyze your tax reforms. Continue reading this section for
information about how to do that. But if you want a quick hint about
the range of tc capabilities, enter the following:
<pre>$ tc --help</pre>
</p>
<p>After you have installed the taxcalc package, keep it up to date by
checking for new releases at
<a href="https://github.com/PSLmodels/Tax-Calculator/blob/master/RELEASES.md#tax-calculator-release-history">this page</a> and, when there
is a new release, executing this command:
<pre>$ conda update -c PSLmodels taxcalc</pre>
The packages are usually available about an hour after the release.</p>
<p>The basic idea of tc tax analysis is that each tax reform is
specified in a text file using a simple method to describe the details
of the reform. Read the next part of this section to see how policy
reform files are formatted.</p>
<p><a href="#cli">Back to Section Contents</a></p>
<h3 id="cli-spec-reform">Specify Tax Reform</h3>
<p>The details of a tax reform are contained in a text file that you
write with a text editor. The reform is expressed by specifying which
tax policy parameters are changed from their current-law values by the
reform. The timing and magnitude of these policy parameter changes
are written in JSON, a simple and widely-used data-specification
language.</p>
<p>For several examples of reform files and the general rules for
writing JSON reform files, go
to <a href="https://github.com/PSLmodels/Tax-Calculator/blob/master/taxcalc/reforms/REFORMS.md">this
page</a>.</p>
<p>If you want to upload a reform file to TaxBrain for static analysis
(rather than use the tc CLI on your computer for analysis), go to this
section's <a href="#cli-taxbrain-upload">last part</a>, which
discusses uploading files to TaxBrain. If you want to assume any
responses to your tax reform (that is, if you want to conduct
non-static analysis), read the next part before going to the last
part.</p>
<p><a href="#cli">Back to Section Contents</a></p>
<h3 id="cli-spec-assump">Specify Analysis Assumptions</h3>
<p>This part explains how to specify economic assumption files used in
non-static tax analysis. If you want to start out doing static
analysis, you can skip this part now and come back to read it whenever
you want to go beyond static analysis.
The <a href="#cli-spec-funits">next part</a> of this section discusses
filing-unit input files.</p>
<p>The details of economic assumptions are contained in a
text file that you write with a text editor. The assumptions are
expressed by specifying which parameters are changed from
their default values, all of which are zero. The timing and magnitude of
these parameter changes are written in JSON, a simple and
widely-used data-specification language.</p>
<p>For examples of economic assumption files and the general rules for
writing JSON assumption files, go
to <a href="https://github.com/PSLmodels/Tax-Calculator/blob/master/taxcalc/assumptions/ASSUMPTIONS.md">this
page</a>.</p>
<p>If you want to upload policy reform and economic assumption files
to TaxBrain, you can go directly to this
section's <a href="#cli-taxbrain-upload">last part</a>, which
discusses uploading files to TaxBrain. If you want to analyze your
tax reforms on your own computer, go to the next part on how to
specify tax filing units used in the analysis.</p>
<p><a href="#cli">Back to Section Contents</a></p>
<h3 id="cli-spec-funits">Specify Filing Units</h3>
<p>The taxcalc package containing the tc CLI to Tax-Calculator does
not include the microsimulation sample used by TaxBrain. This is
because, unlike Census survey public-use files, the IRS-SOI Public Use
File (PUF) is proprietary. If you or your organization has paid IRS
to use the PUF version being used by TaxBrain, then it may be possible
for us to share with you our TaxBrain sample, which we
call <kbd>puf.csv</kbd> even though it contains CPS records that
represent non-filers. Otherwise, you have three choices.</p>
<p><b>First</b>, you can easily create with an editor a CSV-formatted
file containing several filing units whose experience under your tax
reform is of interest to you. Much of the public discussion of tax
reforms is of this type: how is this family or that family affected by
a reform; how do they fare under different reforms; etc. Notice that
this kind of analysis of a few exemplary families is something you
cannot do on TaxBrain. The test conducted to check the tc
installation has left one such file. It is called <kbd>test.csv</kbd>
and contains two filing units with only wage and salary income: a
lower income family and a higher income family. You can use the
<kbd>test.csv</kbd> file as tc input to analyze your tax reforms.
Before creating your own input files be sure to read the short set of
guidelines that appear after this list of three choices.</p>
<p><b>Second</b>, recently we made freely
available a public-use file containing only filing units derived from
several recent March CPS surveys. For several reasons, the results generated
by this <kbd>cps.csv</kbd> file are substantially different from the results
generated by the <kbd>puf.csv</kbd> file. The <kbd>cps.csv</kbd> file
contains a sample of the population while the <kbd>puf.csv</kbd> file
contains mostly a sample of income tax filers in which high-income
filing units are over represented. Also, the <kbd>cps.csv</kbd> file
has many income variables that are missing (and assumed to be zero by
Tax-Calculator), which causes an understating of total incomes,
especially for those with high incomes. All these differences
mean that the aggregate revenue and distributional results generated
when using the <kbd>cps.csv</kbd> file as input to Tax-Calculator can
be substantially different from the results generated when using the
<kbd>puf.csv</kbd> file as input. And this is particularly true when
analyzing reforms that change the tax treatment of high-income filers.</p>
<p><b>Third</b>, when you want to estimate how your reform affects
total tax liabilities and/or the distribution of tax liabilities, you
can always upload your policy reform and economic assumption files
to TaxBrain. Combining this option with the first option provides a
complete tax analysis capability.
The <a href="#cli-taxbrain-upload">last part</a> of this section
describes how to upload files to TaxBrain.</p>
<p><b>Input-File-Preparation Guidelines</b></p>
<p>The tc CLI to Tax-Calculator is flexible enough to read almost any
kind of CSV-formatted input data on filing units as long as the
variable names correspond to those expected by Tax-Calculator. The
only required input variables are <kbd>RECID</kbd> (a unique
filing-unit record identifier) and <kbd>MARS</kbd> (a positive-valued
filing-status indicator). Other variables in the input file must have
variable names that are listed in the <a href="#input">Input
Variables</a> section for them to affect the tax calculations. Any
variable listed in Input Variables that is not in an input file is
automatically set to zero for every filing unit. Variables
in the input file that are not listed in Input Variables are ignored
by Tax-Calculator.</p>
<p>However, there are important data-preparation issues related to the
fact that the payroll tax is a tax on individuals, not on income-tax
filing units. Tax-Calculator expects that the filing-unit total for
each of several earnings-related variables is split between the
taxpayer and the spouse. It is the responsibility of anyone preparing
data for Tax-Calculator input to do this earnings splitting. Here are
the relationships between the filing-unit variable and the taxpayer
(<kbd>p</kbd>) and spouse (<kbd>s</kbd>) variables expected by
Tax-Calculator:
<pre>
e00200 = e00200p + e00200s
e00900 = e00900p + e00900s
e02100 = e02100p + e02100s
</pre>
Obviously, when <kbd>MARS</kbd> is not equal to 2 (married filing
jointly), the values of the three <kbd>s</kbd> variables are zero and
the value of each <kbd>p</kbd> variable is equal to the value of its
corresponding filing-unit variable. Note that the input file can
omit any one, or all, of these three sets variables. If the three
variables in one of these sets are omitted, the required relationship
will be satisfied because zero equals zero plus zero.</p>
<p>But when including one of these three sets of variables, it is up
to you to specify the taxpayer-spouse split. You will get an error
message from Tax-Calculator, and it will stop running, if you do not
split the filing-unit amount between taxpayer and spouse so that the
above equations hold for each filing unit in the input file.</p>
<p>In addition to this earnings-splitting data-preparation issue,
Tax-Calculator expects that the value of ordinary dividends
(<kbd>e00600</kbd>) will be no less than the value of qualified
dividends (<kbd>e00650</kbd>) for each filing unit. And it also
expects that the value of total pension and annuity income
(<kbd>e01500</kbd>) will be no less than the value of taxable pension
and annuity income (<kbd>e01700</kbd>) for each filing unit. Again,
it is your responsibility to prepare input data in a way that ensures
these relationships are true for each filing unit.</p>
<p id="marskids">Here's an example of how to specify a few stylized
filing units with and without young children.
<pre>
RECID,MARS,XTOT,EIC,n24,...
11, 1, 1, 0, 0, ... <== single person with no kids
12, 4, 2, 1, 1, ... <== single person with a young kid
13, 2, 4, 2, 2, ... <== married couple with two young kids
</pre>
Be sure to read the documentation of the <kbd>MARS</kbd>, <kbd>XTOT</kbd>,
<kbd>EIC</kbd>, and <kbd>n24</kbd> input variables. Also, there may
be a need to add of child-age input variables if you want to simulate
reforms like a child credit bonus for children under five years of
age. Also, the universal basic income (UBI) reform is implemented
using its own set of three age-count input variables.
<p><a href="#cli">Back to Section Contents</a></p>
<h3 id="cli-init-analysis">Initiate Reform Analysis</h3>
<p>The tc CLI to Tax-Calculator requires only an input file containing
one or more filing units. A baseline file is optional; no baseline
file implies the policy baseline is current-law policy. A policy
reform file is optional; no reform file implies no reform (that is,
you want to analyze current-law policy). An economic assumption file
is also optional; no assumption file implies you want to conduct
static analysis. The output files written by tc are built-up from
the name of the input file, baseline file, reform file, and
assumption file using a <kbd>#</kbd> character if the option is
not specified.</p>
<p>Here we explain how to conduct tax analysis with the tc CLI by
presenting a series of examples and explaining what output is produced
in each example. There are several types of output that tc can
generate so there will be more than a few examples. The examples are
numbered in order to make it easier to refer to different examples.
All the examples assume that the input file is <kbd>test.csv</kbd>,
which was mentioned in previous part of this section.</p>
<p><pre>
(1)$ tc test.csv 2020
</pre></p>
<p>Example (1) produces a minimal output file containing 2020 tax
liabilities for each filing unit assuming the income amounts in the
input file are amounts for 2020 and assuming current-law tax policy
projected to 2020. The name of the CSV-formatted output file is
<kbd>test-20-#-#-#.csv</kbd>. The first <kbd>#</kbd> symbol indicates
we did not specify a baseline file and the second <kbd>#</kbd> symbol
indicates we did not specify a policy reform file and the
third <kbd>#</kbd> symbol indicates we did not specify an economic
assumption file.
The variables included in the minimal output file include:
<kbd>RECID</kbd> (of filing unit in the input file),
<kbd>YEAR</kbd> (specified when executing tc CLI),
<kbd>WEIGHT</kbd> (which is same as <kbd>s006</kbd>),
<kbd>INCTAX</kbd> (which is same as <kbd>iitax</kbd>),
<kbd>LSTAX</kbd> (which is same as <kbd>lumpsum_tax</kbd>) and
<kbd>PAYTAX</kbd> (which is same as <kbd>payroll_tax</kbd>).
</p>
<p>Also, documentation of the reform is always written to a text file
ending in <kbd>-doc.text</kbd>, which in this example would be
named <kbd>test-20-#-#-#-doc.text</kbd>.</p>
<p><pre>
(2)$ tc test.csv 2020 --dump
</pre></p>
<p>Example (2) produces a much more complete output file with the same
name <kbd>test-20-#-#-#.csv</kbd> as the minimal output file produced in
example (1). No other output is generated other than the
<kbd>test-20-#-#-#-doc.text</kbd> file. The
<kbd>--dump</kbd> option causes <b>all</b> the input variables (including
the ones understood by Tax-Calculator but not included
in <kbd>test.csv</kbd>, which are all zero) and <b>all</b> the output
variables calculated by Tax-Calculator to be included in the output
file. For a complete list of input variables, see
the <a href="#input">Input Variables</a> section. For a complete list
of output variables, see the <a href="#output">Output Variables</a>
section. Since Tax-Calculator ignores variables in the input file
that are not in the Input Variables section, the dump output file in
example (2) can be used as an input file and it will produce exactly
the same tax liabilities (apart from rounding errors of one or two
cents) as in the original dump output.</p>
<p id="partdump">This full dump output can be useful for debugging and
is small when using just a few filing units as input. But
when using large samples as input (for example, the <kbd>cps.csv</kbd>
input file), the size of the dump output becomes quite large. For
Tax-Calculator versions 0.15.0 and higher, there is a way to specify
a <b>partial dump</b> that includes only variables of interest. To
have <kbd>tc</kbd> do a partial dump, create a text file that lists
the names of the variables to be included in the partial dump. You
can put the varible names on separate lines and/or put several names
on one line separated by spaces. Then point to that file using the
<kbd>--dvars</kbd> option. So, for example, if your list of dump
variables is in a file named <kbd>mydumpvars</kbd>, a partial dump
file is created this way:
<pre>
$ tc cps.csv 2020 --dump --dvars mydumpvars
</pre>
If there is no <kbd>--dvars</kbd> option, the <kbd>--dump</kbd> option
produces a full dump.</p>
<p><pre>
(3)$ tc test.csv 2020 --sqldb
</pre></p>
<p>Example (3) produces the same dump output as example (2) except
that the dump output is written not to a CSV-formatted file, but to
the dump table in an SQLite3 database file, which is
called <kbd>test-20-#-#-#.db</kbd> in this example. Because
the <kbd>--dump</kbd> option is not used in example (3), minimal
output will be written to the <kbd>test-20-#-#-#.csv</kbd> file.
Note that use of the <kbd>--dvars</kbd> option causes
the contents of the database file to be a partial dump.</p>
<p> Pros and cons of putting dump output in a CSV file or an SQLite3
database table: The CSV file is almost twice as large as the
database, but it can be easily imported into a wide range of
statistical packages. The main advantage of the
SQLite3 database is that the Anaconda Python distribution includes
<a href="https://www.sqlite.org/cli.html">sqlite3</a> (or sqlite3.exe
on Windows), a command-line tool that can be used to tabulate dump
output using structured query language (SQL). SQL is a language that
you use to specify the tabulation you want and the SQL database
figures out the procedure for generating your tabulation and then
executes that procedure; there is no computer programming involved.
We will give an example of SQL tabulation of dump output in the next
part of this section.</p>
<p><pre>
(4)$ tc test.csv 2020 --dump --sqldb
</pre></p>
<p>Example (4) shows that you can get dump output in the two different
formats from a single tc run.</p>
<p>The remaining examples use neither the <kbd>--dump</kbd> nor the
<kbd>--sqldb</kbd> option, and thus, produce minimal output for the
reform. But either or both of those options could be used in all the
subsequent examples to generate more complete output for the reform.</p>
<p><pre>
(5)$ tc test.csv 2021 --reform ref3.json
</pre></p>
<p>Example (5) produces 2021 output for the filing units in the
<kbd>test.csv</kbd> file using the policy reform specified in
the <kbd>ref3.json</kbd> file. Because no <kbd>--assump</kbd>
option is used, the output results are produced using static analysis.
The name of the output file in this example is
<kbd>test-21-#-ref3-#.csv</kbd>.</p>
<p id="compoundreform">If, in addition to <kbd>ref3.json</kbd>, there
was a <kbd>ref4.json</kbd> reform file and analysis of the <b>compound
reform</b> (consisting of first implementing the <kbd>ref3.json</kbd>
reform relative to current-law policy and then implementing
the <kbd>ref4.json</kbd> reform relative to the <kbd>ref3.json</kbd>
reform) is desired, both reform files can be mentioned in
the tc <kbd>--reform</kbd> option as follows:
<pre>
$ tc test.csv 2021 --reform ref3.json+ref4.json
</pre>
The above command generates an output file named
<kbd>test-21-#-ref3+ref4-#.csv</kbd></p>
<p><pre>
(6)$ tc test.csv 2021 --reform ref3.json --assump res1.json
</pre></p>
<p>Example (6) produces 2021 output for the filing units in the
<kbd>test.csv</kbd> file using the policy reform specified in
the <kbd>ref3.json</kbd> file and the economic assumptions
specified in the <kbd>res1.json</kbd> file. The output results
produced by this non-static analysis are written to the
<kbd>test-21-#-ref3-res1.csv</kbd> file.</p>
<p id="outdir">In the preceding examples, all the output files are
written in the directory where the tc command was executed. If you
want the output files to be written in a different directory, use
the <kbd>--outdir</kbd> option. So, for example, you have created
the <kbd>myoutput</kbd> directory as directory at the same level as
the directory from where you are running tc, output files will be
written there if you use the <kbd>--outdir myoutput</kbd> option.</p>
<p>The following examples illustrate output options that work only if
each filing unit in the input file has a positive sampling weight
(<kbd>s006</kbd>). So, we are going to use the <kbd>cps.csv</kbd>
file in these examples along with the policy reform specified in
the <kbd>ref3.json</kbd> file, the content of which is:
<pre>
// ref3.json raises personal exemption amount to 8000 in 2022,
// after which it continues to be indexed to price inflation.
{
"policy": {
"_II_em": {"2022": [8000]}
}
}
</pre></p>
<p>The output options illustrated in the following examples generate
tables of the post-reform level and the reform-induced change in tax
liability by income deciles as well as graphs of marginal and average
tax rates and percentage change in aftertax income by income percentiles.
These tables and graphs are meant to provide
a quick glance at the impact of a reform. Any serious analysis of a
reform will involve generating custom tables and graphs using
<a href="#partdump">partial dump</a> output. One of many examples
of this sort of custom analysis is
<a href="https://www.washingtonpost.com/graphics/2017/business/tax-bill-calculator/?">here</a>.</p>
<p><pre>
(7)$ tc cps.csv 2022 --reform ref3.json --tables
You loaded data for 2014.
Tax-Calculator startup automatically extrapolated your data to 2022.
(7)$ ls cps-22*
cps-22-#-ref3-#-doc.text cps-22-#-ref3-#-tab.text cps-22-#-ref3-#.csv
(7)$ cat cps-22-#-ref3-#-tab.text
Weighted Tax Reform Totals by Baseline Expanded-Income Decile
Returns ExpInc IncTax PayTax LSTax AllTax
(#m) ($b) ($b) ($b) ($b) ($b)
0 17.19 195.0 -6.2 20.9 0.0 14.7
1 17.19 496.3 -8.2 44.4 0.0 36.2
2 17.19 660.1 -3.2 51.7 0.0 48.5
3 17.19 823.6 0.7 67.3 0.0 68.0
4 17.19 1023.1 7.1 85.5 0.0 92.6
5 17.19 1264.4 15.9 102.8 0.0 118.7
6 17.19 1583.8 39.1 135.4 0.0 174.5
7 17.19 2025.7 78.7 180.4 0.0 259.1
8 17.19 2791.3 172.0 259.1 0.0 431.2
9 17.19 6276.2 1012.3 471.2 0.0 1483.5
A 171.93 17139.6 1308.2 1418.8 0.0 2727.0
Weighted Tax Differences by Baseline Expanded-Income Decile
Returns ExpInc IncTax PayTax LSTax AllTax
(#m) ($b) ($b) ($b) ($b) ($b)
0 17.19 195.0 -1.7 0.0 0.0 -1.7
1 17.19 496.3 -7.0 0.0 0.0 -7.0
2 17.19 660.1 -8.3 0.0 0.0 -8.3
3 17.19 823.6 -10.8 0.0 0.0 -10.8
4 17.19 1023.1 -14.9 0.0 0.0 -14.9
5 17.19 1264.4 -21.2 0.0 0.0 -21.2
6 17.19 1583.8 -28.6 0.0 0.0 -28.6
7 17.19 2025.7 -38.5 0.0 0.0 -38.5
8 17.19 2791.3 -62.4 0.0 0.0 -62.4
9 17.19 6276.2 -71.3 0.0 0.0 -71.3
A 171.93 17139.6 -264.7 0.0 0.0 -264.7
</pre></p>
<p>Example (7) produces 2022 static output for the filing units in the
<kbd>cps.csv</kbd> file using the policy reform specified in
the <kbd>ref3.json</kbd> file. Notice that Tax-Calculator knows to
extrapolate (or <q>age</q>) filing unit data in the <kbd>cps.csv</kbd>
file to the specified tax year. It knows to do that because of the
special input file name <kbd>cps.csv</kbd>. The tables produced by
this static analysis are written to the
<kbd>cps-22-#-ref3-#-tab.text</kbd> file. Note that on Windows
you would use <kbd>dir</kbd> instead of <kbd>ls</kbd> and
<kbd>type</kbd> instead of <kbd>cat</kbd>.</p>
<p>Also note that the tables above in example (7) include in the bottom
decile some filing units who have negative or zero expanded income in
the baseline. If you want tables that somehow exclude those filing
units, use the <kbd>--dump</kbd> option and tabulate your own tables.
<p><pre>
(8)$ tc cps.csv 2024 --reform ref3.json --graphs
You loaded data for 2014.
Tax-Calculator startup automatically extrapolated your data to 2024.
(8)$ ls cps-24-*
cps-24-#-ref3-#-atr.html cps-24-#-ref3-#-pch.html
cps-24-#-ref3-#-doc.text cps-24-#-ref3-#.csv
cps-24-#-ref3-#-mtr.html
</pre></p>
<p>Example (8) is like example (7) except we ask for 2024 static
output and for graphs instead of tables, although we could ask for
both. The HTML files containing the graphs can be viewed in your
browser.</p>
<p>Here is what the average tax rate graph
in <kbd>cps-24-#-ref3-#-atr.html</kbd> looks like.</p>
<p><img src="atr.png" alt="atr graph"></p>
<p>Here is what the marginal tax rate graph
in <kbd>cps-24-#-ref3-#-mtr.html</kbd> looks like:</p>
<p><img src="mtr.png" alt="mtr graph"></p>
<p>Here is what the percentage change in aftertax income graph
in <kbd>cps-24-#-ref3-#-pch.html</kbd> looks like:</p>
<p><img src="pch.png" alt="pch graph"></p>
<p>There is yet another tc CLI output option that writes to the screen
results from a normative welfare analysis of the specified policy
reform. This <kbd>--ceeu</kbd> option produces experimental results
that make sense only with input files that contain representative
samples of the population such as the <kbd>cps.csv</kbd> file. The
name of this option stands for certainty-equivalent expected utility.
If you want to use this output option, you should read the commented
Python source code for the <kbd>ce_aftertax_expanded_income</kbd>
function in the <kbd>taxcalc/utils.py</kbd> file at the
<a href="https://github.com/PSLmodels/Tax-Calculator">
developer website</a>.</p>
<p id="baseline">None of the above examples use the
<kbd>--baseline</kbd> option, which means that baseline policy in
those examples is current-law policy. The following example shows how
to use the <kbd>--baseline</kbd> option to engage in counter-factual
historical analysis. Suppose we want to analyze what would have
happened if some alternative to TCJA had been enacted in late 2017.
To do this we need to have pre-TCJA policy be the baseline policy and
we need to have the alternative reform be implemented relative to
pre-TCJA policy. The following tc run does exactly that using a local
copy of
the <a href="https://github.com/PSLmodels/Tax-Calculator/blob/master/taxcalc/reforms/2017_law.json">2017_law.json<a>
file and the <kbd>alt_reform.json</kbd> file containing the
alternative reform defined relative to pre-TCJA law.</p>
<p><pre>
(9)$ tc cps.csv 2019 --baseline 2017_law.json --reform 2017_law.json+alt_reform.json
You loaded data for 2014.
Tax-Calculator startup automatically extrapolated your data to 2019.
</pre></p>
<p id="fastexec">In all the examples in this section, we have executed
one tc run at at time. But <b>what if you want to execute many tc
runs</b> because you want results for many years and/or for several
different reforms. Unless you are asking for full-dump output, a
single tc run should take no more than one minute on your computer
(even if you are using the large <kbd>cps.csv</kbd> input file). The
easiest way to speed up the execution of many tc runs is to split them
into groups of runs and execute each group of runs in a different
command-prompt window. On most modern computers that have four CPU
cores and a fast disk drive, executing four runs in different windows
will take not much more time than executing a single tc run. If you
have more than one run in each group, put them in a Unix/Mac bash
script or a Windows batch file, and execute one script in each
command-prompt window. If it still takes too long, consider splitting
the tc runs across more than one computer.</p>
<p><a href="#cli">Back to Section Contents</a></p>
<h3 id="cli-tab-results">Tabulate Reform Results</h3>
<p>Given that tc CLI output can be written to either CSV-formatted
files or SQLite3 database files, there is an enormous range of
software tools that can be used to tabulate the output. You can use
SAS or R, Stata or MATLAB, or even import output into a spreadsheet
(but this would seem to be the least useful option). If you just
want to compare the contents of two output files, you can use your
favorite graphical diff program to view the two files <q>side by side</q>
with highlighting of numbers that are different. The main point
is to use a software tool that is available to you and that you have
experience using.</p>
<p>Here we give some examples of using the <kbd>sqlite3</kbd>
command-line tool that is part of the Anaconda distribution (so it is
always available when using Tax-Calculator). The first step, of
course, is to use the <kbd>--sqldb</kbd> option when running tc. Then
you can use the <kbd>sqlite3</kbd> tool interactively or use it to
execute SQL scripts you have saved in a text file. We'll provide
examples of both those approaches. There are many online tutorials on
the SQL select command; if you want to learn more, search the
Internet.</p>
<p>First, we provide a simple example of using <kbd>sqlite3</kbd>
interactively. This approach is ideal for exploratory data analysis.
Our example uses the <kbd>cps.csv</kbd> file as input, but you can do
the following with the output from any input file that has weights
(<kbd>s006</kbd>). Also, we specify no policy reform file, so the
output is for current-law policy. What you cannot see from the
following record of the analysis is that the <kbd>sqlite3</kbd> tool
keeps a command history, so pressing the up-arrow key will bring up
the prior command for editing. This feature reduces substantially the
amount of typing required to conduct exploratory data analysis.
<pre>
$ tc cps.csv 2016 --sqldb
You loaded data for 2014.
Tax-Calculator startup automatically extrapolated your data to 2016.
$ sqlite3 cps-16-#-#-#.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> YOUR FIRST SQL COMMAND GOES HERE
sqlite> YOUR SECOND SQL COMMAND GOES HERE
sqlite> ...
sqlite> YOUR FINAL SQL COMMAND GOES HERE
sqlite> .quit
$
</pre>
</p>
<p>Second, we provide a simple example of using <kbd>sqlite3</kbd>
with SQL commands stored in a text file. This approach is useful
if you want to tabulate many different output files in the same way.
This second example assumes that the first example has already
been done. Note that on Windows you should replace <kbd>cat</kbd>
with <kbd>type</kbd>.
</p>
<pre>
$ cat tab.sql
-- tabulate unweighted and weighted number of filing units
select "unweighted count | weighted count (#m) of filing units";
select count(*), -- unweighted count of filing units
round(sum(s006)*1e-6,3) -- weighted count of filing units (#m)
from dump;
-- weighted count by filing status (MARS)
select "filing status (MARS) | weighted count of filing units";
select MARS, -- filing status
round(sum(s006)*1e-6,3) -- weighted count of filing units (#m)
from dump
group by MARS;
-- tabulate weight of those with NEGATIVE marginal income tax rates
select "weighted count of those with NEGATIVE MTR";
select round(sum(s006)*1e-6,3) -- weighted count of filing units (#m)
from dump
where mtr_inctax < 0;
-- construct NON-NEGATIVE marginal income tax rate histogram with bin width 10
select "bin number | weighted count | mean NON-NEGATIVE MTR in bin";
select cast(round((mtr_inctax-5)/10) as int) as mtr_bin, -- histogram bin number
round(sum(s006)*1e-6,3), -- weight count of filing units in bin (#m)
-- weighted mean marginal income tax rate on taxpayer earnings in bin:
round(sum(mtr_inctax*s006)/sum(s006),2)
from dump
where mtr_inctax >= 0 -- include only those with NON-NEGATIVE marginal tax rate
group by mtr_bin
order by mtr_bin;
$ cat tab.sql | sqlite3 cps-16-#-#-#.db
unweighted count | weighted count (#m) of filing units
456465|157.558
filing status (MARS) | weighted count of filing units
1|81.303
2|61.655
4|14.599
weighted count of those with NEGATIVE MTR
15.338
bin number | weighted count | mean NON-NEGATIVE MTR in bin
-1|26.649|0.0
0|2.484|7.17
1|60.493|14.14
2|38.317|25.55
3|13.159|32.26
4|0.988|43.15
5|0.113|55.53
6|0.016|66.75
</pre>
The <kbd>cat</kbd> command writes the contents of
the <kbd>tab.sql</kbd> file to stdout. We do nothing but that in the
first command in order to show you the file contents. The second
command pipes the contents of the <kbd>tab.sql</kbd> file into
the <kbd>sqlite3</kbd> tool, which executes the SQL statements and
writes the tabulation results to stdout. (If you're wondering about
the validity of those high marginal tax rates, rest assured that all
filing units with marginal income tax rates greater than sixty
percent have been checked by hand and are valid: most are
caught in the rapid phase-out of non-refundable education credits
or in the phase-in of taxation of social security benefits.
The negative marginal tax rates are caused by refundable credits,
primarily the earned income tax credit.)</p>
<p>If you want to use the <kbd>sqlite3</kbd> tool to tabulate the
changes caused by a reform, use the tc CLI to generate two database
dump files (one for current-law policy and the other for your reform)
and then use the SQLite3 ATTACH command to make both database files
available in your SQLite tabulation session.</p>
<h3 id="cli-taxbrain-upload">Upload Files to TaxBrain</h3>
<p>Any policy reform or economic assumption files you can use with tc
can be uploaded to trigger a TaxBrain run. As mentioned above the
main advantages of doing this is getting access to the proprietary
<kbd>puf.csv</kbd> input file, getting fast execution of both reform
and current-law policy runs for ten years and getting the flexibility
to specify a variety of distributional tables. All the TaxBrain results
can be downloaded to your computer for storage or for additional
analysis.</p>
<p>The files on your computer can be uploaded
at <a href="https://www.ospc.org/taxbrain/file/">the TaxBrain
file-upload page</a>.</p>
<p>An extended example of how preliminary tax analysis on your
computer can be combined with TaxBrain file-uploading is
<a href="https://github.com/PSLmodels/Tax-Calculator/issues/1335">here</a>.</p>
<p><a href="#cli">Back to Section Contents</a>
<a href="#doc">Back to Document Contents</a></p>
<h2 id="pol">Policy Parameters</h2>
<p>This section contains documentation of policy parameters in a
format that is easy to search and print. The policy parameters are
grouped here as they are are on TaxBrain (TB). Parameters understood
by Tax-Calculator and the tc CLI, but not available in the TaxBrain
GUI, are placed in an Other Parameters group at the end of the
section.</p>
<h3>Section Contents</h3>
<p><a href="#pol-parameter-indexing">Parameter Indexing</a></p>
<p><a href="#pol-payroll-taxes">Payroll Taxes</a></p>
<p><a href="#pol-social-security-taxability">Social Security Taxability</a></p>
<p><a href="#pol-above-the-line-deductions">Above The Line Deductions</a></p>
<p><a href="#pol-personal-exemptions">Personal Exemptions</a></p>
<p><a href="#pol-standard-deduction">Standard Deduction</a></p>
<p><a href="#pol-nonrefundable-credits">Nonrefundable Credits</a></p>
<p><a href="#pol-itemized-deductions">Itemized Deductions</a></p>
<p><a href="#pol-capital-gains-dividends">Capital Gains And Dividends</a></p>
<p><a href="#pol-personal-income">Personal Income</a></p>
<p><a href="#pol-other-taxes">Other Taxes</a></p>
<p><a href="#pol-refundable-credits">Refundable Credits</a></p>
<p><a href="#pol-surtaxes">Surtaxes</a></p>
<p><a href="#pol-ubi">Universal Basic Income</a></p>
<p><a href="#pol-benefits">Benefits</a></p>
<p><a href="#pol-other-parameters">Other Parameters</a></p>
<h3 id="pol-parameter-indexing"></a>Parameter Indexing</h3>
<p><b>Parameter Indexing — Offsets</b><br><i>tc Name:</i> _cpi_offset<br><i>TB Name:</i> Decimal offset ADDED to unchained CPI to get parameter indexing rate<br><i>Description:</i> Current-law values are zero; reforms that introduce indexing with chained CPI would have values around -0.0025 beginning in the year before the first year policy parameters will have values computed with chained CPI.<br><i>Notes:</i> See April 2013 CBO report entitled 'What Would Be the Effect on the Deficit of Using the Chained CPI to Index Benefit Programs and the Tax Code?', which includes this: 'The chained CPI grows more slowly than the traditional CPI does: an average of about 0.25 percentage points more slowly per year over the past decade.' <https://www.cbo.gov/publication/44089><br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> False <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br>2013: 0.0<br>2014: 0.0<br>2015: 0.0<br>2016: 0.0<br>2017: -0.0025<br><i>Valid Range:</i> min = -0.005 and max = 0.005<br><i>Out-of-Range Action:</i> stop</p>
<p><a href="#pol">Back to Section Contents</a></p>
<h3 id="pol-payroll-taxes"></a>Payroll Taxes</h3>
<p><b>Payroll Taxes — Social Security FICA</b><br><i>tc Name:</i> _FICA_ss_trt<br><i>TB Name:</i> Social Security payroll tax rate<br><i>Description:</i> Social Security FICA rate, including both employer and employee.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> False <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br>2013: 0.124<br>2014: 0.124<br>2015: 0.124<br>2016: 0.124<br>2017: 0.124<br><i>Valid Range:</i> min = 0 and max = 1<br><i>Out-of-Range Action:</i> stop</p><p><b>Payroll Taxes — Social Security FICA</b><br><i>tc Name:</i> _SS_Earnings_c<br><i>TB Name:</i> Maximum taxable earnings for Social Security<br><i>Description:</i> Only individual earnings below this maximum amount are subjected to Social Security (OASDI) payroll tax.<br><i>Notes:</i> This parameter is indexed by the rate of growth in average wages, not by the price inflation rate.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> True <i>Is Inflation Indexed:</i> True<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br>2013: 113700.0<br>2014: 117000.0<br>2015: 118500.0<br>2016: 118500.0<br>2017: 127200.0<br><i>Valid Range:</i> min = 0 and max = 9e+99<br><i>Out-of-Range Action:</i> stop</p>
<p><b>Payroll Taxes — Medicare FICA</b><br><i>tc Name:</i> _FICA_mc_trt<br><i>TB Name:</i> Medicare payroll tax rate<br><i>Description:</i> Medicare FICA rate, including both employer and employee.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> False <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br>2013: 0.029<br>2014: 0.029<br>2015: 0.029<br>2016: 0.029<br>2017: 0.029<br><i>Valid Range:</i> min = 0 and max = 1<br><i>Out-of-Range Action:</i> stop</p>
<p><b>Payroll Taxes — Additional Medicare FICA</b><br><i>tc Name:</i> _AMEDT_ec<br><i>TB Name:</i> Additional Medicare tax earnings exclusion<br><i>Description:</i> The Additional Medicare Tax rate, _AMEDT_rt, applies to all earnings in excess of this excluded amount.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> True <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br> for: [single, joint, separate, headhousehold, widow]<br>2013: [200000.0, 250000.0, 125000.0, 200000.0, 200000.0]<br>2014: [200000.0, 250000.0, 125000.0, 200000.0, 200000.0]<br>2015: [200000.0, 250000.0, 125000.0, 200000.0, 200000.0]<br>2016: [200000.0, 250000.0, 125000.0, 200000.0, 200000.0]<br>2017: [200000.0, 250000.0, 125000.0, 200000.0, 200000.0]<br><i>Valid Range:</i> min = 0 and max = 9e+99<br><i>Out-of-Range Action:</i> stop</p><p><b>Payroll Taxes — Additional Medicare FICA</b><br><i>tc Name:</i> _AMEDT_rt<br><i>TB Name:</i> Additional Medicare tax rate<br><i>Description:</i> This is the rate applied to the portion of Medicare wages, RRTA compensation and self-employment income exceeding the Additional Medicare Tax earning exclusion.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> False <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br>2013: 0.009<br>2014: 0.009<br>2015: 0.009<br>2016: 0.009<br>2017: 0.009<br><i>Valid Range:</i> min = 0 and max = 1<br><i>Out-of-Range Action:</i> stop</p>
<p><a href="#pol">Back to Section Contents</a></p>
<h3 id="pol-social-security-taxability">Social Security Taxability</h3>
<p><b>Social Security Taxability — Threshold For Social Security Benefit Taxability 1</b><br><i>tc Name:</i> _SS_thd50<br><i>TB Name:</i> Threshold for Social Security benefit taxability 1<br><i>Description:</i> The first threshold for Social Security benefit taxability: if taxpayers have provisional income greater than this threshold, up to 50% of their Social Security benefit will be subject to tax under current law.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> True <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br> for: [single, joint, separate, headhousehold, widow]<br>2013: [25000.0, 32000.0, 25000.0, 25000.0, 25000.0]<br>2014: [25000.0, 32000.0, 25000.0, 25000.0, 25000.0]<br>2015: [25000.0, 32000.0, 25000.0, 25000.0, 25000.0]<br>2016: [25000.0, 32000.0, 25000.0, 25000.0, 25000.0]<br>2017: [25000.0, 32000.0, 25000.0, 25000.0, 25000.0]<br><i>Valid Range:</i> min = 0 and max = _SS_thd85<br><i>Out-of-Range Action:</i> stop</p>
<p><b>Social Security Taxability — Threshold For Social Security Benefit Taxability 2</b><br><i>tc Name:</i> _SS_thd85<br><i>TB Name:</i> Threshold for Social Security benefit taxability 2<br><i>Description:</i> The second threshold for Social Security taxability: if taxpayers have provisional income greater than this threshold, up to 85% of their Social Security benefit will be subject to tax under current law.<br><i>Has An Effect When Using:</i> <i>PUF data:</i> True <i>CPS data:</i> True<br><i>Can Be Inflation Indexed:</i> True <i>Is Inflation Indexed:</i> False<br><i>Integer Value:</i> False <i>Boolean Value:</i> False<br><i>Known Values:</i><br> for: [single, joint, separate, headhousehold, widow]<br>2013: [34000.0, 44000.0, 34000.0, 34000.0, 34000.0]<br>2014: [34000.0, 44000.0, 34000.0, 34000.0, 34000.0]<br>2015: [34000.0, 44000.0, 34000.0, 34000.0, 34000.0]<br>2016: [34000.0, 44000.0, 34000.0, 34000.0, 34000.0]<br>2017: [34000.0, 44000.0, 34000.0, 34000.0, 34000.0]<br><i>Valid Range:</i> min = _SS_thd50 and max = 9e+99<br><i>Out-of-Range Action:</i> stop</p>
<p><a href="#pol">Back to Section Contents</a></p>