@equisoft/tax-ca 2021.4.0 → 2022.0.0

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.
package/README.md CHANGED
@@ -83,6 +83,7 @@ Data relating to federal and provincial income taxes and social charges.
83
83
 
84
84
  ```
85
85
  TAXES
86
+ |--DividendCredit
86
87
  |--EmploymentInsurance
87
88
  |--IncomeTax
88
89
  |--QuebecParentalInsurancePlan
@@ -1,10 +1,10 @@
1
- import { FederalCode, ProvinceCode } from '../misc/code-types';
1
+ import { FederalCode, ProvinceCode } from '../misc';
2
2
  interface MaxWithdrawalPctByAge {
3
3
  [key: number]: number;
4
4
  }
5
5
  export declare const province1MaxWithdrawalPct: MaxWithdrawalPctByAge;
6
6
  export declare const province2MaxWithdrawalPct: MaxWithdrawalPctByAge;
7
- export declare const federalMaxWithdrawalPct: MaxWithdrawalPctByAge;
8
7
  export declare const othersMaxWithdrawalPct: MaxWithdrawalPctByAge;
8
+ export declare const federalMaxWithdrawalPct: MaxWithdrawalPctByAge;
9
9
  export declare function getMaxWithdrawalPct(jurisdiction: ProvinceCode | FederalCode, age: number): number;
10
10
  export {};
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
+ // tslint:disable:max-line-length
2
3
  /*
3
- Sources:
4
- Federal: http://www.osfi-bsif.gc.ca/Eng/pp-rr/faq/Pages/lif-frv.aspx
4
+ Sources
5
5
  Provincial: https://www.empire.ca/sites/default/files/2020-02/INV-996A-LIFMinMaxWithdrawalPercentages-EN-web_0.pdf
6
+ https://ca.rbcwealthmanagement.com/documents/634020/2289317/2021+-+Registered+Plan+Minimums+and+Maximums.pdf/ded97359-099d-4650-b626-67358d78f3af
7
+ Federal: http://www.osfi-bsif.gc.ca/Eng/pp-rr/faq/Pages/lif-frv.aspx
6
8
 
7
- Revised 2020-12-21
9
+ Revised
10
+ 2021-12-21
8
11
  */
12
+ // tslint:enable:max-line-length
9
13
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getMaxWithdrawalPct = exports.othersMaxWithdrawalPct = exports.federalMaxWithdrawalPct = exports.province2MaxWithdrawalPct = exports.province1MaxWithdrawalPct = void 0;
11
- const math_1 = require("../utils/math");
14
+ exports.getMaxWithdrawalPct = exports.federalMaxWithdrawalPct = exports.othersMaxWithdrawalPct = exports.province2MaxWithdrawalPct = exports.province1MaxWithdrawalPct = void 0;
15
+ const utils_1 = require("../utils");
12
16
  /* Alberta (AB), British Columbia (BC), Ontario (ON), New Brunswick (NB),
13
17
  Newfoundland and Labrador (NL), Saskatchewan (SK)
14
- */
18
+ */
15
19
  exports.province1MaxWithdrawalPct = {
16
20
  54: 0.0640,
17
21
  55: 0.0645,
@@ -90,46 +94,6 @@ exports.province2MaxWithdrawalPct = {
90
94
  88: 0.1890,
91
95
  89: 0.2000,
92
96
  };
93
- // Federal
94
- exports.federalMaxWithdrawalPct = {
95
- 54: 0.040251,
96
- 55: 0.040662,
97
- 56: 0.041107,
98
- 57: 0.041589,
99
- 58: 0.042113,
100
- 59: 0.042683,
101
- 60: 0.043304,
102
- 61: 0.043983,
103
- 62: 0.044726,
104
- 63: 0.045541,
105
- 64: 0.046438,
106
- 65: 0.047429,
107
- 66: 0.048526,
108
- 67: 0.049746,
109
- 68: 0.051107,
110
- 69: 0.052635,
111
- 70: 0.054357,
112
- 71: 0.056309,
113
- 72: 0.058538,
114
- 73: 0.061102,
115
- 74: 0.064077,
116
- 75: 0.067563,
117
- 76: 0.071699,
118
- 77: 0.076427,
119
- 78: 0.081883,
120
- 79: 0.088251,
121
- 80: 0.095777,
122
- 81: 0.104811,
123
- 82: 0.115855,
124
- 83: 0.129661,
125
- 84: 0.147416,
126
- 85: 0.171091,
127
- 86: 0.20424,
128
- 87: 0.253968,
129
- 88: 0.336854,
130
- 89: 0.502636,
131
- 90: 1,
132
- };
133
97
  // Others: Northwest Territories (NT), Nunavut (NU), Prince Edward Island (PE), Yukon (YT)
134
98
  exports.othersMaxWithdrawalPct = {
135
99
  54: 0.0270,
@@ -176,6 +140,45 @@ exports.othersMaxWithdrawalPct = {
176
140
  95: 0.1879,
177
141
  96: 0.2000,
178
142
  };
143
+ // Federal
144
+ exports.federalMaxWithdrawalPct = {
145
+ 54: 0.044832,
146
+ 55: 0.045301,
147
+ 56: 0.045808,
148
+ 57: 0.046359,
149
+ 58: 0.046957,
150
+ 59: 0.047608,
151
+ 60: 0.048318,
152
+ 61: 0.049094,
153
+ 62: 0.049944,
154
+ 63: 0.050878,
155
+ 64: 0.051907,
156
+ 65: 0.053045,
157
+ 66: 0.054306,
158
+ 67: 0.05571,
159
+ 68: 0.05728,
160
+ 69: 0.059044,
161
+ 70: 0.061036,
162
+ 71: 0.0633,
163
+ 72: 0.06589,
164
+ 73: 0.068878,
165
+ 74: 0.072356,
166
+ 75: 0.076448,
167
+ 76: 0.08113,
168
+ 77: 0.086536,
169
+ 78: 0.092849,
170
+ 79: 0.100316,
171
+ 80: 0.109283,
172
+ 81: 0.12025,
173
+ 82: 0.133967,
174
+ 83: 0.151612,
175
+ 84: 0.175151,
176
+ 85: 0.208118,
177
+ 86: 0.257586,
178
+ 87: 0.340054,
179
+ 88: 0.505024,
180
+ 89: 1,
181
+ };
179
182
  function getMaxWithdrawalPct(jurisdiction, age) {
180
183
  switch (jurisdiction) {
181
184
  case 'AB':
@@ -184,15 +187,15 @@ function getMaxWithdrawalPct(jurisdiction, age) {
184
187
  case 'NB':
185
188
  case 'NL':
186
189
  case 'SK':
187
- return exports.province1MaxWithdrawalPct[math_1.clamp(age, 54, 90)];
190
+ return exports.province1MaxWithdrawalPct[utils_1.clamp(age, 54, 90)];
188
191
  case 'QC':
189
192
  case 'MB':
190
193
  case 'NS':
191
- return exports.province2MaxWithdrawalPct[math_1.clamp(age, 54, 89)];
194
+ return exports.province2MaxWithdrawalPct[utils_1.clamp(age, 54, 89)];
192
195
  case 'CA':
193
- return exports.federalMaxWithdrawalPct[math_1.clamp(age, 54, 90)];
196
+ return exports.federalMaxWithdrawalPct[utils_1.clamp(age, 54, 89)];
194
197
  default:
195
- return exports.othersMaxWithdrawalPct[math_1.clamp(age, 54, 96)];
198
+ return exports.othersMaxWithdrawalPct[utils_1.clamp(age, 54, 96)];
196
199
  }
197
200
  }
198
201
  exports.getMaxWithdrawalPct = getMaxWithdrawalPct;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  // tslint:disable:max-line-length
3
3
  /*
4
- Sources:
4
+ Sources
5
5
  http://www.getsmarteraboutmoney.ca/en/managing-your-money/investing/rrifs-and-annuities/Pages/Making-withdrawals-from-your-RRIF.aspx
6
6
 
7
- Revised 2020-12-21
7
+ Revised
8
+ 2021-12-21
8
9
  */
9
10
  // tslint:enable:max-line-length
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  // tslint:disable:max-line-length
3
3
  /*
4
- Sources:
4
+ Sources
5
5
  https://www.canada.ca/en/revenue-agency/services/tax/registered-plans-administrators/pspa/mp-rrsp-dpsp-tfsa-limits-ympe.html
6
6
 
7
- Revised 2020-12-21
7
+ Revised
8
+ 2021-12-21
8
9
  */
9
10
  // tslint:enable:max-line-length
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -14,5 +15,5 @@ exports.RRSP = {
14
15
  MIN: 55,
15
16
  MAX: 71,
16
17
  },
17
- MAX_CONTRIBUTION: 27830,
18
+ MAX_CONTRIBUTION: 29210,
18
19
  };
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  // tslint:disable:max-line-length
3
3
  /*
4
- Sources:
4
+ Sources
5
5
  https://www.canada.ca/en/revenue-agency/services/tax/registered-plans-administrators/pspa/mp-rrsp-dpsp-tfsa-limits-ympe.html
6
6
 
7
- Revised 2020-12-21
7
+ Revised
8
+ 2021-12-21
8
9
  */
9
10
  // tslint:enable:max-line-length
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -25,6 +25,7 @@ export interface ConsumerPriceIndex {
25
25
  2018: MonthlyConsumerPriceIndex;
26
26
  2019: MonthlyConsumerPriceIndex;
27
27
  2020: MonthlyConsumerPriceIndex;
28
+ 2021: MonthlyConsumerPriceIndex;
28
29
  }
29
30
  export declare const CONSUMER_PRICE_INDEX: ConsumerPriceIndex;
30
31
  export {};
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  /*
3
- Sources:
3
+ Sources
4
4
  https://www.bankofcanada.ca/rates/price-indexes/cpi/
5
+ Use column v41690973
5
6
 
6
7
  NOT USED BY FNA-ENGINE
7
- Revised 2019-12-23
8
+ Revised
9
+ 2021-12-21
8
10
  */
9
11
  Object.defineProperty(exports, "__esModule", { value: true });
10
12
  exports.CONSUMER_PRICE_INDEX = void 0;
@@ -175,6 +177,21 @@ exports.CONSUMER_PRICE_INDEX = {
175
177
  SEP: 136.9,
176
178
  OCT: 137.5,
177
179
  NOV: 137.7,
178
- DEC: 137.7,
180
+ DEC: 137.4,
181
+ },
182
+ 2021: {
183
+ JAN: 138.2,
184
+ FEB: 138.9,
185
+ MAR: 139.6,
186
+ APR: 140.3,
187
+ MAY: 141.0,
188
+ JUN: 141.4,
189
+ JUL: 142.3,
190
+ AUG: 142.6,
191
+ SEP: 142.9,
192
+ OCT: 143.9,
193
+ NOV: 144.2,
194
+ // DEC is estimated using the difference between OCT and NOV.
195
+ DEC: 144.5,
179
196
  },
180
197
  };
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  /*
3
- Sources:
3
+ Sources
4
4
  https://www.iqpf.org/docs/default-source/outils/iqpf-normes-projection2021.pdf
5
5
 
6
- Revised 2021-05-05
6
+ Revised
7
+ 2021-05-05
7
8
  */
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.IQPF = void 0;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  /*
3
- Sources:
3
+ Sources
4
4
  http://app.iqpf.org/?locale=en#/guidelines/life-expectancy
5
5
 
6
- Revised 2020-12-21
6
+ Revised
7
+ 2020-12-21
7
8
  */
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.LIFE_EXPECTANCY = void 0;
@@ -1,19 +1,17 @@
1
1
  "use strict";
2
2
  /*
3
- Sources:
3
+ Sources
4
4
  http://www.cra-arc.gc.ca/tx/bsnss/tpcs/pyrll/clcltng/cpp-rpc/cnt-chrt-pf-eng.html
5
- Excutive decision to calculate AVG_MAX with AVG(YMPE2019+YMPE2020+YMPE2021+YMPE2021 for 2022+YMPE2021 for 2023)
6
- because YMPE is overinflated following coronavirus pandemic. Executive deciision to calculate SUP_MAX with
7
- YMPE2021*1.14 because YMPE is overinflated following coronavirus pandemic.
8
5
  https://www.canada.ca/en/services/benefits/publicpensions/cpp/payment-amounts.html
6
+ https://www.canada.ca/en/services/benefits/publicpensions/cpp/old-age-security/cpp-price.html
9
7
  ---
10
8
  http://www.esdc.gc.ca/en/cpp/survivor_pension.page
11
9
  http://www.esdc.gc.ca/en/cpp/death_benefit.page
12
10
  http://www.esdc.gc.ca/en/reports/pension/cpp_technical_amendments.page
13
- http://www.esdc.gc.ca/en/cpp/consumer_price_index.page
14
11
  http://www.statcan.gc.ca/tables-tableaux/sum-som/l01/cst01/econ46a-eng.htm
15
12
 
16
- Revised 2021-01-05
13
+ Revised
14
+ 2022-01-04
17
15
  */
18
16
  Object.defineProperty(exports, "__esModule", { value: true });
19
17
  exports.CPP = void 0;
@@ -22,10 +20,12 @@ const math_1 = require("../utils/math");
22
20
  exports.CPP = {
23
21
  CONTRIBUTIONS: {
24
22
  PENSIONABLE_EARNINGS: {
25
- MAX: 61600,
23
+ MAX: 64900,
26
24
  MIN: 3500,
27
- AVG_MAX: 60180,
28
- SUP_MAX: 70224,
25
+ // Average YMPE of the last 5 year (including current year)
26
+ AVG_MAX: 59700,
27
+ // 114% of AVG_MAX
28
+ SUP_MAX: 68058,
29
29
  SUP_FACTORS: [
30
30
  { FROM: 2019, TO: 2023, FACTOR: 1 },
31
31
  { FROM: 2024, TO: 2024, FACTOR: 1.07 },
@@ -47,13 +47,13 @@ exports.CPP = {
47
47
  DEATH_BENEFIT: { RATE: 0.5 },
48
48
  DEFAULT_REFERENCE_AGE: 65,
49
49
  FLAT_BENEFIT: {
50
- ORPHAN: 3090.96,
51
- DISABILITY: 16963.92,
52
- UNDER_45: 7808.64,
53
- UNDER_45_WITH_CHILD: 7808.64,
54
- UNDER_45_DISABLED: 7808.64,
55
- FROM_45_TO_64: 7808.64,
56
- OVER_64_WITHOUT_PENSION: 8667.00,
50
+ ORPHAN: 3174.36,
51
+ DISABILITY: 17577.96,
52
+ UNDER_45: 8097.48,
53
+ UNDER_45_WITH_CHILD: 8097.48,
54
+ UNDER_45_DISABLED: 8097.48,
55
+ FROM_45_TO_64: 8097.48,
56
+ OVER_64_WITHOUT_PENSION: 9025.80,
57
57
  },
58
58
  getRequestDateFactor(birthDate, requestDate, customReferenceDate) {
59
59
  const { BONUS, PENALTY } = this.MONTHLY_DELAY;
@@ -102,6 +102,7 @@ exports.CPP = {
102
102
  [2019, 0.023],
103
103
  [2020, 0.019],
104
104
  [2021, 0.010],
105
+ [2022, 0.027],
105
106
  ],
106
107
  MAX_INCOME: {
107
108
  1966: 5000,
@@ -160,10 +161,11 @@ exports.CPP = {
160
161
  2019: 57400,
161
162
  2020: 58700,
162
163
  2021: 61600,
164
+ 2022: 64900,
163
165
  },
164
166
  MAX_PENSION: {
165
- RETIREMENT: 14445.00,
166
- COMBINED_RETIREMENT_SURVIVOR: 14445.00,
167
+ RETIREMENT: 15043.08,
168
+ COMBINED_RETIREMENT_SURVIVOR: 15085.56,
167
169
  DEATH_BENEFIT: 2500,
168
170
  },
169
171
  MAX_REQUEST_AGE: 70,
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  /*
3
- Sources:
3
+ Sources
4
4
  https://www.canada.ca/en/services/benefits/publicpensions/cpp/old-age-security/benefit-amount.html
5
5
  https://www.canada.ca/en/services/benefits/publicpensions/cpp/old-age-security/recovery-tax.html
6
6
  https://www.canada.ca/en/services/benefits/publicpensions/cpp/old-age-security/eligibility.html (delay bonus)
7
7
  https://www.canada.ca/en/services/benefits/publicpensions/cpp/old-age-security/payments.html
8
8
 
9
- Revised 2021-05-05
9
+ Revised
10
+ 2021-12-21
10
11
  */
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.OAS = void 0;
@@ -35,11 +36,11 @@ exports.OAS = {
35
36
  },
36
37
  MAX_AGE: 70,
37
38
  MIN_AGE: 65,
38
- MONTHLY_PAYMENT_MAX: 626.49,
39
+ MONTHLY_PAYMENT_MAX: 635.26,
39
40
  MONTHLY_DELAY_BONUS: 0.006,
40
41
  REPAYMENT: {
41
- MAX: 128149,
42
- MIN: 79054,
42
+ MAX: 129757,
43
+ MIN: 79845,
43
44
  RATIO: 0.15,
44
45
  },
45
46
  };
@@ -32,7 +32,7 @@ export interface FlatBenefit {
32
32
  FROM_45_TO_64: number;
33
33
  OVER_64_WITHOUT_PENSION: number;
34
34
  }
35
- export declare type IndexationRateReferenceYear = 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021;
35
+ export declare type IndexationRateReferenceYear = 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022;
36
36
  export declare type IndexationRateReference = [IndexationRateReferenceYear, number];
37
37
  export interface MaxPension {
38
38
  RETIREMENT: number;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  // tslint:disable:max-line-length
3
3
  /*
4
- Sources:
4
+ Sources
5
5
  http://www.rrq.gouv.qc.ca/en/programmes/regime_rentes/regime_chiffres/Pages/regime_chiffres.aspx
6
6
  https://www.rrq.gouv.qc.ca/en/services/publications/regime_rentes/retraite/Pages/tableaux-revenus-travail-admissibles.aspx
7
7
 
8
- Revised 2021-01-05
8
+ Revised
9
+ 2022-01-04
9
10
  */
10
11
  // tslint:enable:max-line-length
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -15,10 +16,12 @@ const math_1 = require("../utils/math");
15
16
  exports.QPP = {
16
17
  CONTRIBUTIONS: {
17
18
  PENSIONABLE_EARNINGS: {
18
- MAX: 61600,
19
+ MAX: 64900,
19
20
  MIN: 3500,
20
- AVG_MAX: 60180,
21
- SUP_MAX: 70224,
21
+ // Average YPE of the last 5 year (including current year)
22
+ AVG_MAX: 59700,
23
+ // 114% of AVG_MAX
24
+ SUP_MAX: 68058,
22
25
  SUP_FACTORS: [
23
26
  { FROM: 2019, TO: 2023, FACTOR: 1 },
24
27
  { FROM: 2024, TO: 2024, FACTOR: 1.07 },
@@ -40,13 +43,13 @@ exports.QPP = {
40
43
  DEATH_BENEFIT: { RATE: 0.5 },
41
44
  DEFAULT_REFERENCE_AGE: 65,
42
45
  FLAT_BENEFIT: {
43
- ORPHAN: 3090.96,
44
- DISABILITY: 16997.40,
45
- UNDER_45: 6941.04,
46
- UNDER_45_WITH_CHILD: 11062.68,
47
- UNDER_45_DISABLED: 11500.80,
48
- FROM_45_TO_64: 11500.80,
49
- OVER_64_WITHOUT_PENSION: 8577.36,
46
+ ORPHAN: 3174.36,
47
+ DISABILITY: 17565.96,
48
+ UNDER_45: 7268.16,
49
+ UNDER_45_WITH_CHILD: 11501.16,
50
+ UNDER_45_DISABLED: 11951.04,
51
+ FROM_45_TO_64: 11951.04,
52
+ OVER_64_WITHOUT_PENSION: 9013.80,
50
53
  },
51
54
  getRequestDateFactor(birthDate, requestDate, customReferenceDate) {
52
55
  const { BONUS, PENALTY } = this.MONTHLY_DELAY;
@@ -95,6 +98,7 @@ exports.QPP = {
95
98
  [2019, 0.023],
96
99
  [2020, 0.019],
97
100
  [2021, 0.010],
101
+ [2022, 0.027],
98
102
  ],
99
103
  MAX_INCOME: {
100
104
  1966: 5000,
@@ -153,10 +157,11 @@ exports.QPP = {
153
157
  2019: 57400,
154
158
  2020: 58700,
155
159
  2021: 61600,
160
+ 2022: 64900,
156
161
  },
157
162
  MAX_PENSION: {
158
- RETIREMENT: 14499.12,
159
- COMBINED_RETIREMENT_SURVIVOR: 14499.12,
163
+ RETIREMENT: 15043.08,
164
+ COMBINED_RETIREMENT_SURVIVOR: 15043.08,
160
165
  DEATH_BENEFIT: 2500,
161
166
  },
162
167
  MAX_REQUEST_AGE: 70,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- Revised 2020-12-22
3
+ Revised
4
+ 2021-12-22
4
5
  */
5
6
  Object.defineProperty(exports, "__esModule", { value: true });
6
7
  exports.SPP = void 0;
@@ -0,0 +1,8 @@
1
+ import { FederalCode, ProvinceCode } from '../misc';
2
+ export declare type DividendTaxCreditRate = {
3
+ GROSS_UP: number;
4
+ } & {
5
+ [key in ProvinceCode | FederalCode]: number;
6
+ };
7
+ export declare const NON_ELIGIBLE_DIVIDEND: DividendTaxCreditRate;
8
+ export declare const ELIGIBLE_DIVIDEND: DividendTaxCreditRate;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /*
3
+ Sources
4
+ Non-eligible Dividends: https://www.taxtips.ca/dtc/non-eligible-dividend-tax-credit.htm
5
+ Eligible Dividends: https://www.taxtips.ca/dtc/eligible-dividends/eligible-dividend-tax-credit-rates.htm
6
+
7
+ Revised
8
+ 2022-01-04
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ELIGIBLE_DIVIDEND = exports.NON_ELIGIBLE_DIVIDEND = void 0;
12
+ exports.NON_ELIGIBLE_DIVIDEND = {
13
+ GROSS_UP: 1.15,
14
+ CA: 0.090301,
15
+ AB: 0.0218,
16
+ BC: 0.0196,
17
+ MB: 0.007835,
18
+ NB: 0.0275,
19
+ NL: 0.032,
20
+ NS: 0.0299,
21
+ NT: 0.06,
22
+ NU: 0.0261,
23
+ ON: 0.029863,
24
+ PE: 0.013,
25
+ QC: 0.0342,
26
+ SK: 0.02105,
27
+ YT: 0.0067,
28
+ };
29
+ exports.ELIGIBLE_DIVIDEND = {
30
+ GROSS_UP: 1.38,
31
+ CA: 0.150198,
32
+ AB: 0.0812,
33
+ BC: 0.12,
34
+ MB: 0.08,
35
+ NB: 0.14,
36
+ NL: 0.063,
37
+ NS: 0.0885,
38
+ NT: 0.115,
39
+ NU: 0.0551,
40
+ ON: 0.1,
41
+ PE: 0.105,
42
+ QC: 0.117,
43
+ SK: 0.11,
44
+ YT: 0.1202,
45
+ };
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
2
  // tslint:disable:max-line-length
3
3
  /*
4
- Sources:
5
- https://www.canada.ca/en/employment-social-development/programs/ei/ei-list/ei-employers/2021-maximum-insurable-earnings.html
4
+ Sources
5
+ https://www.canada.ca/en/employment-social-development/programs/ei/ei-list/ei-employers/2022-maximum-insurable-earnings.html
6
6
 
7
- Revised 2021-01-05
7
+ Revised
8
+ 2021-12-22
8
9
  */
9
10
  // tslint:enable:max-line-length
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
11
12
  exports.EI = void 0;
12
13
  exports.EI = {
13
- MAX_INSURABLE_EARNINGS: 56300,
14
+ MAX_INSURABLE_EARNINGS: 60300,
14
15
  PREMIUM_RATES: {
15
16
  CA: 0.0158,
16
17
  QC: 0.0120,
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  // tslint:disable:max-line-length
3
3
  /*
4
- Sources:
4
+ Sources
5
5
  http://www.taxtips.ca/marginaltaxrates.htm
6
6
  Abattement QC: http://www.cra-arc.gc.ca/tx/ndvdls/tpcs/ncm-tx/rtrn/cmpltng/ddctns/lns409-485/440-fra.html
7
7
 
8
- Revised 2020-12-22
8
+ Revised
9
+ 2021-12-22
9
10
  */
10
11
  // tslint:enable:max-line-length
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,25 +18,25 @@ exports.TAX_BRACKETS = {
17
18
  CA: {
18
19
  ABATEMENT: 0,
19
20
  TAX_CREDIT_RATE: 0.15,
20
- BASE_TAX_CREDIT: 13808,
21
+ BASE_TAX_CREDIT: 14398,
21
22
  RATES: [{
22
23
  FROM: 0,
23
- TO: 49020,
24
+ TO: 50197,
24
25
  RATE: 0.15,
25
26
  }, {
26
- FROM: 49020,
27
- TO: 98040,
27
+ FROM: 50197,
28
+ TO: 100392,
28
29
  RATE: 0.205,
29
30
  }, {
30
- FROM: 98040,
31
- TO: 151978,
31
+ FROM: 100392,
32
+ TO: 155625,
32
33
  RATE: 0.26,
33
34
  }, {
34
- FROM: 151978,
35
- TO: 216511,
36
- RATE: 0.29,
35
+ FROM: 155625,
36
+ TO: 221708,
37
+ RATE: 0.2938,
37
38
  }, {
38
- FROM: 216511,
39
+ FROM: 221708,
39
40
  TO: 999999999,
40
41
  RATE: 0.33,
41
42
  }],
@@ -79,30 +80,30 @@ exports.TAX_BRACKETS = {
79
80
  BC: {
80
81
  ABATEMENT: 0,
81
82
  TAX_CREDIT_RATE: 0.0506,
82
- BASE_TAX_CREDIT: 11070,
83
+ BASE_TAX_CREDIT: 11302,
83
84
  RATES: [{
84
85
  FROM: 0,
85
- TO: 42184,
86
+ TO: 43070,
86
87
  RATE: 0.0506,
87
88
  }, {
88
- FROM: 42184,
89
- TO: 84369,
89
+ FROM: 43070,
90
+ TO: 86141,
90
91
  RATE: 0.077,
91
92
  }, {
92
- FROM: 84369,
93
- TO: 96866,
93
+ FROM: 86141,
94
+ TO: 98901,
94
95
  RATE: 0.105,
95
96
  }, {
96
- FROM: 96866,
97
- TO: 117623,
97
+ FROM: 98901,
98
+ TO: 120094,
98
99
  RATE: 0.1229,
99
100
  }, {
100
- FROM: 117623,
101
- TO: 159483,
101
+ FROM: 120094,
102
+ TO: 162832,
102
103
  RATE: 0.147,
103
104
  }, {
104
- FROM: 159483,
105
- TO: 222420,
105
+ FROM: 162832,
106
+ TO: 227091,
106
107
  RATE: 0.168,
107
108
  }, {
108
109
  FROM: 222420,
@@ -118,7 +119,7 @@ exports.TAX_BRACKETS = {
118
119
  MB: {
119
120
  ABATEMENT: 0,
120
121
  TAX_CREDIT_RATE: 0.108,
121
- BASE_TAX_CREDIT: 9936,
122
+ BASE_TAX_CREDIT: 10145,
122
123
  RATES: [{
123
124
  FROM: 0,
124
125
  TO: 33723,
@@ -140,26 +141,26 @@ exports.TAX_BRACKETS = {
140
141
  },
141
142
  NB: {
142
143
  ABATEMENT: 0,
143
- TAX_CREDIT_RATE: 0.0968,
144
- BASE_TAX_CREDIT: 10564,
144
+ TAX_CREDIT_RATE: 0.094,
145
+ BASE_TAX_CREDIT: 10817,
145
146
  RATES: [{
146
147
  FROM: 0,
147
- TO: 43835,
148
- RATE: 0.0968,
148
+ TO: 44887,
149
+ RATE: 0.0940,
149
150
  }, {
150
- FROM: 43835,
151
- TO: 87671,
151
+ FROM: 44887,
152
+ TO: 89775,
152
153
  RATE: 0.1482,
153
154
  }, {
154
- FROM: 87671,
155
- TO: 142534,
155
+ FROM: 89775,
156
+ TO: 145955,
156
157
  RATE: 0.1652,
157
158
  }, {
158
- FROM: 142534,
159
- TO: 162383,
159
+ FROM: 145955,
160
+ TO: 166280,
160
161
  RATE: 0.1784,
161
162
  }, {
162
- FROM: 162383,
163
+ FROM: 166280,
163
164
  TO: 999999999,
164
165
  RATE: 0.2030,
165
166
  }],
@@ -172,27 +173,39 @@ exports.TAX_BRACKETS = {
172
173
  NL: {
173
174
  ABATEMENT: 0,
174
175
  TAX_CREDIT_RATE: 0.087,
175
- BASE_TAX_CREDIT: 9536,
176
+ BASE_TAX_CREDIT: 9804,
176
177
  RATES: [{
177
178
  FROM: 0,
178
- TO: 38081,
179
+ TO: 39147,
179
180
  RATE: 0.087,
180
181
  }, {
181
- FROM: 38081,
182
- TO: 76161,
182
+ FROM: 39147,
183
+ TO: 78294,
183
184
  RATE: 0.145,
184
185
  }, {
185
- FROM: 76161,
186
- TO: 135973,
186
+ FROM: 78294,
187
+ TO: 139780,
187
188
  RATE: 0.158,
188
189
  }, {
189
- FROM: 135973,
190
- TO: 190363,
191
- RATE: 0.173,
190
+ FROM: 139780,
191
+ TO: 195693,
192
+ RATE: 0.178,
192
193
  }, {
193
- FROM: 190363,
194
+ FROM: 195693,
195
+ TO: 250000,
196
+ RATE: 0.198,
197
+ }, {
198
+ FROM: 250000,
199
+ TO: 500000,
200
+ RATE: 0.208,
201
+ }, {
202
+ FROM: 500000,
203
+ TO: 1000000,
204
+ RATE: 0.213,
205
+ }, {
206
+ FROM: 1000000,
194
207
  TO: 999999999,
195
- RATE: 0.183,
208
+ RATE: 0.218,
196
209
  }],
197
210
  SURTAX_RATES: [{
198
211
  FROM: 0,
@@ -234,7 +247,7 @@ exports.TAX_BRACKETS = {
234
247
  PE: {
235
248
  ABATEMENT: 0,
236
249
  TAX_CREDIT_RATE: 0.098,
237
- BASE_TAX_CREDIT: 10500,
250
+ BASE_TAX_CREDIT: 11250,
238
251
  RATES: [{
239
252
  FROM: 0,
240
253
  TO: 31984,
@@ -261,17 +274,17 @@ exports.TAX_BRACKETS = {
261
274
  ON: {
262
275
  ABATEMENT: 0,
263
276
  TAX_CREDIT_RATE: 0.0505,
264
- BASE_TAX_CREDIT: 10880,
277
+ BASE_TAX_CREDIT: 11141,
265
278
  RATES: [{
266
279
  FROM: 0,
267
- TO: 45142,
280
+ TO: 46226,
268
281
  RATE: 0.0505,
269
282
  }, {
270
- FROM: 45142,
271
- TO: 90287,
283
+ FROM: 46226,
284
+ TO: 92454,
272
285
  RATE: 0.0915,
273
286
  }, {
274
- FROM: 90287,
287
+ FROM: 92454,
275
288
  TO: 150000,
276
289
  RATE: 0.1116,
277
290
  }, {
@@ -285,14 +298,14 @@ exports.TAX_BRACKETS = {
285
298
  }],
286
299
  SURTAX_RATES: [{
287
300
  FROM: 0,
288
- TO: 4874,
301
+ TO: 4991,
289
302
  RATE: 0,
290
303
  }, {
291
- FROM: 4874,
292
- TO: 6237,
304
+ FROM: 4991,
305
+ TO: 6387,
293
306
  RATE: 0.20,
294
307
  }, {
295
- FROM: 6237,
308
+ FROM: 6387,
296
309
  TO: 999999999,
297
310
  RATE: 0.56, // 0.20 + 0.36
298
311
  }],
@@ -300,21 +313,21 @@ exports.TAX_BRACKETS = {
300
313
  QC: {
301
314
  ABATEMENT: 0.165,
302
315
  TAX_CREDIT_RATE: 0.15,
303
- BASE_TAX_CREDIT: 15728,
316
+ BASE_TAX_CREDIT: 16143,
304
317
  RATES: [{
305
318
  FROM: 0,
306
- TO: 45105,
319
+ TO: 46295,
307
320
  RATE: 0.15,
308
321
  }, {
309
- FROM: 45105,
310
- TO: 90200,
322
+ FROM: 46295,
323
+ TO: 92580,
311
324
  RATE: 0.20,
312
325
  }, {
313
- FROM: 90200,
314
- TO: 109755,
326
+ FROM: 92580,
327
+ TO: 112655,
315
328
  RATE: 0.24,
316
329
  }, {
317
- FROM: 109755,
330
+ FROM: 112655,
318
331
  TO: 999999999,
319
332
  RATE: 0.2575,
320
333
  }],
@@ -327,17 +340,17 @@ exports.TAX_BRACKETS = {
327
340
  SK: {
328
341
  ABATEMENT: 0,
329
342
  TAX_CREDIT_RATE: 0.105,
330
- BASE_TAX_CREDIT: 16225,
343
+ BASE_TAX_CREDIT: 16615,
331
344
  RATES: [{
332
345
  FROM: 0,
333
- TO: 45677,
346
+ TO: 46773,
334
347
  RATE: 0.105,
335
348
  }, {
336
- FROM: 45677,
337
- TO: 130506,
349
+ FROM: 46773,
350
+ TO: 133638,
338
351
  RATE: 0.125,
339
352
  }, {
340
- FROM: 130506,
353
+ FROM: 133638,
341
354
  TO: 999999999,
342
355
  RATE: 0.145,
343
356
  }],
@@ -350,21 +363,21 @@ exports.TAX_BRACKETS = {
350
363
  NT: {
351
364
  ABATEMENT: 0,
352
365
  TAX_CREDIT_RATE: 0.059,
353
- BASE_TAX_CREDIT: 15243,
366
+ BASE_TAX_CREDIT: 15609,
354
367
  RATES: [{
355
368
  FROM: 0,
356
- TO: 44396,
369
+ TO: 45462,
357
370
  RATE: 0.059,
358
371
  }, {
359
- FROM: 44396,
360
- TO: 88796,
372
+ FROM: 45462,
373
+ TO: 90927,
361
374
  RATE: 0.086,
362
375
  }, {
363
- FROM: 88796,
364
- TO: 144362,
376
+ FROM: 90927,
377
+ TO: 147826,
365
378
  RATE: 0.122,
366
379
  }, {
367
- FROM: 144362,
380
+ FROM: 147826,
368
381
  TO: 999999999,
369
382
  RATE: 0.1405,
370
383
  }],
@@ -377,21 +390,21 @@ exports.TAX_BRACKETS = {
377
390
  NU: {
378
391
  ABATEMENT: 0,
379
392
  TAX_CREDIT_RATE: 0.04,
380
- BASE_TAX_CREDIT: 16467,
393
+ BASE_TAX_CREDIT: 16862,
381
394
  RATES: [{
382
395
  FROM: 0,
383
- TO: 46740,
396
+ TO: 47862,
384
397
  RATE: 0.04,
385
398
  }, {
386
- FROM: 46740,
387
- TO: 93480,
399
+ FROM: 47862,
400
+ TO: 95724,
388
401
  RATE: 0.07,
389
402
  }, {
390
- FROM: 93480,
391
- TO: 151978,
403
+ FROM: 95724,
404
+ TO: 155625,
392
405
  RATE: 0.09,
393
406
  }, {
394
- FROM: 151978,
407
+ FROM: 155625,
395
408
  TO: 999999999,
396
409
  RATE: 0.115,
397
410
  }],
@@ -404,25 +417,25 @@ exports.TAX_BRACKETS = {
404
417
  YT: {
405
418
  ABATEMENT: 0,
406
419
  TAX_CREDIT_RATE: 0.064,
407
- BASE_TAX_CREDIT: 13808,
420
+ BASE_TAX_CREDIT: 14398,
408
421
  RATES: [{
409
422
  FROM: 0,
410
- TO: 49020,
423
+ TO: 50197,
411
424
  RATE: 0.064,
412
425
  }, {
413
- FROM: 49020,
414
- TO: 98040,
426
+ FROM: 50197,
427
+ TO: 100392,
415
428
  RATE: 0.09,
416
429
  }, {
417
- FROM: 98040,
418
- TO: 151978,
430
+ FROM: 100392,
431
+ TO: 155625,
419
432
  RATE: 0.109,
420
433
  }, {
421
- FROM: 151978,
422
- TO: 216511,
423
- RATE: 0.1294,
434
+ FROM: 155625,
435
+ TO: 221708,
436
+ RATE: 0.1296,
424
437
  }, {
425
- FROM: 216511,
438
+ FROM: 221708,
426
439
  TO: 500000,
427
440
  RATE: 0.128,
428
441
  }, {
@@ -1,3 +1,4 @@
1
+ export * from './dividend-credit';
1
2
  export * from './employment-insurance';
2
3
  export * from './income-tax';
3
4
  export * from './quebec-parental-insurance-plan';
@@ -10,6 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./dividend-credit"), exports);
13
14
  __exportStar(require("./employment-insurance"), exports);
14
15
  __exportStar(require("./income-tax"), exports);
15
16
  __exportStar(require("./quebec-parental-insurance-plan"), exports);
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
  /*
3
- Sources:
3
+ Sources
4
4
  https://www.rqap.gouv.qc.ca/fr/a-propos-du-regime/information-generale/cotisations-et-revenu-maximal-assurable
5
5
 
6
- Revised 2020-12-22
6
+ Revised
7
+ 2021-12-22
7
8
  */
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.QPIP = void 0;
10
11
  exports.QPIP = {
11
- MAX_INSURABLE_EARNINGS: 83500,
12
+ MAX_INSURABLE_EARNINGS: 88000,
12
13
  PREMIUM_RATES: {
13
14
  SELF_EMPLOYED: 0.00878,
14
15
  SALARIED: 0.00494,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equisoft/tax-ca",
3
- "version": "2021.4.0",
3
+ "version": "2022.0.0",
4
4
  "description": "Canadian tax data and calculation functions.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -35,13 +35,13 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@equisoft/tslint-config": "~0.0.8",
38
- "@types/jest": "~26.0.4",
39
- "@types/node": "^16.0.0",
38
+ "@types/jest": "~27.4.0",
39
+ "@types/node": "^17.0.7",
40
40
  "jest": "~24.9.0",
41
- "jest-junit": "~12.2.0",
41
+ "jest-junit": "~13.0.0",
42
42
  "ts-jest": "~24.3.0",
43
43
  "tslint": "~5.20.0",
44
- "typescript": "~4.3.2"
44
+ "typescript": "~4.5.2"
45
45
  },
46
46
  "dependencies": {}
47
47
  }