1 // Copyright 2020 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
6 import { default as TaxReturn2019, Constants as Constants2019 } from '../fed2019/TaxReturn';
8 import { FilingStatus } from '.';
10 // The values are from RP-19-44: https://www.irs.gov/pub/irs-drop/rp-19-44.pdf.
12 // The double Object.assign is to work around
13 // https://github.com/microsoft/TypeScript/issues/38516. Using the spread
14 // operator directly into an object literal results in "error TS4029: Public
15 // property 'constants' of exported class has or is using name 'FilingStatus'
16 // from external module "ustaxlib/src/fed2019/TaxReturn" but cannot be named".
17 export const Constants = Object.assign(Object.assign({}, Constants2019, {
19 [FilingStatus.MarriedFilingJoint]: [
21 [ 80250, 0.12, 1975 ],
22 [ 171050, 0.22, 9235 ],
23 [ 326600, 0.24, 29211 ],
24 [ 414700, 0.32, 66543 ],
25 [ 622050, 0.35, 94735 ],
26 [ Infinity, 0.37, 167307.50 ]
28 [FilingStatus.Single]: [
30 [ 40125, 0.12, 987.50 ],
31 [ 85525, 0.22, 4617.50 ],
32 [ 163300, 0.24, 14605.50 ],
33 [ 207350, 0.32, 33271.50 ],
34 [ 518400, 0.35, 47367.50 ],
35 [ Infinity, 0.37, 156235 ]
37 [FilingStatus.MarriedFilingSeparate]: [
39 [ 40125, 0.12, 987.50 ],
40 [ 85525, 0.22, 4617.50 ],
41 [ 163300, 0.24, 14605.50 ],
42 [ 207350, 0.32, 33271.50 ],
43 [ 311025, 0.35, 47367.50 ],
44 [ Infinity, 0.37, 83653.75 ]
49 [FilingStatus.MarriedFilingJoint]: 24800,
50 [FilingStatus.Single]: 12400,
51 [FilingStatus.MarriedFilingSeparate]: 12400,
56 [FilingStatus.MarriedFilingJoint]: 80000,
57 [FilingStatus.Single]: 40000,
58 [FilingStatus.MarriedFilingSeparate]: 40000,
61 [FilingStatus.MarriedFilingJoint]: 496600,
62 [FilingStatus.MarriedFilingSeparate]: 441450,
63 [FilingStatus.Single]: 441450,
67 qualifiedBusinessIncomeDeductionThreshold: {
68 [FilingStatus.MarriedFilingJoint]: 326600,
69 [FilingStatus.MarriedFilingSeparate]: 163300,
70 [FilingStatus.Single]: 163300,
75 [FilingStatus.MarriedFilingJoint]: 113400,
76 [FilingStatus.Single]: 72900,
77 [FilingStatus.MarriedFilingSeparate]: 56700,
80 [FilingStatus.MarriedFilingJoint]: 1036800,
81 [FilingStatus.Single]: 518400,
82 [FilingStatus.MarriedFilingSeparate]: 518400,
84 limitForRate28Percent: {
85 [FilingStatus.MarriedFilingJoint]: 197900,
86 [FilingStatus.Single]: 197900,
87 [FilingStatus.MarriedFilingSeparate]: 98950,
91 prevYearStandardDeduction: Constants2019.standardDeduction,
94 export default class TaxReturn extends TaxReturn2019 {
95 readonly constants = Constants;
97 get year() { return 2020; }