@classytic/ca-tax 0.0.15 → 0.0.17

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/dist/forms.mjs CHANGED
@@ -548,7 +548,7 @@ const AT1_JACKET_CAPTIONS = [
548
548
  //#region src/t2/at1/forms/jacket.ts
549
549
  /** `SSSFFFOOO` — schedule, field, occurrence. The jacket is schedule 000. */
550
550
  const id$19 = (field, occurrence = 1) => `000${field}${String(occurrence).padStart(3, "0")}`;
551
- const SECTIONS$40 = [
551
+ const SECTIONS$41 = [
552
552
  {
553
553
  id: "identification",
554
554
  title: "Identification",
@@ -685,7 +685,7 @@ const AT1_JACKET = {
685
685
  title: "Alberta Corporate Income Tax Return — AT1",
686
686
  scheme: "tra-line-item-id",
687
687
  taxYears: { from: 2025 },
688
- sections: SECTIONS$40,
688
+ sections: SECTIONS$41,
689
689
  fields: [{
690
690
  line: "000001001",
691
691
  caption: "Is the corporation associated with one or more Canadian-controlled private corporations?",
@@ -2527,7 +2527,7 @@ const AT1_SCHEDULE_10 = {
2527
2527
  //#region src/t2/at1/forms/schedule12.ts
2528
2528
  /** `SSSFFFOOO` — schedule, field, occurrence. */
2529
2529
  const id$8 = (field, occurrence = 1) => `012${field}${String(occurrence).padStart(3, "0")}`;
2530
- const SECTIONS$29 = [{
2530
+ const SECTIONS$30 = [{
2531
2531
  id: "area-a",
2532
2532
  title: "Area A — net income for Alberta corporate income tax purposes",
2533
2533
  description: "Reconciling items between federal and Alberta net income. Report a pair only where the two figures differ."
@@ -2823,7 +2823,7 @@ const AT1_SCHEDULE_12 = {
2823
2823
  title: "Alberta income/loss reconciliation",
2824
2824
  scheme: "tra-line-item-id",
2825
2825
  taxYears: { from: 2024 },
2826
- sections: SECTIONS$29,
2826
+ sections: SECTIONS$30,
2827
2827
  fields: [...SINGLES.map(({ field, ...rest }) => ({
2828
2828
  ...rest,
2829
2829
  line: id$8(field)
@@ -3379,7 +3379,7 @@ const AT1_SCHEDULE_17_RESERVES = [
3379
3379
  federalClosing: "240"
3380
3380
  }
3381
3381
  ];
3382
- const SECTIONS$25 = [{
3382
+ const SECTIONS$26 = [{
3383
3383
  id: "reserves",
3384
3384
  title: "Continuity of reserves",
3385
3385
  description: "Eight reserve kinds. Six mirror federal Schedule 13; policy reserves and bank reserves exist only on the Alberta form."
@@ -3468,7 +3468,7 @@ const AT1_SCHEDULE_17 = {
3468
3468
  title: "Alberta continuity of reserves",
3469
3469
  scheme: "tra-line-item-id",
3470
3470
  taxYears: { from: 2024 },
3471
- sections: SECTIONS$25,
3471
+ sections: SECTIONS$26,
3472
3472
  fields: [...reserveFields$1, ...TOTALS$2].sort((a, b) => a.line.localeCompare(b.line)),
3473
3473
  provenance: {
3474
3474
  document: "research/field-maps/at1-schedules-16-17.md",
@@ -3527,7 +3527,7 @@ const AT1_SCHEDULE_18_CATEGORIES = [
3527
3527
  lossRestricted: true
3528
3528
  }
3529
3529
  ];
3530
- const SECTIONS$24 = [
3530
+ const SECTIONS$25 = [
3531
3531
  {
3532
3532
  id: "dispositions",
3533
3533
  title: "Dispositions by category",
@@ -3775,7 +3775,7 @@ const AT1_SCHEDULE_18 = {
3775
3775
  title: "Alberta dispositions of capital property",
3776
3776
  scheme: "tra-line-item-id",
3777
3777
  taxYears: { from: 2024 },
3778
- sections: SECTIONS$24,
3778
+ sections: SECTIONS$25,
3779
3779
  fields: [...categoryFields, ...REST.map(({ field, ...rest }) => ({
3780
3780
  ...rest,
3781
3781
  line: id$3(field)
@@ -3850,7 +3850,7 @@ const AT1_SCHEDULE_20_POOLS = [{
3850
3850
  },
3851
3851
  toSchedule12: "058"
3852
3852
  }];
3853
- const SECTIONS$23 = [
3853
+ const SECTIONS$24 = [
3854
3854
  {
3855
3855
  id: "charitable",
3856
3856
  title: "Area A — Charitable donations",
@@ -4029,7 +4029,7 @@ const AT1_SCHEDULE_20 = {
4029
4029
  title: "Alberta charitable donations and gifts",
4030
4030
  scheme: "tra-line-item-id",
4031
4031
  taxYears: { from: 2024 },
4032
- sections: SECTIONS$23,
4032
+ sections: SECTIONS$24,
4033
4033
  fields: [...AT1_SCHEDULE_20_POOLS.flatMap((pool) => CONTINUITY_ROWS.map(([key, caption]) => {
4034
4034
  const computed = key === "beginning" || key === "subtotal" || key === "available" || key === "closing";
4035
4035
  const carriedFromFederal = pool.key === "charitable" ? CARRIED_IN_FROM_FEDERAL[key] : void 0;
@@ -4154,15 +4154,135 @@ const AT1_SCHEDULE_21_POOLS = [
4154
4154
  appliedAgainstIncomeNote: "If Schedule 18 exists, carry forward the amount from Schedule 18 line 060. Otherwise, carry forward the amount from federal Schedule 6 line 655."
4155
4155
  }
4156
4156
  ];
4157
- const SECTIONS$22 = [{
4158
- id: "current-year",
4159
- title: "Part 1 — Calculating the current-year non-capital loss",
4160
- description: "Starts from Alberta net income on Schedule 12 line 054 and works down through the Division C deductions to the loss for the year."
4161
- }, {
4162
- id: "continuity",
4163
- title: "Part 2 — Continuity of losses",
4164
- description: "Five pools, each a full continuity. Every closing balance carries to a specific Alberta loss line on Schedule 12."
4165
- }];
4157
+ const SECTIONS$23 = [
4158
+ {
4159
+ id: "current-year",
4160
+ title: "Part 1 Calculating the current-year non-capital loss",
4161
+ description: "Starts from Alberta net income on Schedule 12 line 054 and works down through the Division C deductions to the loss for the year."
4162
+ },
4163
+ {
4164
+ id: "continuity",
4165
+ title: "Part 2 — Continuity of losses",
4166
+ description: "Five pools, each a full continuity. Every closing balance carries to a specific Alberta loss line on Schedule 12."
4167
+ },
4168
+ {
4169
+ id: "rife",
4170
+ title: "Continuity of restricted interest and financing expenses (RIFE)",
4171
+ description: "Page 5. None of these lines is in the NetFile schema — the section is never transmitted — but line 240 feeds Schedule 12 line 130, which is."
4172
+ }
4173
+ ];
4174
+ /**
4175
+ * Page 5 — RIFE, transcribed line by line from
4176
+ * `AT1SCH21-loss-continuity-TRA11741.pdf` (rendered, page 5 of 5). Authored by
4177
+ * hand rather than extracted: the page is a two-block ledger whose line numbers
4178
+ * sit in a right-hand column, which `pdftotext -layout` reproduces but the
4179
+ * caption/number pairing extractor cannot follow. Three lines are carried in
4180
+ * from federal forms by name — the form itself prints the source beside each.
4181
+ * Computed by `schedule21-rife.ts`.
4182
+ */
4183
+ const RIFE = [
4184
+ {
4185
+ field: "200",
4186
+ caption: "RIFE at the end of the previous tax year",
4187
+ kind: "money",
4188
+ role: "input",
4189
+ section: "rife"
4190
+ },
4191
+ {
4192
+ field: "210",
4193
+ caption: "RIFE transferred on an amalgamation or on the wind-up of a subsidiary corporation",
4194
+ kind: "money",
4195
+ role: "input",
4196
+ section: "rife"
4197
+ },
4198
+ {
4199
+ field: "220",
4200
+ caption: "RIFE adjustment for an acquisition of control",
4201
+ kind: "money",
4202
+ role: "input",
4203
+ section: "rife"
4204
+ },
4205
+ {
4206
+ field: "230",
4207
+ caption: "Current-year restricted interest and financing expenses determined under subsection 111(8) of ITA",
4208
+ kind: "money",
4209
+ role: "carried-in",
4210
+ section: "rife",
4211
+ from: {
4212
+ form: "T2SCH4",
4213
+ line: "710",
4214
+ note: "Printed on the form: \"(line 710 from the T2 Schedule 4)\". Schedule 130 Part 2O amount A."
4215
+ }
4216
+ },
4217
+ {
4218
+ field: "240",
4219
+ caption: "RIFE deducted for the tax year",
4220
+ kind: "money",
4221
+ role: "input",
4222
+ section: "rife",
4223
+ note: "Line 240 must not exceed line 350.",
4224
+ to: {
4225
+ form: "AT1SCH12",
4226
+ line: "012130001",
4227
+ note: "Printed on the form: \"(Enter amount on line 130 of the Schedule 12)\"."
4228
+ }
4229
+ },
4230
+ {
4231
+ field: "250",
4232
+ caption: "Closing balance of RIFE",
4233
+ kind: "money",
4234
+ role: "computed",
4235
+ section: "rife",
4236
+ note: "Line 200 plus 210 minus 220 plus 230 minus 240."
4237
+ },
4238
+ {
4239
+ field: "310",
4240
+ caption: "RIFE from previous tax years",
4241
+ kind: "money",
4242
+ role: "computed",
4243
+ section: "rife",
4244
+ note: "Line 200 plus line 210 minus line 220."
4245
+ },
4246
+ {
4247
+ field: "320",
4248
+ caption: "Corporation's excess capacity for the year",
4249
+ kind: "money",
4250
+ role: "carried-in",
4251
+ section: "rife",
4252
+ from: {
4253
+ form: "T2SCH130",
4254
+ line: "129",
4255
+ note: "Printed on the form: \"(line 129 from T2 Schedule 130)\". Part 2G amount F."
4256
+ }
4257
+ },
4258
+ {
4259
+ field: "330",
4260
+ caption: "Total of all amounts of the corporation's received capacity for the year",
4261
+ kind: "money",
4262
+ role: "carried-in",
4263
+ section: "rife",
4264
+ from: {
4265
+ form: "T2SCH130",
4266
+ line: "130",
4267
+ note: "Printed on the form: \"(line 130 from T2 Schedule 130)\". Part 1A amount A."
4268
+ }
4269
+ },
4270
+ {
4271
+ field: "340",
4272
+ caption: "Line 320 plus line 330",
4273
+ kind: "money",
4274
+ role: "computed",
4275
+ section: "rife"
4276
+ },
4277
+ {
4278
+ field: "350",
4279
+ caption: "RIFE deductible under paragraph 111(1)(a.1) of ITA for the year",
4280
+ kind: "money",
4281
+ role: "computed",
4282
+ section: "rife",
4283
+ note: "The lesser of line 310 and line 340 — the ceiling line 240 must not exceed."
4284
+ }
4285
+ ];
4166
4286
  const PART_1 = [
4167
4287
  {
4168
4288
  field: "001",
@@ -4325,11 +4445,18 @@ const AT1_SCHEDULE_21 = {
4325
4445
  title: "Current-year loss and continuity of losses",
4326
4446
  scheme: "tra-line-item-id",
4327
4447
  taxYears: { from: 2024 },
4328
- sections: SECTIONS$22,
4329
- fields: [...PART_1.map(({ field, ...rest }) => ({
4330
- ...rest,
4331
- line: id$1(field)
4332
- })), ...continuityFields].sort((a, b) => a.line.localeCompare(b.line)),
4448
+ sections: SECTIONS$23,
4449
+ fields: [
4450
+ ...PART_1.map(({ field, ...rest }) => ({
4451
+ ...rest,
4452
+ line: id$1(field)
4453
+ })),
4454
+ ...continuityFields,
4455
+ ...RIFE.map(({ field, ...rest }) => ({
4456
+ ...rest,
4457
+ line: id$1(field)
4458
+ }))
4459
+ ].sort((a, b) => a.line.localeCompare(b.line)),
4333
4460
  provenance: {
4334
4461
  document: "research/field-maps/at1-schedules-12-21.md",
4335
4462
  retrieved: "2026-08-08",
@@ -4777,7 +4904,7 @@ const AT1_IEG_PRIOR_YEARS = 2;
4777
4904
  const AT1_IEG_JACKET_LINE = "000129001";
4778
4905
  //#endregion
4779
4906
  //#region src/t2/co17/forms/co17.ts
4780
- const SECTIONS$20 = [
4907
+ const SECTIONS$21 = [
4781
4908
  {
4782
4909
  id: "identity",
4783
4910
  title: "1 — Renseignements sur l'identité de la société"
@@ -4813,7 +4940,7 @@ const CO17_RETURN = {
4813
4940
  title: "CO-17 — Déclaration de revenus des sociétés",
4814
4941
  scheme: "rq-box",
4815
4942
  taxYears: { from: 2025 },
4816
- sections: SECTIONS$20,
4943
+ sections: SECTIONS$21,
4817
4944
  fields: [
4818
4945
  F$5("01a", "Numéro d'entreprise du Québec (NEQ)", "identity", { kind: "text" }),
4819
4946
  F$5("01b", "Numéro d'identification", "identity", { kind: "text" }),
@@ -4875,7 +5002,13 @@ const CO17_QUEBEC_PROPORTION_BOX = "421";
4875
5002
  const CO17_TAX_PAYABLE_BOX = "425";
4876
5003
  //#endregion
4877
5004
  //#region src/t2/forms/jacket.ts
4878
- const SECTIONS$19 = [
5005
+ const SECTIONS$20 = [
5006
+ {
5007
+ id: "identification",
5008
+ title: "Identification",
5009
+ page: 1,
5010
+ description: "Who is filing, for which tax year, and what happened to the corporation during it. None of it is a figure, and all of it changes how the figures are read."
5011
+ },
4879
5012
  {
4880
5013
  id: "taxable-income",
4881
5014
  title: "Taxable income",
@@ -4924,6 +5057,20 @@ const F$4 = (line, caption, section, extra = {}) => ({
4924
5057
  section,
4925
5058
  ...extra
4926
5059
  });
5060
+ /**
5061
+ * An identification field. Same as `F` but on page 1's section and never money
5062
+ * — nothing in that block is a dollar amount, so the default would be wrong on
5063
+ * every single line.
5064
+ */
5065
+ const I = (line, caption, extra = {}) => ({
5066
+ line,
5067
+ caption,
5068
+ kind: "text",
5069
+ role: "input",
5070
+ section: "identification",
5071
+ page: 1,
5072
+ ...extra
5073
+ });
4927
5074
  const T2_JACKET = {
4928
5075
  id: "T2",
4929
5076
  program: "T2",
@@ -4931,8 +5078,167 @@ const T2_JACKET = {
4931
5078
  title: "T2 Corporation Income Tax Return",
4932
5079
  scheme: "cra-line",
4933
5080
  taxYears: { from: 2025 },
4934
- sections: SECTIONS$19,
5081
+ sections: SECTIONS$20,
4935
5082
  fields: [
5083
+ I("001", "Business number (BN)", { kind: "code" }),
5084
+ I("002", "Corporation's name", { kind: "text" }),
5085
+ I("010", "Head office address — has this address changed since the last time the CRA was notified?", {
5086
+ kind: "flag",
5087
+ note: "If yes, lines 011 to 018 are completed."
5088
+ }),
5089
+ I("011", "Head office address line 1", {
5090
+ kind: "text",
5091
+ requirement: "conditional"
5092
+ }),
5093
+ I("012", "Head office address line 2", {
5094
+ kind: "text",
5095
+ requirement: "conditional"
5096
+ }),
5097
+ I("015", "Head office city", {
5098
+ kind: "text",
5099
+ requirement: "conditional"
5100
+ }),
5101
+ I("016", "Head office province, territory, or state", {
5102
+ kind: "text",
5103
+ requirement: "conditional"
5104
+ }),
5105
+ I("017", "Head office country (other than Canada)", {
5106
+ kind: "text",
5107
+ requirement: "conditional"
5108
+ }),
5109
+ I("018", "Head office postal or ZIP code", {
5110
+ kind: "code",
5111
+ requirement: "conditional"
5112
+ }),
5113
+ I("020", "Mailing address — has this address changed since the last time the CRA was notified?", {
5114
+ kind: "flag",
5115
+ note: "Completed only where the mailing address differs from the head office address. If yes, lines 021 to 028 are completed."
5116
+ }),
5117
+ I("021", "Mailing address c/o", {
5118
+ kind: "text",
5119
+ requirement: "conditional"
5120
+ }),
5121
+ I("022", "Mailing address line 1", {
5122
+ kind: "text",
5123
+ requirement: "conditional"
5124
+ }),
5125
+ I("023", "Mailing address line 2", {
5126
+ kind: "text",
5127
+ requirement: "conditional"
5128
+ }),
5129
+ I("025", "Mailing address city", {
5130
+ kind: "text",
5131
+ requirement: "conditional"
5132
+ }),
5133
+ I("026", "Mailing address province, territory, or state", {
5134
+ kind: "text",
5135
+ requirement: "conditional"
5136
+ }),
5137
+ I("027", "Mailing address country (other than Canada)", {
5138
+ kind: "text",
5139
+ requirement: "conditional"
5140
+ }),
5141
+ I("028", "Mailing address postal or ZIP code", {
5142
+ kind: "code",
5143
+ requirement: "conditional"
5144
+ }),
5145
+ I("030", "Location of books and records — has this address changed since the last time the CRA was notified?", {
5146
+ kind: "flag",
5147
+ note: "Completed only where the books are kept somewhere other than the head office. If yes, lines 031 to 038 are completed."
5148
+ }),
5149
+ I("031", "Books and records address line 1", {
5150
+ kind: "text",
5151
+ requirement: "conditional"
5152
+ }),
5153
+ I("032", "Books and records address line 2", {
5154
+ kind: "text",
5155
+ requirement: "conditional"
5156
+ }),
5157
+ I("035", "Books and records city", {
5158
+ kind: "text",
5159
+ requirement: "conditional"
5160
+ }),
5161
+ I("036", "Books and records province, territory, or state", {
5162
+ kind: "text",
5163
+ requirement: "conditional"
5164
+ }),
5165
+ I("037", "Books and records country (other than Canada)", {
5166
+ kind: "text",
5167
+ requirement: "conditional"
5168
+ }),
5169
+ I("038", "Books and records postal or ZIP code", {
5170
+ kind: "code",
5171
+ requirement: "conditional"
5172
+ }),
5173
+ I("040", "Type of corporation at the end of the tax year", {
5174
+ kind: "code",
5175
+ note: "One of five: 1 Canadian-controlled private corporation (CCPC), 2 other private corporation, 3 public corporation, 4 corporation controlled by a public corporation, 5 other. Code 1 is what opens the small business deduction, so it is the single most consequential tick on the form."
5176
+ }),
5177
+ I("043", "If the type of corporation changed during the tax year, the effective date of the change", {
5178
+ kind: "date",
5179
+ requirement: "conditional"
5180
+ }),
5181
+ I("060", "Tax year start", { kind: "date" }),
5182
+ I("061", "Tax year-end", { kind: "date" }),
5183
+ I("063", "Has there been an acquisition of control resulting in the application of subsection 249(4) since the tax year start on line 060?", {
5184
+ kind: "flag",
5185
+ note: "An acquisition of control ends the tax year and restricts what the loss pools on Schedule 4 may still be applied against."
5186
+ }),
5187
+ I("065", "If yes, the date control was acquired", {
5188
+ kind: "date",
5189
+ requirement: "conditional"
5190
+ }),
5191
+ I("066", "Is the date on line 061 a deemed tax year-end according to subsection 249(3.1)?", { kind: "flag" }),
5192
+ I("067", "Is the corporation a professional corporation that is a member of a partnership?", { kind: "flag" }),
5193
+ I("070", "Is this the first year of filing after incorporation?", {
5194
+ kind: "flag",
5195
+ note: "If yes, Schedule 24 is completed and attached.",
5196
+ to: {
5197
+ form: "T2SCH24",
5198
+ line: "",
5199
+ note: "First-time filer after incorporation"
5200
+ }
5201
+ }),
5202
+ I("071", "Is this the first year of filing after amalgamation?", {
5203
+ kind: "flag",
5204
+ note: "If yes, lines 030 to 038 are completed and Schedule 24 is attached.",
5205
+ to: {
5206
+ form: "T2SCH24",
5207
+ line: "",
5208
+ note: "First-time filer after amalgamation"
5209
+ }
5210
+ }),
5211
+ I("072", "Has there been a wind-up of a subsidiary under section 88 during the current tax year?", {
5212
+ kind: "flag",
5213
+ note: "If yes, Schedule 24 is completed and attached.",
5214
+ to: {
5215
+ form: "T2SCH24",
5216
+ line: "",
5217
+ note: "First-time filer after a wind-up"
5218
+ }
5219
+ }),
5220
+ I("076", "Is this the final tax year before amalgamation?", { kind: "flag" }),
5221
+ I("078", "Is this the final return up to dissolution?", { kind: "flag" }),
5222
+ I("079", "If an election was made under section 261, the functional currency used", {
5223
+ kind: "code",
5224
+ requirement: "conditional",
5225
+ note: "A functional-currency filer reports in a currency other than Canadian dollars, so every figure on the return is in that currency."
5226
+ }),
5227
+ I("080", "Is the corporation a resident of Canada?", { kind: "flag" }),
5228
+ I("081", "If not resident, the country of residence", {
5229
+ kind: "text",
5230
+ requirement: "conditional",
5231
+ note: "Schedule 97 is completed and attached."
5232
+ }),
5233
+ I("082", "Is the non-resident corporation claiming an exemption under an income tax treaty?", {
5234
+ kind: "flag",
5235
+ note: "If yes, Schedule 91 is completed and attached."
5236
+ }),
5237
+ I("085", "If the corporation is exempt from tax under section 149, which paragraph", {
5238
+ kind: "code",
5239
+ requirement: "conditional",
5240
+ note: "One of three: 1 exempt under paragraph 149(1)(e) or (l), 2 exempt under paragraph 149(1)(j), 4 exempt under other paragraphs of section 149."
5241
+ }),
4936
5242
  F$4("300", "Net income or (loss) for income tax purposes", "taxable-income", {
4937
5243
  role: "carried-in",
4938
5244
  from: {
@@ -4942,35 +5248,92 @@ const T2_JACKET = {
4942
5248
  },
4943
5249
  note: "Where Schedule 1 lands. Everything downstream is computed from it."
4944
5250
  }),
4945
- F$4("311", "Charitable donations and gifts", "taxable-income", {
5251
+ F$4("311", "Charitable donations from Schedule 2", "taxable-income", {
5252
+ role: "carried-in",
5253
+ from: {
5254
+ form: "T2SCH2",
5255
+ line: ""
5256
+ }
5257
+ }),
5258
+ F$4("313", "Cultural gifts from Schedule 2", "taxable-income", {
5259
+ role: "carried-in",
5260
+ from: {
5261
+ form: "T2SCH2",
5262
+ line: ""
5263
+ }
5264
+ }),
5265
+ F$4("314", "Ecological gifts from Schedule 2", "taxable-income", {
4946
5266
  role: "carried-in",
4947
5267
  from: {
4948
5268
  form: "T2SCH2",
4949
5269
  line: ""
4950
5270
  }
4951
5271
  }),
4952
- F$4("320", "Taxable dividends deductible under section 112 or 113", "taxable-income", {
5272
+ F$4("320", "Taxable dividends deductible under section 112 or 113, or subsection 138(6), from Schedule 3", "taxable-income", {
4953
5273
  role: "carried-in",
4954
5274
  from: {
4955
5275
  form: "T2SCH3",
4956
5276
  line: ""
4957
5277
  }
4958
5278
  }),
5279
+ F$4("325", "Part VI.1 tax deduction", "taxable-income", {
5280
+ role: "computed",
5281
+ note: "Equal to 3.5 times the Part VI.1 tax payable at line 724 — the form says so on the page itself, so it is arithmetic rather than an entry."
5282
+ }),
4959
5283
  F$4("331", "Non-capital losses of previous tax years", "taxable-income", {
4960
5284
  role: "carried-in",
4961
5285
  from: {
4962
5286
  form: "T2SCH4",
4963
- line: "150"
5287
+ line: "130"
4964
5288
  }
4965
5289
  }),
4966
5290
  F$4("332", "Net capital losses of previous tax years", "taxable-income", {
4967
5291
  role: "carried-in",
4968
5292
  from: {
4969
5293
  form: "T2SCH4",
4970
- line: "250"
5294
+ line: "225",
5295
+ note: "HALF of line 225 — Schedule 4 records the loss gross, the jacket takes it at the 50% inclusion rate."
4971
5296
  },
4972
5297
  note: "Capped by taxable capital gains — a capital loss pool cannot shelter business income."
4973
5298
  }),
5299
+ F$4("333", "Restricted farm losses of previous tax years", "taxable-income", {
5300
+ role: "carried-in",
5301
+ from: {
5302
+ form: "T2SCH4",
5303
+ line: "430"
5304
+ },
5305
+ note: "Deductible only against farming income (ITA s.31)."
5306
+ }),
5307
+ F$4("334", "Farm losses of previous tax years", "taxable-income", {
5308
+ role: "carried-in",
5309
+ from: {
5310
+ form: "T2SCH4",
5311
+ line: "330"
5312
+ }
5313
+ }),
5314
+ F$4("335", "Limited partnership losses of previous tax years", "taxable-income", {
5315
+ role: "carried-in",
5316
+ from: {
5317
+ form: "T2SCH4",
5318
+ line: "",
5319
+ note: "Schedule 4 Part 7, third table — the per-partnership closing balances at line 680 total to this, and that total is the one figure in the part with no numbered box of its own."
5320
+ }
5321
+ }),
5322
+ F$4("336", "Restricted interest and financing expenses", "taxable-income", {
5323
+ role: "carried-in",
5324
+ from: {
5325
+ form: "T2SCH4",
5326
+ line: "730"
5327
+ },
5328
+ note: "Interest denied in an earlier year under the EIFEL rules (ITA s.18.2) and deducted now against this year’s capacity. See Schedule 130."
5329
+ }),
5330
+ F$4("340", "Taxable capital gains or taxable dividends allocated from a central credit union", "taxable-income", { role: "input" }),
5331
+ F$4("350", "Prospector's and grubstaker's shares", "taxable-income", { role: "input" }),
5332
+ F$4("352", "Employer deduction for non-qualified securities", "taxable-income", { role: "input" }),
5333
+ F$4("355", "Section 110.5 additions or subparagraph 115(1)(a)(vii) additions", "taxable-income", {
5334
+ role: "input",
5335
+ note: "An ADDITION, after the deductions subtotal — it increases taxable income so a foreign tax credit is not wasted."
5336
+ }),
4974
5337
  F$4("360", "Taxable income", "taxable-income", {
4975
5338
  role: "computed",
4976
5339
  note: "The base for Part I tax at line 550, and the ceiling on the small business deduction."
@@ -5867,7 +6230,7 @@ new Map(SCHEDULE_1_CAPTIONS.map((c) => [c.line, c]));
5867
6230
  * Captions come from `./generated/schedule1.captions.ts`, which is produced from
5868
6231
  * the CRA document. This module adds only what the paper does not say.
5869
6232
  */
5870
- const SECTIONS$18 = [
6233
+ const SECTIONS$19 = [
5871
6234
  {
5872
6235
  id: "add-1",
5873
6236
  title: "Add",
@@ -5996,7 +6359,7 @@ const T2_SCHEDULE_1 = {
5996
6359
  title: "Net income (loss) for income tax purposes",
5997
6360
  scheme: "cra-line",
5998
6361
  taxYears: { from: 2023 },
5999
- sections: SECTIONS$18,
6362
+ sections: SECTIONS$19,
6000
6363
  fields: SCHEDULE_1_CAPTIONS.map((c) => {
6001
6364
  const section = sectionFor(Number(c.line));
6002
6365
  const side = section.startsWith("add") ? "add" : "deduct";
@@ -6036,7 +6399,7 @@ const SCHEDULE_1_LINE_BY_NUMBER = indexByLine(T2_SCHEDULE_1);
6036
6399
  const SCHEDULE_1_LINES = T2_SCHEDULE_1.fields;
6037
6400
  //#endregion
6038
6401
  //#region src/t2/forms/schedule2.ts
6039
- const SECTIONS$17 = [
6402
+ const SECTIONS$18 = [
6040
6403
  {
6041
6404
  id: "charitable",
6042
6405
  title: "Part 2 — Charitable donations",
@@ -6068,7 +6431,7 @@ const T2_SCHEDULE_2 = {
6068
6431
  title: "Charitable donations and gifts",
6069
6432
  scheme: "cra-line",
6070
6433
  taxYears: { from: 2023 },
6071
- sections: SECTIONS$17,
6434
+ sections: SECTIONS$18,
6072
6435
  fields: [
6073
6436
  F$3("239", "Charitable donations expired after five tax years", "charitable"),
6074
6437
  F$3("240", "Charitable donations at the beginning of the current tax year", "charitable", { note: "Amount 1A less the expired amount at line 239 — last year’s closing pool, net of what aged out." }),
@@ -6102,7 +6465,7 @@ const SCHEDULE_2_CARRYFORWARD_YEARS = {
6102
6465
  };
6103
6466
  //#endregion
6104
6467
  //#region src/t2/forms/schedule3.ts
6105
- const SECTIONS$16 = [{
6468
+ const SECTIONS$17 = [{
6106
6469
  id: "received",
6107
6470
  title: "Part 1 — Dividends received in the tax year",
6108
6471
  description: "One row per payer. Columns B, C, D, I and J are completed only when the payer is connected."
@@ -6126,7 +6489,7 @@ const T2_SCHEDULE_3 = {
6126
6489
  title: "Dividends received, taxable dividends paid, and Part IV tax calculation",
6127
6490
  scheme: "cra-line",
6128
6491
  taxYears: { from: 2023 },
6129
- sections: SECTIONS$16,
6492
+ sections: SECTIONS$17,
6130
6493
  fields: [
6131
6494
  F$2("200", "Name of payer corporation from which the corporation received the dividend", "received", { kind: "text" }),
6132
6495
  F$2("205", "Enter 1 if the payer corporation is connected", "received", {
@@ -6200,7 +6563,7 @@ function buildFields(spec, formHint = "form") {
6200
6563
  const role = totals.has(c.line) ? "total" : computed.has(c.line) ? "computed" : from ? "carried-in" : "input";
6201
6564
  return {
6202
6565
  line: c.line,
6203
- caption: c.caption,
6566
+ caption: spec.captionOverrides?.[c.line] ?? c.caption,
6204
6567
  kind: spec.kinds?.[c.line] ?? "money",
6205
6568
  role,
6206
6569
  section,
@@ -6604,11 +6967,162 @@ const SCHEDULE_4_CAPTIONS = [
6604
6967
  }
6605
6968
  ];
6606
6969
  new Map(SCHEDULE_4_CAPTIONS.map((c) => [c.line, c]));
6607
- const T2_SCHEDULE_4 = {
6608
- id: "T2SCH4",
6609
- program: "T2",
6610
- schedule: "4",
6611
- title: "Corporation loss continuity and application",
6970
+ //#endregion
6971
+ //#region src/t2/forms/schedule4.ts
6972
+ /**
6973
+ * T2 Schedule 4 — Corporation loss continuity and application.
6974
+ *
6975
+ * Where every loss the corporation has lives: what was carried in, what this
6976
+ * year added, what was applied, what was carried back, and what remains. It is
6977
+ * the schedule most likely to be wrong on a return prepared by hand, because the
6978
+ * five loss types run in parallel with near-identical rows and different rules.
6979
+ *
6980
+ * ── Five loss types, and they do not behave alike ───────────────────────────
6981
+ *
6982
+ * Part 1 non-capital 20-year carry-forward, 3-year carry-back
6983
+ * Part 2 capital carried forward INDEFINITELY
6984
+ * Part 3 farm 20 years
6985
+ * Part 4 restricted farm 20 years, deductible only against farm income
6986
+ * Part 5 listed personal property 7 years, and only against LPP gains
6987
+ *
6988
+ * The carry-back rows repeat identically in each part — 901/902/903 for
6989
+ * non-capital, 951/952/953 for capital, and so on — one line per preceding year.
6990
+ * Nothing but the number distinguishes a farm loss carried back two years from a
6991
+ * capital loss carried back two years.
6992
+ *
6993
+ * ── The extraction trap this form set ───────────────────────────────────────
6994
+ *
6995
+ * Each of the five parts contains a field captioned "Section 80 — Adjustments
6996
+ * for forgiven amounts". The part-scanner matched it as a *Section* heading, so
6997
+ * it closed the enclosing part and swallowed the rest of the form: all five loss
6998
+ * types collapsed into one, and every carry-back line landed in whichever part
6999
+ * happened to be open. The scanner now rejects a candidate heading that carries
7000
+ * dot leaders and a line number, because that is a field and never a heading.
7001
+ *
7002
+ * ── Part 8 is newer than the rest of the form ───────────────────────────────
7003
+ *
7004
+ * Restricted interest and financing expenses (EIFEL, ITA s.18.2) get their own
7005
+ * continuity here — denied interest is not lost, it carries forward. It is the
7006
+ * only part whose pool arises from a limitation rather than from a loss.
7007
+ */
7008
+ /**
7009
+ * Part 7 — limited partnership losses, authored BY HAND from the rendered page.
7010
+ *
7011
+ * Extraction reaches none of it, and the reason is the one this repo's guidance
7012
+ * already names: Part 7 is three grid tables, and a grid puts its line numbers
7013
+ * in the COLUMN HEADINGS rather than beside a caption. `pdftotext -layout`
7014
+ * pairs a number with the caption on its own line and there is no such pairing
7015
+ * here, so the extractor returned nothing and the interface concluded — in
7016
+ * writing, on the Schedule 4 paper view — that limited partnership losses "do
7017
+ * not appear anywhere on the printed Schedule 4". They appear on page 6, under
7018
+ * their own part heading, across eighteen numbered columns.
7019
+ *
7020
+ * The evidence that they belong to this form and not another: the T2 jacket's
7021
+ * own line 335 reads "Limited partnership losses of previous tax years **from
7022
+ * Schedule 4**", and the third table's total line says "enter this amount on
7023
+ * line 335 of the T2 return". The first table's total goes to Schedule 1 line
7024
+ * 222 instead — the current year's loss is an add-back to net income, not a
7025
+ * deduction from taxable income.
7026
+ *
7027
+ * Captions are the column headings as printed, flattened to one line each.
7028
+ */
7029
+ const PART_7_LIMITED_PARTNERSHIP = [
7030
+ {
7031
+ line: "600",
7032
+ page: 6,
7033
+ caption: "Partnership account number"
7034
+ },
7035
+ {
7036
+ line: "602",
7037
+ page: 6,
7038
+ caption: "Tax year ending"
7039
+ },
7040
+ {
7041
+ line: "604",
7042
+ page: 6,
7043
+ caption: "Corporation's share of limited partnership loss"
7044
+ },
7045
+ {
7046
+ line: "606",
7047
+ page: 6,
7048
+ caption: "Corporation's at-risk amount"
7049
+ },
7050
+ {
7051
+ line: "608",
7052
+ page: 6,
7053
+ caption: "Total of corporation's share of partnership investment tax credit, clean economy tax credit, farming losses, and resource expenses"
7054
+ },
7055
+ {
7056
+ line: "620",
7057
+ page: 6,
7058
+ caption: "Current-year limited partnership losses (column 3 minus column 6)"
7059
+ },
7060
+ {
7061
+ line: "630",
7062
+ page: 6,
7063
+ caption: "Partnership account number"
7064
+ },
7065
+ {
7066
+ line: "632",
7067
+ page: 6,
7068
+ caption: "Tax year ending"
7069
+ },
7070
+ {
7071
+ line: "634",
7072
+ page: 6,
7073
+ caption: "Limited partnership losses at the end of the previous tax year and amounts transferred on an amalgamation or on the wind-up of a subsidiary"
7074
+ },
7075
+ {
7076
+ line: "636",
7077
+ page: 6,
7078
+ caption: "Corporation's at-risk amount"
7079
+ },
7080
+ {
7081
+ line: "638",
7082
+ page: 6,
7083
+ caption: "Total of corporation's share of partnership investment tax credit, clean economy tax credit, business or property losses, and resource expenses"
7084
+ },
7085
+ {
7086
+ line: "650",
7087
+ page: 6,
7088
+ caption: "Limited partnership losses that may be applied in the year (the lesser of column 3 and 6)"
7089
+ },
7090
+ {
7091
+ line: "660",
7092
+ page: 6,
7093
+ caption: "Partnership account number"
7094
+ },
7095
+ {
7096
+ line: "662",
7097
+ page: 6,
7098
+ caption: "Limited partnership losses at the end of the previous tax year"
7099
+ },
7100
+ {
7101
+ line: "664",
7102
+ page: 6,
7103
+ caption: "Limited partnership losses transferred in the year on an amalgamation or on the wind-up of a subsidiary"
7104
+ },
7105
+ {
7106
+ line: "670",
7107
+ page: 6,
7108
+ caption: "Current-year limited partnership losses (from line 620)"
7109
+ },
7110
+ {
7111
+ line: "675",
7112
+ page: 6,
7113
+ caption: "Limited partnership losses applied in the current year (must be equal to or less than line 650)"
7114
+ },
7115
+ {
7116
+ line: "680",
7117
+ page: 6,
7118
+ caption: "Current year limited partnership losses closing balance to be carried forward to future years (column 2 plus column 3 plus column 4 minus column 5)"
7119
+ }
7120
+ ];
7121
+ const T2_SCHEDULE_4 = {
7122
+ id: "T2SCH4",
7123
+ program: "T2",
7124
+ schedule: "4",
7125
+ title: "Corporation loss continuity and application",
6612
7126
  scheme: "cra-line",
6613
7127
  taxYears: { from: 2023 },
6614
7128
  sections: [
@@ -6639,6 +7153,11 @@ const T2_SCHEDULE_4 = {
6639
7153
  secondary: true,
6640
7154
  description: "Seven years, and only against gains on listed personal property."
6641
7155
  },
7156
+ {
7157
+ id: "limited-partnership",
7158
+ title: "Part 7 — Limited partnership losses",
7159
+ description: "Three grid tables, one row per partnership: the current year’s loss, what prior years leave applicable, and the continuity carried forward. The at-risk amount caps each one, which is what makes a limited partnership loss different from every other pool on this form."
7160
+ },
6642
7161
  {
6643
7162
  id: "rife",
6644
7163
  title: "Part 8 — Restricted interest and financing expenses",
@@ -6651,33 +7170,114 @@ const T2_SCHEDULE_4 = {
6651
7170
  }
6652
7171
  ],
6653
7172
  fields: buildFields({
6654
- captions: SCHEDULE_4_CAPTIONS,
7173
+ captions: [...SCHEDULE_4_CAPTIONS, ...PART_7_LIMITED_PARTNERSHIP],
7174
+ /**
7175
+ * Part 7's hand-authored rows carry no `part` tag — a grid heading is not
7176
+ * the "Part N" line the extractor keys on — so they are placed by number
7177
+ * band. Extraction returns nothing at all in 600-680 (its Schedule 4 lines
7178
+ * run 100-550, then 700-750 and the 9xx carry-backs), so the band cannot
7179
+ * capture anything but Part 7.
7180
+ */
7181
+ bands: [{
7182
+ range: [600, 680],
7183
+ section: "limited-partnership"
7184
+ }],
6655
7185
  sectionByPart: {
6656
7186
  "Part 1": "non-capital",
6657
7187
  "Part 2": "capital",
6658
7188
  "Part 3": "farm",
6659
7189
  "Part 4": "restricted-farm",
6660
7190
  "Part 5": "listed-personal",
7191
+ "Part 7": "limited-partnership",
6661
7192
  "Part 8": "rife",
6662
7193
  "Part 9": "election"
6663
7194
  },
7195
+ /**
7196
+ * Lines 330 and 335 are Part 3 (farm) lines, and extraction put them in
7197
+ * Part 1.
7198
+ *
7199
+ * Verified against the rendered PDF: page 3 carries Part 3 — Farm losses
7200
+ * with 300, 302, 305, 310, 350, 340, **330**, **335**, then 921-933 and
7201
+ * 380. Page 2 has no 330 or 335 on it at all; what it has is Part 1's
7202
+ * footnote 3, "Line 135 is the total of lines 330 and 335 from Schedule
7203
+ * 3", and the extractor tagged the pair with the part that footnote sits
7204
+ * in. The captions it recorded are the right ones — only the part and page
7205
+ * were wrong — so this corrects the section and leaves the text alone.
7206
+ *
7207
+ * Left uncorrected, a farm-loss line renders under "Part 1 — Non-capital
7208
+ * losses" on the paper Form View, in a schedule whose whole difficulty is
7209
+ * that five loss types run in parallel with near-identical rows.
7210
+ */
7211
+ sectionByLine: {
7212
+ "330": "farm",
7213
+ "335": "farm"
7214
+ },
6664
7215
  carriedIn: { "110": {
6665
7216
  form: "T2SCH1",
6666
7217
  line: "",
6667
7218
  note: "The current-year loss, from net income for tax purposes"
6668
7219
  } },
7220
+ /**
7221
+ * Every "enter the amount from line X on line Y of the T2 return"
7222
+ * instruction the form prints, and only those. Read off the rendered PDF:
7223
+ *
7224
+ * p2 line 130 → T2 331 p3 line 225 ÷ 2 → T2 332
7225
+ * p3 line 330 → T2 334 p4 line 430 → T2 333
7226
+ * p7 line 730 → T2 336
7227
+ *
7228
+ * This previously claimed 150 → 331 and 250 → 332. Both were wrong, and
7229
+ * wrong in the way that matters: 150 and 250 are the "Other adjustments"
7230
+ * lines of Parts 1 and 2, so the paper view hung a "goes to T2 line 331"
7231
+ * badge on an adjustment while the line that actually goes there — 130,
7232
+ * the losses applied — carried no badge at all.
7233
+ */
6669
7234
  carriedOut: {
6670
- "150": {
7235
+ "130": {
6671
7236
  form: "T2",
6672
7237
  line: "331",
6673
7238
  note: "Non-capital losses applied"
6674
7239
  },
6675
- "250": {
7240
+ "225": {
6676
7241
  form: "T2",
6677
7242
  line: "332",
6678
- note: "Net capital losses applied"
7243
+ note: "Net capital losses applied — enter HALF of line 225 (the 50% inclusion rate)"
7244
+ },
7245
+ "330": {
7246
+ form: "T2",
7247
+ line: "334",
7248
+ note: "Farm losses applied"
7249
+ },
7250
+ "430": {
7251
+ form: "T2",
7252
+ line: "333",
7253
+ note: "Restricted farm losses applied"
7254
+ },
7255
+ "730": {
7256
+ form: "T2",
7257
+ line: "336",
7258
+ note: "Restricted interest and financing expenses deducted this year"
6679
7259
  }
6680
7260
  },
7261
+ /**
7262
+ * Eight captions came back with a footnote marker glued on.
7263
+ *
7264
+ * The form prints those markers as superscripts beside the caption, and
7265
+ * the extractor has no way to tell a superscript from the last word. So
7266
+ * "Farm loss expired ⁹" arrives as "Farm loss expired 9" and a preparer
7267
+ * reads a trailing number that is neither part of the caption nor a line.
7268
+ * Each of these is the caption as printed on the rendered page, verified
7269
+ * against pages 2 to 7, with the marker removed and nothing else changed.
7270
+ */
7271
+ captionOverrides: {
7272
+ "100": "Non-capital loss expired",
7273
+ "135": "Current and previous years non-capital losses applied against current-year taxable dividends subject to Part IV tax",
7274
+ "225": "Capital losses from previous tax years applied against the current-year net capital gain",
7275
+ "300": "Farm loss expired",
7276
+ "335": "Current and previous years farm losses applied against current-year taxable dividends subject to Part IV tax",
7277
+ "400": "Restricted farm loss expired",
7278
+ "500": "Listed personal property loss expired",
7279
+ "730": "RIFE deducted for the tax year"
7280
+ },
6681
7281
  notes: {
6682
7282
  "250": "Capped by taxable capital gains in the year — a capital loss pool cannot shelter business income however large it is.",
6683
7283
  "901": "Carried back to the FIRST preceding year. The same three-row pattern repeats per loss type (951/952/953 capital, 921–923 farm, 941–943 restricted farm, 961–963 listed personal), and only the number says which.",
@@ -7106,7 +7706,7 @@ const SCHEDULE_6_GRIDS = [
7106
7706
  ]
7107
7707
  }
7108
7708
  ];
7109
- const SECTIONS$13 = [
7709
+ const SECTIONS$14 = [
7110
7710
  {
7111
7711
  id: "designation",
7112
7712
  title: "Designation under paragraph 111(4)(e)"
@@ -7238,7 +7838,7 @@ const T2_SCHEDULE_6 = {
7238
7838
  title: "Summary of dispositions of capital property",
7239
7839
  scheme: "cra-line",
7240
7840
  taxYears: { from: 2023 },
7241
- sections: SECTIONS$13,
7841
+ sections: SECTIONS$14,
7242
7842
  fields: [...gridFields, ...SUMMARY].sort((a, b) => Number(a.line) - Number(b.line)),
7243
7843
  provenance: {
7244
7844
  document: "research/sources/cra-forms/T2SCH06-capital-gains.pdf",
@@ -7485,6 +8085,71 @@ const SCHEDULE_7_CAPTIONS = [
7485
8085
  }
7486
8086
  ];
7487
8087
  new Map(SCHEDULE_7_CAPTIONS.map((c) => [c.line, c]));
8088
+ //#endregion
8089
+ //#region src/t2/forms/schedule7.ts
8090
+ /**
8091
+ * T2 Schedule 7 — Aggregate investment income and income eligible for the small
8092
+ * business deduction.
8093
+ *
8094
+ * The schedule that decides how much of a CCPC's income gets the low rate. Two
8095
+ * separate jobs sit on one form, and confusing them is the classic error:
8096
+ *
8097
+ * - **Aggregate investment income** (Parts 1–3) drives the refundable tax and,
8098
+ * through Part 2, the *passive income grind* on the business limit.
8099
+ * - **Income eligible for the small business deduction** (Parts 4–7) strips out
8100
+ * what does not qualify — partnership income, personal services business
8101
+ * income, and specified corporate income.
8102
+ *
8103
+ * ── Why sections here are read off the page, not from the numbers ───────────
8104
+ *
8105
+ * This form is the reason `sectionByPart` exists. Part 1 (aggregate investment
8106
+ * income, **all world source**) and Part 3 (foreign investment income, **sources
8107
+ * outside Canada**) carry *identical captions* on interleaved line numbers —
8108
+ * "Eligible portion of taxable capital gains for the year" is a line in both.
8109
+ * Assigning by number range would file a foreign figure as a worldwide one, and
8110
+ * the difference between them is precisely what the schedule exists to isolate.
8111
+ *
8112
+ * ── The grind that catches owner-managed clients ────────────────────────────
8113
+ *
8114
+ * Part 2's adjusted aggregate investment income reduces the business limit by
8115
+ * $5 for every $1 above $50,000, so the deduction is gone at $150,000 of passive
8116
+ * income. A corporation with a portfolio and modest active income can lose the
8117
+ * small business deduction without its active business changing at all — which
8118
+ * is why line 745 is worth more attention than its position on page 2 suggests.
8119
+ */
8120
+ /**
8121
+ * Part 7's grid, authored BY HAND from the rendered page 5.
8122
+ *
8123
+ * Part 7 is a three-column table — EE, FF, GG — and a table puts its numbers in
8124
+ * the column headings, which is the one shape `pdftotext -layout` cannot pair.
8125
+ * What extraction returned for the whole part was a single row, line 600
8126
+ * captioned "column EE 11": a fragment of the NEXT column's heading ("...from
8127
+ * the corporation identified in column EE ¹¹") with the footnote marker
8128
+ * attached, filed against the first column's number. Lines 610, 620 and 625
8129
+ * were not returned at all.
8130
+ *
8131
+ * Line 615 came back too, but tagged Part 6 — Part 6 refers to it ("Income
8132
+ * referred to in clause 125(1)(a)(i)(B) (from line 615 in Part 7)") and the
8133
+ * extractor took the part from the reference rather than the page. It is
8134
+ * corrected here with the other Part 7 lines.
8135
+ */
8136
+ const PART_7_SPECIFIED_CORPORATE = [
8137
+ {
8138
+ line: "610",
8139
+ page: 5,
8140
+ caption: "Income described under clause 125(1)(a)(i)(B) from the corporation identified in column EE"
8141
+ },
8142
+ {
8143
+ line: "620",
8144
+ page: 5,
8145
+ caption: "Business limit assigned from the corporation identified in column EE"
8146
+ },
8147
+ {
8148
+ line: "625",
8149
+ page: 5,
8150
+ caption: "Total business limit assigned (total of column GG)"
8151
+ }
8152
+ ];
7488
8153
  const T2_SCHEDULE_7 = {
7489
8154
  id: "T2SCH7",
7490
8155
  program: "T2",
@@ -7531,7 +8196,30 @@ const T2_SCHEDULE_7 = {
7531
8196
  }
7532
8197
  ],
7533
8198
  fields: buildFields({
7534
- captions: SCHEDULE_7_CAPTIONS,
8199
+ captions: [...SCHEDULE_7_CAPTIONS, ...PART_7_SPECIFIED_CORPORATE],
8200
+ /**
8201
+ * The five captions extraction got wrong.
8202
+ *
8203
+ * 715, 740, 500 and 520 each carry a footnote marker printed as a
8204
+ * superscript, which comes back glued to the caption — "Total income from
8205
+ * property 14". 600 is worse: it is the first column of Part 7's grid and
8206
+ * extraction gave it a fragment of the second column's heading. All read
8207
+ * off the rendered pages 2 and 5.
8208
+ */
8209
+ captionOverrides: {
8210
+ "500": "Foreign business income after deducting related expenses",
8211
+ "520": "Personal services business income and other income after deducting related expenses",
8212
+ "600": "Business number of the corporation",
8213
+ "615": "Total income described under clause 125(1)(a)(i)(B) (total of column FF)",
8214
+ "715": "Total income from property",
8215
+ "740": "Total losses from property"
8216
+ },
8217
+ sectionByLine: {
8218
+ "610": "specified-corporate",
8219
+ "615": "specified-corporate",
8220
+ "620": "specified-corporate",
8221
+ "625": "specified-corporate"
8222
+ },
7535
8223
  sectionByPart: {
7536
8224
  "Part 1": "aii",
7537
8225
  "Part 2": "adjusted-aii",
@@ -7673,7 +8361,7 @@ const SCHEDULE_8_COLUMNS = [
7673
8361
  caption: "UCC at the end of the year"
7674
8362
  }
7675
8363
  ];
7676
- const SECTIONS$11 = [{
8364
+ const SECTIONS$12 = [{
7677
8365
  id: "cca-grid",
7678
8366
  title: "Capital cost allowance by class",
7679
8367
  description: "One row per class. The numbered columns are what a return transmits; the unnumbered ones are arithmetic the form shows on the way."
@@ -7705,7 +8393,7 @@ const T2_SCHEDULE_8 = {
7705
8393
  title: "Capital cost allowance",
7706
8394
  scheme: "cra-line",
7707
8395
  taxYears: { from: 2026 },
7708
- sections: SECTIONS$11,
8396
+ sections: SECTIONS$12,
7709
8397
  fields: SCHEDULE_8_COLUMNS.filter((c) => c.line).map((c) => {
7710
8398
  const dest = DESTINATIONS[c.line];
7711
8399
  return {
@@ -7769,7 +8457,7 @@ const SCHEDULE_13_RESERVE_ROWS = [
7769
8457
  closing: "240"
7770
8458
  }
7771
8459
  ];
7772
- const SECTIONS$10 = [{
8460
+ const SECTIONS$11 = [{
7773
8461
  id: "capital-gains",
7774
8462
  title: "Part 1 — Capital gains reserves",
7775
8463
  description: "A repeating grid, one row per property. Lines 001–004 head the columns rather than naming fields, so only the totals carry single figures."
@@ -7908,7 +8596,7 @@ const T2_SCHEDULE_13 = {
7908
8596
  title: "Continuity of reserves",
7909
8597
  scheme: "cra-line",
7910
8598
  taxYears: { from: 2011 },
7911
- sections: SECTIONS$10,
8599
+ sections: SECTIONS$11,
7912
8600
  fields: [
7913
8601
  ...COLUMN_HEADS,
7914
8602
  ...reserveFields,
@@ -7922,7 +8610,7 @@ const T2_SCHEDULE_13 = {
7922
8610
  };
7923
8611
  //#endregion
7924
8612
  //#region src/t2/forms/schedule21.ts
7925
- const SECTIONS$9 = [
8613
+ const SECTIONS$10 = [
7926
8614
  {
7927
8615
  id: "non-business",
7928
8616
  title: "Part 1 — Federal foreign non-business income tax credit",
@@ -7953,7 +8641,7 @@ const T2_SCHEDULE_21 = {
7953
8641
  title: "Federal and provincial or territorial foreign income tax credits and federal logging tax credit",
7954
8642
  scheme: "cra-line",
7955
8643
  taxYears: { from: 2023 },
7956
- sections: SECTIONS$9,
8644
+ sections: SECTIONS$10,
7957
8645
  fields: [
7958
8646
  F$1("100", "Country of source of foreign non-business income", "non-business", { kind: "text" }),
7959
8647
  F$1("110", "Net foreign non-business income earned in the year", "non-business"),
@@ -8109,7 +8797,7 @@ const T2_SCHEDULE_23 = {
8109
8797
  const SCHEDULE_23_GROUP_BUSINESS_LIMIT = 5e5;
8110
8798
  //#endregion
8111
8799
  //#region src/t2/forms/schedule24.ts
8112
- const SECTIONS$7 = [
8800
+ const SECTIONS$8 = [
8113
8801
  {
8114
8802
  id: "operation",
8115
8803
  title: "Part 1 — Type of operation",
@@ -8140,7 +8828,7 @@ const T2_SCHEDULE_24 = {
8140
8828
  title: "First-time filer after incorporation, amalgamation, or wind-up of a subsidiary",
8141
8829
  scheme: "cra-line",
8142
8830
  taxYears: { from: 2011 },
8143
- sections: SECTIONS$7,
8831
+ sections: SECTIONS$8,
8144
8832
  fields: [
8145
8833
  F("100", "Type of operation that applies to the corporation", "operation", {
8146
8834
  kind: "code",
@@ -8726,6 +9414,23 @@ const T2_SCHEDULE_31 = {
8726
9414
  note: "The previous year's taxable income"
8727
9415
  }
8728
9416
  },
9417
+ /**
9418
+ * Three captions the two-column layout corrupted.
9419
+ *
9420
+ * Parts 10 and 11 print the caption on the left and its arithmetic on the
9421
+ * right — "× 15% = 11B" — and `pdftotext -layout` interleaved the two, so
9422
+ * line 420 arrived as "Current SR&ED expenditures (from line 350 in Part
9423
+ * 8) or × 15% = 11B the expenditure limit (from line 410), whichever is
9424
+ * less 8", with the footnote marker on the end for good measure. Line 400
9425
+ * additionally absorbed the bold sub-heading printed above it.
9426
+ *
9427
+ * All three read off the rendered pages 5 and 6.
9428
+ */
9429
+ captionOverrides: {
9430
+ "400": "If associated, the allocation of the SR&ED expenditure limit, as provided on Schedule 49",
9431
+ "420": "Current SR&ED expenditures (from line 350 in Part 8) or the expenditure limit (from line 410), whichever is less",
9432
+ "460": "Repayment of assistance that reduced a qualifying expenditure eligible for the 35% SR&ED ITC rate"
9433
+ },
8729
9434
  notes: {
8730
9435
  "101": "A qualifying corporation gets a REFUNDABLE SR&ED credit. The answer changes the rate and whether unused credit is paid out or carried.",
8731
9436
  "215": "Credit expired — qualified property. The same caption is 515, 615, 770 and 845 on other credits.",
@@ -10192,147 +10897,884 @@ const SCHEDULE_130_CAPTIONS = [
10192
10897
  }
10193
10898
  ];
10194
10899
  new Map(SCHEDULE_130_CAPTIONS.map((c) => [c.line, c]));
10195
- const T2_SCHEDULE_130 = {
10196
- id: "T2SCH130",
10197
- program: "T2",
10198
- schedule: "130",
10199
- title: "Excessive interest and financing expenses limitation",
10200
- scheme: "cra-line",
10201
- taxYears: { from: 2024 },
10202
- sections: [
10203
- {
10204
- id: "received-capacity",
10205
- title: "Part 1A Received capacity",
10206
- description: "Capacity transferred in from a group member."
10207
- },
10208
- {
10209
- id: "exempt-ife",
10210
- title: "Part 1B Exempt interest and financing expenses"
10211
- },
10212
- {
10213
- id: "borrowings",
10214
- title: "Part 1C Borrowings and other financings, and related derivatives",
10215
- secondary: true
10216
- },
10217
- {
10218
- id: "loans",
10219
- title: "Part 1D — Loans and other financings, and related derivatives",
10220
- secondary: true
10221
- },
10222
- {
10223
- id: "partnership-ife",
10224
- title: "Part 1E — IFE allocated from a partnership",
10225
- secondary: true
10226
- },
10227
- {
10228
- id: "ife",
10229
- title: "Part 2A — Interest and financing expenses",
10230
- description: "Variable A — the expenses the limitation is measured against."
10231
- },
10232
- {
10233
- id: "ifr",
10234
- title: "Part 2D — Interest and financing revenues",
10235
- description: "Variable C — revenues that shelter an equal amount of expense."
10236
- },
10237
- {
10238
- id: "ati-paragraph-h",
10239
- title: "Part 2E — Paragraph (h) of variable B of adjusted taxable income"
10240
- },
10241
- {
10242
- id: "ati",
10243
- title: "Part 2F — Adjusted taxable income",
10244
- description: "The base the ceiling is a percentage of. Built as A + B − C, and the add-backs include the interest expenses themselves — so borrowing more cannot shrink the ceiling."
10245
- },
10246
- {
10247
- id: "excess-capacity",
10248
- title: "Part 2G — Excess capacity",
10249
- secondary: true,
10250
- description: "Unused ceiling, banked. NOT computed by the engine."
10251
- },
10252
- {
10253
- id: "absorbed-capacity",
10254
- title: "Part 2H — Absorbed capacity",
10255
- secondary: true
10256
- },
10257
- {
10258
- id: "rife",
10259
- title: "Part 2J — Restricted interest and financing expenses",
10260
- description: "Where a denial goes: pooled on Schedule 4 Part 8, not lost."
10261
- },
10262
- {
10263
- id: "ratio",
10264
- title: "Part 2K — Proportion determined under subsection 18.2(2)",
10265
- description: "40% for a year beginning in the transitional quarter, 30% thereafter — keyed off when the year BEGINS, not when it ends."
10266
- },
10267
- {
10268
- id: "excess-ife",
10269
- title: "Part 2L — Excess IFE under subsection 18.2(2)",
10270
- description: "The denial itself."
10271
- },
10272
- {
10273
- id: "foreign-affiliate",
10274
- title: "Part 2M — Amounts determined under clause 95(2)(f.11)(ii)(D)",
10275
- secondary: true
10276
- },
10277
- {
10278
- id: "partnership-addback",
10279
- title: "Part 2N — Partnership IFE add-back under paragraph 12(1)(l.2)",
10280
- secondary: true
10281
- }
10282
- ],
10283
- fields: buildFields({
10284
- captions: SCHEDULE_130_CAPTIONS,
10285
- sectionByPart: {
10286
- "Part 1A": "received-capacity",
10287
- "Part 1B": "exempt-ife",
10288
- "Part 1C": "borrowings",
10289
- "Part 1D": "loans",
10290
- "Part 1E": "partnership-ife",
10291
- "Part 2A": "ife",
10292
- "Part 2D": "ifr",
10293
- "Part 2E": "ati-paragraph-h",
10294
- "Part 2F": "ati",
10295
- "Part 2G": "excess-capacity",
10296
- "Part 2H": "absorbed-capacity",
10297
- "Part 2J": "rife",
10298
- "Part 2K": "ratio",
10299
- "Part 2L": "excess-ife",
10300
- "Part 2M": "foreign-affiliate",
10301
- "Part 2N": "partnership-addback"
10302
- },
10303
- kinds: {
10304
- "001": "flag",
10305
- "006": "flag",
10306
- "108": "rate",
10307
- "112": "rate",
10308
- "120": "rate",
10309
- "134": "rate"
10310
- },
10311
- computed: ["107", "159"],
10312
- carriedIn: { "128": {
10313
- form: "T2SCH4",
10314
- line: "700",
10315
- note: "The restricted expenses pooled from earlier years"
10316
- } },
10317
- carriedOut: { "159": {
10318
- form: "T2SCH4",
10319
- line: "700",
10320
- note: "A denial is not lost — it pools as RIFE and may be deducted later"
10321
- } },
10322
- notes: {
10323
- "107": "Adjusted taxable income. The ceiling is a percentage of income computed BEFORE the expenses being limited, which is why the add-backs include the interest expenses themselves.",
10324
- "114": "Restricted expenses deducted this year under paragraph 111(1)(a.1) — the pool from Schedule 4 Part 8 being drawn down.",
10325
- "118": "The group ratio election under s.18.21(2) REPLACES the ratio calculation entirely; where it is made, the ratio at 120 is not used.",
10326
- "134": "Forty per cent for a year beginning in the transitional quarter, thirty thereafter. Keyed off when the year BEGINS — a November-to-October year takes 40% throughout despite mostly falling in the later year.",
10327
- "159": "The denied amount. The statute denies a PROPORTION of each expense, so a preparer allocating the denial across expense lines needs the fraction, not only the total."
10328
- }
10329
- }, "T2SCH130"),
10330
- provenance: {
10331
- document: "research/sources/cra-forms/pdf/T2SCH130-eifel.pdf",
10332
- retrieved: "2026-08-12",
10333
- revision: "T2 SCH 130 E (24)"
10900
+ //#endregion
10901
+ //#region src/t2/forms/schedule130.ts
10902
+ /**
10903
+ * The lines `pdftotext` could not reach, authored by hand from the rendered
10904
+ * form the exception this project's own guidance carves out: *"where
10905
+ * extraction cannot reach it (grid-shaped forms put their numbers in column
10906
+ * headings, not beside captions), author the definition by hand and say so in
10907
+ * the module."*
10908
+ *
10909
+ * Sixty-four lines, and all but a handful are exactly that case: this schedule
10910
+ * has ten TABLES (Parts 1A-1E, 2B, 2C, 2E, 2I, 2M) whose line numbers sit in
10911
+ * column headings with the caption stacked above them, so the extractor's
10912
+ * caption-to-number pairing finds nothing to pair. The rest are prose lines it
10913
+ * simply dropped, including two that matter more than any table column:
10914
+ *
10915
+ * 045 Total IFE — referenced by Parts 2F, 2G, 2H and 2K
10916
+ * 106 ATI — referenced by Parts 2G, 2H and 2K
10917
+ *
10918
+ * Transcribed from `research/sources/cra-forms/pdf/T2SCH130-eifel.pdf`
10919
+ * (T2 SCH 130 E), rendered with `pdftotext -layout` and read part by part.
10920
+ * Column captions are given as the form prints them, including the column
10921
+ * arithmetic in parentheses.
10922
+ */
10923
+ const HAND_AUTHORED = [
10924
+ {
10925
+ line: "002",
10926
+ page: 1,
10927
+ caption: "Name of each eligible group entity the corporation received capacity from"
10928
+ },
10929
+ {
10930
+ line: "003",
10931
+ page: 1,
10932
+ caption: "Account number"
10933
+ },
10934
+ {
10935
+ line: "004",
10936
+ page: 1,
10937
+ caption: "Tax year end (yyyy/mm/dd)"
10938
+ },
10939
+ {
10940
+ line: "005",
10941
+ page: 1,
10942
+ caption: "Amount of capacity received"
10943
+ },
10944
+ {
10945
+ line: "007",
10946
+ page: 2,
10947
+ caption: "Name of public sector authority with which an agreement has been entered into"
10948
+ },
10949
+ {
10950
+ line: "008",
10951
+ page: 2,
10952
+ caption: "Principal amount of borrowing or other financing entered into as a result of the agreement"
10953
+ },
10954
+ {
10955
+ line: "009",
10956
+ page: 2,
10957
+ caption: "IFE incurred regarding amount in column 2"
10958
+ },
10959
+ {
10960
+ line: "010",
10961
+ page: 2,
10962
+ caption: "Corporation income from activities that the amount in column 2 wholly or partially funded"
10963
+ },
10964
+ {
10965
+ line: "011",
10966
+ page: 2,
10967
+ caption: "Corporation loss from activities that the amount in column 2 wholly or partially funded (enter as positive amount)"
10968
+ },
10969
+ {
10970
+ line: "012",
10971
+ page: 2,
10972
+ caption: "Total of the principal amounts of borrowing or other financing at any point in the tax year"
10973
+ },
10974
+ {
10975
+ line: "013",
10976
+ page: 2,
10977
+ caption: "Total of the notional amounts of derivatives entered into in respect of a borrowing or other financing at any point in the tax year"
10978
+ },
10979
+ {
10980
+ line: "014",
10981
+ page: 2,
10982
+ caption: "Total of all amounts included in paragraph (a) of variable A of IFE in respect of a borrowing or other financing"
10983
+ },
10984
+ {
10985
+ line: "015",
10986
+ page: 2,
10987
+ caption: "Total of all amounts included in paragraph (e) of variable A of IFE (other than a loss or capital loss)"
10988
+ },
10989
+ {
10990
+ line: "016",
10991
+ page: 2,
10992
+ caption: "Total of all amounts included in paragraph (a) of variable B of IFE (other than a dividend or exempt IFE or a gain included in taxpayer income)"
10993
+ },
10994
+ {
10995
+ line: "017",
10996
+ page: 3,
10997
+ caption: "Total of the principal amounts of loans or other financings at any point in the tax year"
10998
+ },
10999
+ {
11000
+ line: "018",
11001
+ page: 3,
11002
+ caption: "Total of the notional amounts of derivatives entered into in respect of loans or other financings at any point of the year"
11003
+ },
11004
+ {
11005
+ line: "019",
11006
+ page: 3,
11007
+ caption: "Total of all amounts included in paragraph (d) of variable A of IFR (other than a dividend or a gain included in corporation's income)"
11008
+ },
11009
+ {
11010
+ line: "020",
11011
+ page: 3,
11012
+ caption: "Total of all amounts included in paragraph (a) of variable B of IFR (other than a loss or capital loss)"
11013
+ },
11014
+ {
11015
+ line: "021",
11016
+ page: 3,
11017
+ caption: "Name of the partnership"
11018
+ },
11019
+ {
11020
+ line: "023",
11021
+ page: 3,
11022
+ caption: "Corporation's share of amount included under variable A of partnership IFE (box 247 of the T5013 slips if applicable)"
11023
+ },
11024
+ {
11025
+ line: "024",
11026
+ page: 3,
11027
+ caption: "Portion of amount in column 3 in which paragraph 12(1)(l.1) applies"
11028
+ },
11029
+ {
11030
+ line: "025",
11031
+ page: 3,
11032
+ caption: "Portion of amount in column 3, not deductible in the corporation's income or included in corporation's non-capital loss because of subsection 96(2.1)"
11033
+ },
11034
+ {
11035
+ line: "026",
11036
+ page: 3,
11037
+ caption: "Amount to be included under paragraph (h) of variable A of IFE (column 3 minus column 4 minus column 5)"
11038
+ },
11039
+ {
11040
+ line: "041",
11041
+ page: 4,
11042
+ caption: "An amount that is a controlled foreign affiliate's (CFA) relevant affiliate interest and financing expenses, to the extent of the corporation's specified participating percentage in respect of the affiliate for the affiliate tax year"
11043
+ },
11044
+ {
11045
+ line: "045",
11046
+ page: 4,
11047
+ caption: "Total IFE. Amount A minus Amount B. If negative, enter \"0\""
11048
+ },
11049
+ {
11050
+ line: "046",
11051
+ page: 5,
11052
+ caption: "Class number"
11053
+ },
11054
+ {
11055
+ line: "047",
11056
+ page: 5,
11057
+ caption: "IFE in undepreciated capital cost (UCC) at beginning of the tax year"
11058
+ },
11059
+ {
11060
+ line: "048",
11061
+ page: 5,
11062
+ caption: "IFE in the cost of acquisitions, adjustments and transfers, and proceeds of dispositions"
11063
+ },
11064
+ {
11065
+ line: "049",
11066
+ page: 5,
11067
+ caption: "IFE in UCC (column 2 plus or minus column 3). If negative, enter \"0\""
11068
+ },
11069
+ {
11070
+ line: "050",
11071
+ page: 5,
11072
+ caption: "IFE in terminal loss"
11073
+ },
11074
+ {
11075
+ line: "051",
11076
+ page: 5,
11077
+ caption: "IFE in CCA (cannot be more than column 4)"
11078
+ },
11079
+ {
11080
+ line: "052",
11081
+ page: 5,
11082
+ caption: "IFE in UCC at the end of the year (column 4 minus column 6). If negative, enter \"0\""
11083
+ },
11084
+ {
11085
+ line: "053",
11086
+ page: 5,
11087
+ caption: "IFE in the opening balance"
11088
+ },
11089
+ {
11090
+ line: "054",
11091
+ page: 5,
11092
+ caption: "IFE in amounts added or deducted from pool balance during the tax year"
11093
+ },
11094
+ {
11095
+ line: "055",
11096
+ page: 5,
11097
+ caption: "IFE in amount available before current year claim (column 2 plus or minus column 3). If negative, enter \"0\""
11098
+ },
11099
+ {
11100
+ line: "056",
11101
+ page: 5,
11102
+ caption: "IFE in current year claims (cannot be more than column 4)"
11103
+ },
11104
+ {
11105
+ line: "057",
11106
+ page: 5,
11107
+ caption: "IFE in closing balance (column 4 minus column 5). If negative, enter \"0\""
11108
+ },
11109
+ {
11110
+ line: "064",
11111
+ page: 6,
11112
+ caption: "The corporation's share of the IFR of a partnership it is a member of (total of amounts from box 248 of the T5013 slips plus relevant amounts from non-resident partnerships)"
11113
+ },
11114
+ {
11115
+ line: "069",
11116
+ page: 6,
11117
+ caption: "The corporation's share of an amount that, if received or receivable by the corporation, would correspond the description of an amount to be included on lines 066, 067 and 068, but that is received or receivable by a partnership of which the corporation is a member (total of amounts from box 250 of the T5013 slips plus relevant amounts from non-resident partnerships)"
11118
+ },
11119
+ {
11120
+ line: "073",
11121
+ page: 7,
11122
+ caption: "Tax year of origin of the non-capital loss"
11123
+ },
11124
+ {
11125
+ line: "074",
11126
+ page: 7,
11127
+ caption: "Non-capital loss (amount determined under (i) of variable J)"
11128
+ },
11129
+ {
11130
+ line: "075",
11131
+ page: 7,
11132
+ caption: "Amounts determined under (ii) of variable J"
11133
+ },
11134
+ {
11135
+ line: "077",
11136
+ page: 7,
11137
+ caption: "Amount deducted under paragraph 111(1)(a) when calculating taxable income for the year"
11138
+ },
11139
+ {
11140
+ line: "078",
11141
+ page: 7,
11142
+ caption: "Amount determined for paragraph (h) of variable B of the adjusted taxable income (column 5 multiplied by column 4 divided by column 2)"
11143
+ },
11144
+ {
11145
+ line: "080",
11146
+ page: 8,
11147
+ caption: "Non-capital loss for the year (determined without regard to subsection 18.2(2), paragraphs 12(1)(l.2) and 111(1)(a.1) and clause 95(2)(f.11)(ii)(D))"
11148
+ },
11149
+ {
11150
+ line: "094",
11151
+ page: 8,
11152
+ caption: "An amount deducted under subsections 127(5) or (6), 127.44(3), 127.45(6), 127.48(3) or 127.49(6) for a property acquired in a preceding tax year that the corporation did not include in income for the year or for a preceding year and did not include in the ATI for a preceding year"
11153
+ },
11154
+ {
11155
+ line: "106",
11156
+ page: 9,
11157
+ caption: "ATI of the corporation for the year. Amount B plus amount C minus amount D. If negative, enter \"0\""
11158
+ },
11159
+ {
11160
+ line: "115",
11161
+ page: 10,
11162
+ caption: "Excess capacity for the current year. Amount F minus line 114. If negative, enter \"0\""
11163
+ },
11164
+ {
11165
+ line: "122",
11166
+ page: 11,
11167
+ caption: "Excess capacity"
11168
+ },
11169
+ {
11170
+ line: "123",
11171
+ page: 11,
11172
+ caption: "Amounts previously transferred under subsection 18.2(4)"
11173
+ },
11174
+ {
11175
+ line: "124",
11176
+ page: 11,
11177
+ caption: "Amounts previously absorbed under subsection 18.2(2)"
11178
+ },
11179
+ {
11180
+ line: "125",
11181
+ page: 11,
11182
+ caption: "Column 1 minus column 2 minus column 3. If negative, enter \"0\""
11183
+ },
11184
+ {
11185
+ line: "132",
11186
+ page: 12,
11187
+ caption: "If a group ratio election under subsection 18.21(2) has been made, the amount determined and allocated in respect of the corporation for the year under the group ratio election"
11188
+ },
11189
+ {
11190
+ line: "144",
11191
+ page: 13,
11192
+ caption: "Name of CFA"
11193
+ },
11194
+ {
11195
+ line: "145",
11196
+ page: 13,
11197
+ caption: "Amounts determined for variable A in the definition of IFE for the affiliate"
11198
+ },
11199
+ {
11200
+ line: "146",
11201
+ page: 13,
11202
+ caption: "Proportion determined under subsection 18.2(2) (Amount G in Part 2K)"
11203
+ },
11204
+ {
11205
+ line: "147",
11206
+ page: 13,
11207
+ caption: "Denied amount under subclause 95(2)(f.11)(ii)(D)(I) (Column 2 multiplied by column 3)"
11208
+ },
11209
+ {
11210
+ line: "148",
11211
+ page: 13,
11212
+ caption: "The corporation's specified participating percentage under subsection 18.2(1) for the affiliate's tax year"
11213
+ },
11214
+ {
11215
+ line: "149",
11216
+ page: 13,
11217
+ caption: "Corporation's share of the denied amount under subclause 95(2)(f.11)(ii)(D)(I) for the affiliate's tax year (Column 4 multiplied by column 5)"
11218
+ },
11219
+ {
11220
+ line: "151",
11221
+ page: 13,
11222
+ caption: "Name of the CFA that is a member of the partnership"
11223
+ },
11224
+ {
11225
+ line: "152",
11226
+ page: 13,
11227
+ caption: "Amount determined under subclause 95(2)(f.11)(ii)(D)(II) in computing a CFA's FAPI"
11228
+ },
11229
+ {
11230
+ line: "153",
11231
+ page: 13,
11232
+ caption: "The corporation's specified participating percentage under subsection 18.2(1) for the affiliate's tax year"
11233
+ },
11234
+ {
11235
+ line: "154",
11236
+ page: 13,
11237
+ caption: "The corporation's share of an amount included under subclause 95(2)(f.11)(ii)(D)(II) for the affiliate's tax year (Column 2 multiplied by column 3)"
11238
+ },
11239
+ {
11240
+ line: "158",
11241
+ page: 14,
11242
+ caption: "Total add-back of partnership IFE under paragraph 12(1)(l.2) (line 156 multiplied by line 157)"
11243
+ }
11244
+ ];
11245
+ const T2_SCHEDULE_130 = {
11246
+ id: "T2SCH130",
11247
+ program: "T2",
11248
+ schedule: "130",
11249
+ title: "Excessive interest and financing expenses limitation",
11250
+ scheme: "cra-line",
11251
+ taxYears: { from: 2024 },
11252
+ sections: [
11253
+ {
11254
+ id: "received-capacity",
11255
+ title: "Part 1A — Received capacity",
11256
+ description: "Capacity transferred in from a group member."
11257
+ },
11258
+ {
11259
+ id: "exempt-ife",
11260
+ title: "Part 1B — Exempt interest and financing expenses"
11261
+ },
11262
+ {
11263
+ id: "borrowings",
11264
+ title: "Part 1C — Borrowings and other financings, and related derivatives",
11265
+ secondary: true
11266
+ },
11267
+ {
11268
+ id: "loans",
11269
+ title: "Part 1D — Loans and other financings, and related derivatives",
11270
+ secondary: true
11271
+ },
11272
+ {
11273
+ id: "partnership-ife",
11274
+ title: "Part 1E — IFE allocated from a partnership",
11275
+ secondary: true
11276
+ },
11277
+ {
11278
+ id: "ife",
11279
+ title: "Part 2A — Interest and financing expenses",
11280
+ description: "Variable A — the expenses the limitation is measured against."
11281
+ },
11282
+ {
11283
+ id: "capitalized-ife",
11284
+ title: "Part 2B — Capitalized IFE in the cost of depreciable assets",
11285
+ secondary: true,
11286
+ description: "Interest that went into the capital cost of property rather than being expensed. It comes back into IFE as the class is claimed."
11287
+ },
11288
+ {
11289
+ id: "resource-ife",
11290
+ title: "Part 2C — IFE included in resource deductions",
11291
+ secondary: true,
11292
+ description: "The same idea as Part 2B, for the ten resource expense pools."
11293
+ },
11294
+ {
11295
+ id: "ifr",
11296
+ title: "Part 2D — Interest and financing revenues",
11297
+ description: "Variable C — revenues that shelter an equal amount of expense."
11298
+ },
11299
+ {
11300
+ id: "ati-paragraph-h",
11301
+ title: "Part 2E — Paragraph (h) of variable B of adjusted taxable income"
11302
+ },
11303
+ {
11304
+ id: "ati",
11305
+ title: "Part 2F — Adjusted taxable income",
11306
+ description: "The base the ceiling is a percentage of. Built as A + B − C, and the add-backs include the interest expenses themselves — so borrowing more cannot shrink the ceiling."
11307
+ },
11308
+ {
11309
+ id: "excess-capacity",
11310
+ title: "Part 2G — Excess capacity",
11311
+ secondary: true,
11312
+ description: "Unused ceiling, banked for three years or transferred to a group member."
11313
+ },
11314
+ {
11315
+ id: "absorbed-capacity",
11316
+ title: "Part 2H — Absorbed capacity",
11317
+ secondary: true
11318
+ },
11319
+ {
11320
+ id: "cuec",
11321
+ title: "Part 2I — Cumulative unused excess capacity",
11322
+ secondary: true,
11323
+ description: "The three preceding years of banked capacity, net of what has been transferred away or already absorbed."
11324
+ },
11325
+ {
11326
+ id: "rife",
11327
+ title: "Part 2J — Restricted interest and financing expenses",
11328
+ description: "Where a denial goes: pooled on Schedule 4 Part 8, not lost."
11329
+ },
11330
+ {
11331
+ id: "ratio",
11332
+ title: "Part 2K — Proportion determined under subsection 18.2(2)",
11333
+ description: "40% for a year beginning in the transitional quarter, 30% thereafter — keyed off when the year BEGINS, not when it ends."
11334
+ },
11335
+ {
11336
+ id: "excess-ife",
11337
+ title: "Part 2L — Excess IFE under subsection 18.2(2)",
11338
+ description: "The denial itself."
11339
+ },
11340
+ {
11341
+ id: "foreign-affiliate",
11342
+ title: "Part 2M — Amounts determined under clause 95(2)(f.11)(ii)(D)",
11343
+ secondary: true
11344
+ },
11345
+ {
11346
+ id: "partnership-addback",
11347
+ title: "Part 2N — Partnership IFE add-back under paragraph 12(1)(l.2)",
11348
+ secondary: true
11349
+ },
11350
+ {
11351
+ id: "rife-111-8",
11352
+ title: "Part 2O — RIFE under subsection 111(8)",
11353
+ description: "What the year’s denials total to, and carry forward as restricted expenses on Schedule 4."
11354
+ }
11355
+ ],
11356
+ fields: buildFields({
11357
+ captions: [...SCHEDULE_130_CAPTIONS, ...HAND_AUTHORED],
11358
+ /**
11359
+ * Sectioned by NUMBER BAND, not by the extractor's `part` tag.
11360
+ *
11361
+ * The tag is unusable on this form: it records whichever part the
11362
+ * caption CROSS-REFERENCES, not the part the line is printed under.
11363
+ * Line 083 reads "The corporation's IFE for the year (line 045 from
11364
+ * Part 2A)" and was tagged `Part 2A` though it is a Part 2F line; 126
11365
+ * and 127 are Part 2I lines tagged `Part 2F`; 130 is a Part 2J line
11366
+ * tagged `Part 1A`. Thirty-eight of the ninety-eight extracted lines
11367
+ * were misplaced this way, each rendering under the wrong heading.
11368
+ *
11369
+ * Bands are safe here because this schedule numbers strictly
11370
+ * sequentially through its parts, 001 to 162 with no interleaving —
11371
+ * verified against every part heading in the rendered form.
11372
+ */
11373
+ bands: [
11374
+ {
11375
+ section: "received-capacity",
11376
+ range: [1, 5]
11377
+ },
11378
+ {
11379
+ section: "exempt-ife",
11380
+ range: [6, 11]
11381
+ },
11382
+ {
11383
+ section: "borrowings",
11384
+ range: [12, 16]
11385
+ },
11386
+ {
11387
+ section: "loans",
11388
+ range: [17, 20]
11389
+ },
11390
+ {
11391
+ section: "partnership-ife",
11392
+ range: [21, 26]
11393
+ },
11394
+ {
11395
+ section: "ife",
11396
+ range: [27, 45]
11397
+ },
11398
+ {
11399
+ section: "capitalized-ife",
11400
+ range: [46, 52]
11401
+ },
11402
+ {
11403
+ section: "resource-ife",
11404
+ range: [53, 57]
11405
+ },
11406
+ {
11407
+ section: "ifr",
11408
+ range: [58, 72]
11409
+ },
11410
+ {
11411
+ section: "ati-paragraph-h",
11412
+ range: [73, 78]
11413
+ },
11414
+ {
11415
+ section: "ati",
11416
+ range: [79, 106]
11417
+ },
11418
+ {
11419
+ section: "excess-capacity",
11420
+ range: [107, 115]
11421
+ },
11422
+ {
11423
+ section: "absorbed-capacity",
11424
+ range: [116, 121]
11425
+ },
11426
+ {
11427
+ section: "cuec",
11428
+ range: [122, 127]
11429
+ },
11430
+ {
11431
+ section: "rife",
11432
+ range: [128, 130]
11433
+ },
11434
+ {
11435
+ section: "ratio",
11436
+ range: [131, 140]
11437
+ },
11438
+ {
11439
+ section: "excess-ife",
11440
+ range: [141, 143]
11441
+ },
11442
+ {
11443
+ section: "foreign-affiliate",
11444
+ range: [144, 155]
11445
+ },
11446
+ {
11447
+ section: "partnership-addback",
11448
+ range: [156, 158]
11449
+ },
11450
+ {
11451
+ section: "rife-111-8",
11452
+ range: [159, 162]
11453
+ }
11454
+ ],
11455
+ kinds: {
11456
+ "001": "flag",
11457
+ "006": "flag",
11458
+ "002": "text",
11459
+ "003": "text",
11460
+ "004": "date",
11461
+ "007": "text",
11462
+ "021": "text",
11463
+ "022": "text",
11464
+ "046": "text",
11465
+ "073": "text",
11466
+ "144": "text",
11467
+ "151": "text",
11468
+ "108": "rate",
11469
+ "112": "rate",
11470
+ "120": "rate",
11471
+ "134": "rate",
11472
+ "146": "rate",
11473
+ "148": "rate",
11474
+ "153": "rate"
11475
+ },
11476
+ totals: [
11477
+ "045",
11478
+ "072",
11479
+ "106"
11480
+ ],
11481
+ computed: [
11482
+ "026",
11483
+ "049",
11484
+ "052",
11485
+ "055",
11486
+ "057",
11487
+ "078",
11488
+ "107",
11489
+ "115",
11490
+ "125",
11491
+ "147",
11492
+ "149",
11493
+ "154",
11494
+ "158",
11495
+ "159"
11496
+ ],
11497
+ carriedIn: { "128": {
11498
+ form: "T2SCH4",
11499
+ line: "700",
11500
+ note: "The restricted expenses pooled from earlier years"
11501
+ } },
11502
+ carriedOut: { "159": {
11503
+ form: "T2SCH4",
11504
+ line: "700",
11505
+ note: "A denial is not lost — it pools as RIFE and may be deducted later"
11506
+ } },
11507
+ notes: {
11508
+ "107": "Adjusted taxable income. The ceiling is a percentage of income computed BEFORE the expenses being limited, which is why the add-backs include the interest expenses themselves.",
11509
+ "114": "Restricted expenses deducted this year under paragraph 111(1)(a.1) — the pool from Schedule 4 Part 8 being drawn down.",
11510
+ "118": "The group ratio election under s.18.21(2) REPLACES the ratio calculation entirely; where it is made, the ratio at 120 is not used.",
11511
+ "134": "Forty per cent for a year beginning in the transitional quarter, thirty thereafter. Keyed off when the year BEGINS — a November-to-October year takes 40% throughout despite mostly falling in the later year.",
11512
+ "159": "The denied amount. The statute denies a PROPORTION of each expense, so a preparer allocating the denial across expense lines needs the fraction, not only the total."
11513
+ }
11514
+ }, "T2SCH130"),
11515
+ provenance: {
11516
+ document: "research/sources/cra-forms/pdf/T2SCH130-eifel.pdf",
11517
+ retrieved: "2026-08-12",
11518
+ revision: "T2 SCH 130 E (24)"
11519
+ }
11520
+ };
11521
+ //#endregion
11522
+ //#region src/t2/forms/generated/schedule141.captions.ts
11523
+ const SCHEDULE_141_CAPTIONS = [
11524
+ {
11525
+ line: "111",
11526
+ caption: "Can you identify the person* specified in the heading of Part 1?",
11527
+ page: 1,
11528
+ part: "Part 1"
11529
+ },
11530
+ {
11531
+ line: "095",
11532
+ caption: "Does that person have a professional designation in accounting?",
11533
+ page: 1,
11534
+ part: "Part 1"
11535
+ },
11536
+ {
11537
+ line: "097",
11538
+ caption: "Is that person connected** with the corporation?",
11539
+ page: 1,
11540
+ part: "Part 1"
11541
+ },
11542
+ {
11543
+ line: "300",
11544
+ caption: "Completed an auditor's report",
11545
+ page: 1,
11546
+ part: "Part 2"
11547
+ },
11548
+ {
11549
+ line: "301",
11550
+ caption: "Completed a review engagement report",
11551
+ page: 1,
11552
+ part: "Part 2"
11553
+ },
11554
+ {
11555
+ line: "302",
11556
+ caption: "Conducted a compilation engagement",
11557
+ page: 1,
11558
+ part: "Part 2"
11559
+ },
11560
+ {
11561
+ line: "303",
11562
+ caption: "Provided accounting services",
11563
+ page: 1,
11564
+ part: "Part 2"
11565
+ },
11566
+ {
11567
+ line: "304",
11568
+ caption: "Provided bookkeeping services",
11569
+ page: 1,
11570
+ part: "Part 2"
11571
+ },
11572
+ {
11573
+ line: "305",
11574
+ caption: "Other (please specify)",
11575
+ page: 1,
11576
+ part: "Part 2"
11577
+ },
11578
+ {
11579
+ line: "099",
11580
+ caption: "Has the person referred to in Part 1 expressed a reservation?",
11581
+ page: 1,
11582
+ part: "Part 3"
11583
+ },
11584
+ {
11585
+ line: "101",
11586
+ caption: "Were notes to the financial statements prepared?",
11587
+ page: 1,
11588
+ part: "Part 4"
11589
+ },
11590
+ {
11591
+ line: "104",
11592
+ caption: "Did the corporation have any subsequent events?",
11593
+ page: 1,
11594
+ part: "Part 4"
11595
+ },
11596
+ {
11597
+ line: "105",
11598
+ caption: "Did the corporation re-evaluate its assets during the tax year?",
11599
+ page: 1,
11600
+ part: "Part 4"
11601
+ },
11602
+ {
11603
+ line: "106",
11604
+ caption: "Did the corporation have any contingent liabilities during the tax year?",
11605
+ page: 1,
11606
+ part: "Part 4"
11607
+ },
11608
+ {
11609
+ line: "107",
11610
+ caption: "Did the corporation have any commitments during the tax year?",
11611
+ page: 1,
11612
+ part: "Part 4"
11613
+ },
11614
+ {
11615
+ line: "108",
11616
+ caption: "Does the corporation have investments in joint venture(s) or partnership(s)?",
11617
+ page: 1,
11618
+ part: "Part 4"
11619
+ },
11620
+ {
11621
+ line: "200",
11622
+ caption: "of an impairment loss in the tax year, a reversal of an impairment loss recognized in a previous tax year, or a change in fair Yes No value during the tax year?",
11623
+ page: 2,
11624
+ part: "Part 4"
11625
+ },
11626
+ {
11627
+ line: "210",
11628
+ caption: "Property, plant, and equipment",
11629
+ page: 2,
11630
+ part: "Part 4"
11631
+ },
11632
+ {
11633
+ line: "215",
11634
+ caption: "Intangible assets",
11635
+ page: 2,
11636
+ part: "Part 4"
11637
+ },
11638
+ {
11639
+ line: "220",
11640
+ caption: "Investment property",
11641
+ page: 2,
11642
+ part: "Part 4"
11643
+ },
11644
+ {
11645
+ line: "225",
11646
+ caption: "Biological assets",
11647
+ page: 2,
11648
+ part: "Part 4"
11649
+ },
11650
+ {
11651
+ line: "230",
11652
+ caption: "Financial instruments",
11653
+ page: 2,
11654
+ part: "Part 4"
11655
+ },
11656
+ {
11657
+ line: "235",
11658
+ caption: "Other",
11659
+ page: 2,
11660
+ part: "Part 4"
11661
+ },
11662
+ {
11663
+ line: "250",
11664
+ caption: "Did the corporation derecognize any financial instrument(s) during the tax year (other than trade receivables)?",
11665
+ page: 2,
11666
+ part: "Part 4"
11667
+ },
11668
+ {
11669
+ line: "255",
11670
+ caption: "Did the corporation apply hedge accounting during the tax year?",
11671
+ page: 2,
11672
+ part: "Part 4"
11673
+ },
11674
+ {
11675
+ line: "260",
11676
+ caption: "Did the corporation discontinue hedge accounting during the tax year?",
11677
+ page: 2,
11678
+ part: "Part 4"
11679
+ },
11680
+ {
11681
+ line: "265",
11682
+ caption: "Was an amount included in the opening balance of retained earnings or equity, in order to correct an error, to recognize a Yes No change in accounting policy, or to adopt a new accounting standard in the current tax year?",
11683
+ page: 2,
11684
+ part: "Part 4"
11685
+ },
11686
+ {
11687
+ line: "310",
11688
+ caption: "Prepared the T2 return and the financial information contained therein",
11689
+ page: 2,
11690
+ part: "Part 5"
11691
+ },
11692
+ {
11693
+ line: "311",
11694
+ caption: "The client provided the financial statements",
11695
+ page: 2,
11696
+ part: "Part 5"
11697
+ },
11698
+ {
11699
+ line: "312",
11700
+ caption: "The client provided a trial balance",
11701
+ page: 2,
11702
+ part: "Part 5"
11703
+ },
11704
+ {
11705
+ line: "313",
11706
+ caption: "The client provided a general ledger",
11707
+ page: 2,
11708
+ part: "Part 5"
11709
+ },
11710
+ {
11711
+ line: "314",
11712
+ caption: "Other (please specify)",
11713
+ page: 2,
11714
+ part: "Part 5"
11715
+ }
11716
+ ];
11717
+ new Map(SCHEDULE_141_CAPTIONS.map((c) => [c.line, c]));
11718
+ const T2_SCHEDULE_141 = {
11719
+ id: "T2SCH141",
11720
+ program: "T2",
11721
+ schedule: "141",
11722
+ title: "Notes checklist (GIFI additional information)",
11723
+ scheme: "cra-line",
11724
+ taxYears: { from: 2023 },
11725
+ sections: [
11726
+ {
11727
+ id: "preparer",
11728
+ title: "Part 1 — Information on the person who prepared the financial statements",
11729
+ description: "Whether that person can be identified at all, holds an accounting designation, and is connected with the corporation."
11730
+ },
11731
+ {
11732
+ id: "involvement",
11733
+ title: "Part 2 — Type of involvement with the financial statements",
11734
+ description: "Audit, review, compilation, accounting or bookkeeping — four different levels of assurance, and the form makes the corporation say which one it has."
11735
+ },
11736
+ {
11737
+ id: "reservation",
11738
+ title: "Part 3 — Reservations",
11739
+ description: "Whether the preparer qualified their opinion or report."
11740
+ },
11741
+ {
11742
+ id: "notes",
11743
+ title: "Part 4 — Other information",
11744
+ description: "What the notes to the financial statements disclose: impairments and revaluations, subsequent events, contingent liabilities, commitments, hedge accounting, and any correction made against opening retained earnings."
11745
+ },
11746
+ {
11747
+ id: "return-preparer",
11748
+ title: "Part 5 — Information on the person who prepared the tax return",
11749
+ secondary: true,
11750
+ description: "A different question from Part 1. The person who prepared the RETURN need not be the person who prepared the statements, and the form asks what the client supplied."
11751
+ }
11752
+ ],
11753
+ fields: buildFields({
11754
+ captions: SCHEDULE_141_CAPTIONS,
11755
+ sectionByPart: {
11756
+ "Part 1": "preparer",
11757
+ "Part 2": "involvement",
11758
+ "Part 3": "reservation",
11759
+ "Part 4": "notes",
11760
+ "Part 5": "return-preparer"
11761
+ },
11762
+ kinds: { ...Object.fromEntries(["305", "314"].map((l) => [l, "text"])) },
11763
+ notes: {
11764
+ "097": "Connected means an officer, a shareholder, a related person, or an employee — the answer that decides whether the statements are independently prepared.",
11765
+ "099": "A reservation is the preparer declining to give an unqualified opinion. It is reported here whatever the level of assurance, including on a compilation.",
11766
+ "265": "A correction made against the OPENING balance of retained earnings rather than through the current year, so the prior year as filed no longer agrees with the comparative figures."
11767
+ }
11768
+ }, "T2SCH141"),
11769
+ provenance: {
11770
+ document: "research/sources/cra-forms/pdf/T2SCH141-gifi-notes.pdf",
11771
+ retrieved: "2026-08-12"
10334
11772
  }
10335
11773
  };
11774
+ /** Part 1 — whether the preparer can be identified at all. Gates the rest of Part 1. */
11775
+ const SCHEDULE_141_PREPARER_IDENTIFIED_LINE = "111";
11776
+ /** Part 3 — whether a reservation was expressed. The line CRA risk-scores on. */
11777
+ const SCHEDULE_141_RESERVATION_LINE = "099";
10336
11778
  //#endregion
10337
11779
  //#region src/forms/registry.ts
10338
11780
  /**
@@ -10369,6 +11811,7 @@ const FORMS = [
10369
11811
  T2_SCHEDULE_8,
10370
11812
  T2_SCHEDULE_13,
10371
11813
  T2_SCHEDULE_130,
11814
+ T2_SCHEDULE_141,
10372
11815
  T2_SCHEDULE_23,
10373
11816
  T2_SCHEDULE_31,
10374
11817
  T2_SCHEDULE_33,
@@ -10443,4 +11886,4 @@ function findBrokenLinks() {
10443
11886
  return problems;
10444
11887
  }
10445
11888
  //#endregion
10446
- export { SCHEDULE_2_CARRYFORWARD_YEARS as $, AT1_SCHEDULE_7 as $t, SCHEDULE_8_CCA_LINE as A, CONTINUITY_CAPTIONS as At, SCHEDULE_5_JURISDICTIONS as B, AT1_SECTION_34_2_GROSS_UP as Bt, SCHEDULE_23_GROUP_BUSINESS_LIMIT as C, AT1_IEG_ENHANCED_RATE as Ct, T2_SCHEDULE_21 as D, AT1_SCHEDULE_29 as Dt, SCHEDULE_21_NON_BUSINESS_CREDIT_LINE as E, AT1_IEG_PRIOR_YEARS as Et, SCHEDULE_7_ADJUSTED_AII_LINE as F, AT1_SCHEDULE_20_POOLS as Ft, SCHEDULE_4_LPP_CARRYFORWARD_YEARS as G, AT1_SCHEDULE_15 as Gt, SCHEDULE_5_SALARIES_OFFSET as H, AT1_SCHEDULE_17_RESERVES as Ht, SCHEDULE_7_PASSIVE_INCOME_THRESHOLD as I, COMPUTED_CONTINUITY_ROWS as It, UnclassifiedLineError as J, AT1_SCHEDULE_12 as Jt, SCHEDULE_4_NON_CAPITAL_CARRYFORWARD_YEARS as K, AT1_SCHEDULE_13 as Kt, T2_SCHEDULE_7 as L, CONTINUITY_ROWS as Lt, SCHEDULE_8_RECAPTURE_LINE as M, scheduleTwentyOneLineId as Mt, SCHEDULE_8_TERMINAL_LOSS_LINE as N, AT1_DONATION_CARRYFORWARD_YEARS as Nt, SCHEDULE_13_RESERVE_ROWS as O, AT1_SCHEDULE_21 as Ot, T2_SCHEDULE_8 as P, AT1_SCHEDULE_20 as Pt, T2_SCHEDULE_3 as Q, AT1_SCHEDULE_8 as Qt, SCHEDULE_6_GRIDS as R, AT1_SCHEDULE_18 as Rt, T2_SCHEDULE_24 as S, AT1_IEG_BASE_RATE as St, SCHEDULE_21_BUSINESS_CREDIT_LINE as T, AT1_IEG_MAX_EXPENDITURE as Tt, T2_SCHEDULE_5 as U, AT1_SCHEDULE_16 as Ut, SCHEDULE_5_REVENUE_OFFSET as V, AT1_SCHEDULE_17 as Vt, SCHEDULE_4_CARRYBACK_YEARS as W, AT1_SCHEDULE_16_CARRYFORWARD_LINE as Wt, SCHEDULE_3_ELIGIBLE_PAID_LINE as X, AT1_SCHEDULE_10 as Xt, buildFields as Y, AT1_SCHEDULE_12_PAIRS as Yt, SCHEDULE_3_TAXABLE_PAID_LINE as Z, AT1_SCHEDULE_9 as Zt, T2_SCHEDULE_33 as _, T2_TOTAL_TAX_PAYABLE_LINE as _t, getField as a, AT1_SCHEDULE_1 as an, SCHEDULE_1_TOTAL_DEDUCTIONS_LINE as at, T2_SCHEDULE_31 as b, CO17_TAXABLE_INCOME_BOX as bt, T2_SCHEDULE_55 as c, AT1_JACKET as cn, indexByLine as ct, T2_SCHEDULE_53 as d, AT4970_JURISDICTIONS as dn, validateFormDefinition as dt, AT1_SCHEDULE_6 as en, SCHEDULE_2_CHARITABLE_CURRENT_LINE as et, SCHEDULE_50_DISCLOSURE_THRESHOLD as f, T2_BASE_PART_I_RATE as ft, SCHEDULE_33_TAXABLE_CAPITAL_IN_CANADA_LINE as g, T2_TAXABLE_INCOME_LINE as gt, T2_SCHEDULE_43 as h, T2_SMALL_BUSINESS_DEDUCTION_RATE as ht, formsForProgram as i, AT1_SCHEDULE_2 as in, SCHEDULE_1_TOTAL_ADDITIONS_LINE as it, SCHEDULE_8_COLUMNS as j, CONTINUITY_ORDER as jt, T2_SCHEDULE_13 as k, AT1_SCHEDULE_21_POOLS as kt, SCHEDULE_53_CLOSING_GRIP_LINE as l, AT1_TAX_PAYABLE_LINE as ln, inputFields as lt, SCHEDULE_43_DIVIDEND_ALLOWANCE as m, T2_NET_INCOME_FOR_TAX_LINE as mt, describeLine as n, AT1_SCHEDULE_4 as nn, SCHEDULE_1_LINES as nt, getForm as o, AT1_BALANCE_CREDIT_LINES as on, T2_SCHEDULE_1 as ot, T2_SCHEDULE_50 as p, T2_JACKET as pt, T2_SCHEDULE_4 as q, AT1_SCHEDULE_13_COLUMNS as qt, findBrokenLinks as r, AT1_SCHEDULE_3 as rn, SCHEDULE_1_LINE_BY_NUMBER as rt, T2_SCHEDULE_130 as s, AT1_BALANCE_LINE as sn, fieldsInSection as st, FORMS as t, AT1_SCHEDULE_5 as tn, T2_SCHEDULE_2 as tt, SCHEDULE_53_GENERAL_RATE_FACTOR as u, AT4970 as un, isEnterableLine as ut, SCHEDULE_31_ENHANCED_SRED_RATE as v, CO17_QUEBEC_PROPORTION_BOX as vt, T2_SCHEDULE_23 as w, AT1_IEG_JACKET_LINE as wt, SCHEDULE_24_OPERATION_TYPE_LINE as x, CO17_TAX_PAYABLE_BOX as xt, SCHEDULE_31_GENERAL_SRED_RATE as y, CO17_RETURN as yt, T2_SCHEDULE_6 as z, AT1_SCHEDULE_18_CATEGORIES as zt };
11889
+ export { SCHEDULE_3_ELIGIBLE_PAID_LINE as $, AT1_SCHEDULE_10 as $t, T2_SCHEDULE_21 as A, AT1_SCHEDULE_29 as At, T2_SCHEDULE_7 as B, CONTINUITY_ROWS as Bt, T2_SCHEDULE_31 as C, CO17_TAXABLE_INCOME_BOX as Ct, T2_SCHEDULE_23 as D, AT1_IEG_JACKET_LINE as Dt, SCHEDULE_23_GROUP_BUSINESS_LIMIT as E, AT1_IEG_ENHANCED_RATE as Et, SCHEDULE_8_RECAPTURE_LINE as F, scheduleTwentyOneLineId as Ft, SCHEDULE_5_SALARIES_OFFSET as G, AT1_SCHEDULE_17_RESERVES as Gt, T2_SCHEDULE_6 as H, AT1_SCHEDULE_18_CATEGORIES as Ht, SCHEDULE_8_TERMINAL_LOSS_LINE as I, AT1_DONATION_CARRYFORWARD_YEARS as It, SCHEDULE_4_LPP_CARRYFORWARD_YEARS as J, AT1_SCHEDULE_15 as Jt, T2_SCHEDULE_5 as K, AT1_SCHEDULE_16 as Kt, T2_SCHEDULE_8 as L, AT1_SCHEDULE_20 as Lt, T2_SCHEDULE_13 as M, AT1_SCHEDULE_21_POOLS as Mt, SCHEDULE_8_CCA_LINE as N, CONTINUITY_CAPTIONS as Nt, SCHEDULE_21_BUSINESS_CREDIT_LINE as O, AT1_IEG_MAX_EXPENDITURE as Ot, SCHEDULE_8_COLUMNS as P, CONTINUITY_ORDER as Pt, buildFields as Q, AT1_SCHEDULE_12_PAIRS as Qt, SCHEDULE_7_ADJUSTED_AII_LINE as R, AT1_SCHEDULE_20_POOLS as Rt, SCHEDULE_31_GENERAL_SRED_RATE as S, CO17_RETURN as St, T2_SCHEDULE_24 as T, AT1_IEG_BASE_RATE as Tt, SCHEDULE_5_JURISDICTIONS as U, AT1_SECTION_34_2_GROSS_UP as Ut, SCHEDULE_6_GRIDS as V, AT1_SCHEDULE_18 as Vt, SCHEDULE_5_REVENUE_OFFSET as W, AT1_SCHEDULE_17 as Wt, T2_SCHEDULE_4 as X, AT1_SCHEDULE_13_COLUMNS as Xt, SCHEDULE_4_NON_CAPITAL_CARRYFORWARD_YEARS as Y, AT1_SCHEDULE_13 as Yt, UnclassifiedLineError as Z, AT1_SCHEDULE_12 as Zt, SCHEDULE_43_DIVIDEND_ALLOWANCE as _, T2_NET_INCOME_FOR_TAX_LINE as _t, getField as a, AT1_SCHEDULE_4 as an, SCHEDULE_1_LINES as at, T2_SCHEDULE_33 as b, T2_TOTAL_TAX_PAYABLE_LINE as bt, SCHEDULE_141_RESERVATION_LINE as c, AT1_SCHEDULE_1 as cn, SCHEDULE_1_TOTAL_DEDUCTIONS_LINE as ct, T2_SCHEDULE_55 as d, AT1_JACKET as dn, indexByLine as dt, AT1_SCHEDULE_9 as en, SCHEDULE_3_TAXABLE_PAID_LINE as et, SCHEDULE_53_CLOSING_GRIP_LINE as f, AT1_TAX_PAYABLE_LINE as fn, inputFields as ft, T2_SCHEDULE_50 as g, T2_JACKET as gt, SCHEDULE_50_DISCLOSURE_THRESHOLD as h, T2_BASE_PART_I_RATE as ht, formsForProgram as i, AT1_SCHEDULE_5 as in, T2_SCHEDULE_2 as it, SCHEDULE_13_RESERVE_ROWS as j, AT1_SCHEDULE_21 as jt, SCHEDULE_21_NON_BUSINESS_CREDIT_LINE as k, AT1_IEG_PRIOR_YEARS as kt, T2_SCHEDULE_141 as l, AT1_BALANCE_CREDIT_LINES as ln, T2_SCHEDULE_1 as lt, T2_SCHEDULE_53 as m, AT4970_JURISDICTIONS as mn, validateFormDefinition as mt, describeLine as n, AT1_SCHEDULE_7 as nn, SCHEDULE_2_CARRYFORWARD_YEARS as nt, getForm as o, AT1_SCHEDULE_3 as on, SCHEDULE_1_LINE_BY_NUMBER as ot, SCHEDULE_53_GENERAL_RATE_FACTOR as p, AT4970 as pn, isEnterableLine as pt, SCHEDULE_4_CARRYBACK_YEARS as q, AT1_SCHEDULE_16_CARRYFORWARD_LINE as qt, findBrokenLinks as r, AT1_SCHEDULE_6 as rn, SCHEDULE_2_CHARITABLE_CURRENT_LINE as rt, SCHEDULE_141_PREPARER_IDENTIFIED_LINE as s, AT1_SCHEDULE_2 as sn, SCHEDULE_1_TOTAL_ADDITIONS_LINE as st, FORMS as t, AT1_SCHEDULE_8 as tn, T2_SCHEDULE_3 as tt, T2_SCHEDULE_130 as u, AT1_BALANCE_LINE as un, fieldsInSection as ut, T2_SCHEDULE_43 as v, T2_SMALL_BUSINESS_DEDUCTION_RATE as vt, SCHEDULE_24_OPERATION_TYPE_LINE as w, CO17_TAX_PAYABLE_BOX as wt, SCHEDULE_31_ENHANCED_SRED_RATE as x, CO17_QUEBEC_PROPORTION_BOX as xt, SCHEDULE_33_TAXABLE_CAPITAL_IN_CANADA_LINE as y, T2_TAXABLE_INCOME_LINE as yt, SCHEDULE_7_PASSIVE_INCOME_THRESHOLD as z, COMPUTED_CONTINUITY_ROWS as zt };