Add the initial fed2021 overlay.
[ustaxlib.git] / src / fed2021 / TaxReturn.ts
1 // Copyright 2021 Blue Static <https://www.bluestatic.org>
2 // This program is free software licensed under the GNU General Public License,
3 // version 3.0. The full text of the license can be found in LICENSE.txt.
4 // SPDX-License-Identifier: GPL-3.0-only
5
6 import { default as TaxReturn_2020, Constants as Constants_2020 } from '../fed2020/TaxReturn';
7
8 import { FilingStatus } from '.';
9
10 // Rev. Proc 2020-45: https://www.irs.gov/pub/irs-drop/rp-20-45.pdf
11 export const Constants = {
12 ...Constants_2020,
13
14 taxBrackets: {
15 [FilingStatus.MarriedFilingJoint]: [
16 [ 19_900, 0.10, 0 ],
17 [ 81_050, 0.12, 1_990 ],
18 [ 172_750, 0.22, 9_328 ],
19 [ 329_850, 0.24, 29_502 ],
20 [ 418_850, 0.32, 67_206 ],
21 [ 628_300, 0.35, 95_686 ],
22 [ Infinity, 0.37, 168_993.50 ]
23 ],
24 [FilingStatus.Single]: [
25 [ 9_950, 0.10, 0 ],
26 [ 40_525, 0.12, 995 ],
27 [ 86_375 , 0.22, 4_664 ],
28 [ 164_925, 0.24, 14_751 ],
29 [ 209_425, 0.32, 33_603 ],
30 [ 523_600, 0.35, 47_843 ],
31 [ Infinity, 0.37, 157_804.25 ]
32 ],
33 [FilingStatus.MarriedFilingSeparate]: [
34 [ 9_950, 0.10, 0 ],
35 [ 40_525, 0.12, 995 ],
36 [ 86_375, 0.22, 4_664 ],
37 [ 164_925, 0.24, 14_751 ],
38 [ 209_425, 0.32, 33_603 ],
39 [ 314_150, 0.35, 47_843 ],
40 [ Infinity, 0.37, 84_496.75 ]
41 ],
42 },
43
44 standardDeduction: {
45 [FilingStatus.MarriedFilingJoint]: 25_100,
46 [FilingStatus.Single]: 12_550,
47 [FilingStatus.MarriedFilingSeparate]: 12_550,
48 },
49
50 capitalGains: {
51 rate0MaxIncome: {
52 [FilingStatus.MarriedFilingJoint]: 80_800,
53 [FilingStatus.Single]: 40_400,
54 [FilingStatus.MarriedFilingSeparate]: 40_400,
55 },
56 rate15MaxIncome: {
57 [FilingStatus.MarriedFilingJoint]: 501_600,
58 [FilingStatus.MarriedFilingSeparate]: 250_800,
59 [FilingStatus.Single]: 445_850,
60 },
61 },
62
63 qualifiedBusinessIncomeDeductionThreshold: {
64 [FilingStatus.MarriedFilingJoint]: 329_800,
65 [FilingStatus.MarriedFilingSeparate]: 164_925,
66 [FilingStatus.Single]: 164_900,
67 },
68
69 amt: {
70 exemption: {
71 [FilingStatus.MarriedFilingJoint]: 114_600,
72 [FilingStatus.Single]: 73_600,
73 [FilingStatus.MarriedFilingSeparate]: 57_300,
74 },
75 phaseout: {
76 [FilingStatus.MarriedFilingJoint]: 1_047_200,
77 [FilingStatus.Single]: 523_600,
78 [FilingStatus.MarriedFilingSeparate]: 523_600,
79 },
80 limitForRate28Percent: {
81 [FilingStatus.MarriedFilingJoint]: 199_900,
82 [FilingStatus.Single]: 199_900,
83 [FilingStatus.MarriedFilingSeparate]: 99_950,
84 },
85 },
86
87 prevYearStandardDeduction: Constants_2020.standardDeduction,
88 };
89
90 export default class TaxReturn extends TaxReturn_2020 {
91 readonly constants = Constants;
92
93 get year() { return 2021; }
94 }