@equisoft/tax-us 1.0.1-snapshot.20260107131539 → 1.0.1-snapshot.20260113203520

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.
@@ -8,16 +8,15 @@ exports.getFederalTaxRates = getFederalTaxRates;
8
8
  exports.getFederalBaseTaxAmount = getFederalBaseTaxAmount;
9
9
  exports.getFederalTaxCreditRate = getFederalTaxCreditRate;
10
10
  exports.getFederalBaseCredit = getFederalBaseCredit;
11
- exports.getProvincialAbatement = getProvincialAbatement;
11
+ exports.getStateAbatement = getStateAbatement;
12
12
  exports.getFederalTaxAmount = getFederalTaxAmount;
13
- exports.getProvincialSurtaxAmount = getProvincialSurtaxAmount;
14
- exports.getProvincialBaseTaxAmount = getProvincialBaseTaxAmount;
15
- exports.getProvincialBaseCredit = getProvincialBaseCredit;
16
- exports.getProvincialTaxAmount = getProvincialTaxAmount;
13
+ exports.getStateBaseTaxAmount = getStateBaseTaxAmount;
14
+ exports.getStateBaseCredit = getStateBaseCredit;
15
+ exports.getStateTaxAmount = getStateTaxAmount;
17
16
  exports.getFederalMarginalRate = getFederalMarginalRate;
18
- exports.getProvincialMarginalRate = getProvincialMarginalRate;
17
+ exports.getStateMarginalRate = getStateMarginalRate;
19
18
  exports.getTotalMarginalRate = getTotalMarginalRate;
20
- exports.getMaxProvincialMarginalRate = getMaxProvincialMarginalRate;
19
+ exports.getMaxStateMarginalRate = getMaxStateMarginalRate;
21
20
  exports.getMaxFederalMarginalRate = getMaxFederalMarginalRate;
22
21
  exports.getTotalMaxMarginalRate = getTotalMaxMarginalRate;
23
22
  exports.getTotalTaxAmount = getTotalTaxAmount;
@@ -34,439 +33,1249 @@ const misc_1 = require("../misc");
34
33
  const utils_1 = require("../utils");
35
34
  exports.CA_LOWEST_TAX_RATE_2025 = 0.145;
36
35
  exports.TAX_BRACKETS = {
37
- CA: {
36
+ FEDERAL: {
38
37
  ABATEMENT: 0,
39
- TAX_CREDIT_RATE: 0.14,
40
- BASE_TAX_CREDIT: 16129,
38
+ BASE_TAX_CREDIT: 0,
41
39
  RATES: [{
42
40
  FROM: 0,
43
- TO: 57375,
44
- RATE: 0.14,
41
+ RATE: 0.1,
42
+ TO: 11924,
43
+ }, {
44
+ FROM: 11925,
45
+ RATE: 0.12,
46
+ TO: 48474,
45
47
  }, {
46
- FROM: 57375,
47
- TO: 114750,
48
- RATE: 0.205,
48
+ FROM: 48475,
49
+ RATE: 0.22,
50
+ TO: 103349,
51
+ }, {
52
+ FROM: 103350,
53
+ RATE: 0.24,
54
+ TO: 197299,
49
55
  }, {
50
- FROM: 114750,
51
- TO: 177882,
52
- RATE: 0.26,
56
+ FROM: 197300,
57
+ RATE: 0.32,
58
+ TO: 250524,
53
59
  }, {
54
- FROM: 177882,
55
- TO: 253414,
56
- RATE: 0.2932,
60
+ FROM: 250525,
61
+ RATE: 0.35,
62
+ TO: 626349,
57
63
  }, {
58
- FROM: 253414,
64
+ FROM: 626350,
65
+ RATE: 0.37,
59
66
  TO: 999999999,
60
- RATE: 0.33,
61
67
  }],
62
- SURTAX_RATES: [{
68
+ TAX_CREDIT_RATE: 0,
69
+ },
70
+ AK: {
71
+ ABATEMENT: 0,
72
+ BASE_TAX_CREDIT: 0,
73
+ RATES: [
74
+ {
63
75
  FROM: 0,
64
- TO: 999999999,
65
76
  RATE: 0,
66
- }],
77
+ TO: 999999999,
78
+ },
79
+ ],
80
+ TAX_CREDIT_RATE: 0,
67
81
  },
68
- AB: {
82
+ AL: {
69
83
  ABATEMENT: 0,
70
- TAX_CREDIT_RATE: 0.10,
71
- BASE_TAX_CREDIT: 22323,
72
- RATES: [{
84
+ BASE_TAX_CREDIT: 0,
85
+ RATES: [
86
+ {
73
87
  FROM: 0,
74
- TO: 151234,
75
- RATE: 0.10,
76
- }, {
77
- FROM: 151234,
78
- TO: 181481,
79
- RATE: 0.12,
80
- }, {
81
- FROM: 181481,
82
- TO: 241974,
83
- RATE: 0.13,
84
- }, {
85
- FROM: 241974,
86
- TO: 362961,
87
- RATE: 0.14,
88
- }, {
89
- FROM: 362961,
88
+ RATE: 0.02,
89
+ TO: 499,
90
+ },
91
+ {
92
+ FROM: 500,
93
+ RATE: 0.04,
94
+ TO: 2999,
95
+ },
96
+ {
97
+ FROM: 3000,
98
+ RATE: 0.05,
90
99
  TO: 999999999,
91
- RATE: 0.15,
92
- }],
93
- SURTAX_RATES: [{
100
+ },
101
+ ],
102
+ TAX_CREDIT_RATE: 0,
103
+ },
104
+ AR: {
105
+ ABATEMENT: 0,
106
+ BASE_TAX_CREDIT: 0,
107
+ RATES: [
108
+ {
94
109
  FROM: 0,
110
+ RATE: 0.02,
111
+ TO: 4499,
112
+ },
113
+ {
114
+ FROM: 4500,
115
+ RATE: 0.039,
95
116
  TO: 999999999,
96
- RATE: 0,
97
- }],
117
+ },
118
+ ],
119
+ TAX_CREDIT_RATE: 0,
98
120
  },
99
- BC: {
121
+ AZ: {
100
122
  ABATEMENT: 0,
101
- TAX_CREDIT_RATE: 0.0506,
102
- BASE_TAX_CREDIT: 12932,
103
- RATES: [{
123
+ BASE_TAX_CREDIT: 0,
124
+ RATES: [
125
+ {
104
126
  FROM: 0,
105
- TO: 49279,
106
- RATE: 0.0506,
107
- }, {
108
- FROM: 49279,
109
- TO: 98560,
110
- RATE: 0.077,
111
- }, {
112
- FROM: 98560,
113
- TO: 113158,
114
- RATE: 0.105,
115
- }, {
116
- FROM: 113158,
117
- TO: 137407,
118
- RATE: 0.1229,
119
- }, {
120
- FROM: 137407,
121
- TO: 186306,
122
- RATE: 0.147,
123
- }, {
124
- FROM: 186306,
125
- TO: 259829,
126
- RATE: 0.168,
127
- }, {
128
- FROM: 259829,
127
+ RATE: 0.025,
129
128
  TO: 999999999,
130
- RATE: 0.205,
131
- }],
132
- SURTAX_RATES: [{
129
+ },
130
+ ],
131
+ TAX_CREDIT_RATE: 0,
132
+ },
133
+ CA: {
134
+ ABATEMENT: 0,
135
+ BASE_TAX_CREDIT: 0,
136
+ RATES: [
137
+ {
133
138
  FROM: 0,
139
+ RATE: 0.01,
140
+ TO: 10755,
141
+ },
142
+ {
143
+ FROM: 10756,
144
+ RATE: 0.02,
145
+ TO: 25498,
146
+ },
147
+ {
148
+ FROM: 25499,
149
+ RATE: 0.04,
150
+ TO: 40244,
151
+ },
152
+ {
153
+ FROM: 40245,
154
+ RATE: 0.06,
155
+ TO: 55865,
156
+ },
157
+ {
158
+ FROM: 55866,
159
+ RATE: 0.08,
160
+ TO: 70605,
161
+ },
162
+ {
163
+ FROM: 70606,
164
+ RATE: 0.093,
165
+ TO: 360658,
166
+ },
167
+ {
168
+ FROM: 360659,
169
+ RATE: 0.103,
170
+ TO: 432786,
171
+ },
172
+ {
173
+ FROM: 432787,
174
+ RATE: 0.113,
175
+ TO: 721313,
176
+ },
177
+ {
178
+ FROM: 721314,
179
+ RATE: 0.123,
180
+ TO: 999999,
181
+ },
182
+ {
183
+ FROM: 1000000,
184
+ RATE: 0.133,
134
185
  TO: 999999999,
135
- RATE: 0,
136
- }],
186
+ },
187
+ ],
188
+ TAX_CREDIT_RATE: 0,
137
189
  },
138
- MB: {
190
+ CO: {
139
191
  ABATEMENT: 0,
140
- TAX_CREDIT_RATE: 0.108,
141
- BASE_TAX_CREDIT: 15969,
142
- RATES: [{
192
+ BASE_TAX_CREDIT: 0,
193
+ RATES: [
194
+ {
143
195
  FROM: 0,
144
- TO: 47564,
145
- RATE: 0.108,
146
- }, {
147
- FROM: 47564,
148
- TO: 101200,
149
- RATE: 0.1275,
150
- }, {
151
- FROM: 101200,
196
+ RATE: 0.044,
152
197
  TO: 999999999,
153
- RATE: 0.174,
154
- }],
155
- SURTAX_RATES: [{
198
+ },
199
+ ],
200
+ TAX_CREDIT_RATE: 0,
201
+ },
202
+ CT: {
203
+ ABATEMENT: 0,
204
+ BASE_TAX_CREDIT: 0,
205
+ RATES: [
206
+ {
156
207
  FROM: 0,
208
+ RATE: 0.02,
209
+ TO: 9999,
210
+ },
211
+ {
212
+ FROM: 10000,
213
+ RATE: 0.045,
214
+ TO: 49999,
215
+ },
216
+ {
217
+ FROM: 50000,
218
+ RATE: 0.055,
219
+ TO: 99999,
220
+ },
221
+ {
222
+ FROM: 100000,
223
+ RATE: 0.06,
224
+ TO: 199999,
225
+ },
226
+ {
227
+ FROM: 200000,
228
+ RATE: 0.065,
229
+ TO: 249999,
230
+ },
231
+ {
232
+ FROM: 250000,
233
+ RATE: 0.069,
234
+ TO: 499999,
235
+ },
236
+ {
237
+ FROM: 500000,
238
+ RATE: 0.0699,
239
+ TO: 999999999,
240
+ },
241
+ ],
242
+ TAX_CREDIT_RATE: 0,
243
+ },
244
+ DC: {
245
+ ABATEMENT: 0,
246
+ BASE_TAX_CREDIT: 0,
247
+ RATES: [
248
+ {
249
+ FROM: 0,
250
+ RATE: 0.04,
251
+ TO: 9999,
252
+ },
253
+ {
254
+ FROM: 10000,
255
+ RATE: 0.06,
256
+ TO: 39999,
257
+ },
258
+ {
259
+ FROM: 40000,
260
+ RATE: 0.065,
261
+ TO: 59999,
262
+ },
263
+ {
264
+ FROM: 60000,
265
+ RATE: 0.085,
266
+ TO: 249999,
267
+ },
268
+ {
269
+ FROM: 250000,
270
+ RATE: 0.0925,
271
+ TO: 499999,
272
+ },
273
+ {
274
+ FROM: 500000,
275
+ RATE: 0.0975,
276
+ TO: 999999,
277
+ },
278
+ {
279
+ FROM: 1000000,
280
+ RATE: 0.1075,
281
+ TO: 999999999,
282
+ },
283
+ ],
284
+ TAX_CREDIT_RATE: 0,
285
+ },
286
+ DE: {
287
+ ABATEMENT: 0,
288
+ BASE_TAX_CREDIT: 0,
289
+ RATES: [
290
+ {
291
+ FROM: 2000,
292
+ RATE: 0.022,
293
+ TO: 4999,
294
+ },
295
+ {
296
+ FROM: 5000,
297
+ RATE: 0.039,
298
+ TO: 9999,
299
+ },
300
+ {
301
+ FROM: 10000,
302
+ RATE: 0.048,
303
+ TO: 19999,
304
+ },
305
+ {
306
+ FROM: 20000,
307
+ RATE: 0.052,
308
+ TO: 24999,
309
+ },
310
+ {
311
+ FROM: 25000,
312
+ RATE: 0.0555,
313
+ TO: 59999,
314
+ },
315
+ {
316
+ FROM: 60000,
317
+ RATE: 0.066,
157
318
  TO: 999999999,
319
+ },
320
+ ],
321
+ TAX_CREDIT_RATE: 0,
322
+ },
323
+ FL: {
324
+ ABATEMENT: 0,
325
+ BASE_TAX_CREDIT: 0,
326
+ RATES: [
327
+ {
328
+ FROM: 0,
158
329
  RATE: 0,
159
- }],
330
+ TO: 999999999,
331
+ },
332
+ ],
333
+ TAX_CREDIT_RATE: 0,
160
334
  },
161
- NB: {
335
+ GA: {
162
336
  ABATEMENT: 0,
163
- TAX_CREDIT_RATE: 0.094,
164
- BASE_TAX_CREDIT: 13396,
165
- RATES: [{
337
+ BASE_TAX_CREDIT: 0,
338
+ RATES: [
339
+ {
166
340
  FROM: 0,
167
- TO: 51306,
168
- RATE: 0.0940,
169
- }, {
170
- FROM: 51306,
171
- TO: 102614,
172
- RATE: 0.14,
173
- }, {
174
- FROM: 102614,
175
- TO: 190060,
176
- RATE: 0.16,
177
- }, {
178
- FROM: 190060,
341
+ RATE: 0.0539,
179
342
  TO: 999999999,
180
- RATE: 0.195,
181
- }],
182
- SURTAX_RATES: [{
343
+ },
344
+ ],
345
+ TAX_CREDIT_RATE: 0,
346
+ },
347
+ HI: {
348
+ ABATEMENT: 0,
349
+ BASE_TAX_CREDIT: 0,
350
+ RATES: [
351
+ {
183
352
  FROM: 0,
353
+ RATE: 0.014,
354
+ TO: 9599,
355
+ },
356
+ {
357
+ FROM: 9600,
358
+ RATE: 0.032,
359
+ TO: 14399,
360
+ },
361
+ {
362
+ FROM: 14400,
363
+ RATE: 0.055,
364
+ TO: 19199,
365
+ },
366
+ {
367
+ FROM: 19200,
368
+ RATE: 0.064,
369
+ TO: 23999,
370
+ },
371
+ {
372
+ FROM: 24000,
373
+ RATE: 0.068,
374
+ TO: 35999,
375
+ },
376
+ {
377
+ FROM: 36000,
378
+ RATE: 0.072,
379
+ TO: 47999,
380
+ },
381
+ {
382
+ FROM: 48000,
383
+ RATE: 0.076,
384
+ TO: 124999,
385
+ },
386
+ {
387
+ FROM: 125000,
388
+ RATE: 0.079,
389
+ TO: 174999,
390
+ },
391
+ {
392
+ FROM: 175000,
393
+ RATE: 0.0825,
394
+ TO: 224999,
395
+ },
396
+ {
397
+ FROM: 225000,
398
+ RATE: 0.09,
399
+ TO: 274999,
400
+ },
401
+ {
402
+ FROM: 275000,
403
+ RATE: 0.1,
404
+ TO: 324999,
405
+ },
406
+ {
407
+ FROM: 325000,
408
+ RATE: 0.11,
184
409
  TO: 999999999,
185
- RATE: 0,
186
- }],
410
+ },
411
+ ],
412
+ TAX_CREDIT_RATE: 0,
187
413
  },
188
- NL: {
414
+ IA: {
189
415
  ABATEMENT: 0,
190
- TAX_CREDIT_RATE: 0.087,
191
- BASE_TAX_CREDIT: 11067,
192
- RATES: [{
416
+ BASE_TAX_CREDIT: 0,
417
+ RATES: [
418
+ {
193
419
  FROM: 0,
194
- TO: 44192,
195
- RATE: 0.087,
196
- }, {
197
- FROM: 44192,
198
- TO: 88382,
199
- RATE: 0.145,
200
- }, {
201
- FROM: 88382,
202
- TO: 157792,
203
- RATE: 0.158,
204
- }, {
205
- FROM: 157792,
206
- TO: 220910,
207
- RATE: 0.178,
208
- }, {
209
- FROM: 220910,
210
- TO: 282214,
211
- RATE: 0.198,
212
- }, {
213
- FROM: 282214,
214
- TO: 564429,
215
- RATE: 0.208,
216
- }, {
217
- FROM: 564429,
218
- TO: 1128858,
219
- RATE: 0.213,
220
- }, {
221
- FROM: 1128858,
420
+ RATE: 0.038,
222
421
  TO: 999999999,
223
- RATE: 0.218,
224
- }],
225
- SURTAX_RATES: [{
422
+ },
423
+ ],
424
+ TAX_CREDIT_RATE: 0,
425
+ },
426
+ ID: {
427
+ ABATEMENT: 0,
428
+ BASE_TAX_CREDIT: 0,
429
+ RATES: [
430
+ {
431
+ FROM: 4673,
432
+ RATE: 0.05695,
433
+ TO: 999999999,
434
+ },
435
+ ],
436
+ TAX_CREDIT_RATE: 0,
437
+ },
438
+ IL: {
439
+ ABATEMENT: 0,
440
+ BASE_TAX_CREDIT: 0,
441
+ RATES: [
442
+ {
443
+ FROM: 0,
444
+ RATE: 0.0495,
445
+ TO: 999999999,
446
+ },
447
+ ],
448
+ TAX_CREDIT_RATE: 0,
449
+ },
450
+ IN: {
451
+ ABATEMENT: 0,
452
+ BASE_TAX_CREDIT: 0,
453
+ RATES: [
454
+ {
455
+ FROM: 0,
456
+ RATE: 0.03,
457
+ TO: 999999999,
458
+ },
459
+ ],
460
+ TAX_CREDIT_RATE: 0,
461
+ },
462
+ KS: {
463
+ ABATEMENT: 0,
464
+ BASE_TAX_CREDIT: 0,
465
+ RATES: [
466
+ {
467
+ FROM: 0,
468
+ RATE: 0.052,
469
+ TO: 22999,
470
+ },
471
+ {
472
+ FROM: 23000,
473
+ RATE: 0.0558,
474
+ TO: 999999999,
475
+ },
476
+ ],
477
+ TAX_CREDIT_RATE: 0,
478
+ },
479
+ KY: {
480
+ ABATEMENT: 0,
481
+ BASE_TAX_CREDIT: 0,
482
+ RATES: [
483
+ {
484
+ FROM: 0,
485
+ RATE: 0.04,
486
+ TO: 999999999,
487
+ },
488
+ ],
489
+ TAX_CREDIT_RATE: 0,
490
+ },
491
+ LA: {
492
+ ABATEMENT: 0,
493
+ BASE_TAX_CREDIT: 0,
494
+ RATES: [
495
+ {
496
+ FROM: 0,
497
+ RATE: 0.03,
498
+ TO: 999999999,
499
+ },
500
+ ],
501
+ TAX_CREDIT_RATE: 0,
502
+ },
503
+ MA: {
504
+ ABATEMENT: 0,
505
+ BASE_TAX_CREDIT: 0,
506
+ RATES: [
507
+ {
508
+ FROM: 0,
509
+ RATE: 0.05,
510
+ TO: 1083149,
511
+ },
512
+ {
513
+ FROM: 1083150,
514
+ RATE: 0.09,
515
+ TO: 999999999,
516
+ },
517
+ ],
518
+ TAX_CREDIT_RATE: 0,
519
+ },
520
+ MD: {
521
+ ABATEMENT: 0,
522
+ BASE_TAX_CREDIT: 0,
523
+ RATES: [
524
+ {
525
+ FROM: 0,
526
+ RATE: 0.02,
527
+ TO: 999,
528
+ },
529
+ {
530
+ FROM: 1000,
531
+ RATE: 0.03,
532
+ TO: 1999,
533
+ },
534
+ {
535
+ FROM: 2000,
536
+ RATE: 0.04,
537
+ TO: 2999,
538
+ },
539
+ {
540
+ FROM: 3000,
541
+ RATE: 0.0475,
542
+ TO: 99999,
543
+ },
544
+ {
545
+ FROM: 100000,
546
+ RATE: 0.05,
547
+ TO: 124999,
548
+ },
549
+ {
550
+ FROM: 125000,
551
+ RATE: 0.0525,
552
+ TO: 149999,
553
+ },
554
+ {
555
+ FROM: 150000,
556
+ RATE: 0.055,
557
+ TO: 249999,
558
+ },
559
+ {
560
+ FROM: 250000,
561
+ RATE: 0.0575,
562
+ TO: 999999999,
563
+ },
564
+ ],
565
+ TAX_CREDIT_RATE: 0,
566
+ },
567
+ ME: {
568
+ ABATEMENT: 0,
569
+ BASE_TAX_CREDIT: 0,
570
+ RATES: [
571
+ {
572
+ FROM: 0,
573
+ RATE: 0.058,
574
+ TO: 26799,
575
+ },
576
+ {
577
+ FROM: 26800,
578
+ RATE: 0.0675,
579
+ TO: 63449,
580
+ },
581
+ {
582
+ FROM: 63450,
583
+ RATE: 0.0715,
584
+ TO: 999999999,
585
+ },
586
+ ],
587
+ TAX_CREDIT_RATE: 0,
588
+ },
589
+ MI: {
590
+ ABATEMENT: 0,
591
+ BASE_TAX_CREDIT: 0,
592
+ RATES: [
593
+ {
594
+ FROM: 0,
595
+ RATE: 0.0425,
596
+ TO: 999999999,
597
+ },
598
+ ],
599
+ TAX_CREDIT_RATE: 0,
600
+ },
601
+ MN: {
602
+ ABATEMENT: 0,
603
+ BASE_TAX_CREDIT: 0,
604
+ RATES: [
605
+ {
606
+ FROM: 0,
607
+ RATE: 0.0535,
608
+ TO: 32569,
609
+ },
610
+ {
611
+ FROM: 32570,
612
+ RATE: 0.068,
613
+ TO: 106989,
614
+ },
615
+ {
616
+ FROM: 106990,
617
+ RATE: 0.0785,
618
+ TO: 198629,
619
+ },
620
+ {
621
+ FROM: 198630,
622
+ RATE: 0.0985,
623
+ TO: 999999999,
624
+ },
625
+ ],
626
+ TAX_CREDIT_RATE: 0,
627
+ },
628
+ MO: {
629
+ ABATEMENT: 0,
630
+ BASE_TAX_CREDIT: 0,
631
+ RATES: [
632
+ {
633
+ FROM: 1313,
634
+ RATE: 0.02,
635
+ TO: 2625,
636
+ },
637
+ {
638
+ FROM: 2626,
639
+ RATE: 0.025,
640
+ TO: 3938,
641
+ },
642
+ {
643
+ FROM: 3939,
644
+ RATE: 0.03,
645
+ TO: 5251,
646
+ },
647
+ {
648
+ FROM: 5252,
649
+ RATE: 0.035,
650
+ TO: 6564,
651
+ },
652
+ {
653
+ FROM: 6565,
654
+ RATE: 0.04,
655
+ TO: 7877,
656
+ },
657
+ {
658
+ FROM: 7878,
659
+ RATE: 0.045,
660
+ TO: 9190,
661
+ },
662
+ {
663
+ FROM: 9191,
664
+ RATE: 0.047,
665
+ TO: 999999999,
666
+ },
667
+ ],
668
+ TAX_CREDIT_RATE: 0,
669
+ },
670
+ MS: {
671
+ ABATEMENT: 0,
672
+ BASE_TAX_CREDIT: 0,
673
+ RATES: [
674
+ {
675
+ FROM: 10000,
676
+ RATE: 0.044,
677
+ TO: 999999999,
678
+ },
679
+ ],
680
+ TAX_CREDIT_RATE: 0,
681
+ },
682
+ MT: {
683
+ ABATEMENT: 0,
684
+ BASE_TAX_CREDIT: 0,
685
+ RATES: [
686
+ {
687
+ FROM: 0,
688
+ RATE: 0.047,
689
+ TO: 21099,
690
+ },
691
+ {
692
+ FROM: 21100,
693
+ RATE: 0.059,
694
+ TO: 999999999,
695
+ },
696
+ ],
697
+ TAX_CREDIT_RATE: 0,
698
+ },
699
+ NC: {
700
+ ABATEMENT: 0,
701
+ BASE_TAX_CREDIT: 0,
702
+ RATES: [
703
+ {
226
704
  FROM: 0,
705
+ RATE: 0.0425,
227
706
  TO: 999999999,
707
+ },
708
+ ],
709
+ TAX_CREDIT_RATE: 0,
710
+ },
711
+ ND: {
712
+ ABATEMENT: 0,
713
+ BASE_TAX_CREDIT: 0,
714
+ RATES: [
715
+ {
716
+ FROM: 48475,
717
+ RATE: 0.0195,
718
+ TO: 244824,
719
+ },
720
+ {
721
+ FROM: 244825,
722
+ RATE: 0.025,
723
+ TO: 999999999,
724
+ },
725
+ ],
726
+ TAX_CREDIT_RATE: 0,
727
+ },
728
+ NE: {
729
+ ABATEMENT: 0,
730
+ BASE_TAX_CREDIT: 0,
731
+ RATES: [
732
+ {
733
+ FROM: 0,
734
+ RATE: 0.0246,
735
+ TO: 4029,
736
+ },
737
+ {
738
+ FROM: 4030,
739
+ RATE: 0.0351,
740
+ TO: 24119,
741
+ },
742
+ {
743
+ FROM: 24120,
744
+ RATE: 0.0501,
745
+ TO: 38869,
746
+ },
747
+ {
748
+ FROM: 38870,
749
+ RATE: 0.052,
750
+ TO: 999999999,
751
+ },
752
+ ],
753
+ TAX_CREDIT_RATE: 0,
754
+ },
755
+ NH: {
756
+ ABATEMENT: 0,
757
+ BASE_TAX_CREDIT: 0,
758
+ RATES: [
759
+ {
760
+ FROM: 0,
228
761
  RATE: 0,
229
- }],
762
+ TO: 999999999,
763
+ },
764
+ ],
765
+ TAX_CREDIT_RATE: 0,
230
766
  },
231
- NS: {
767
+ NJ: {
232
768
  ABATEMENT: 0,
233
- TAX_CREDIT_RATE: 0.0879,
234
- BASE_TAX_CREDIT: 8744,
235
- RATES: [{
769
+ BASE_TAX_CREDIT: 0,
770
+ RATES: [
771
+ {
236
772
  FROM: 0,
237
- TO: 30507,
238
- RATE: 0.0879,
239
- }, {
240
- FROM: 30507,
241
- TO: 61015,
242
- RATE: 0.1495,
243
- }, {
244
- FROM: 61015,
245
- TO: 95883,
246
- RATE: 0.1667,
247
- }, {
248
- FROM: 95883,
249
- TO: 154650,
250
- RATE: 0.175,
251
- }, {
252
- FROM: 154650,
773
+ RATE: 0.014,
774
+ TO: 19999,
775
+ },
776
+ {
777
+ FROM: 20000,
778
+ RATE: 0.0175,
779
+ TO: 34999,
780
+ },
781
+ {
782
+ FROM: 35000,
783
+ RATE: 0.035,
784
+ TO: 39999,
785
+ },
786
+ {
787
+ FROM: 40000,
788
+ RATE: 0.05525,
789
+ TO: 74999,
790
+ },
791
+ {
792
+ FROM: 75000,
793
+ RATE: 0.0637,
794
+ TO: 499999,
795
+ },
796
+ {
797
+ FROM: 500000,
798
+ RATE: 0.0897,
799
+ TO: 999999,
800
+ },
801
+ {
802
+ FROM: 1000000,
803
+ RATE: 0.1075,
253
804
  TO: 999999999,
254
- RATE: 0.21,
255
- }],
256
- SURTAX_RATES: [{
805
+ },
806
+ ],
807
+ TAX_CREDIT_RATE: 0,
808
+ },
809
+ NM: {
810
+ ABATEMENT: 0,
811
+ BASE_TAX_CREDIT: 0,
812
+ RATES: [
813
+ {
257
814
  FROM: 0,
815
+ RATE: 0.015,
816
+ TO: 5499,
817
+ },
818
+ {
819
+ FROM: 5500,
820
+ RATE: 0.032,
821
+ TO: 16499,
822
+ },
823
+ {
824
+ FROM: 16500,
825
+ RATE: 0.043,
826
+ TO: 33499,
827
+ },
828
+ {
829
+ FROM: 33500,
830
+ RATE: 0.047,
831
+ TO: 66499,
832
+ },
833
+ {
834
+ FROM: 66500,
835
+ RATE: 0.049,
836
+ TO: 209999,
837
+ },
838
+ {
839
+ FROM: 210000,
840
+ RATE: 0.059,
258
841
  TO: 999999999,
842
+ },
843
+ ],
844
+ TAX_CREDIT_RATE: 0,
845
+ },
846
+ NV: {
847
+ ABATEMENT: 0,
848
+ BASE_TAX_CREDIT: 0,
849
+ RATES: [
850
+ {
851
+ FROM: 0,
259
852
  RATE: 0,
260
- }],
853
+ TO: 999999999,
854
+ },
855
+ ],
856
+ TAX_CREDIT_RATE: 0,
261
857
  },
262
- PE: {
858
+ NY: {
263
859
  ABATEMENT: 0,
264
- TAX_CREDIT_RATE: 0.095,
265
- BASE_TAX_CREDIT: 14250,
266
- RATES: [{
860
+ BASE_TAX_CREDIT: 0,
861
+ RATES: [
862
+ {
267
863
  FROM: 0,
268
- TO: 33328,
269
- RATE: 0.095,
270
- }, {
271
- FROM: 33328,
272
- TO: 64656,
273
- RATE: 0.1347,
274
- }, {
275
- FROM: 64656,
276
- TO: 105000,
277
- RATE: 0.166,
278
- }, {
279
- FROM: 105000,
280
- TO: 140000,
281
- RATE: 0.1762,
282
- }, {
283
- FROM: 140000,
864
+ RATE: 0.04,
865
+ TO: 8499,
866
+ },
867
+ {
868
+ FROM: 8500,
869
+ RATE: 0.045,
870
+ TO: 11699,
871
+ },
872
+ {
873
+ FROM: 11700,
874
+ RATE: 0.0525,
875
+ TO: 13899,
876
+ },
877
+ {
878
+ FROM: 13900,
879
+ RATE: 0.055,
880
+ TO: 80649,
881
+ },
882
+ {
883
+ FROM: 80650,
884
+ RATE: 0.06,
885
+ TO: 215399,
886
+ },
887
+ {
888
+ FROM: 215400,
889
+ RATE: 0.0685,
890
+ TO: 1077549,
891
+ },
892
+ {
893
+ FROM: 1077550,
894
+ RATE: 0.0965,
895
+ TO: 4999999,
896
+ },
897
+ {
898
+ FROM: 5000000,
899
+ RATE: 0.103,
900
+ TO: 24999999,
901
+ },
902
+ {
903
+ FROM: 25000000,
904
+ RATE: 0.109,
284
905
  TO: 999999999,
285
- RATE: 0.19,
286
- }],
287
- SURTAX_RATES: [{
906
+ },
907
+ ],
908
+ TAX_CREDIT_RATE: 0,
909
+ },
910
+ OH: {
911
+ ABATEMENT: 0,
912
+ BASE_TAX_CREDIT: 0,
913
+ RATES: [
914
+ {
915
+ FROM: 26050,
916
+ RATE: 0.0275,
917
+ TO: 99999,
918
+ },
919
+ {
920
+ FROM: 100000,
921
+ RATE: 0.035,
922
+ TO: 999999999,
923
+ },
924
+ ],
925
+ TAX_CREDIT_RATE: 0,
926
+ },
927
+ OK: {
928
+ ABATEMENT: 0,
929
+ BASE_TAX_CREDIT: 0,
930
+ RATES: [
931
+ {
932
+ FROM: 0,
933
+ RATE: 0.0025,
934
+ TO: 999,
935
+ },
936
+ {
937
+ FROM: 1000,
938
+ RATE: 0.0075,
939
+ TO: 2499,
940
+ },
941
+ {
942
+ FROM: 2500,
943
+ RATE: 0.0175,
944
+ TO: 3749,
945
+ },
946
+ {
947
+ FROM: 3750,
948
+ RATE: 0.0275,
949
+ TO: 4899,
950
+ },
951
+ {
952
+ FROM: 4900,
953
+ RATE: 0.0375,
954
+ TO: 7199,
955
+ },
956
+ {
957
+ FROM: 7200,
958
+ RATE: 0.0475,
959
+ TO: 999999999,
960
+ },
961
+ ],
962
+ TAX_CREDIT_RATE: 0,
963
+ },
964
+ OR: {
965
+ ABATEMENT: 0,
966
+ BASE_TAX_CREDIT: 0,
967
+ RATES: [
968
+ {
969
+ FROM: 0,
970
+ RATE: 0.0475,
971
+ TO: 4399,
972
+ },
973
+ {
974
+ FROM: 4400,
975
+ RATE: 0.0675,
976
+ TO: 11049,
977
+ },
978
+ {
979
+ FROM: 11050,
980
+ RATE: 0.0875,
981
+ TO: 124999,
982
+ },
983
+ {
984
+ FROM: 125000,
985
+ RATE: 0.099,
986
+ TO: 999999999,
987
+ },
988
+ ],
989
+ TAX_CREDIT_RATE: 0,
990
+ },
991
+ PA: {
992
+ ABATEMENT: 0,
993
+ BASE_TAX_CREDIT: 0,
994
+ RATES: [
995
+ {
996
+ FROM: 0,
997
+ RATE: 0.0307,
998
+ TO: 999999999,
999
+ },
1000
+ ],
1001
+ TAX_CREDIT_RATE: 0,
1002
+ },
1003
+ RI: {
1004
+ ABATEMENT: 0,
1005
+ BASE_TAX_CREDIT: 0,
1006
+ RATES: [
1007
+ {
288
1008
  FROM: 0,
1009
+ RATE: 0.0375,
1010
+ TO: 79899,
1011
+ },
1012
+ {
1013
+ FROM: 79900,
1014
+ RATE: 0.0475,
1015
+ TO: 181649,
1016
+ },
1017
+ {
1018
+ FROM: 181650,
1019
+ RATE: 0.0599,
289
1020
  TO: 999999999,
1021
+ },
1022
+ ],
1023
+ TAX_CREDIT_RATE: 0,
1024
+ },
1025
+ SC: {
1026
+ ABATEMENT: 0,
1027
+ BASE_TAX_CREDIT: 0,
1028
+ RATES: [
1029
+ {
1030
+ FROM: 0,
1031
+ RATE: 0.0,
1032
+ TO: 3559,
1033
+ },
1034
+ {
1035
+ FROM: 3560,
1036
+ RATE: 0.03,
1037
+ TO: 17829,
1038
+ },
1039
+ {
1040
+ FROM: 17830,
1041
+ RATE: 0.062,
1042
+ TO: 999999999,
1043
+ },
1044
+ ],
1045
+ TAX_CREDIT_RATE: 0,
1046
+ },
1047
+ SD: {
1048
+ ABATEMENT: 0,
1049
+ BASE_TAX_CREDIT: 0,
1050
+ RATES: [
1051
+ {
1052
+ FROM: 0,
290
1053
  RATE: 0,
291
- }],
1054
+ TO: 999999999,
1055
+ },
1056
+ ],
1057
+ TAX_CREDIT_RATE: 0,
292
1058
  },
293
- ON: {
1059
+ TN: {
294
1060
  ABATEMENT: 0,
295
- TAX_CREDIT_RATE: 0.0505,
296
- BASE_TAX_CREDIT: 12747,
297
- RATES: [{
1061
+ BASE_TAX_CREDIT: 0,
1062
+ RATES: [
1063
+ {
298
1064
  FROM: 0,
299
- TO: 52886,
300
- RATE: 0.0505,
301
- }, {
302
- FROM: 52886,
303
- TO: 105775,
304
- RATE: 0.0915,
305
- }, {
306
- FROM: 105775,
307
- TO: 150000,
308
- RATE: 0.1116,
309
- }, {
310
- FROM: 150000,
311
- TO: 220000,
312
- RATE: 0.1216,
313
- }, {
314
- FROM: 220000,
1065
+ RATE: 0,
315
1066
  TO: 999999999,
316
- RATE: 0.1316,
317
- }],
318
- SURTAX_RATES: [{
1067
+ },
1068
+ ],
1069
+ TAX_CREDIT_RATE: 0,
1070
+ },
1071
+ TX: {
1072
+ ABATEMENT: 0,
1073
+ BASE_TAX_CREDIT: 0,
1074
+ RATES: [
1075
+ {
319
1076
  FROM: 0,
320
- TO: 5710,
321
1077
  RATE: 0,
322
- }, {
323
- FROM: 5710,
324
- TO: 7307,
325
- RATE: 0.20,
326
- }, {
327
- FROM: 7307,
328
1078
  TO: 999999999,
329
- RATE: 0.56, // 0.20 + 0.36
330
- }],
1079
+ },
1080
+ ],
1081
+ TAX_CREDIT_RATE: 0,
331
1082
  },
332
- QC: {
333
- ABATEMENT: 0.165,
334
- TAX_CREDIT_RATE: 0.14,
335
- BASE_TAX_CREDIT: 18571,
336
- RATES: [{
1083
+ UT: {
1084
+ ABATEMENT: 0,
1085
+ BASE_TAX_CREDIT: 0,
1086
+ RATES: [
1087
+ {
337
1088
  FROM: 0,
338
- TO: 53255,
339
- RATE: 0.14,
340
- }, {
341
- FROM: 53255,
342
- TO: 106495,
343
- RATE: 0.19,
344
- }, {
345
- FROM: 106495,
346
- TO: 129590,
347
- RATE: 0.24,
348
- }, {
349
- FROM: 129590,
1089
+ RATE: 0.0455,
350
1090
  TO: 999999999,
351
- RATE: 0.2575,
352
- }],
353
- SURTAX_RATES: [{
1091
+ },
1092
+ ],
1093
+ TAX_CREDIT_RATE: 0,
1094
+ },
1095
+ VA: {
1096
+ ABATEMENT: 0,
1097
+ BASE_TAX_CREDIT: 0,
1098
+ RATES: [
1099
+ {
1100
+ FROM: 0,
1101
+ RATE: 0.02,
1102
+ TO: 2999,
1103
+ },
1104
+ {
1105
+ FROM: 3000,
1106
+ RATE: 0.03,
1107
+ TO: 4999,
1108
+ },
1109
+ {
1110
+ FROM: 5000,
1111
+ RATE: 0.05,
1112
+ TO: 16999,
1113
+ },
1114
+ {
1115
+ FROM: 17000,
1116
+ RATE: 0.0575,
1117
+ TO: 999999999,
1118
+ },
1119
+ ],
1120
+ TAX_CREDIT_RATE: 0,
1121
+ },
1122
+ VT: {
1123
+ ABATEMENT: 0,
1124
+ BASE_TAX_CREDIT: 0,
1125
+ RATES: [
1126
+ {
354
1127
  FROM: 0,
1128
+ RATE: 0.0335,
1129
+ TO: 47899,
1130
+ },
1131
+ {
1132
+ FROM: 47900,
1133
+ RATE: 0.066,
1134
+ TO: 115999,
1135
+ },
1136
+ {
1137
+ FROM: 116000,
1138
+ RATE: 0.076,
1139
+ TO: 241999,
1140
+ },
1141
+ {
1142
+ FROM: 242000,
1143
+ RATE: 0.0875,
355
1144
  TO: 999999999,
1145
+ },
1146
+ ],
1147
+ TAX_CREDIT_RATE: 0,
1148
+ },
1149
+ WA: {
1150
+ ABATEMENT: 0,
1151
+ BASE_TAX_CREDIT: 0,
1152
+ RATES: [
1153
+ {
1154
+ FROM: 0,
356
1155
  RATE: 0,
357
- }],
1156
+ TO: 999999999,
1157
+ },
1158
+ ],
1159
+ TAX_CREDIT_RATE: 0,
358
1160
  },
359
- SK: {
1161
+ WI: {
360
1162
  ABATEMENT: 0,
361
- TAX_CREDIT_RATE: 0.105,
362
- BASE_TAX_CREDIT: 18991,
363
- RATES: [{
1163
+ BASE_TAX_CREDIT: 0,
1164
+ RATES: [
1165
+ {
364
1166
  FROM: 0,
365
- TO: 53463,
366
- RATE: 0.105,
367
- }, {
368
- FROM: 53463,
369
- TO: 152750,
370
- RATE: 0.125,
371
- }, {
372
- FROM: 152750,
1167
+ RATE: 0.035,
1168
+ TO: 14679,
1169
+ },
1170
+ {
1171
+ FROM: 14680,
1172
+ RATE: 0.044,
1173
+ TO: 29369,
1174
+ },
1175
+ {
1176
+ FROM: 29370,
1177
+ RATE: 0.053,
1178
+ TO: 323289,
1179
+ },
1180
+ {
1181
+ FROM: 323290,
1182
+ RATE: 0.0765,
373
1183
  TO: 999999999,
374
- RATE: 0.145,
375
- }],
376
- SURTAX_RATES: [{
1184
+ },
1185
+ ],
1186
+ TAX_CREDIT_RATE: 0,
1187
+ },
1188
+ WV: {
1189
+ ABATEMENT: 0,
1190
+ BASE_TAX_CREDIT: 0,
1191
+ RATES: [
1192
+ {
377
1193
  FROM: 0,
1194
+ RATE: 0.0222,
1195
+ TO: 9999,
1196
+ },
1197
+ {
1198
+ FROM: 10000,
1199
+ RATE: 0.0296,
1200
+ TO: 24999,
1201
+ },
1202
+ {
1203
+ FROM: 25000,
1204
+ RATE: 0.0333,
1205
+ TO: 39999,
1206
+ },
1207
+ {
1208
+ FROM: 40000,
1209
+ RATE: 0.0444,
1210
+ TO: 59999,
1211
+ },
1212
+ {
1213
+ FROM: 60000,
1214
+ RATE: 0.0482,
378
1215
  TO: 999999999,
379
- RATE: 0,
380
- }],
1216
+ },
1217
+ ],
1218
+ TAX_CREDIT_RATE: 0,
381
1219
  },
382
- NT: {
1220
+ WY: {
383
1221
  ABATEMENT: 0,
384
- TAX_CREDIT_RATE: 0.059,
385
- BASE_TAX_CREDIT: 17842,
1222
+ BASE_TAX_CREDIT: 0,
386
1223
  RATES: [{
387
1224
  FROM: 0,
388
- TO: 51964,
389
- RATE: 0.059,
390
- }, {
391
- FROM: 51964,
392
- TO: 103930,
393
- RATE: 0.086,
394
- }, {
395
- FROM: 103930,
396
- TO: 168967,
397
- RATE: 0.122,
398
- }, {
399
- FROM: 168967,
1225
+ RATE: 0,
400
1226
  TO: 999999999,
401
- RATE: 0.1405,
402
1227
  }],
403
- SURTAX_RATES: [{
1228
+ TAX_CREDIT_RATE: 0,
1229
+ },
1230
+ AS: {
1231
+ ABATEMENT: 0,
1232
+ BASE_TAX_CREDIT: 0,
1233
+ RATES: [{
404
1234
  FROM: 0,
405
- TO: 999999999,
406
1235
  RATE: 0,
1236
+ TO: 999999999,
407
1237
  }],
1238
+ TAX_CREDIT_RATE: 0,
408
1239
  },
409
- NU: {
1240
+ GU: {
410
1241
  ABATEMENT: 0,
411
- TAX_CREDIT_RATE: 0.04,
412
- BASE_TAX_CREDIT: 19274,
1242
+ BASE_TAX_CREDIT: 0,
413
1243
  RATES: [{
414
1244
  FROM: 0,
415
- TO: 54707,
416
- RATE: 0.04,
417
- }, {
418
- FROM: 54707,
419
- TO: 109413,
420
- RATE: 0.07,
421
- }, {
422
- FROM: 109413,
423
- TO: 177881,
424
- RATE: 0.09,
425
- }, {
426
- FROM: 177881,
1245
+ RATE: 0,
427
1246
  TO: 999999999,
428
- RATE: 0.115,
429
1247
  }],
430
- SURTAX_RATES: [{
1248
+ TAX_CREDIT_RATE: 0,
1249
+ },
1250
+ MP: {
1251
+ ABATEMENT: 0,
1252
+ BASE_TAX_CREDIT: 0,
1253
+ RATES: [{
431
1254
  FROM: 0,
432
- TO: 999999999,
433
1255
  RATE: 0,
1256
+ TO: 999999999,
434
1257
  }],
1258
+ TAX_CREDIT_RATE: 0,
435
1259
  },
436
- YT: {
1260
+ PR: {
437
1261
  ABATEMENT: 0,
438
- TAX_CREDIT_RATE: 0.064,
439
- BASE_TAX_CREDIT: 14538,
1262
+ BASE_TAX_CREDIT: 0,
440
1263
  RATES: [{
441
1264
  FROM: 0,
442
- TO: 57375,
443
- RATE: 0.064,
444
- }, {
445
- FROM: 57375,
446
- TO: 114750,
447
- RATE: 0.09,
448
- }, {
449
- FROM: 114750,
450
- TO: 177882,
451
- RATE: 0.109,
452
- }, {
453
- FROM: 177882,
454
- TO: 253414,
455
- RATE: 0.1293,
456
- }, {
457
- FROM: 253414,
458
- TO: 500000,
459
- RATE: 0.128,
460
- }, {
461
- FROM: 500000,
1265
+ RATE: 0,
462
1266
  TO: 999999999,
463
- RATE: 0.15,
464
1267
  }],
465
- SURTAX_RATES: [{
1268
+ TAX_CREDIT_RATE: 0,
1269
+ },
1270
+ VI: {
1271
+ ABATEMENT: 0,
1272
+ BASE_TAX_CREDIT: 0,
1273
+ RATES: [{
466
1274
  FROM: 0,
467
- TO: 999999999,
468
1275
  RATE: 0,
1276
+ TO: 999999999,
469
1277
  }],
1278
+ TAX_CREDIT_RATE: 0,
470
1279
  },
471
1280
  };
472
1281
  function inflate(amount, inflationRate, yearsToInflate) {
@@ -494,9 +1303,9 @@ function getTaxRates(code) {
494
1303
  function getAbatement(code) {
495
1304
  return exports.TAX_BRACKETS[code].ABATEMENT;
496
1305
  }
497
- function getSurtaxRates(code) {
498
- return structuredClone(exports.TAX_BRACKETS[code].SURTAX_RATES);
499
- }
1306
+ /** function getSurtaxRates(code: StateCode | FederalCode): Rate[] {
1307
+ return structuredClone(TAX_BRACKETS[code].SURTAX_RATES);
1308
+ }* */
500
1309
  function getFederalTaxRates(yearsToInflate) {
501
1310
  const rates = getTaxRates(misc_1.FEDERAL_CODE);
502
1311
  const shouldUse2025Rate = yearsToInflate === 0 && (0, utils_1.now)().getFullYear() === 2025;
@@ -510,65 +1319,73 @@ function getFederalBaseTaxAmount(grossIncome, inflationRate = 0, yearsToInflate
510
1319
  }
511
1320
  function getFederalTaxCreditRate(yearsToInflate) {
512
1321
  const shouldUse2025Rate = yearsToInflate === 0 && (0, utils_1.now)().getFullYear() === 2025;
513
- return shouldUse2025Rate ? exports.CA_LOWEST_TAX_RATE_2025 : exports.TAX_BRACKETS.CA.TAX_CREDIT_RATE;
1322
+ return shouldUse2025Rate ? exports.CA_LOWEST_TAX_RATE_2025 : exports.TAX_BRACKETS.FEDERAL.TAX_CREDIT_RATE;
514
1323
  }
515
1324
  function getFederalBaseCredit(inflationRate, yearsToInflate) {
516
1325
  const baseTaxCredit = exports.TAX_BRACKETS.CA.BASE_TAX_CREDIT * getFederalTaxCreditRate(yearsToInflate);
517
1326
  return inflate(baseTaxCredit, inflationRate, yearsToInflate);
518
1327
  }
519
- function getProvincialAbatement(province, federalTaxAmount) {
520
- return getAbatement(province) * federalTaxAmount;
1328
+ function getStateAbatement(state, federalTaxAmount) {
1329
+ return getAbatement(state) * federalTaxAmount;
521
1330
  }
522
1331
  function getFederalTaxAmount(provincialCode, grossIncome, inflationRate = 0, yearsToInflate = 0, taxCredit = 0) {
523
1332
  const federalBaseTaxAmount = getFederalBaseTaxAmount(grossIncome, inflationRate, yearsToInflate);
524
1333
  const baseCredit = getFederalBaseCredit(inflationRate, yearsToInflate);
525
1334
  const federalTax = Math.max(federalBaseTaxAmount - baseCredit - taxCredit, 0);
526
- const abatement = getProvincialAbatement(provincialCode, federalTax);
1335
+ const abatement = getStateAbatement(provincialCode, federalTax);
527
1336
  return Math.max(federalTax - abatement, 0);
528
1337
  }
529
- function getProvincialSurtaxAmount(province, baseTaxAmount, inflationRate = 0, yearsToInflate = 0) {
530
- return getTaxAmount(getSurtaxRates(province), baseTaxAmount, inflationRate, yearsToInflate);
531
- }
532
- function getProvincialBaseTaxAmount(province, grossIncome, inflationRate = 0, yearsToInflate = 0) {
533
- return getTaxAmount(getTaxRates(province), grossIncome, inflationRate, yearsToInflate);
1338
+ /** export function getProvincialSurtaxAmount(
1339
+ state: StateCode,
1340
+ baseTaxAmount: number,
1341
+ inflationRate = 0,
1342
+ yearsToInflate = 0,
1343
+ ): number {
1344
+ return getTaxAmount(getSurtaxRates(state), baseTaxAmount, inflationRate, yearsToInflate);
1345
+ }* */
1346
+ function getStateBaseTaxAmount(state, grossIncome, inflationRate = 0, yearsToInflate = 0) {
1347
+ return getTaxAmount(getTaxRates(state), grossIncome, inflationRate, yearsToInflate);
534
1348
  }
535
- function getProvincialBaseCredit(province, inflationRate, yearsToInflate) {
536
- const baseTaxCredit = exports.TAX_BRACKETS[province].BASE_TAX_CREDIT * exports.TAX_BRACKETS[province].RATES[0].RATE;
1349
+ function getStateBaseCredit(state, inflationRate, yearsToInflate) {
1350
+ const baseTaxCredit = exports.TAX_BRACKETS[state].BASE_TAX_CREDIT * exports.TAX_BRACKETS[state].RATES[0].RATE;
537
1351
  return inflate(baseTaxCredit, inflationRate, yearsToInflate);
538
1352
  }
539
- function getProvincialTaxAmount(province, grossIncome, inflationRate = 0, yearsToInflate = 0, taxCredit = 0) {
540
- const baseTaxAmount = getProvincialBaseTaxAmount(province, grossIncome, inflationRate, yearsToInflate);
541
- const baseCredit = getProvincialBaseCredit(province, inflationRate, yearsToInflate);
1353
+ function getStateTaxAmount(state, grossIncome, inflationRate = 0, yearsToInflate = 0, taxCredit = 0) {
1354
+ const baseTaxAmount = getStateBaseTaxAmount(state, grossIncome, inflationRate, yearsToInflate);
1355
+ const baseCredit = getStateBaseCredit(state, inflationRate, yearsToInflate);
542
1356
  const tax = Math.max(baseTaxAmount - baseCredit, 0);
543
- const surTax = getProvincialSurtaxAmount(province, tax, inflationRate, yearsToInflate);
544
- return Math.max(tax + surTax - taxCredit, 0);
1357
+ // const surTax = getProvincialSurtaxAmount(state, tax, inflationRate, yearsToInflate);
1358
+ // return Math.max(tax + surTax - taxCredit, 0);
1359
+ return Math.max(tax - taxCredit, 0);
545
1360
  }
546
1361
  function getFederalMarginalRate(provincialCode, grossIncome, inflationRate = 0, yearsToInflate = 0) {
547
1362
  const brackets = getTaxRates(misc_1.FEDERAL_CODE);
548
1363
  const rate = getRate(brackets, grossIncome, inflationRate, yearsToInflate);
549
1364
  return rate * (1 - getAbatement(provincialCode));
550
1365
  }
551
- function getProvincialMarginalRate(provincialCode, grossIncome, inflationRate = 0, yearsToInflate = 0) {
552
- const taxAmount = getProvincialTaxAmount(provincialCode, grossIncome, inflationRate, yearsToInflate);
553
- const taxCredit = getProvincialBaseCredit(provincialCode, inflationRate, yearsToInflate);
554
- const provincialTaxAmount = Math.max(taxAmount - taxCredit, 0);
1366
+ function getStateMarginalRate(provincialCode, grossIncome, inflationRate = 0, yearsToInflate = 0) {
1367
+ // const taxAmount = getStateTaxAmount(provincialCode, grossIncome, inflationRate, yearsToInflate);
1368
+ // const taxCredit = getStateBaseCredit(provincialCode, inflationRate, yearsToInflate);
1369
+ // const provincialTaxAmount = Math.max(taxAmount - taxCredit, 0);
555
1370
  const taxBrackets = getTaxRates(provincialCode);
556
- const surtaxBrackets = getSurtaxRates(provincialCode);
1371
+ // const surtaxBrackets = getSurtaxRates(provincialCode);
557
1372
  const taxRate = getRate(taxBrackets, grossIncome, inflationRate, yearsToInflate);
558
- const surtaxRate = getRate(surtaxBrackets, provincialTaxAmount, inflationRate, yearsToInflate);
559
- return taxRate + (taxRate * surtaxRate);
1373
+ // const surtaxRate = getRate(surtaxBrackets, provincialTaxAmount, inflationRate, yearsToInflate);
1374
+ // return taxRate + (taxRate * surtaxRate);
1375
+ return taxRate;
560
1376
  }
561
1377
  function getTotalMarginalRate(provincialCode, grossIncome, inflationRate = 0, yearsToInflate = 0) {
562
- const provRate = getProvincialMarginalRate(provincialCode, grossIncome, inflationRate, yearsToInflate);
1378
+ const provRate = getStateMarginalRate(provincialCode, grossIncome, inflationRate, yearsToInflate);
563
1379
  const fedRate = getFederalMarginalRate(provincialCode, grossIncome, inflationRate, yearsToInflate);
564
1380
  return (0, utils_1.roundToPrecision)(provRate + fedRate, 4);
565
1381
  }
566
- function getMaxProvincialMarginalRate(provincialCode) {
1382
+ function getMaxStateMarginalRate(provincialCode) {
567
1383
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
568
1384
  const marginalRate = (0, utils_1.maxBy)(getTaxRates(provincialCode), (bracket) => bracket.TO).RATE;
569
1385
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
570
- const surtaxRate = (0, utils_1.maxBy)(getSurtaxRates(provincialCode), (bracket) => bracket.TO).RATE;
571
- return marginalRate + (marginalRate * surtaxRate);
1386
+ // const surtaxRate = maxBy(getSurtaxRates(provincialCode), (bracket) => bracket.TO)!.RATE;
1387
+ // return marginalRate + (marginalRate * surtaxRate);
1388
+ return marginalRate;
572
1389
  }
573
1390
  function getMaxFederalMarginalRate(provincialCode) {
574
1391
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -576,18 +1393,18 @@ function getMaxFederalMarginalRate(provincialCode) {
576
1393
  return maxRate * (1 - getAbatement(provincialCode));
577
1394
  }
578
1395
  function getTotalMaxMarginalRate(provincialCode) {
579
- const provRate = getMaxProvincialMarginalRate(provincialCode);
1396
+ const provRate = getMaxStateMarginalRate(provincialCode);
580
1397
  const fedRate = getMaxFederalMarginalRate(provincialCode);
581
1398
  return (0, utils_1.roundToPrecision)(provRate + fedRate, 4);
582
1399
  }
583
1400
  function getTotalTaxAmount(provincialCode, grossIncome, inflationRate = 0, yearsToInflate = 0) {
584
- const provTax = getProvincialTaxAmount(provincialCode, grossIncome, inflationRate, yearsToInflate);
1401
+ const provTax = getStateTaxAmount(provincialCode, grossIncome, inflationRate, yearsToInflate);
585
1402
  const fedTax = getFederalTaxAmount(provincialCode, grossIncome, inflationRate, yearsToInflate);
586
1403
  return Math.max(provTax, 0) + Math.max(fedTax, 0);
587
1404
  }
588
- function getEffectiveRate(province, income, inflationRate = 0, yearsToInflate = 0) {
1405
+ function getEffectiveRate(state, income, inflationRate = 0, yearsToInflate = 0) {
589
1406
  if (income <= 0) {
590
1407
  return 0;
591
1408
  }
592
- return (getTotalTaxAmount(province, income, inflationRate, yearsToInflate)) / income;
1409
+ return (getTotalTaxAmount(state, income, inflationRate, yearsToInflate)) / income;
593
1410
  }