@classytic/ca-tax 0.0.12 → 0.0.14

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
@@ -1,6 +1,6 @@
1
1
  //#region src/t2/at1/forms/at4970.ts
2
2
  /** `SSSFFFOOO` — placeholder schedule code; see the module note above. */
3
- const id$11 = (field, occurrence = 1) => `497${field}${String(occurrence).padStart(3, "0")}`;
3
+ const id$21 = (field, occurrence = 1) => `497${field}${String(occurrence).padStart(3, "0")}`;
4
4
  const AT4970 = {
5
5
  id: "AT4970",
6
6
  program: "AT1",
@@ -83,7 +83,7 @@ const AT4970 = {
83
83
  }
84
84
  ].map(({ field, ...rest }) => ({
85
85
  ...rest,
86
- line: id$11(field)
86
+ line: id$21(field)
87
87
  })).sort((a, b) => a.line.localeCompare(b.line)),
88
88
  provenance: {
89
89
  document: "research/sources/tra-guides/tra-guide-claiming-the-innovation-employment-grant.pdf",
@@ -565,8 +565,8 @@ const AT1_JACKET_CAPTIONS = [
565
565
  //#endregion
566
566
  //#region src/t2/at1/forms/jacket.ts
567
567
  /** `SSSFFFOOO` — schedule, field, occurrence. The jacket is schedule 000. */
568
- const id$10 = (field, occurrence = 1) => `000${field}${String(occurrence).padStart(3, "0")}`;
569
- const SECTIONS$31 = [
568
+ const id$20 = (field, occurrence = 1) => `000${field}${String(occurrence).padStart(3, "0")}`;
569
+ const SECTIONS$41 = [
570
570
  {
571
571
  id: "identification",
572
572
  title: "Identification",
@@ -693,12 +693,12 @@ const AT1_JACKET = {
693
693
  title: "Alberta Corporate Income Tax Return — AT1",
694
694
  scheme: "tra-line-item-id",
695
695
  taxYears: { from: 2025 },
696
- sections: SECTIONS$31,
696
+ sections: SECTIONS$41,
697
697
  fields: AT1_JACKET_CAPTIONS.map((c) => {
698
698
  const carried = CARRIED_IN$1[c.line];
699
699
  const note = NOTES$2[c.line];
700
700
  return {
701
- line: id$10(c.line),
701
+ line: id$20(c.line),
702
702
  caption: c.caption,
703
703
  kind: kindOf(c),
704
704
  role: COMPUTED.has(c.line) ? "computed" : carried ? "carried-in" : "input",
@@ -716,28 +716,494 @@ const AT1_JACKET = {
716
716
  document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
717
717
  retrieved: "2026-08-14",
718
718
  revision: "AT1 Net File specification 2025.2, Chapter 3 cross-reference tables"
719
- }
719
+ },
720
+ footnotes: [
721
+ "The AT1 and applicable schedules must be received by Tax and Revenue Administration (TRA) within 6 months of the corporation's taxation year end. If the corporation is not exempt from filing, it must file electronically using Net File unless it is an insurance corporation, a non-resident corporation, or reports in functional currency.",
722
+ "Taxable income: the calculation for federal purposes can differ from the calculation for Alberta purposes if the corporation chooses different discretionary deduction amounts (e.g. different application of losses, CCA, charitable donations).",
723
+ "If line 060 and/or 061 is \"Yes\", Schedule 12 and supporting schedules must be completed to reconcile federal and Alberta taxable income. If both are \"No\", line 062 must equal federal T2 lines 360-370 (or federal Schedule 4 lines 110+310 for a loss)."
724
+ ]
720
725
  };
721
726
  /** 000080001 — Alberta tax payable, before credits. */
722
- const AT1_TAX_PAYABLE_LINE = id$10("080");
727
+ const AT1_TAX_PAYABLE_LINE = id$20("080");
723
728
  /** 000090001 — the balance, signed. Negative is an overpayment. */
724
- const AT1_BALANCE_LINE = id$10("090");
729
+ const AT1_BALANCE_LINE = id$20("090");
725
730
  /**
726
731
  * The five credits the specification nets against 080 to reach 090. The
727
732
  * Innovation Employment Grant (129) is NOT among them.
728
733
  */
729
734
  const AT1_BALANCE_CREDIT_LINES = Object.freeze([
730
- id$10("081"),
731
- id$10("082"),
732
- id$10("085"),
733
- id$10("086"),
734
- id$10("087")
735
+ id$20("081"),
736
+ id$20("082"),
737
+ id$20("085"),
738
+ id$20("086"),
739
+ id$20("087")
735
740
  ]);
736
741
  //#endregion
742
+ //#region src/t2/at1/forms/schedule1.ts
743
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
744
+ const id$19 = (field, occurrence = 1) => `001${field}${String(occurrence).padStart(3, "0")}`;
745
+ const AT1_SCHEDULE_1 = {
746
+ id: "AT1SCH1",
747
+ program: "AT1",
748
+ schedule: "001",
749
+ title: "Alberta Small Business Deduction",
750
+ scheme: "tra-line-item-id",
751
+ taxYears: { from: 2023 },
752
+ sections: [
753
+ {
754
+ id: "association",
755
+ title: "Association for purposes of the Alberta Small Business Deduction"
756
+ },
757
+ {
758
+ id: "deduction",
759
+ title: "Alberta Small Business Deduction",
760
+ description: "Two income bases (active business income and taxable income, each less the royalty tax deduction) floored at nil. Line 015 (the base amount and the calculation table that arrives at the deduction itself) is not modelled; see this module's own doc comment."
761
+ },
762
+ {
763
+ id: "agreement",
764
+ title: "Area A — Agreement Among Associated Corporations",
765
+ description: "Filed only when line 001 is Yes. One occurrence per associated corporation, the corporation filing this return first. The allocation at 045 must use the SAME percentage split as federal Schedule 23 (fed 023350), applied against Alberta's own base amount — see this module's doc comment on the $200,000 vs $500,000 discrepancy this engine has not resolved."
766
+ }
767
+ ],
768
+ fields: [
769
+ {
770
+ field: "001",
771
+ caption: "Is the corporation associated with one or more Canadian-controlled private corporations?",
772
+ kind: "flag",
773
+ role: "carried-in",
774
+ section: "association",
775
+ requirement: "mandatory",
776
+ from: {
777
+ form: "T2SCH23",
778
+ line: "",
779
+ note: "The federal associated-group list — the same corporations, the same ITA test."
780
+ }
781
+ },
782
+ {
783
+ field: "003",
784
+ caption: "Income from active businesses carried on in Canada, as reported on the T2 line 400 or Schedule 12, line 106",
785
+ kind: "money",
786
+ role: "carried-in",
787
+ section: "deduction",
788
+ requirement: "mandatory",
789
+ from: {
790
+ form: "T2",
791
+ line: "400"
792
+ }
793
+ },
794
+ {
795
+ field: "005",
796
+ caption: "Deduct: Royalty Tax Deduction for the year (Schedule 5, line 021)",
797
+ kind: "money",
798
+ role: "input",
799
+ section: "deduction",
800
+ requirement: "optional",
801
+ note: "Oil and gas only. The same figure filed again at 011, against the second income base."
802
+ },
803
+ {
804
+ field: "007",
805
+ caption: "Balance — line 003 minus line 005 (if negative, enter \"0\")",
806
+ kind: "money",
807
+ role: "computed",
808
+ section: "deduction",
809
+ requirement: "mandatory"
810
+ },
811
+ {
812
+ field: "009",
813
+ caption: "Taxable Income (less adjustments for foreign tax credits and amounts included in Amount Taxable in Alberta not subject to Alberta corporate income tax)",
814
+ kind: "money",
815
+ role: "carried-in",
816
+ section: "deduction",
817
+ requirement: "mandatory",
818
+ from: {
819
+ form: "AT1",
820
+ line: "000062001",
821
+ note: "Alberta taxable income, adjusted per the Guide."
822
+ }
823
+ },
824
+ {
825
+ field: "011",
826
+ caption: "Deduct: Royalty Tax Deduction for the year (Schedule 5, line 021)",
827
+ kind: "money",
828
+ role: "input",
829
+ section: "deduction",
830
+ requirement: "optional",
831
+ note: "The same figure as line 005, filed against this second income base."
832
+ },
833
+ {
834
+ field: "013",
835
+ caption: "Balance — line 009 minus line 011 (if negative, enter \"0\")",
836
+ kind: "money",
837
+ role: "computed",
838
+ section: "deduction",
839
+ requirement: "mandatory"
840
+ },
841
+ {
842
+ field: "041",
843
+ caption: "Name of the Associated Canadian-controlled Private Corporation",
844
+ kind: "text",
845
+ role: "input",
846
+ section: "agreement",
847
+ requirement: "mandatory",
848
+ note: "One occurrence per associated corp, this corporation first. Required whenever line 001 is Yes."
849
+ },
850
+ {
851
+ field: "043",
852
+ caption: "Corporate Account Number",
853
+ kind: "code",
854
+ role: "input",
855
+ section: "agreement",
856
+ requirement: "optional",
857
+ note: "Alberta CAN. Must equal the same corporation's fed 023100 (federal Schedule 23) — not enforced here."
858
+ },
859
+ {
860
+ field: "045",
861
+ caption: "Allocation of the Base Amount",
862
+ kind: "money",
863
+ role: "input",
864
+ section: "agreement",
865
+ requirement: "mandatory",
866
+ note: "Required whenever 041 has a value. Total across all occurrences is capped by the group's base amount."
867
+ }
868
+ ].map(({ field, ...rest }) => ({
869
+ ...rest,
870
+ line: id$19(field)
871
+ })),
872
+ provenance: {
873
+ document: "research/sources/tra-forms/pdf/AT1SCH01-small-business-deduction-TRA11723.pdf",
874
+ retrieved: "2026-08-30",
875
+ revision: "TRA11723 (AT2) Rev. 2023-04 — lines 001-013 and 041/043/045 only, see this module's doc comment"
876
+ },
877
+ footnotes: [
878
+ "For corporations which were Canadian-controlled private corporations throughout the taxation year and which had income from active businesses carried on in Canada.",
879
+ "If the corporation has income (loss) from a partnership with a fiscal period ending after March 31, 2001, the income from active businesses must be recalculated for Alberta purposes by increasing the partnership's business limit for the period straddling that date — see the Guide for the full calculation.",
880
+ "Area A: the percentage allocated in column 044 must be the same percentage used to determine the business limit on federal Schedule 23 for all taxation years ending after December 4, 2002. The total of all percentages cannot exceed 100%.",
881
+ "Area A: the amount in column 045 must be rounded to the nearest dollar, rounding up at $.50 and over."
882
+ ]
883
+ };
884
+ //#endregion
885
+ //#region src/t2/at1/forms/schedule2.ts
886
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
887
+ const id$18 = (field, occurrence = 1) => `002${field}${String(occurrence).padStart(3, "0")}`;
888
+ const AT1_SCHEDULE_2 = {
889
+ id: "AT1SCH2",
890
+ program: "AT1",
891
+ schedule: "002",
892
+ title: "Alberta Income Allocation Factor",
893
+ scheme: "tra-line-item-id",
894
+ taxYears: { from: 2023 },
895
+ sections: [{
896
+ id: "general",
897
+ title: "Area A — General Allocation Formula (ITA Reg 402)",
898
+ description: "The common case: taken straight from the federal Schedule 5. Area B's seven industry-specific formulas (insurance, banking, airlines, railways, ship operators, trust & loan, divided businesses) are not modelled — see this module's doc comment."
899
+ }],
900
+ fields: [
901
+ {
902
+ field: "002",
903
+ caption: "Salaries and wages paid in Alberta",
904
+ kind: "money",
905
+ role: "carried-in",
906
+ section: "general",
907
+ requirement: "mandatory",
908
+ from: {
909
+ form: "T2SCH5",
910
+ line: "",
911
+ note: "The Alberta row of the federal establishments allocation."
912
+ }
913
+ },
914
+ {
915
+ field: "004",
916
+ caption: "Total salaries and wages paid in all jurisdictions",
917
+ kind: "money",
918
+ role: "carried-in",
919
+ section: "general",
920
+ requirement: "mandatory",
921
+ from: {
922
+ form: "T2SCH5",
923
+ line: "",
924
+ note: "Every jurisdiction's row, summed."
925
+ }
926
+ },
927
+ {
928
+ field: "006",
929
+ caption: "Gross revenue in Alberta",
930
+ kind: "money",
931
+ role: "carried-in",
932
+ section: "general",
933
+ requirement: "mandatory",
934
+ from: {
935
+ form: "T2SCH5",
936
+ line: "",
937
+ note: "The Alberta row of the federal establishments allocation."
938
+ }
939
+ },
940
+ {
941
+ field: "008",
942
+ caption: "Gross revenue in all jurisdictions",
943
+ kind: "money",
944
+ role: "carried-in",
945
+ section: "general",
946
+ requirement: "mandatory",
947
+ from: {
948
+ form: "T2SCH5",
949
+ line: "",
950
+ note: "Every jurisdiction's row, summed."
951
+ }
952
+ }
953
+ ].map(({ field, ...rest }) => ({
954
+ ...rest,
955
+ line: id$18(field)
956
+ })),
957
+ provenance: {
958
+ document: "research/sources/tra-forms/pdf/AT1SCH02-income-allocation-factor-TRA11724.pdf",
959
+ retrieved: "2026-08-30",
960
+ revision: "TRA11724 (AT271) Rev. 2023-10 — Area A only, see this module's doc comment"
961
+ },
962
+ footnotes: [
963
+ "For corporations with taxable income that is in part allocable to permanent establishments outside Alberta.",
964
+ "Non-resident corporations (ITA Regulation 413): salaries and wages paid in all jurisdictions does not include amounts paid to employees of a permanent establishment outside Canada; gross revenue in all jurisdictions does not include revenue reasonably attributable to a permanent establishment outside Canada.",
965
+ "If either amount B or D is nil, do not multiply by 1/2."
966
+ ]
967
+ };
968
+ //#endregion
969
+ //#region src/t2/at1/forms/schedule10.ts
970
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
971
+ const id$17 = (field, occurrence = 1) => `010${field}${String(occurrence).padStart(3, "0")}`;
972
+ const AT1_SCHEDULE_10 = {
973
+ id: "AT1SCH10",
974
+ program: "AT1",
975
+ schedule: "010",
976
+ title: "Alberta Loss Carry-Back Application",
977
+ scheme: "tra-line-item-id",
978
+ taxYears: { from: 2024 },
979
+ sections: [{
980
+ id: "carryback",
981
+ title: "Application of current year losses",
982
+ description: "Non-capital, farm, one checkbox-selected \"other loss\" column (restricted farm or listed personal property), and capital."
983
+ }],
984
+ fields: [
985
+ {
986
+ field: "002",
987
+ caption: "Amount of current year non-capital loss available for carry-back",
988
+ kind: "money",
989
+ role: "computed",
990
+ section: "carryback",
991
+ requirement: "mandatory"
992
+ },
993
+ {
994
+ field: "003",
995
+ caption: "1st preceding taxation year ending",
996
+ kind: "date",
997
+ role: "input",
998
+ section: "carryback",
999
+ requirement: "conditional"
1000
+ },
1001
+ {
1002
+ field: "004",
1003
+ caption: "Non-capital loss carried back — 1st preceding taxation year",
1004
+ kind: "money",
1005
+ role: "input",
1006
+ section: "carryback",
1007
+ requirement: "conditional"
1008
+ },
1009
+ {
1010
+ field: "005",
1011
+ caption: "2nd preceding taxation year ending",
1012
+ kind: "date",
1013
+ role: "input",
1014
+ section: "carryback",
1015
+ requirement: "conditional"
1016
+ },
1017
+ {
1018
+ field: "006",
1019
+ caption: "Non-capital loss carried back — 2nd preceding taxation year",
1020
+ kind: "money",
1021
+ role: "input",
1022
+ section: "carryback",
1023
+ requirement: "conditional"
1024
+ },
1025
+ {
1026
+ field: "007",
1027
+ caption: "3rd preceding taxation year ending",
1028
+ kind: "date",
1029
+ role: "input",
1030
+ section: "carryback",
1031
+ requirement: "conditional"
1032
+ },
1033
+ {
1034
+ field: "008",
1035
+ caption: "Non-capital loss carried back — 3rd preceding taxation year",
1036
+ kind: "money",
1037
+ role: "input",
1038
+ section: "carryback",
1039
+ requirement: "conditional"
1040
+ },
1041
+ {
1042
+ field: "010",
1043
+ caption: "Balance of current year non-capital loss available for carry forward",
1044
+ kind: "money",
1045
+ role: "computed",
1046
+ section: "carryback",
1047
+ requirement: "mandatory",
1048
+ note: "Line 002 minus the total carried back."
1049
+ },
1050
+ {
1051
+ field: "012",
1052
+ caption: "Amount of current year farm loss available for carry-back",
1053
+ kind: "money",
1054
+ role: "computed",
1055
+ section: "carryback",
1056
+ requirement: "mandatory"
1057
+ },
1058
+ {
1059
+ field: "014",
1060
+ caption: "Farm loss carried back — 1st preceding taxation year",
1061
+ kind: "money",
1062
+ role: "input",
1063
+ section: "carryback",
1064
+ requirement: "conditional"
1065
+ },
1066
+ {
1067
+ field: "016",
1068
+ caption: "Farm loss carried back — 2nd preceding taxation year",
1069
+ kind: "money",
1070
+ role: "input",
1071
+ section: "carryback",
1072
+ requirement: "conditional"
1073
+ },
1074
+ {
1075
+ field: "018",
1076
+ caption: "Farm loss carried back — 3rd preceding taxation year",
1077
+ kind: "money",
1078
+ role: "input",
1079
+ section: "carryback",
1080
+ requirement: "conditional"
1081
+ },
1082
+ {
1083
+ field: "020",
1084
+ caption: "Balance of current year farm loss available for carry forward",
1085
+ kind: "money",
1086
+ role: "computed",
1087
+ section: "carryback",
1088
+ requirement: "mandatory",
1089
+ note: "Line 012 minus the total carried back."
1090
+ },
1091
+ {
1092
+ field: "023",
1093
+ caption: "Other Losses: Restricted Farm (check box)",
1094
+ kind: "flag",
1095
+ role: "computed",
1096
+ section: "carryback",
1097
+ requirement: "mandatory",
1098
+ note: "Always filed once Schedule 10 is filed at all — 1 (Yes) or 2 (No). NOT mutually exclusive with line 025; both may be checked."
1099
+ },
1100
+ {
1101
+ field: "025",
1102
+ caption: "Other Losses: Listed Personal Property (check box)",
1103
+ kind: "flag",
1104
+ role: "computed",
1105
+ section: "carryback",
1106
+ requirement: "mandatory",
1107
+ note: "Always filed once Schedule 10 is filed at all — 1 (Yes) or 2 (No). NOT mutually exclusive with line 023; both may be checked."
1108
+ },
1109
+ {
1110
+ field: "032",
1111
+ caption: "Amount of current year \"other\" loss available for carry-back",
1112
+ kind: "money",
1113
+ role: "computed",
1114
+ section: "carryback",
1115
+ requirement: "conditional",
1116
+ note: "Restricted farm and/or listed personal property, per 023/025 — the SUM of both when both are checked, not one or the other."
1117
+ },
1118
+ {
1119
+ field: "034",
1120
+ caption: "\"Other\" loss carried back — 1st preceding taxation year",
1121
+ kind: "money",
1122
+ role: "input",
1123
+ section: "carryback",
1124
+ requirement: "conditional"
1125
+ },
1126
+ {
1127
+ field: "036",
1128
+ caption: "\"Other\" loss carried back — 2nd preceding taxation year",
1129
+ kind: "money",
1130
+ role: "input",
1131
+ section: "carryback",
1132
+ requirement: "conditional"
1133
+ },
1134
+ {
1135
+ field: "038",
1136
+ caption: "\"Other\" loss carried back — 3rd preceding taxation year",
1137
+ kind: "money",
1138
+ role: "input",
1139
+ section: "carryback",
1140
+ requirement: "conditional"
1141
+ },
1142
+ {
1143
+ field: "040",
1144
+ caption: "Balance of current year \"other\" loss available for carry forward",
1145
+ kind: "money",
1146
+ role: "computed",
1147
+ section: "carryback",
1148
+ requirement: "mandatory",
1149
+ note: "Line 032 minus the total carried back."
1150
+ },
1151
+ {
1152
+ field: "042",
1153
+ caption: "Gross amount of current year capital loss available for carry-back",
1154
+ kind: "money",
1155
+ role: "computed",
1156
+ section: "carryback",
1157
+ requirement: "mandatory"
1158
+ },
1159
+ {
1160
+ field: "044",
1161
+ caption: "Capital loss applied — 1st preceding taxation year (at the inclusion rate)",
1162
+ kind: "money",
1163
+ role: "computed",
1164
+ section: "carryback",
1165
+ requirement: "conditional",
1166
+ note: "The gross carry-back request × the inclusion rate — not the raw entered amount."
1167
+ },
1168
+ {
1169
+ field: "046",
1170
+ caption: "Capital loss applied — 2nd preceding taxation year (at the inclusion rate)",
1171
+ kind: "money",
1172
+ role: "computed",
1173
+ section: "carryback",
1174
+ requirement: "conditional",
1175
+ note: "The gross carry-back request × the inclusion rate — not the raw entered amount."
1176
+ },
1177
+ {
1178
+ field: "048",
1179
+ caption: "Capital loss applied — 3rd preceding taxation year (at the inclusion rate)",
1180
+ kind: "money",
1181
+ role: "computed",
1182
+ section: "carryback",
1183
+ requirement: "conditional",
1184
+ note: "The gross carry-back request × the inclusion rate — not the raw entered amount."
1185
+ }
1186
+ ].map(({ field, ...rest }) => ({
1187
+ ...rest,
1188
+ line: id$17(field)
1189
+ })),
1190
+ provenance: {
1191
+ document: "research/sources/tra-forms/pdf/AT1SCH10-loss-carryback-TRA11731.pdf",
1192
+ retrieved: "2026-08-30",
1193
+ revision: "TRA11731 (AT293) Rev. 2025-12 — non-capital, farm, other-loss and capital; see this module's doc comment"
1194
+ },
1195
+ footnotes: [
1196
+ "The application of losses is at the corporation's discretion — the application of losses for federal purposes does not apply for Alberta purposes.",
1197
+ "A Loss Carry-Back Application must be filed even if the corporation is exempt from filing its AT1.",
1198
+ "Inclusion rate for the capital loss column: 3/4 for dispositions before February 28, 2000; 2/3 for dispositions after February 27, 2000 and before October 18, 2000; 1/2 for dispositions after October 17, 2000. Where a taxation year straddles more than one period, use the effective rate computed on federal Schedule 6 or the Schedule 18 supporting documentation.",
1199
+ "The amount of loss claimed for Alberta purposes may differ from the amount claimed for federal purposes. Limitations on deductibility under the federal Act apply for Alberta purposes, except that an amount of non-capital or farm loss used to reduce the federal Part IV tax base does not reduce the loss balance available for Alberta purposes."
1200
+ ]
1201
+ };
1202
+ //#endregion
737
1203
  //#region src/t2/at1/forms/schedule12.ts
738
1204
  /** `SSSFFFOOO` — schedule, field, occurrence. */
739
- const id$9 = (field, occurrence = 1) => `012${field}${String(occurrence).padStart(3, "0")}`;
740
- const SECTIONS$30 = [{
1205
+ const id$16 = (field, occurrence = 1) => `012${field}${String(occurrence).padStart(3, "0")}`;
1206
+ const SECTIONS$37 = [{
741
1207
  id: "area-a",
742
1208
  title: "Area A — net income for Alberta corporate income tax purposes",
743
1209
  description: "Reconciling items between federal and Alberta net income. Report a pair only where the two figures differ."
@@ -999,21 +1465,21 @@ const SINGLES = [
999
1465
  }
1000
1466
  ];
1001
1467
  const pairFields = AT1_SCHEDULE_12_PAIRS.flatMap((p) => [{
1002
- line: id$9(p.federal),
1468
+ line: id$16(p.federal),
1003
1469
  caption: `${p.label} — federal`,
1004
1470
  kind: "money",
1005
1471
  role: "input",
1006
1472
  section: p.section,
1007
1473
  requirement: "conditional",
1008
- note: `Report only if it differs from the Alberta figure at ${id$9(p.alberta)}.${p.note ? ` ${p.note}` : ""}`
1474
+ note: `Report only if it differs from the Alberta figure at ${id$16(p.alberta)}.${p.note ? ` ${p.note}` : ""}`
1009
1475
  }, {
1010
- line: id$9(p.alberta),
1476
+ line: id$16(p.alberta),
1011
1477
  caption: `${p.label} — Alberta`,
1012
1478
  kind: "money",
1013
1479
  role: "input",
1014
1480
  section: p.section,
1015
1481
  requirement: "conditional",
1016
- note: `Report only if it differs from the federal figure at ${id$9(p.federal)}.${p.note ? ` ${p.note}` : ""}`
1482
+ note: `Report only if it differs from the federal figure at ${id$16(p.federal)}.${p.note ? ` ${p.note}` : ""}`
1017
1483
  }]);
1018
1484
  const AT1_SCHEDULE_12 = {
1019
1485
  id: "AT1SCH12",
@@ -1022,10 +1488,10 @@ const AT1_SCHEDULE_12 = {
1022
1488
  title: "Alberta income/loss reconciliation",
1023
1489
  scheme: "tra-line-item-id",
1024
1490
  taxYears: { from: 2024 },
1025
- sections: SECTIONS$30,
1491
+ sections: SECTIONS$37,
1026
1492
  fields: [...SINGLES.map(({ field, ...rest }) => ({
1027
1493
  ...rest,
1028
- line: id$9(field)
1494
+ line: id$16(field)
1029
1495
  })), ...pairFields].sort((a, b) => a.line.localeCompare(b.line)),
1030
1496
  provenance: {
1031
1497
  document: "research/field-maps/at1-schedules-12-21.md",
@@ -1036,7 +1502,7 @@ const AT1_SCHEDULE_12 = {
1036
1502
  //#endregion
1037
1503
  //#region src/t2/at1/forms/schedule13.ts
1038
1504
  /** `SSSFFFOOO` — schedule, field, occurrence. */
1039
- const id$8 = (field, occurrence = 1) => `013${field}${String(occurrence).padStart(3, "0")}`;
1505
+ const id$15 = (field, occurrence = 1) => `013${field}${String(occurrence).padStart(3, "0")}`;
1040
1506
  const AT1_SCHEDULE_13_COLUMNS = [
1041
1507
  {
1042
1508
  column: 1,
@@ -1193,10 +1659,10 @@ const AT1_SCHEDULE_13 = {
1193
1659
  fields: [
1194
1660
  ...RETURN_LEVEL.map(({ field, ...rest }) => ({
1195
1661
  ...rest,
1196
- line: id$8(field)
1662
+ line: id$15(field)
1197
1663
  })),
1198
1664
  ...AT1_SCHEDULE_13_COLUMNS.filter((c) => c.line).map((c) => ({
1199
- line: id$8(c.line),
1665
+ line: id$15(c.line),
1200
1666
  caption: c.caption,
1201
1667
  kind: c.column === 1 ? "code" : c.column === 20 ? "rate" : "money",
1202
1668
  role: "input",
@@ -1204,7 +1670,7 @@ const AT1_SCHEDULE_13 = {
1204
1670
  ...c.note ? { note: c.note } : {}
1205
1671
  })),
1206
1672
  ...TOTALS$3.map((t) => ({
1207
- line: id$8(t.field),
1673
+ line: id$15(t.field),
1208
1674
  caption: t.caption,
1209
1675
  kind: "money",
1210
1676
  role: "total",
@@ -1220,12 +1686,13 @@ const AT1_SCHEDULE_13 = {
1220
1686
  document: "research/field-maps/at1-schedule-13-cca.md",
1221
1687
  retrieved: "2026-08-07",
1222
1688
  revision: "captured from the live TRA-certified form"
1223
- }
1689
+ },
1690
+ footnotes: ["This schedule is required if the opening UCC or the CCA claimed for Alberta purposes for any class of assets differs from that for federal purposes.", "All federal notes listed on the T2 Schedule 8 — Capital Cost Allowance — also apply for Alberta purposes."]
1224
1691
  };
1225
1692
  //#endregion
1226
1693
  //#region src/t2/at1/forms/schedule16.ts
1227
1694
  /** `SSSFFFOOO` — schedule, field, occurrence. */
1228
- const id$7 = (field, occurrence = 1) => `016${field}${String(occurrence).padStart(3, "0")}`;
1695
+ const id$14 = (field, occurrence = 1) => `016${field}${String(occurrence).padStart(3, "0")}`;
1229
1696
  const AT1_SCHEDULE_16 = {
1230
1697
  id: "AT1SCH16",
1231
1698
  program: "AT1",
@@ -1355,7 +1822,7 @@ const AT1_SCHEDULE_16 = {
1355
1822
  }
1356
1823
  ].map(({ field, ...rest }) => ({
1357
1824
  ...rest,
1358
- line: id$7(field)
1825
+ line: id$14(field)
1359
1826
  })),
1360
1827
  provenance: {
1361
1828
  document: "research/field-maps/at1-schedules-16-17.md",
@@ -1368,7 +1835,7 @@ const AT1_SCHEDULE_16_CARRYFORWARD_LINE = "016022001";
1368
1835
  //#endregion
1369
1836
  //#region src/t2/at1/forms/schedule17.ts
1370
1837
  /** `SSSFFFOOO` — schedule, field, occurrence. */
1371
- const id$6 = (field, occurrence = 1) => `017${field}${String(occurrence).padStart(3, "0")}`;
1838
+ const id$13 = (field, occurrence = 1) => `017${field}${String(occurrence).padStart(3, "0")}`;
1372
1839
  const AT1_SCHEDULE_17_RESERVES = [
1373
1840
  {
1374
1841
  label: "Doubtful debts",
@@ -1425,7 +1892,7 @@ const AT1_SCHEDULE_17_RESERVES = [
1425
1892
  federalOpening: "230"
1426
1893
  }
1427
1894
  ];
1428
- const SECTIONS$27 = [{
1895
+ const SECTIONS$34 = [{
1429
1896
  id: "reserves",
1430
1897
  title: "Continuity of reserves",
1431
1898
  description: "Eight reserve kinds. Six mirror federal Schedule 13; policy reserves and bank reserves exist only on the Alberta form."
@@ -1442,7 +1909,7 @@ const COLUMNS$1 = [
1442
1909
  const reserveFields$1 = AT1_SCHEDULE_17_RESERVES.flatMap((r) => COLUMNS$1.map(([key, columnCaption]) => {
1443
1910
  const isOpening = key === "opening";
1444
1911
  return {
1445
- line: id$6(r[key]),
1912
+ line: id$13(r[key]),
1446
1913
  caption: `${r.label} — ${columnCaption}`,
1447
1914
  kind: "money",
1448
1915
  role: "input",
@@ -1458,21 +1925,21 @@ const reserveFields$1 = AT1_SCHEDULE_17_RESERVES.flatMap((r) => COLUMNS$1.map(([
1458
1925
  }));
1459
1926
  const TOTALS$2 = [
1460
1927
  {
1461
- line: id$6("021"),
1928
+ line: id$13("021"),
1462
1929
  caption: "Total of the opening balances",
1463
1930
  kind: "money",
1464
1931
  role: "total",
1465
1932
  section: "totals"
1466
1933
  },
1467
1934
  {
1468
- line: id$6("051"),
1935
+ line: id$13("051"),
1469
1936
  caption: "Total of the transfers on wind-up or amalgamation",
1470
1937
  kind: "money",
1471
1938
  role: "total",
1472
1939
  section: "totals"
1473
1940
  },
1474
1941
  {
1475
- line: id$6("081"),
1942
+ line: id$13("081"),
1476
1943
  caption: "Total of the closing balances",
1477
1944
  kind: "money",
1478
1945
  role: "total",
@@ -1484,7 +1951,7 @@ const TOTALS$2 = [
1484
1951
  note: "This year’s reserves, deducted from Alberta income."
1485
1952
  },
1486
1953
  {
1487
- line: id$6("091"),
1954
+ line: id$13("091"),
1488
1955
  caption: "Total of line 021 plus line 051",
1489
1956
  kind: "money",
1490
1957
  role: "computed",
@@ -1503,18 +1970,19 @@ const AT1_SCHEDULE_17 = {
1503
1970
  title: "Alberta continuity of reserves",
1504
1971
  scheme: "tra-line-item-id",
1505
1972
  taxYears: { from: 2024 },
1506
- sections: SECTIONS$27,
1973
+ sections: SECTIONS$34,
1507
1974
  fields: [...reserveFields$1, ...TOTALS$2].sort((a, b) => a.line.localeCompare(b.line)),
1508
1975
  provenance: {
1509
1976
  document: "research/field-maps/at1-schedules-16-17.md",
1510
1977
  retrieved: "2026-08-08",
1511
1978
  revision: "verified line by line against the live TRA-certified form"
1512
- }
1979
+ },
1980
+ footnotes: ["This schedule is required if the opening balance or the claim for Alberta purposes differs from that for federal purposes."]
1513
1981
  };
1514
1982
  //#endregion
1515
1983
  //#region src/t2/at1/forms/schedule18.ts
1516
1984
  /** `SSSFFFOOO` — schedule, field, occurrence. */
1517
- const id$5 = (field, occurrence = 1) => `018${field}${String(occurrence).padStart(3, "0")}`;
1985
+ const id$12 = (field, occurrence = 1) => `018${field}${String(occurrence).padStart(3, "0")}`;
1518
1986
  const AT1_SCHEDULE_18_CATEGORIES = [
1519
1987
  {
1520
1988
  label: "Shares",
@@ -1561,7 +2029,7 @@ const AT1_SCHEDULE_18_CATEGORIES = [
1561
2029
  lossRestricted: true
1562
2030
  }
1563
2031
  ];
1564
- const SECTIONS$26 = [
2032
+ const SECTIONS$33 = [
1565
2033
  {
1566
2034
  id: "dispositions",
1567
2035
  title: "Dispositions by category",
@@ -1586,7 +2054,7 @@ const COLUMNS = [
1586
2054
  ["gainOrLoss", "D — gain or (loss)"]
1587
2055
  ];
1588
2056
  const categoryFields = AT1_SCHEDULE_18_CATEGORIES.flatMap((c) => COLUMNS.map(([key, columnCaption]) => ({
1589
- line: id$5(c[key]),
2057
+ line: id$12(c[key]),
1590
2058
  caption: `${c.label} — ${columnCaption}`,
1591
2059
  kind: "money",
1592
2060
  role: key === "gainOrLoss" ? "computed" : "input",
@@ -1809,10 +2277,10 @@ const AT1_SCHEDULE_18 = {
1809
2277
  title: "Alberta dispositions of capital property",
1810
2278
  scheme: "tra-line-item-id",
1811
2279
  taxYears: { from: 2024 },
1812
- sections: SECTIONS$26,
2280
+ sections: SECTIONS$33,
1813
2281
  fields: [...categoryFields, ...REST.map(({ field, ...rest }) => ({
1814
2282
  ...rest,
1815
- line: id$5(field)
2283
+ line: id$12(field)
1816
2284
  }))].sort((a, b) => a.line.localeCompare(b.line)),
1817
2285
  provenance: {
1818
2286
  document: "research/field-maps/at1-schedule-18-dispositions.md",
@@ -1825,8 +2293,13 @@ const AT1_SECTION_34_2_GROSS_UP = 2;
1825
2293
  //#endregion
1826
2294
  //#region src/t2/at1/forms/schedule20.ts
1827
2295
  /** `SSSFFFOOO` — schedule, field, occurrence. */
1828
- const id$4 = (field, occurrence = 1) => `020${field}${String(occurrence).padStart(3, "0")}`;
1829
- /** The ten rows every donation continuity runs through, in form order. */
2296
+ const id$11 = (field, occurrence = 1) => `020${field}${String(occurrence).padStart(3, "0")}`;
2297
+ /**
2298
+ * The ten rows every donation continuity runs through, in form order.
2299
+ * Exported so a UI-side paper Form View can build the same per-pool grid
2300
+ * without re-typing the captions — see `schedule21.ts`'s `CONTINUITY_ORDER`
2301
+ * for the identical pattern.
2302
+ */
1830
2303
  const CONTINUITY_ROWS = [
1831
2304
  ["opening", "Balance at the end of the previous year"],
1832
2305
  ["expired", "Deduct: expired"],
@@ -1853,7 +2326,8 @@ const AT1_SCHEDULE_20_POOLS = [{
1853
2326
  available: "014",
1854
2327
  applied: "016",
1855
2328
  closing: "018"
1856
- }
2329
+ },
2330
+ toSchedule12: "056"
1857
2331
  }, {
1858
2332
  key: "gifts",
1859
2333
  label: "Gifts to Canada or a province, cultural property and ecologically sensitive land",
@@ -1868,9 +2342,10 @@ const AT1_SCHEDULE_20_POOLS = [{
1868
2342
  available: "074",
1869
2343
  applied: "076",
1870
2344
  closing: "078"
1871
- }
2345
+ },
2346
+ toSchedule12: "058"
1872
2347
  }];
1873
- const SECTIONS$25 = [
2348
+ const SECTIONS$32 = [
1874
2349
  {
1875
2350
  id: "charitable",
1876
2351
  title: "Area A — Charitable donations",
@@ -1885,6 +2360,11 @@ const SECTIONS$25 = [
1885
2360
  id: "maximum",
1886
2361
  title: "Area B — Maximum deduction",
1887
2362
  description: "75% of income, plus 25% of the taxable capital gain and recapture on gifted capital property. Alberta does have this ceiling."
2363
+ },
2364
+ {
2365
+ id: "carryforward",
2366
+ title: "Carryforward available, by category",
2367
+ description: "Filed only when at least one category figure is entered. Charitable donations (002-018) and gifts (062-078) are each ONE combined continuity on this schedule; this block reports how much of the gifts pool's closing balance belongs to each of the three federal source categories, plus the medicine-gift deduction (ITA s.110.1(1)(a.1)), which nothing else on this schedule models at all."
1888
2368
  }
1889
2369
  ];
1890
2370
  const MAXIMUM = [
@@ -1896,6 +2376,41 @@ const MAXIMUM = [
1896
2376
  section: "maximum",
1897
2377
  note: "75% of Alberta net income for the year."
1898
2378
  },
2379
+ {
2380
+ field: "032",
2381
+ caption: "Taxable capital gains arising on gifts of capital property",
2382
+ kind: "money",
2383
+ role: "input",
2384
+ section: "maximum"
2385
+ },
2386
+ {
2387
+ field: "034",
2388
+ caption: "Taxable capital gain on deemed gifts of non-qualifying securities (ITA subsection 40(1.01))",
2389
+ kind: "money",
2390
+ role: "input",
2391
+ section: "maximum"
2392
+ },
2393
+ {
2394
+ field: "036",
2395
+ caption: "Recapture of capital cost allowance on charitable gifts",
2396
+ kind: "money",
2397
+ role: "input",
2398
+ section: "maximum"
2399
+ },
2400
+ {
2401
+ field: "038",
2402
+ caption: "Proceeds of disposition, less outlays and expenses",
2403
+ kind: "money",
2404
+ role: "input",
2405
+ section: "maximum"
2406
+ },
2407
+ {
2408
+ field: "040",
2409
+ caption: "Capital cost of the gifted property",
2410
+ kind: "money",
2411
+ role: "input",
2412
+ section: "maximum"
2413
+ },
1899
2414
  {
1900
2415
  field: "042",
1901
2416
  caption: "Lesser of proceeds of disposition and capital cost of gifted capital property",
@@ -1926,6 +2441,56 @@ const MAXIMUM = [
1926
2441
  role: "computed",
1927
2442
  section: "maximum",
1928
2443
  note: "Caps the amounts applied at lines 016 and 076."
2444
+ },
2445
+ {
2446
+ field: "090",
2447
+ caption: "Year of origin",
2448
+ kind: "date",
2449
+ role: "input",
2450
+ section: "carryforward",
2451
+ requirement: "conditional",
2452
+ note: "Mandatory whenever 092, 094, 096, 098 or 100 has a value."
2453
+ },
2454
+ {
2455
+ field: "092",
2456
+ caption: "Charitable donations available for carryforward",
2457
+ kind: "money",
2458
+ role: "input",
2459
+ section: "carryforward",
2460
+ requirement: "optional"
2461
+ },
2462
+ {
2463
+ field: "094",
2464
+ caption: "Gifts to Canada, a province or territory available for carryforward",
2465
+ kind: "money",
2466
+ role: "input",
2467
+ section: "carryforward",
2468
+ requirement: "optional"
2469
+ },
2470
+ {
2471
+ field: "096",
2472
+ caption: "Gifts of certified cultural property available for carryforward",
2473
+ kind: "money",
2474
+ role: "input",
2475
+ section: "carryforward",
2476
+ requirement: "optional"
2477
+ },
2478
+ {
2479
+ field: "098",
2480
+ caption: "Gifts of certified ecologically sensitive land available for carryforward",
2481
+ kind: "money",
2482
+ role: "input",
2483
+ section: "carryforward",
2484
+ requirement: "optional"
2485
+ },
2486
+ {
2487
+ field: "100",
2488
+ caption: "Additional deduction for gifts of medicine available for carryforward",
2489
+ kind: "money",
2490
+ role: "input",
2491
+ section: "carryforward",
2492
+ requirement: "optional",
2493
+ note: "ITA s.110.1(1)(a.1). Not modelled anywhere else in this engine — accepted here as a direct entry."
1929
2494
  }
1930
2495
  ];
1931
2496
  const NOTES$1 = {
@@ -1941,26 +2506,35 @@ const AT1_SCHEDULE_20 = {
1941
2506
  title: "Alberta charitable donations and gifts",
1942
2507
  scheme: "tra-line-item-id",
1943
2508
  taxYears: { from: 2024 },
1944
- sections: SECTIONS$25,
2509
+ sections: SECTIONS$32,
1945
2510
  fields: [...AT1_SCHEDULE_20_POOLS.flatMap((pool) => CONTINUITY_ROWS.map(([key, caption]) => {
1946
2511
  const computed = key === "beginning" || key === "subtotal" || key === "available" || key === "closing";
1947
2512
  return {
1948
- line: id$4(pool.lines[key]),
2513
+ line: id$11(pool.lines[key]),
1949
2514
  caption: `${pool.label} — ${caption}`,
1950
2515
  kind: "money",
1951
2516
  role: computed ? "computed" : "input",
1952
2517
  section: pool.key,
1953
- ...NOTES$1[key] ? { note: NOTES$1[key] } : {}
2518
+ ...NOTES$1[key] ? { note: NOTES$1[key] } : {},
2519
+ ...key === "applied" ? { to: {
2520
+ form: "AT1SCH12",
2521
+ line: `012${pool.toSchedule12}001`
2522
+ } } : {}
1954
2523
  };
1955
2524
  })), ...MAXIMUM.map(({ field, ...rest }) => ({
1956
2525
  ...rest,
1957
- line: id$4(field)
2526
+ line: id$11(field)
1958
2527
  }))].sort((a, b) => a.line.localeCompare(b.line)),
1959
2528
  provenance: {
1960
2529
  document: "research/validation/auratax/2026-08-07-cca-classes/README.md",
1961
2530
  retrieved: "2026-08-08",
1962
2531
  revision: "line numbers verified against the live TRA-certified form"
1963
- }
2532
+ },
2533
+ footnotes: [
2534
+ "This schedule is required if the opening balance or the claim for Alberta purposes differs from that for federal purposes.",
2535
+ "If the corporation is reporting nil net income or a loss for the year, donations cannot be claimed.",
2536
+ "If the corporation elects to differ its Alberta claim for the additional deduction for gifts of medicine (federal T2 Schedule 2, line 660), enter the Alberta amount on Schedule 12, line 40, the federal amount on Schedule 12, line 41, and provide the explanation of the difference on Schedule 12, line 48."
2537
+ ]
1964
2538
  };
1965
2539
  /**
1966
2540
  * Donations carry forward five years.
@@ -1974,7 +2548,9 @@ const AT1_DONATION_CARRYFORWARD_YEARS = 5;
1974
2548
  //#endregion
1975
2549
  //#region src/t2/at1/forms/schedule21.ts
1976
2550
  /** `SSSFFFOOO` — schedule, field, occurrence. */
1977
- const id$3 = (field, occurrence = 1) => `021${field}${String(occurrence).padStart(3, "0")}`;
2551
+ const id$10 = (field, occurrence = 1) => `021${field}${String(occurrence).padStart(3, "0")}`;
2552
+ /** {@link id}, exported for consumers building their own Schedule 21 layouts (e.g. the UI's paper Form View generator) from {@link AT1_SCHEDULE_21_POOLS} directly. */
2553
+ const scheduleTwentyOneLineId = id$10;
1978
2554
  const AT1_SCHEDULE_21_POOLS = [
1979
2555
  {
1980
2556
  key: "non-capital",
@@ -2002,7 +2578,8 @@ const AT1_SCHEDULE_21_POOLS = [
2002
2578
  otherAdjustments: "065",
2003
2579
  carryBack: "067",
2004
2580
  closing: "069",
2005
- toSchedule12: "066"
2581
+ toSchedule12: "066",
2582
+ toSchedule12Note: "Carry forward this amount × the inclusion rate. Schedule 21 tracks capital losses at their full amount; Schedule 12 wants the allowable portion — carrying the raw figure over-deducts by roughly two."
2006
2583
  },
2007
2584
  {
2008
2585
  key: "farm",
@@ -2027,6 +2604,7 @@ const AT1_SCHEDULE_21_POOLS = [
2027
2604
  opening: "093",
2028
2605
  windUpTransfer: "095",
2029
2606
  currentYearLoss: "097",
2607
+ appliedAgainstIncome: "099",
2030
2608
  section80Adjustment: "101",
2031
2609
  otherAdjustments: "103",
2032
2610
  carryBack: "105",
@@ -2043,10 +2621,11 @@ const AT1_SCHEDULE_21_POOLS = [
2043
2621
  appliedAgainstIncome: "119",
2044
2622
  otherAdjustments: "121",
2045
2623
  carryBack: "123",
2046
- closing: "125"
2624
+ closing: "125",
2625
+ 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."
2047
2626
  }
2048
2627
  ];
2049
- const SECTIONS$24 = [{
2628
+ const SECTIONS$31 = [{
2050
2629
  id: "current-year",
2051
2630
  title: "Part 1 — Calculating the current-year non-capital loss",
2052
2631
  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."
@@ -2113,7 +2692,7 @@ const PART_1 = [
2113
2692
  },
2114
2693
  {
2115
2694
  field: "013",
2116
- caption: "Subtotal of lines 003 to 011",
2695
+ caption: "Subtotal of lines 002 to 012",
2117
2696
  kind: "money",
2118
2697
  role: "total",
2119
2698
  section: "current-year"
@@ -2148,6 +2727,7 @@ const PART_1 = [
2148
2727
  note: "Line 015 minus line 017 plus line 019."
2149
2728
  }
2150
2729
  ];
2730
+ /** The row labels for one pool's continuity, in print order — exported so a UI-side paper Form View can build the same per-pool grid without re-typing the captions. */
2151
2731
  const CONTINUITY_CAPTIONS = {
2152
2732
  carriedForward: "Carried forward from the preceding year",
2153
2733
  expired: "Losses expired",
@@ -2164,17 +2744,19 @@ const CONTINUITY_ORDER = Object.keys(CONTINUITY_CAPTIONS);
2164
2744
  const continuityFields = AT1_SCHEDULE_21_POOLS.flatMap((pool) => CONTINUITY_ORDER.filter((k) => pool[k]).map((k) => {
2165
2745
  const isClosing = k === "closing";
2166
2746
  const isCarryBack = k === "carryBack";
2747
+ const isAppliedLine = k === "appliedAgainstIncome";
2167
2748
  return {
2168
- line: id$3(pool[k]),
2749
+ line: id$10(pool[k]),
2169
2750
  caption: `${pool.label} — ${CONTINUITY_CAPTIONS[k]}`,
2170
2751
  kind: "money",
2171
2752
  role: isClosing ? "computed" : "input",
2172
2753
  section: "continuity",
2173
- ...isClosing && pool.toSchedule12 ? { to: {
2754
+ ...isAppliedLine && pool.toSchedule12 ? { to: {
2174
2755
  form: "AT1SCH12",
2175
2756
  line: `012${pool.toSchedule12}001`,
2176
- note: "The Alberta side of the loss pair"
2757
+ note: pool.toSchedule12Note ?? "Printed on the form directly beside this line."
2177
2758
  } } : {},
2759
+ ...isAppliedLine && pool.appliedAgainstIncomeNote ? { note: pool.appliedAgainstIncomeNote } : {},
2178
2760
  ...isCarryBack ? { note: "A carry-back also requires Schedule 10 to be completed." } : {}
2179
2761
  };
2180
2762
  }));
@@ -2185,21 +2767,28 @@ const AT1_SCHEDULE_21 = {
2185
2767
  title: "Current-year loss and continuity of losses",
2186
2768
  scheme: "tra-line-item-id",
2187
2769
  taxYears: { from: 2024 },
2188
- sections: SECTIONS$24,
2770
+ sections: SECTIONS$31,
2189
2771
  fields: [...PART_1.map(({ field, ...rest }) => ({
2190
2772
  ...rest,
2191
- line: id$3(field)
2773
+ line: id$10(field)
2192
2774
  })), ...continuityFields].sort((a, b) => a.line.localeCompare(b.line)),
2193
2775
  provenance: {
2194
2776
  document: "research/field-maps/at1-schedules-12-21.md",
2195
2777
  retrieved: "2026-08-08",
2196
2778
  revision: "verified against the live TRA-certified form"
2197
- }
2779
+ },
2780
+ footnotes: [
2781
+ "This schedule is required if the opening balance or the claim for Alberta purposes differs from that for federal purposes.",
2782
+ "The corporation may choose whether or not to deduct an available loss from income in a taxation year. It can deduct losses in any order. However, for each type of loss, ensure that the oldest loss is deducted first.",
2783
+ "A non-capital loss expires after 7 taxation years if it arose in a taxation year ending before March 23, 2004, or after 10 taxation years if it arose in a taxation year ending after March 22, 2004 and before 2006, or after 20 years if it arose in a taxation year after 2005.",
2784
+ "An allowable business investment loss becomes a net capital loss after 7 taxation years if it arose in a taxation year ending before March 23, 2004, or after 10 taxation years if it arose in a taxation year ending after March 22, 2004.",
2785
+ "A farm loss or restricted farm loss expires after 10 tax years if it arose in a tax year ending before 2006, and after 20 tax years if it arose in a tax year ending after 2005."
2786
+ ]
2198
2787
  };
2199
2788
  //#endregion
2200
2789
  //#region src/t2/at1/forms/schedule29.ts
2201
2790
  /** `SSSFFFOOO` — schedule, field, occurrence. */
2202
- const id$2 = (field, occurrence = 1) => `029${field}${String(occurrence).padStart(3, "0")}`;
2791
+ const id$9 = (field, occurrence = 1) => `029${field}${String(occurrence).padStart(3, "0")}`;
2203
2792
  const AT1_SCHEDULE_29 = {
2204
2793
  id: "AT1SCH29",
2205
2794
  program: "AT1",
@@ -2416,7 +3005,12 @@ const AT1_SCHEDULE_29 = {
2416
3005
  kind: "money",
2417
3006
  role: "total",
2418
3007
  section: "grant",
2419
- note: "Line 130 minus line 132. Carried to AT1 page 2, line 129."
3008
+ note: "Line 130 minus line 132.",
3009
+ to: {
3010
+ form: "AT1",
3011
+ line: "000129001",
3012
+ note: "Carried to AT1 page 2, line 129."
3013
+ }
2420
3014
  },
2421
3015
  {
2422
3016
  field: "200",
@@ -2604,13 +3198,14 @@ const AT1_SCHEDULE_29 = {
2604
3198
  }
2605
3199
  ].map(({ field, ...rest }) => ({
2606
3200
  ...rest,
2607
- line: id$2(field)
3201
+ line: id$9(field)
2608
3202
  })).sort((a, b) => a.line.localeCompare(b.line)),
2609
3203
  provenance: {
2610
3204
  document: "research/sources/tra-forms/pdf/AT1SCH29-innovation-employment-grant-TRA14637.pdf",
2611
3205
  retrieved: "2026-08-28",
2612
3206
  revision: "TRA14637 (AT29) Rev. 2026-06. Page 1/2 rendered at 250dpi and cross-checked against AuraTax’s live rendering of the same schedule (research/validation/auratax/2026-08-25-at1-schedule1-royalty/); replaced a prior definition that ground the $4M limit by taxable capital instead of applying the reduction factor to the credit — see schedule29-ieg.ts. Page 2’s limit fields (100/102/104/108/114/116/118/125) and page 3 (the Agreement Among Associated Corporations, 200-325) were added 2026-08-28 by re-rendering the live form at 300dpi — this closed two gaps at once: `ui-line-citations` had no form definition to check the new UI’s 245/265 citations against, and a prior version of `schedule29Values` filed the member’s free-text NAME at line 220, which the form defines as the Federal Business Number — a wrong-box filing the citation check could not have caught on its own, since 220 was not cited by any UI label."
2613
- }
3207
+ },
3208
+ footnotes: ["Schedule 29 must be received by Alberta Treasury Board and Finance, Tax and Revenue Administration within 15 months after the day on or before which the corporation is required to file its AT1 for the year."]
2614
3209
  };
2615
3210
  /** Eight per cent, on the full capped eligible expenditures. */
2616
3211
  const AT1_IEG_BASE_RATE = .08;
@@ -2624,7 +3219,7 @@ const AT1_IEG_PRIOR_YEARS = 2;
2624
3219
  const AT1_IEG_JACKET_LINE = "000129001";
2625
3220
  //#endregion
2626
3221
  //#region src/t2/co17/forms/co17.ts
2627
- const SECTIONS$22 = [
3222
+ const SECTIONS$29 = [
2628
3223
  {
2629
3224
  id: "identity",
2630
3225
  title: "1 — Renseignements sur l'identité de la société"
@@ -2660,7 +3255,7 @@ const CO17_RETURN = {
2660
3255
  title: "CO-17 — Déclaration de revenus des sociétés",
2661
3256
  scheme: "rq-box",
2662
3257
  taxYears: { from: 2025 },
2663
- sections: SECTIONS$22,
3258
+ sections: SECTIONS$29,
2664
3259
  fields: [
2665
3260
  F$5("01a", "Numéro d'entreprise du Québec (NEQ)", "identity", { kind: "text" }),
2666
3261
  F$5("01b", "Numéro d'identification", "identity", { kind: "text" }),
@@ -2722,7 +3317,7 @@ const CO17_QUEBEC_PROPORTION_BOX = "421";
2722
3317
  const CO17_TAX_PAYABLE_BOX = "425";
2723
3318
  //#endregion
2724
3319
  //#region src/t2/forms/jacket.ts
2725
- const SECTIONS$21 = [
3320
+ const SECTIONS$28 = [
2726
3321
  {
2727
3322
  id: "taxable-income",
2728
3323
  title: "Taxable income",
@@ -2778,7 +3373,7 @@ const T2_JACKET = {
2778
3373
  title: "T2 Corporation Income Tax Return",
2779
3374
  scheme: "cra-line",
2780
3375
  taxYears: { from: 2025 },
2781
- sections: SECTIONS$21,
3376
+ sections: SECTIONS$28,
2782
3377
  fields: [
2783
3378
  F$4("300", "Net income or (loss) for income tax purposes", "taxable-income", {
2784
3379
  role: "carried-in",
@@ -3714,7 +4309,7 @@ new Map(SCHEDULE_1_CAPTIONS.map((c) => [c.line, c]));
3714
4309
  * Captions come from `./generated/schedule1.captions.ts`, which is produced from
3715
4310
  * the CRA document. This module adds only what the paper does not say.
3716
4311
  */
3717
- const SECTIONS$20 = [
4312
+ const SECTIONS$27 = [
3718
4313
  {
3719
4314
  id: "add-1",
3720
4315
  title: "Add",
@@ -3843,7 +4438,7 @@ const T2_SCHEDULE_1 = {
3843
4438
  title: "Net income (loss) for income tax purposes",
3844
4439
  scheme: "cra-line",
3845
4440
  taxYears: { from: 2023 },
3846
- sections: SECTIONS$20,
4441
+ sections: SECTIONS$27,
3847
4442
  fields: SCHEDULE_1_CAPTIONS.map((c) => {
3848
4443
  const section = sectionFor(Number(c.line));
3849
4444
  const side = section.startsWith("add") ? "add" : "deduct";
@@ -3883,7 +4478,7 @@ const SCHEDULE_1_LINE_BY_NUMBER = indexByLine(T2_SCHEDULE_1);
3883
4478
  const SCHEDULE_1_LINES = T2_SCHEDULE_1.fields;
3884
4479
  //#endregion
3885
4480
  //#region src/t2/forms/schedule2.ts
3886
- const SECTIONS$19 = [
4481
+ const SECTIONS$26 = [
3887
4482
  {
3888
4483
  id: "charitable",
3889
4484
  title: "Part 2 — Charitable donations",
@@ -3915,7 +4510,7 @@ const T2_SCHEDULE_2 = {
3915
4510
  title: "Charitable donations and gifts",
3916
4511
  scheme: "cra-line",
3917
4512
  taxYears: { from: 2023 },
3918
- sections: SECTIONS$19,
4513
+ sections: SECTIONS$26,
3919
4514
  fields: [
3920
4515
  F$3("239", "Charitable donations expired after five tax years", "charitable"),
3921
4516
  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." }),
@@ -3949,7 +4544,7 @@ const SCHEDULE_2_CARRYFORWARD_YEARS = {
3949
4544
  };
3950
4545
  //#endregion
3951
4546
  //#region src/t2/forms/schedule3.ts
3952
- const SECTIONS$18 = [{
4547
+ const SECTIONS$25 = [{
3953
4548
  id: "received",
3954
4549
  title: "Part 1 — Dividends received in the tax year",
3955
4550
  description: "One row per payer. Columns B, C, D, I and J are completed only when the payer is connected."
@@ -3973,7 +4568,7 @@ const T2_SCHEDULE_3 = {
3973
4568
  title: "Dividends received, taxable dividends paid, and Part IV tax calculation",
3974
4569
  scheme: "cra-line",
3975
4570
  taxYears: { from: 2023 },
3976
- sections: SECTIONS$18,
4571
+ sections: SECTIONS$25,
3977
4572
  fields: [
3978
4573
  F$2("200", "Name of payer corporation from which the corporation received the dividend", "received", { kind: "text" }),
3979
4574
  F$2("205", "Enter 1 if the payer corporation is connected", "received", {
@@ -4953,7 +5548,7 @@ const SCHEDULE_6_GRIDS = [
4953
5548
  ]
4954
5549
  }
4955
5550
  ];
4956
- const SECTIONS$15 = [
5551
+ const SECTIONS$22 = [
4957
5552
  {
4958
5553
  id: "designation",
4959
5554
  title: "Designation under paragraph 111(4)(e)"
@@ -5085,7 +5680,7 @@ const T2_SCHEDULE_6 = {
5085
5680
  title: "Summary of dispositions of capital property",
5086
5681
  scheme: "cra-line",
5087
5682
  taxYears: { from: 2023 },
5088
- sections: SECTIONS$15,
5683
+ sections: SECTIONS$22,
5089
5684
  fields: [...gridFields, ...SUMMARY].sort((a, b) => Number(a.line) - Number(b.line)),
5090
5685
  provenance: {
5091
5686
  document: "research/sources/cra-forms/T2SCH06-capital-gains.pdf",
@@ -5501,7 +6096,7 @@ const SCHEDULE_8_COLUMNS = [
5501
6096
  caption: "UCC at the end of the year"
5502
6097
  }
5503
6098
  ];
5504
- const SECTIONS$13 = [{
6099
+ const SECTIONS$20 = [{
5505
6100
  id: "cca-grid",
5506
6101
  title: "Capital cost allowance by class",
5507
6102
  description: "One row per class. The numbered columns are what a return transmits; the unnumbered ones are arithmetic the form shows on the way."
@@ -5533,7 +6128,7 @@ const T2_SCHEDULE_8 = {
5533
6128
  title: "Capital cost allowance",
5534
6129
  scheme: "cra-line",
5535
6130
  taxYears: { from: 2026 },
5536
- sections: SECTIONS$13,
6131
+ sections: SECTIONS$20,
5537
6132
  fields: SCHEDULE_8_COLUMNS.filter((c) => c.line).map((c) => {
5538
6133
  const dest = DESTINATIONS[c.line];
5539
6134
  return {
@@ -5597,7 +6192,7 @@ const SCHEDULE_13_RESERVE_ROWS = [
5597
6192
  closing: "240"
5598
6193
  }
5599
6194
  ];
5600
- const SECTIONS$12 = [{
6195
+ const SECTIONS$19 = [{
5601
6196
  id: "capital-gains",
5602
6197
  title: "Part 1 — Capital gains reserves",
5603
6198
  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."
@@ -5736,7 +6331,7 @@ const T2_SCHEDULE_13 = {
5736
6331
  title: "Continuity of reserves",
5737
6332
  scheme: "cra-line",
5738
6333
  taxYears: { from: 2011 },
5739
- sections: SECTIONS$12,
6334
+ sections: SECTIONS$19,
5740
6335
  fields: [
5741
6336
  ...COLUMN_HEADS,
5742
6337
  ...reserveFields,
@@ -5750,7 +6345,7 @@ const T2_SCHEDULE_13 = {
5750
6345
  };
5751
6346
  //#endregion
5752
6347
  //#region src/t2/forms/schedule21.ts
5753
- const SECTIONS$11 = [
6348
+ const SECTIONS$18 = [
5754
6349
  {
5755
6350
  id: "non-business",
5756
6351
  title: "Part 1 — Federal foreign non-business income tax credit",
@@ -5781,7 +6376,7 @@ const T2_SCHEDULE_21 = {
5781
6376
  title: "Federal and provincial or territorial foreign income tax credits and federal logging tax credit",
5782
6377
  scheme: "cra-line",
5783
6378
  taxYears: { from: 2023 },
5784
- sections: SECTIONS$11,
6379
+ sections: SECTIONS$18,
5785
6380
  fields: [
5786
6381
  F$1("100", "Country of source of foreign non-business income", "non-business", { kind: "text" }),
5787
6382
  F$1("110", "Net foreign non-business income earned in the year", "non-business"),
@@ -5937,7 +6532,7 @@ const T2_SCHEDULE_23 = {
5937
6532
  const SCHEDULE_23_GROUP_BUSINESS_LIMIT = 5e5;
5938
6533
  //#endregion
5939
6534
  //#region src/t2/forms/schedule24.ts
5940
- const SECTIONS$9 = [
6535
+ const SECTIONS$16 = [
5941
6536
  {
5942
6537
  id: "operation",
5943
6538
  title: "Part 1 — Type of operation",
@@ -5968,7 +6563,7 @@ const T2_SCHEDULE_24 = {
5968
6563
  title: "First-time filer after incorporation, amalgamation, or wind-up of a subsidiary",
5969
6564
  scheme: "cra-line",
5970
6565
  taxYears: { from: 2011 },
5971
- sections: SECTIONS$9,
6566
+ sections: SECTIONS$16,
5972
6567
  fields: [
5973
6568
  F("100", "Type of operation that applies to the corporation", "operation", {
5974
6569
  kind: "code",
@@ -8164,7 +8759,7 @@ const T2_SCHEDULE_130 = {
8164
8759
  //#endregion
8165
8760
  //#region src/t2/at1/forms/schedule3.ts
8166
8761
  /** `SSSFFFOOO` — schedule, field, occurrence. */
8167
- const id$1 = (field, occurrence = 1) => `003${field}${String(occurrence).padStart(3, "0")}`;
8762
+ const id$8 = (field, occurrence = 1) => `003${field}${String(occurrence).padStart(3, "0")}`;
8168
8763
  const AT1_SCHEDULE_3 = {
8169
8764
  id: "AT1SCH03",
8170
8765
  program: "AT1",
@@ -8341,114 +8936,1304 @@ const AT1_SCHEDULE_3 = {
8341
8936
  role: "computed",
8342
8937
  section: "mad"
8343
8938
  },
8939
+ {
8940
+ field: "602",
8941
+ caption: "MAD — room (AT1 jacket line 068 minus lines 070+071+072+074)",
8942
+ kind: "money",
8943
+ role: "computed",
8944
+ section: "mad"
8945
+ },
8344
8946
  {
8345
8947
  field: "604",
8346
8948
  caption: "MAD — maximum allowable deduction for the year",
8347
8949
  kind: "money",
8348
8950
  role: "computed",
8349
8951
  section: "mad",
8350
- note: "Lesser of line 600 and the room at line 602 (AT1 jacket line 068 minus lines 070+071+072+074); floored at nil."
8952
+ note: "Lesser of line 600 and the room at line 602 (AT1 jacket line 068 minus lines 070+071+072+074); floored at nil.",
8953
+ to: {
8954
+ form: "AT1",
8955
+ line: "000076001",
8956
+ note: "Printed on the form: \"Enter this amount on AT1 page 2, line 076.\""
8957
+ }
8351
8958
  }
8352
8959
  ].map(({ field, ...rest }) => ({
8353
8960
  ...rest,
8354
- line: id$1(field)
8961
+ line: id$8(field)
8355
8962
  })).sort((a, b) => a.line.localeCompare(b.line)),
8356
8963
  provenance: {
8357
- document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
8358
- retrieved: "2026-08-29",
8359
- revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule"
8360
- }
8964
+ document: "research/sources/tra-forms/pdf/AT1SCH03-other-tax-deductions-credits-TRA11725.pdf",
8965
+ retrieved: "2026-09-01",
8966
+ revision: "TRA11725 (AT3) Rev. 2024-04"
8967
+ },
8968
+ footnotes: ["In order to be eligible for any deduction on this schedule, the corporation must have Investor Tax Credit Certificates, Capital Investment Tax Credit Certificates, or an Agri-processing Investment Tax Credit Certificate issued by the appropriate ministry.", "Capital Investment Tax Credit: the Investor Tax Credit must be fully utilized, including any carry-forward amounts, before the Capital Investment Tax Credit can be claimed."]
8361
8969
  };
8362
8970
  //#endregion
8363
- //#region src/t2/at1/forms/schedule15.ts
8971
+ //#region src/t2/at1/forms/schedule4.ts
8364
8972
  /** `SSSFFFOOO` — schedule, field, occurrence. */
8365
- const id = (field, occurrence = 1) => `015${field}${String(occurrence).padStart(3, "0")}`;
8973
+ const id$7 = (field, occurrence = 1) => `004${field}${String(occurrence).padStart(3, "0")}`;
8974
+ const AT1_SCHEDULE_4 = {
8975
+ id: "AT1SCH04",
8976
+ program: "AT1",
8977
+ schedule: "004",
8978
+ title: "Alberta Foreign Investment Income Tax Credit",
8979
+ scheme: "tra-line-item-id",
8980
+ taxYears: { from: 2024 },
8981
+ sections: [{
8982
+ id: "countries",
8983
+ title: "Foreign Investment Credits",
8984
+ description: "One occurrence per country the corporation earned foreign non-business income in, sorted in the same order as federal Schedule 21. AB form 004 exists only if federal Schedule 21 exists."
8985
+ }, {
8986
+ id: "total",
8987
+ title: "Total and Alberta Foreign Investment Income Tax Credit",
8988
+ description: "Summed across every country, then capped by the AT1 jacket room."
8989
+ }],
8990
+ fields: [
8991
+ {
8992
+ field: "002",
8993
+ caption: "Country",
8994
+ kind: "code",
8995
+ role: "input",
8996
+ section: "countries",
8997
+ requirement: "mandatory",
8998
+ note: "Two-letter code. Must equal the matching occurrence of federal Schedule 21, line 100."
8999
+ },
9000
+ {
9001
+ field: "004",
9002
+ caption: "Net Foreign Investment Income",
9003
+ kind: "money",
9004
+ role: "input",
9005
+ section: "countries",
9006
+ requirement: "mandatory",
9007
+ note: "Must equal federal Schedule 21, line 110."
9008
+ },
9009
+ {
9010
+ field: "006",
9011
+ caption: "Foreign tax paid, net of the ITA 20(12)/ACTA 8(2.2) deduction",
9012
+ kind: "money",
9013
+ role: "computed",
9014
+ section: "countries",
9015
+ note: "Derived from the gross federal tax paid and the deduction — neither is itself an AT1 line."
9016
+ },
9017
+ {
9018
+ field: "008",
9019
+ caption: "Federal non-business foreign tax credit",
9020
+ kind: "money",
9021
+ role: "input",
9022
+ section: "countries",
9023
+ requirement: "mandatory",
9024
+ note: "Must equal federal Schedule 21, line 180."
9025
+ },
9026
+ {
9027
+ field: "012",
9028
+ caption: "Allowable Credit",
9029
+ kind: "money",
9030
+ role: "computed",
9031
+ section: "countries",
9032
+ note: "Lesser of D (income proration) and G (tax paid less federal credit), both allocation-factor-scaled — see module doc."
9033
+ },
9034
+ {
9035
+ field: "014",
9036
+ caption: "Total Allowable Credits",
9037
+ kind: "money",
9038
+ role: "total",
9039
+ section: "total",
9040
+ note: "Sum of line 012 (column H) across every country occurrence — `computeSchedule4`'s own `totalAllowableCredit`."
9041
+ },
9042
+ {
9043
+ field: "018",
9044
+ caption: "Room — AT1 page 2, line 068 minus (lines 070 + 071)",
9045
+ kind: "money",
9046
+ role: "computed",
9047
+ section: "total",
9048
+ note: "Not the same two jacket lines as Schedule 3's room at line 602 (070+072) — confirmed by reading both printed forms directly."
9049
+ },
9050
+ {
9051
+ field: "020",
9052
+ caption: "Alberta Foreign Investment Income Tax Credit",
9053
+ kind: "money",
9054
+ role: "computed",
9055
+ section: "total",
9056
+ note: "Lesser of line 014 and line 018.",
9057
+ to: {
9058
+ form: "AT1",
9059
+ line: "000072001",
9060
+ note: "Printed on the form: \"Enter this amount on AT1 page 2, line 072.\""
9061
+ }
9062
+ }
9063
+ ].map(({ field, ...rest }) => ({
9064
+ ...rest,
9065
+ line: id$7(field)
9066
+ })),
9067
+ provenance: {
9068
+ document: "research/sources/tra-forms/pdf/AT1SCH04-foreign-investment-income-tax-credit-TRA11728.pdf",
9069
+ retrieved: "2026-09-01",
9070
+ revision: "TRA11728 (AT201) Rev. 2026-03"
9071
+ },
9072
+ footnotes: ["If the corporation has permanent establishments in Alberta only, enter \"1\" in column C (the Alberta allocation factor).", "If the corporation's deduction from income under Alberta Corporate Tax Act subsection 8(2.2) differs from the deduction under Income Tax Act subsection 20(12) for any country, Alberta Schedule 12 is required — the total of these amounts for each country is included in the amount at Schedule 12, line 040."]
9073
+ };
8366
9074
  //#endregion
8367
- //#region src/forms/registry.ts
8368
- /**
8369
- * THE FORM REGISTRY — every form definition, and the links between them.
8370
- *
8371
- * A return is not a bag of independent schedules. Amount A of one becomes amount
8372
- * C of another; the Alberta reconciliation starts from line 300 of the federal
8373
- * jacket; a capital cost allowance figure computed on Schedule 8 lands on line
8374
- * 403 of Schedule 1 and nowhere else. Those seams are where returns go wrong,
8375
- * because each schedule is individually correct and the figure is carried to the
8376
- * wrong destination.
8377
- *
8378
- * Holding every definition in one place makes the seams checkable: a link that
8379
- * names a form nobody defines, or a line that form does not have, is findable
8380
- * without filing anything.
8381
- *
8382
- * Registration is explicit rather than by directory scan — the engine must stay
8383
- * a pure module graph with no filesystem access, and an explicit list is what a
8384
- * reviewer can read.
8385
- */
8386
- /** Every form defined in this package. */
8387
- const FORMS = [
8388
- T2_JACKET,
8389
- T2_SCHEDULE_1,
8390
- T2_SCHEDULE_2,
8391
- T2_SCHEDULE_3,
8392
- T2_SCHEDULE_5,
8393
- T2_SCHEDULE_24,
8394
- CO17_RETURN,
8395
- T2_SCHEDULE_21,
8396
- T2_SCHEDULE_4,
8397
- T2_SCHEDULE_6,
8398
- T2_SCHEDULE_7,
8399
- T2_SCHEDULE_8,
8400
- T2_SCHEDULE_13,
8401
- T2_SCHEDULE_130,
8402
- T2_SCHEDULE_23,
8403
- T2_SCHEDULE_31,
8404
- T2_SCHEDULE_33,
8405
- T2_SCHEDULE_43,
8406
- T2_SCHEDULE_50,
8407
- T2_SCHEDULE_53,
8408
- T2_SCHEDULE_55,
8409
- AT1_JACKET,
8410
- AT1_SCHEDULE_3,
8411
- AT1_SCHEDULE_12,
8412
- AT1_SCHEDULE_13,
8413
- {
8414
- id: "AT1SCH15",
8415
- program: "AT1",
8416
- schedule: "015",
8417
- title: "Alberta Resource Related Deductions",
8418
- scheme: "tra-line-item-id",
8419
- taxYears: { from: 2024 },
8420
- sections: [{
8421
- id: "sfede",
8422
- title: "SFEDE Specified Foreign Exploration and Development Expenses, per country"
8423
- }, {
8424
- id: "cfre",
8425
- title: "CFRE — Cumulative Foreign Resource Expenses, per country"
8426
- }],
8427
- fields: [
8428
- {
8429
- field: "241",
8430
- caption: "SFEDE regular country code",
8431
- kind: "code",
8432
- role: "input",
8433
- section: "sfede",
8434
- note: "Must equal the federal country code (fed 012601)."
8435
- },
8436
- {
8437
- field: "261",
8438
- caption: "SFEDE successor country code",
8439
- kind: "code",
8440
- role: "input",
8441
- section: "sfede",
8442
- note: "Must equal the federal country code (fed 012651)."
8443
- },
8444
- {
8445
- field: "281",
8446
- caption: "CFRE regular country code",
8447
- kind: "code",
8448
- role: "input",
8449
- section: "cfre",
8450
- note: "Must equal the federal country code (fed 012701)."
8451
- },
9075
+ //#region src/t2/at1/forms/schedule5.ts
9076
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
9077
+ const id$6 = (field, occurrence = 1) => `005${field}${String(occurrence).padStart(3, "0")}`;
9078
+ const AT1_SCHEDULE_5 = {
9079
+ id: "AT1SCH05",
9080
+ program: "AT1",
9081
+ schedule: "005",
9082
+ title: "Alberta Royalty Tax Deduction",
9083
+ scheme: "tra-line-item-id",
9084
+ taxYears: { from: 2024 },
9085
+ sections: [
9086
+ {
9087
+ id: "crtd",
9088
+ title: "Calculation of the Royalty Tax Deduction (CRTD)",
9089
+ description: "The corporation's own unsuccessored pool. Line 016 is discretionary — blank claims the maximum the pool and Alberta taxable income both allow."
9090
+ },
9091
+ {
9092
+ id: "transfer",
9093
+ title: "Pool Transfer / Change in Control",
9094
+ description: "026/027 required only when a transfer occurred; 100 is informational, cross-checked against the AT1 jacket's own tax-year-end-change fields."
9095
+ },
9096
+ {
9097
+ id: "sspi",
9098
+ title: "Second Successored Pool Information (SSPI)",
9099
+ description: "One occurrence per vendor/predecessor. 105 and 107 are mutually exclusive per occurrence — supply exactly one. Must not exist unless line 200 is Yes."
9100
+ },
9101
+ {
9102
+ id: "fspi",
9103
+ title: "First Successored Pool Information (FSPI)",
9104
+ description: "One occurrence per vendor/predecessor. 125 and 127 are mutually exclusive per occurrence — supply exactly one. Must not exist unless line 200 is Yes."
9105
+ },
9106
+ {
9107
+ id: "total",
9108
+ title: "Successored Total"
9109
+ }
9110
+ ],
9111
+ fields: [
9112
+ {
9113
+ field: "001",
9114
+ caption: "Crown charges under s.20(6)(a)-(e), with reference to s.20(13)",
9115
+ kind: "money",
9116
+ role: "input",
9117
+ section: "crtd",
9118
+ note: "AT1 Schedule 7, line 061. Floored at zero."
9119
+ },
9120
+ {
9121
+ field: "005",
9122
+ caption: "Deduct: Resource allowance claimed under s.20(6)(g)",
9123
+ kind: "money",
9124
+ role: "input",
9125
+ section: "crtd",
9126
+ note: "AT1 Schedule 12, line 024, or federal Schedule 1, line 346."
9127
+ },
9128
+ {
9129
+ field: "007",
9130
+ caption: "Deduct: Reimbursements received under a contract in respect of amounts on line 001, under s.20(6)(f)",
9131
+ kind: "money",
9132
+ role: "input",
9133
+ section: "crtd",
9134
+ note: "Excludes ARTC and other government rebates or credits."
9135
+ },
9136
+ {
9137
+ field: "011",
9138
+ caption: "Attributed Royalty Income carried forward from the preceding year",
9139
+ kind: "money",
9140
+ role: "computed",
9141
+ section: "crtd",
9142
+ note: "= opening unsuccessored pool balance (line 043) + Σ predecessor transfers (line 037)."
9143
+ },
9144
+ {
9145
+ field: "016",
9146
+ caption: "Royalty tax deduction claim amount in respect of the pool for the year",
9147
+ kind: "money",
9148
+ role: "input",
9149
+ section: "crtd",
9150
+ note: "Discretionary. Blank = claim the maximum the pool and Alberta taxable income both allow."
9151
+ },
9152
+ {
9153
+ field: "017",
9154
+ caption: "Pool available, carried forward to next year",
9155
+ kind: "money",
9156
+ role: "computed",
9157
+ section: "crtd",
9158
+ note: "= line 013 (unlabeled internal subtotal) line 016."
9159
+ },
9160
+ {
9161
+ field: "023",
9162
+ caption: "Deduct: Transfers of Attributed Royalty Income to another corporation during the year due to disposal of substantially all Canadian Resource Properties",
9163
+ kind: "money",
9164
+ role: "input",
9165
+ section: "crtd"
9166
+ },
9167
+ {
9168
+ field: "025",
9169
+ caption: "Attributed Royalty Income carried forward to next year",
9170
+ kind: "money",
9171
+ role: "computed",
9172
+ section: "crtd",
9173
+ note: "Floored at zero. Literal spec formula omits line 007 and subtracts the COMBINED royalty tax deduction (line 064), not just line 016 — see module doc."
9174
+ },
9175
+ {
9176
+ field: "026",
9177
+ caption: "Was there a transfer of the resource pools during the year?",
9178
+ kind: "code",
9179
+ role: "input",
9180
+ section: "transfer",
9181
+ requirement: "conditional",
9182
+ note: "1 = disposition of all/substantially all CRP (s.20(8)); 2 = change in control / ceasing s.20(14) exemption; 3 = no transfer."
9183
+ },
9184
+ {
9185
+ field: "027",
9186
+ caption: "Legal name of the corporation who acquired the resource pools",
9187
+ kind: "text",
9188
+ role: "input",
9189
+ section: "transfer",
9190
+ requirement: "conditional",
9191
+ note: "Required when line 026 is 1 or 2; must be absent when 3."
9192
+ },
9193
+ {
9194
+ field: "100",
9195
+ caption: "Was there a change in control that created the immediately preceding taxation year end?",
9196
+ kind: "flag",
9197
+ role: "input",
9198
+ section: "transfer",
9199
+ requirement: "optional"
9200
+ },
9201
+ {
9202
+ field: "101",
9203
+ caption: "Legal name of vendor, predecessor, or the corporation itself on a change in control",
9204
+ kind: "text",
9205
+ role: "input",
9206
+ section: "sspi"
9207
+ },
9208
+ {
9209
+ field: "103",
9210
+ caption: "Date of Event",
9211
+ kind: "date",
9212
+ role: "input",
9213
+ section: "sspi"
9214
+ },
9215
+ {
9216
+ field: "105",
9217
+ caption: "Pool amount available for carry-forward at the end of the preceding year",
9218
+ kind: "money",
9219
+ role: "input",
9220
+ section: "sspi",
9221
+ requirement: "conditional"
9222
+ },
9223
+ {
9224
+ field: "107",
9225
+ caption: "Cost on acquisition of all/substantially all Canadian resource properties, or on a change in control, under s.20(8) or 20(14)",
9226
+ kind: "money",
9227
+ role: "input",
9228
+ section: "sspi",
9229
+ requirement: "conditional"
9230
+ },
9231
+ {
9232
+ field: "109",
9233
+ caption: "Property income under s.20(1)(c)",
9234
+ kind: "money",
9235
+ role: "input",
9236
+ section: "sspi"
9237
+ },
9238
+ {
9239
+ field: "111",
9240
+ caption: "Claim",
9241
+ kind: "money",
9242
+ role: "computed",
9243
+ section: "sspi",
9244
+ note: "= min(pool base, property income). Mandatory arithmetic, not discretionary."
9245
+ },
9246
+ {
9247
+ field: "113",
9248
+ caption: "Carried forward, before transfer",
9249
+ kind: "money",
9250
+ role: "computed",
9251
+ section: "sspi",
9252
+ note: "= pool base − claim."
9253
+ },
9254
+ {
9255
+ field: "115",
9256
+ caption: "Second Successored Pool subtotal",
9257
+ kind: "money",
9258
+ role: "computed",
9259
+ section: "sspi",
9260
+ note: "Σ line 113 across all SSPI occurrences."
9261
+ },
9262
+ {
9263
+ field: "121",
9264
+ caption: "Legal name of vendor, predecessor, or the corporation itself on a change in control",
9265
+ kind: "text",
9266
+ role: "input",
9267
+ section: "fspi"
9268
+ },
9269
+ {
9270
+ field: "123",
9271
+ caption: "Date of Event",
9272
+ kind: "date",
9273
+ role: "input",
9274
+ section: "fspi"
9275
+ },
9276
+ {
9277
+ field: "125",
9278
+ caption: "Pool amount available for carry-forward at the end of the preceding year",
9279
+ kind: "money",
9280
+ role: "input",
9281
+ section: "fspi",
9282
+ requirement: "conditional"
9283
+ },
9284
+ {
9285
+ field: "127",
9286
+ caption: "Cost on acquisition of all/substantially all Canadian resource properties, or on a change in control, under s.20(8) or 20(14)",
9287
+ kind: "money",
9288
+ role: "input",
9289
+ section: "fspi",
9290
+ requirement: "conditional"
9291
+ },
9292
+ {
9293
+ field: "129",
9294
+ caption: "Property income under s.20(1)(c)",
9295
+ kind: "money",
9296
+ role: "input",
9297
+ section: "fspi"
9298
+ },
9299
+ {
9300
+ field: "131",
9301
+ caption: "Claim",
9302
+ kind: "money",
9303
+ role: "computed",
9304
+ section: "fspi",
9305
+ note: "= min(pool base, property income). Mandatory arithmetic, not discretionary."
9306
+ },
9307
+ {
9308
+ field: "133",
9309
+ caption: "Carried forward, before transfer",
9310
+ kind: "money",
9311
+ role: "computed",
9312
+ section: "fspi",
9313
+ note: "= pool base − claim."
9314
+ },
9315
+ {
9316
+ field: "135",
9317
+ caption: "First Successored Pool subtotal",
9318
+ kind: "money",
9319
+ role: "computed",
9320
+ section: "fspi",
9321
+ note: "Σ line 133 across all FSPI occurrences."
9322
+ },
9323
+ {
9324
+ field: "140",
9325
+ caption: "Successored Total",
9326
+ kind: "money",
9327
+ role: "computed",
9328
+ section: "total",
9329
+ note: "= Σ SSPI claims (111) + Σ FSPI claims (131). Feeds AT1 core line 064 alongside line 016."
9330
+ }
9331
+ ].map(({ field, ...rest }) => ({
9332
+ ...rest,
9333
+ line: id$6(field)
9334
+ })),
9335
+ provenance: {
9336
+ document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
9337
+ retrieved: "2026-08-31",
9338
+ revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule; 031-043 not individually filed, see module doc"
9339
+ }
9340
+ };
9341
+ //#endregion
9342
+ //#region src/t2/at1/forms/schedule6.ts
9343
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
9344
+ const id$5 = (field, occurrence = 1) => `006${field}${String(occurrence).padStart(3, "0")}`;
9345
+ const AT1_SCHEDULE_6 = {
9346
+ id: "AT1SCH06",
9347
+ program: "AT1",
9348
+ schedule: "006",
9349
+ title: "Alberta Royalty Tax Credit",
9350
+ scheme: "tra-line-item-id",
9351
+ taxYears: { from: 2024 },
9352
+ sections: [
9353
+ {
9354
+ id: "core",
9355
+ title: "Alberta Royalty Tax Credit",
9356
+ description: "No credit dollar amount is computed here — the ARTC is administered as an instalment program (AT1 jacket line 000082). This schedule establishes the royalty amount, shelter and rate TRA uses for that determination."
9357
+ },
9358
+ {
9359
+ id: "acrs",
9360
+ title: "Aggregate of the Crown Royalty Shelter (ACRS)",
9361
+ description: "Complete only when associated (line 002 = Yes)."
9362
+ },
9363
+ {
9364
+ id: "aacrs",
9365
+ title: "Allocation of the Aggregate of the Crown Royalty Shelter (AACRS)",
9366
+ description: "Complete only when associated. Put the corporation filing this return FIRST — its own allocation becomes line 006 directly."
9367
+ }
9368
+ ],
9369
+ fields: [
9370
+ {
9371
+ field: "002",
9372
+ caption: "Is the corporation associated with one or more corporations that have incurred Alberta Crown Royalty in the year?",
9373
+ kind: "flag",
9374
+ role: "input",
9375
+ section: "core",
9376
+ requirement: "mandatory",
9377
+ note: "Default 2 (No)."
9378
+ },
9379
+ {
9380
+ field: "004",
9381
+ caption: "Alberta Crown Royalty incurred in the taxation year",
9382
+ kind: "money",
9383
+ role: "input",
9384
+ section: "core",
9385
+ requirement: "mandatory",
9386
+ note: "= Schedule 7, line 003 + Σ line 077 − Σ line 087 + Σ line 089."
9387
+ },
9388
+ {
9389
+ field: "006",
9390
+ caption: "Crown Royalty Shelter",
9391
+ kind: "money",
9392
+ role: "computed",
9393
+ section: "core",
9394
+ note: "Not associated: $2,000,000 × (days in own tax year, max 365) / 365. Associated: this filer's own AACRS allocation (line 034, first occurrence)."
9395
+ },
9396
+ {
9397
+ field: "008",
9398
+ caption: "Weighted Average Rate",
9399
+ kind: "rate",
9400
+ role: "computed",
9401
+ section: "core",
9402
+ note: "Day-weighted average of the published RTC quarterly rate across every calendar quarter the taxation year spans, to 4 decimal places."
9403
+ },
9404
+ {
9405
+ field: "022",
9406
+ caption: "Corporate Account Number of the associated corporation with the longest taxation year",
9407
+ kind: "code",
9408
+ role: "input",
9409
+ section: "acrs"
9410
+ },
9411
+ {
9412
+ field: "024",
9413
+ caption: "Taxation Year Beginning",
9414
+ kind: "date",
9415
+ role: "input",
9416
+ section: "acrs"
9417
+ },
9418
+ {
9419
+ field: "026",
9420
+ caption: "Taxation Year Ending",
9421
+ kind: "date",
9422
+ role: "input",
9423
+ section: "acrs"
9424
+ },
9425
+ {
9426
+ field: "028",
9427
+ caption: "Number of days in the longest year",
9428
+ kind: "text",
9429
+ role: "input",
9430
+ section: "acrs",
9431
+ note: "Max 365. Spec Type N — not money; matches the same field's kind on schedule29.ts."
9432
+ },
9433
+ {
9434
+ field: "030",
9435
+ caption: "Name of Corporation",
9436
+ kind: "text",
9437
+ role: "input",
9438
+ section: "aacrs",
9439
+ note: "One occurrence per associated corporation sharing the pool."
9440
+ },
9441
+ {
9442
+ field: "032",
9443
+ caption: "Alberta Corporate Account Number",
9444
+ kind: "code",
9445
+ role: "input",
9446
+ section: "aacrs",
9447
+ requirement: "optional"
9448
+ },
9449
+ {
9450
+ field: "034",
9451
+ caption: "Allocated Amount",
9452
+ kind: "money",
9453
+ role: "input",
9454
+ section: "aacrs",
9455
+ note: "Capped at $2,000,000 × (line 028 / 365), aggregate across all occurrences."
9456
+ }
9457
+ ].map(({ field, ...rest }) => ({
9458
+ ...rest,
9459
+ line: id$5(field)
9460
+ })),
9461
+ provenance: {
9462
+ document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
9463
+ retrieved: "2026-08-31",
9464
+ revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule"
9465
+ }
9466
+ };
9467
+ //#endregion
9468
+ //#region src/t2/at1/forms/schedule7.ts
9469
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
9470
+ const id$4 = (field, occurrence = 1) => `007${field}${String(occurrence).padStart(3, "0")}`;
9471
+ const AT1_SCHEDULE_7 = {
9472
+ id: "AT1SCH07",
9473
+ program: "AT1",
9474
+ schedule: "007",
9475
+ title: "Alberta Royalty Tax Credit/Deduction Supplemental Information",
9476
+ scheme: "tra-line-item-id",
9477
+ taxYears: { from: 2024 },
9478
+ sections: [
9479
+ {
9480
+ id: "cpi",
9481
+ title: "Crown Payment Information",
9482
+ description: "Transcribed directly from the income statement (federal form 125) and balance sheet (federal form 100)."
9483
+ },
9484
+ {
9485
+ id: "piti",
9486
+ title: "Partnership Income Tax Information",
9487
+ description: "One occurrence per partnership the corporation is a member of."
9488
+ },
9489
+ {
9490
+ id: "acra",
9491
+ title: "Adjustments to ACR Reported in the Current Year but Relating to Prior Taxation Years",
9492
+ description: "One occurrence per correction relating to a prior production year but reported this year."
9493
+ },
9494
+ {
9495
+ id: "totals",
9496
+ title: "Totals",
9497
+ description: "Both computed — neither has a preparer-entered box. 061 has no defining row anywhere in this schedule's own MAPPINGS block; its formula is transcribed from Schedule 5's own field 005001 definition."
9498
+ }
9499
+ ],
9500
+ fields: [
9501
+ {
9502
+ field: "003",
9503
+ caption: "Alberta crown royalty eligible for Royalty Tax Credit",
9504
+ kind: "money",
9505
+ role: "input",
9506
+ section: "cpi"
9507
+ },
9508
+ {
9509
+ field: "005",
9510
+ caption: "Other royalties paid to Alberta not eligible for Royalty Tax Credit",
9511
+ kind: "money",
9512
+ role: "input",
9513
+ section: "cpi"
9514
+ },
9515
+ {
9516
+ field: "007",
9517
+ caption: "Crown royalty paid to other provincial or federal jurisdictions",
9518
+ kind: "money",
9519
+ role: "input",
9520
+ section: "cpi"
9521
+ },
9522
+ {
9523
+ field: "009",
9524
+ caption: "Non-deductible crown lease rentals",
9525
+ kind: "money",
9526
+ role: "input",
9527
+ section: "cpi"
9528
+ },
9529
+ {
9530
+ field: "011",
9531
+ caption: "Mineral taxes",
9532
+ kind: "money",
9533
+ role: "input",
9534
+ section: "cpi"
9535
+ },
9536
+ {
9537
+ field: "013",
9538
+ caption: "Saskatchewan resources surcharge (non-deductible portion only)",
9539
+ kind: "money",
9540
+ role: "input",
9541
+ section: "cpi"
9542
+ },
9543
+ {
9544
+ field: "014",
9545
+ caption: "Other non-deductible crown charges — type",
9546
+ kind: "text",
9547
+ role: "input",
9548
+ section: "cpi",
9549
+ requirement: "optional"
9550
+ },
9551
+ {
9552
+ field: "015",
9553
+ caption: "Other non-deductible crown charges — type",
9554
+ kind: "text",
9555
+ role: "input",
9556
+ section: "cpi",
9557
+ requirement: "optional"
9558
+ },
9559
+ {
9560
+ field: "016",
9561
+ caption: "Other non-deductible crown charges — type",
9562
+ kind: "text",
9563
+ role: "input",
9564
+ section: "cpi",
9565
+ requirement: "optional"
9566
+ },
9567
+ {
9568
+ field: "017",
9569
+ caption: "Other non-deductible crown charges — amount",
9570
+ kind: "money",
9571
+ role: "input",
9572
+ section: "cpi",
9573
+ note: "Blank/zero when no type is named at 014-016."
9574
+ },
9575
+ {
9576
+ field: "025",
9577
+ caption: "Crown lease rentals capitalized during the year on non-producing properties (non-deductible portion)",
9578
+ kind: "money",
9579
+ role: "input",
9580
+ section: "cpi"
9581
+ },
9582
+ {
9583
+ field: "027",
9584
+ caption: "Other balance sheet eligible deduction — name",
9585
+ kind: "text",
9586
+ role: "input",
9587
+ section: "cpi",
9588
+ requirement: "optional"
9589
+ },
9590
+ {
9591
+ field: "029",
9592
+ caption: "Other balance sheet eligible deduction — amount",
9593
+ kind: "money",
9594
+ role: "input",
9595
+ section: "cpi",
9596
+ note: "Blank/zero when no name is given at 027."
9597
+ },
9598
+ {
9599
+ field: "071",
9600
+ caption: "Partnership name",
9601
+ kind: "text",
9602
+ role: "input",
9603
+ section: "piti",
9604
+ requirement: "mandatory"
9605
+ },
9606
+ {
9607
+ field: "073",
9608
+ caption: "Corporation's percentage interest in partnership",
9609
+ kind: "rate",
9610
+ role: "input",
9611
+ section: "piti",
9612
+ note: "Decimal to 4 places, e.g. .7500 for 75% — not a whole percentage."
9613
+ },
9614
+ {
9615
+ field: "075",
9616
+ caption: "Partnership fiscal period end",
9617
+ kind: "date",
9618
+ role: "input",
9619
+ section: "piti"
9620
+ },
9621
+ {
9622
+ field: "077",
9623
+ caption: "Corporation's share of Alberta Crown Royalties eligible for Royalty Tax Credit",
9624
+ kind: "money",
9625
+ role: "input",
9626
+ section: "piti"
9627
+ },
9628
+ {
9629
+ field: "079",
9630
+ caption: "Corporation's share of other royalties paid to Alberta not eligible for Royalty Tax Credit",
9631
+ kind: "money",
9632
+ role: "input",
9633
+ section: "piti"
9634
+ },
9635
+ {
9636
+ field: "081",
9637
+ caption: "Corporation's share of other Crown charges eligible for Royalty Tax Deduction",
9638
+ kind: "money",
9639
+ role: "input",
9640
+ section: "piti",
9641
+ note: "Feeds AT1 Schedule 5, not this schedule's own arithmetic."
9642
+ },
9643
+ {
9644
+ field: "083",
9645
+ caption: "Prior production period the adjustment relates to",
9646
+ kind: "date",
9647
+ role: "input",
9648
+ section: "acra",
9649
+ requirement: "mandatory"
9650
+ },
9651
+ {
9652
+ field: "085",
9653
+ caption: "Source of Adjustment",
9654
+ kind: "code",
9655
+ role: "input",
9656
+ section: "acra",
9657
+ note: "1 = Department of Resource Development (formerly Energy), 2 = Operator."
9658
+ },
9659
+ {
9660
+ field: "087",
9661
+ caption: "Amount of increase to eligible crown royalties for that prior year",
9662
+ kind: "money",
9663
+ role: "input",
9664
+ section: "acra"
9665
+ },
9666
+ {
9667
+ field: "089",
9668
+ caption: "Amount of decrease to eligible crown royalties for that prior year",
9669
+ kind: "money",
9670
+ role: "input",
9671
+ section: "acra"
9672
+ },
9673
+ {
9674
+ field: "091",
9675
+ caption: "Adjustment to the amount not eligible for the Royalty Tax Credit for that prior year",
9676
+ kind: "money",
9677
+ role: "input",
9678
+ section: "acra"
9679
+ },
9680
+ {
9681
+ field: "051",
9682
+ caption: "Total Adjustments to current year Alberta Crown Royalty due to adjustments from Prior Production Years",
9683
+ kind: "money",
9684
+ role: "computed",
9685
+ section: "totals",
9686
+ note: "= Σ (087 − 089 + 091)."
9687
+ },
9688
+ {
9689
+ field: "061",
9690
+ caption: "Crown charges net of reimbursements",
9691
+ kind: "money",
9692
+ role: "computed",
9693
+ section: "totals",
9694
+ note: "No defining row in this schedule's own MAPPINGS block — formula transcribed from Schedule 5's field 005001. Signed; Schedule 5 applies its own floor at zero."
9695
+ }
9696
+ ].map(({ field, ...rest }) => ({
9697
+ ...rest,
9698
+ line: id$4(field)
9699
+ })),
9700
+ provenance: {
9701
+ document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
9702
+ retrieved: "2026-08-31",
9703
+ revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule"
9704
+ }
9705
+ };
9706
+ //#endregion
9707
+ //#region src/t2/at1/forms/schedule8.ts
9708
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
9709
+ const id$3 = (field, occurrence = 1) => `008${field}${String(occurrence).padStart(3, "0")}`;
9710
+ const AT1_SCHEDULE_8 = {
9711
+ id: "AT1SCH08",
9712
+ program: "AT1",
9713
+ schedule: "008",
9714
+ title: "Alberta Political Contributions Tax Credit",
9715
+ scheme: "tra-line-item-id",
9716
+ taxYears: { from: 2024 },
9717
+ sections: [{
9718
+ id: "contributions",
9719
+ title: "Political Contribution Details",
9720
+ description: "One occurrence per receipted contribution to a party, constituency association or candidate registered in Alberta."
9721
+ }, {
9722
+ id: "partnership",
9723
+ title: "Alberta Political Contributions Through a Partnership",
9724
+ description: "Sourced from federal T5013 — not derivable from anything else on this schedule."
9725
+ }],
9726
+ fields: [
9727
+ {
9728
+ field: "002",
9729
+ caption: "Name of Party, Constituency Association or Candidate",
9730
+ kind: "text",
9731
+ role: "input",
9732
+ section: "contributions",
9733
+ requirement: "mandatory"
9734
+ },
9735
+ {
9736
+ field: "004",
9737
+ caption: "Official Receipt Number",
9738
+ kind: "code",
9739
+ role: "input",
9740
+ section: "contributions",
9741
+ requirement: "mandatory"
9742
+ },
9743
+ {
9744
+ field: "006",
9745
+ caption: "Date of Donation",
9746
+ kind: "date",
9747
+ role: "input",
9748
+ section: "contributions",
9749
+ requirement: "mandatory",
9750
+ note: "The spec requires one for every receipted contribution — never left blank."
9751
+ },
9752
+ {
9753
+ field: "008",
9754
+ caption: "Donation Amount",
9755
+ kind: "money",
9756
+ role: "input",
9757
+ section: "contributions",
9758
+ requirement: "mandatory"
9759
+ },
9760
+ {
9761
+ field: "012",
9762
+ caption: "Alberta political contributions from a partnership made in 2003 or earlier",
9763
+ kind: "money",
9764
+ role: "input",
9765
+ section: "partnership",
9766
+ requirement: "optional",
9767
+ note: "Federal T5013 box 37."
9768
+ },
9769
+ {
9770
+ field: "013",
9771
+ caption: "Alberta political contributions from a partnership made in 2004 or later",
9772
+ kind: "money",
9773
+ role: "input",
9774
+ section: "partnership",
9775
+ requirement: "optional",
9776
+ note: "Federal T5013."
9777
+ }
9778
+ ].map(({ field, ...rest }) => ({
9779
+ ...rest,
9780
+ line: id$3(field)
9781
+ })),
9782
+ provenance: {
9783
+ document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
9784
+ retrieved: "2026-08-31",
9785
+ revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule"
9786
+ }
9787
+ };
9788
+ //#endregion
9789
+ //#region src/t2/at1/forms/schedule9.ts
9790
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
9791
+ const id$2 = (field, occurrence = 1) => `009${field}${String(occurrence).padStart(3, "0")}`;
9792
+ const AT1_SCHEDULE_9 = {
9793
+ id: "AT1SCH09",
9794
+ program: "AT1",
9795
+ schedule: "009",
9796
+ title: "Alberta Scientific Research & Experimental Development Tax Credit",
9797
+ scheme: "tra-line-item-id",
9798
+ taxYears: { from: 2024 },
9799
+ sections: [
9800
+ {
9801
+ id: "expenditures",
9802
+ title: "Eligible Expenditures",
9803
+ description: "The credit is wound down — no expenditures carried out in Alberta on or after 2020-01-01 are eligible."
9804
+ },
9805
+ {
9806
+ id: "limit",
9807
+ title: "Expenditure Limit and Credit"
9808
+ },
9809
+ {
9810
+ id: "group",
9811
+ title: "Allocation of the Maximum Expenditure Limit",
9812
+ description: "Required whenever line 100 is Yes. Each occurrence, and the group total, capped at $4,000,000 × (line 206 / 365)."
9813
+ }
9814
+ ],
9815
+ fields: [
9816
+ {
9817
+ field: "003",
9818
+ caption: "Federal amount of total qualified SR&ED expenditures",
9819
+ kind: "money",
9820
+ role: "input",
9821
+ section: "expenditures",
9822
+ requirement: "mandatory",
9823
+ note: "Must equal fed T661 line 559."
9824
+ },
9825
+ {
9826
+ field: "005",
9827
+ caption: "Portion of line 559 incurred in Alberta",
9828
+ kind: "money",
9829
+ role: "input",
9830
+ section: "expenditures",
9831
+ note: "Must not exceed line 003. Excludes spending on or after 2020-01-01."
9832
+ },
9833
+ {
9834
+ field: "007",
9835
+ caption: "Deduct: federal prescribed proxy amount included in the Alberta portion",
9836
+ kind: "money",
9837
+ role: "input",
9838
+ section: "expenditures"
9839
+ },
9840
+ {
9841
+ field: "009",
9842
+ caption: "Add: Alberta proxy amount",
9843
+ kind: "money",
9844
+ role: "input",
9845
+ section: "expenditures"
9846
+ },
9847
+ {
9848
+ field: "011",
9849
+ caption: "Add: Alberta SR&ED credit that reduced the federal expense in the taxation year",
9850
+ kind: "money",
9851
+ role: "input",
9852
+ section: "expenditures",
9853
+ note: "Calculation deferred by the spec to the Guide to Claiming the Alberta SR&ED Tax Credit."
9854
+ },
9855
+ {
9856
+ field: "015",
9857
+ caption: "Federal Investment Tax Credit received in the immediately preceding taxation year",
9858
+ kind: "money",
9859
+ role: "input",
9860
+ section: "expenditures",
9861
+ note: "Fed T661 line 435."
9862
+ },
9863
+ {
9864
+ field: "017",
9865
+ caption: "Total Alberta-eligible expenditures for years in which incurred",
9866
+ kind: "money",
9867
+ role: "input",
9868
+ section: "expenditures"
9869
+ },
9870
+ {
9871
+ field: "019",
9872
+ caption: "Total federal expenditures for those same years",
9873
+ kind: "money",
9874
+ role: "input",
9875
+ section: "expenditures",
9876
+ note: "Fed T661 line 570."
9877
+ },
9878
+ {
9879
+ field: "023",
9880
+ caption: "Deduct: Alberta portion of the prior-year federal ITC",
9881
+ kind: "money",
9882
+ role: "computed",
9883
+ section: "expenditures",
9884
+ note: "= 015 × 017 / 019."
9885
+ },
9886
+ {
9887
+ field: "025",
9888
+ caption: "Add: Alberta portion of any repayment of assistance and contract payments",
9889
+ kind: "money",
9890
+ role: "input",
9891
+ section: "expenditures"
9892
+ },
9893
+ {
9894
+ field: "031",
9895
+ caption: "Eligible expenditures for Alberta purposes",
9896
+ kind: "money",
9897
+ role: "computed",
9898
+ section: "expenditures",
9899
+ note: "No confirmed formula/caption of its own in the spec — filed alongside 106, same figure. Derived as 005 − 007 + 009 + 011 − 023 + 025 unless overridden."
9900
+ },
9901
+ {
9902
+ field: "040",
9903
+ caption: "Primary field of science or technology",
9904
+ kind: "code",
9905
+ role: "input",
9906
+ section: "limit",
9907
+ requirement: "mandatory",
9908
+ note: "1-4."
9909
+ },
9910
+ {
9911
+ field: "100",
9912
+ caption: "Is the corporation associated with one or more corporations for SR&ED purposes?",
9913
+ kind: "flag",
9914
+ role: "input",
9915
+ section: "limit",
9916
+ requirement: "mandatory"
9917
+ },
9918
+ {
9919
+ field: "102",
9920
+ caption: "Allocated amount from line 240 on page 3",
9921
+ kind: "money",
9922
+ role: "computed",
9923
+ section: "limit",
9924
+ requirement: "conditional",
9925
+ note: "Filed only when line 100 = Yes."
9926
+ },
9927
+ {
9928
+ field: "104",
9929
+ caption: "Maximum Expenditure Limit",
9930
+ kind: "money",
9931
+ role: "computed",
9932
+ section: "limit",
9933
+ requirement: "conditional",
9934
+ note: "Filed only when line 100 = No. = $4,000,000 × (days in tax year / 365)."
9935
+ },
9936
+ {
9937
+ field: "106",
9938
+ caption: "Eligible expenditures for Alberta purposes",
9939
+ kind: "money",
9940
+ role: "computed",
9941
+ section: "limit",
9942
+ note: "Must equal line 031."
9943
+ },
9944
+ {
9945
+ field: "108",
9946
+ caption: "Maximum Expenditure Limit for the year",
9947
+ kind: "money",
9948
+ role: "computed",
9949
+ section: "limit",
9950
+ note: "= line 102 or 104, whichever applies."
9951
+ },
9952
+ {
9953
+ field: "112",
9954
+ caption: "Recapture on disposal (or deemed disposal) of Alberta SR&ED property",
9955
+ kind: "money",
9956
+ role: "input",
9957
+ section: "limit",
9958
+ requirement: "optional"
9959
+ },
9960
+ {
9961
+ field: "116",
9962
+ caption: "Less: Alberta portion of prior year federal investment tax credit",
9963
+ kind: "money",
9964
+ role: "input",
9965
+ section: "limit",
9966
+ requirement: "optional",
9967
+ note: "Schedule 9 Supplemental line 428 — only when the taxation year end is on or before 2012-03-31."
9968
+ },
9969
+ {
9970
+ field: "120",
9971
+ caption: "Net Alberta SR&ED Tax Credit (Repayment)",
9972
+ kind: "money",
9973
+ role: "computed",
9974
+ section: "limit",
9975
+ note: "= (lesser of 031 and 108 × 10%) − 112 − 116. Signed — may be negative. To AT1 page 2 line 081."
9976
+ },
9977
+ {
9978
+ field: "200",
9979
+ caption: "Alberta CAN of the associated corporation with the longest taxation year",
9980
+ kind: "code",
9981
+ role: "input",
9982
+ section: "group",
9983
+ requirement: "conditional"
9984
+ },
9985
+ {
9986
+ field: "202",
9987
+ caption: "Taxation Year Beginning",
9988
+ kind: "date",
9989
+ role: "input",
9990
+ section: "group",
9991
+ requirement: "conditional"
9992
+ },
9993
+ {
9994
+ field: "204",
9995
+ caption: "Taxation Year Ending",
9996
+ kind: "date",
9997
+ role: "input",
9998
+ section: "group",
9999
+ requirement: "conditional"
10000
+ },
10001
+ {
10002
+ field: "206",
10003
+ caption: "Number of days in the longest year",
10004
+ kind: "text",
10005
+ role: "input",
10006
+ section: "group",
10007
+ requirement: "conditional",
10008
+ note: "Max 365 (366 across a February 29). Spec Type N — not money; matches the same field's kind on schedule29.ts."
10009
+ },
10010
+ {
10011
+ field: "220",
10012
+ caption: "Name of Corporation",
10013
+ kind: "text",
10014
+ role: "input",
10015
+ section: "group",
10016
+ note: "One occurrence per associated corporation, claimant first."
10017
+ },
10018
+ {
10019
+ field: "230",
10020
+ caption: "Alberta Corporate Account Number",
10021
+ kind: "code",
10022
+ role: "input",
10023
+ section: "group",
10024
+ requirement: "optional"
10025
+ },
10026
+ {
10027
+ field: "240",
10028
+ caption: "Allocated Amount",
10029
+ kind: "money",
10030
+ role: "input",
10031
+ section: "group",
10032
+ note: "Capped at $4,000,000 × (line 206 / 365), aggregate across all occurrences."
10033
+ }
10034
+ ].map(({ field, ...rest }) => ({
10035
+ ...rest,
10036
+ line: id$2(field)
10037
+ })),
10038
+ provenance: {
10039
+ document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
10040
+ retrieved: "2026-08-31",
10041
+ revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule; wound down, no post-2019 expenditures eligible"
10042
+ }
10043
+ };
10044
+ //#endregion
10045
+ //#region src/t2/at1/forms/schedule11.ts
10046
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
10047
+ const id$1 = (field, occurrence = 1) => `011${field}${String(occurrence).padStart(3, "0")}`;
10048
+ const AT1_SCHEDULE_11 = {
10049
+ id: "AT1SCH11",
10050
+ program: "AT1",
10051
+ schedule: "011",
10052
+ title: "Alberta Manufacturing and Processing Profits Deduction",
10053
+ scheme: "tra-line-item-id",
10054
+ taxYears: { from: 2024 },
10055
+ sections: [
10056
+ {
10057
+ id: "adjubi",
10058
+ title: "ADJUBI",
10059
+ description: "Line 001 = fed 027130 (federal ADJUBI) by default, or Schedule 12 lines 112 + 114 when Alberta calculates ADJUBI differently — neither Schedule 12 line, nor the federal ADJUBI itself, is an AT1 line on THIS schedule."
10060
+ },
10061
+ {
10062
+ id: "ccpc",
10063
+ title: "CCPC-only: Aggregate Investment Income",
10064
+ description: "Disclosure only — the transcribed spec does not use this figure in the line 042 proration."
10065
+ },
10066
+ {
10067
+ id: "capitalAndLabour",
10068
+ title: "Cost of Capital and Cost of Labour",
10069
+ description: "Must not exist for a small manufacturing corp — see line 042."
10070
+ },
10071
+ {
10072
+ id: "profits",
10073
+ title: "Alberta Manufacturing and Processing Profits"
10074
+ }
10075
+ ],
10076
+ fields: [
10077
+ {
10078
+ field: "001",
10079
+ caption: "AMPPD — ADJUBI for Alberta purposes",
10080
+ kind: "money",
10081
+ role: "computed",
10082
+ section: "adjubi",
10083
+ note: "= fed 027130, or Schedule 12 lines 112 + 114 when Alberta calculates ADJUBI differently."
10084
+ },
10085
+ {
10086
+ field: "013",
10087
+ caption: "Canadian-controlled Private Corporations Only: Aggregate investment income for the year",
10088
+ kind: "money",
10089
+ role: "computed",
10090
+ section: "ccpc",
10091
+ requirement: "conditional",
10092
+ note: "CCPC only. = Alberta figure when Schedule 12 exists, otherwise fed 200440. Omitted entirely for a non-CCPC."
10093
+ },
10094
+ {
10095
+ field: "031",
10096
+ caption: "Cost of Capital",
10097
+ kind: "money",
10098
+ role: "input",
10099
+ section: "capitalAndLabour",
10100
+ note: "Must equal fed 027140 for a corp other than a small manufacturer."
10101
+ },
10102
+ {
10103
+ field: "033",
10104
+ caption: "Alberta Cost of Manufacturing and Processing Capital",
10105
+ kind: "money",
10106
+ role: "input",
10107
+ section: "capitalAndLabour",
10108
+ note: "Cannot exceed line 031."
10109
+ },
10110
+ {
10111
+ field: "037",
10112
+ caption: "Cost of Labour",
10113
+ kind: "money",
10114
+ role: "input",
10115
+ section: "capitalAndLabour",
10116
+ note: "Must equal fed 027160 for a corp other than a small manufacturer."
10117
+ },
10118
+ {
10119
+ field: "039",
10120
+ caption: "Alberta Cost of Manufacturing and Processing Labour",
10121
+ kind: "money",
10122
+ role: "input",
10123
+ section: "capitalAndLabour",
10124
+ note: "Cannot exceed line 037."
10125
+ },
10126
+ {
10127
+ field: "042",
10128
+ caption: "Alberta Manufacturing and Processing Profits",
10129
+ kind: "money",
10130
+ role: "input",
10131
+ section: "profits",
10132
+ note: "Computed from lines 001/031/033/037/039 in the general case; a direct entry for a small manufacturing corp, since the spec gives no proration formula for that case. Nil whenever the historical eligibility test fails, regardless of the workings."
10133
+ }
10134
+ ].map(({ field, ...rest }) => ({
10135
+ ...rest,
10136
+ line: id$1(field)
10137
+ })),
10138
+ provenance: {
10139
+ document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
10140
+ retrieved: "2026-08-31",
10141
+ revision: "AT1 Chapter 3, 2025.2 — no fillable PDF exists for this schedule; historical, pre-2001-04-01 only"
10142
+ }
10143
+ };
10144
+ //#endregion
10145
+ //#region src/t2/at1/forms/schedule15.ts
10146
+ /** `SSSFFFOOO` — schedule, field, occurrence. */
10147
+ const id = (field, occurrence = 1) => `015${field}${String(occurrence).padStart(3, "0")}`;
10148
+ //#endregion
10149
+ //#region src/forms/registry.ts
10150
+ /**
10151
+ * THE FORM REGISTRY — every form definition, and the links between them.
10152
+ *
10153
+ * A return is not a bag of independent schedules. Amount A of one becomes amount
10154
+ * C of another; the Alberta reconciliation starts from line 300 of the federal
10155
+ * jacket; a capital cost allowance figure computed on Schedule 8 lands on line
10156
+ * 403 of Schedule 1 and nowhere else. Those seams are where returns go wrong,
10157
+ * because each schedule is individually correct and the figure is carried to the
10158
+ * wrong destination.
10159
+ *
10160
+ * Holding every definition in one place makes the seams checkable: a link that
10161
+ * names a form nobody defines, or a line that form does not have, is findable
10162
+ * without filing anything.
10163
+ *
10164
+ * Registration is explicit rather than by directory scan — the engine must stay
10165
+ * a pure module graph with no filesystem access, and an explicit list is what a
10166
+ * reviewer can read.
10167
+ */
10168
+ /** Every form defined in this package. */
10169
+ const FORMS = [
10170
+ T2_JACKET,
10171
+ T2_SCHEDULE_1,
10172
+ T2_SCHEDULE_2,
10173
+ T2_SCHEDULE_3,
10174
+ T2_SCHEDULE_5,
10175
+ T2_SCHEDULE_24,
10176
+ CO17_RETURN,
10177
+ T2_SCHEDULE_21,
10178
+ T2_SCHEDULE_4,
10179
+ T2_SCHEDULE_6,
10180
+ T2_SCHEDULE_7,
10181
+ T2_SCHEDULE_8,
10182
+ T2_SCHEDULE_13,
10183
+ T2_SCHEDULE_130,
10184
+ T2_SCHEDULE_23,
10185
+ T2_SCHEDULE_31,
10186
+ T2_SCHEDULE_33,
10187
+ T2_SCHEDULE_43,
10188
+ T2_SCHEDULE_50,
10189
+ T2_SCHEDULE_53,
10190
+ T2_SCHEDULE_55,
10191
+ AT1_JACKET,
10192
+ AT1_SCHEDULE_1,
10193
+ AT1_SCHEDULE_2,
10194
+ AT1_SCHEDULE_3,
10195
+ AT1_SCHEDULE_10,
10196
+ AT1_SCHEDULE_12,
10197
+ AT1_SCHEDULE_13,
10198
+ {
10199
+ id: "AT1SCH15",
10200
+ program: "AT1",
10201
+ schedule: "015",
10202
+ title: "Alberta Resource Related Deductions",
10203
+ scheme: "tra-line-item-id",
10204
+ taxYears: { from: 2024 },
10205
+ sections: [{
10206
+ id: "sfede",
10207
+ title: "SFEDE — Specified Foreign Exploration and Development Expenses, per country"
10208
+ }, {
10209
+ id: "cfre",
10210
+ title: "CFRE — Cumulative Foreign Resource Expenses, per country"
10211
+ }],
10212
+ fields: [
10213
+ {
10214
+ field: "241",
10215
+ caption: "SFEDE regular — country code",
10216
+ kind: "code",
10217
+ role: "input",
10218
+ section: "sfede",
10219
+ note: "Must equal the federal country code (fed 012601)."
10220
+ },
10221
+ {
10222
+ field: "261",
10223
+ caption: "SFEDE successor — country code",
10224
+ kind: "code",
10225
+ role: "input",
10226
+ section: "sfede",
10227
+ note: "Must equal the federal country code (fed 012651)."
10228
+ },
10229
+ {
10230
+ field: "281",
10231
+ caption: "CFRE regular — country code",
10232
+ kind: "code",
10233
+ role: "input",
10234
+ section: "cfre",
10235
+ note: "Must equal the federal country code (fed 012701)."
10236
+ },
8452
10237
  {
8453
10238
  field: "293",
8454
10239
  caption: "CFRE regular — amount claimed this year",
@@ -8470,10 +10255,15 @@ const FORMS = [
8470
10255
  line: id(field)
8471
10256
  })).sort((a, b) => a.line.localeCompare(b.line)),
8472
10257
  provenance: {
8473
- document: "research/sources/tra-spec/AT1-Chapter3-2025.2-full.txt",
8474
- retrieved: "2026-08-29",
8475
- revision: "AT1 Chapter 3, 2025.2no fillable PDF exists for this schedule; partial (SFEDE/CFRE per-country lines only)"
8476
- }
10258
+ document: "research/sources/tra-forms/pdf/AT1SCH15-resource-related-deductions-TRA11736.pdf",
10259
+ retrieved: "2026-09-01",
10260
+ revision: "TRA11736 (AT237) Rev. 2026-03 — partial, SFEDE/CFRE per-country lines only (Areas G/H); see this module's doc comment"
10261
+ },
10262
+ footnotes: [
10263
+ "This schedule is required if the balance at the end of the preceding taxation year, or the claim for Alberta purposes, differs from that for federal purposes.",
10264
+ "Specified foreign exploration and development expenses (Area G) are those in respect of a specific country and incurred before 2001. If in respect of two or more countries, determine a reasonable allocation to each country and maintain a consistent allocation in following years.",
10265
+ "Foreign resource expenses (Area H) are those in respect of a specific country and incurred in a taxation year beginning in 2001 or after."
10266
+ ]
8477
10267
  },
8478
10268
  AT1_SCHEDULE_16,
8479
10269
  AT1_SCHEDULE_17,
@@ -8481,6 +10271,13 @@ const FORMS = [
8481
10271
  AT1_SCHEDULE_20,
8482
10272
  AT1_SCHEDULE_21,
8483
10273
  AT1_SCHEDULE_29,
10274
+ AT1_SCHEDULE_8,
10275
+ AT1_SCHEDULE_4,
10276
+ AT1_SCHEDULE_11,
10277
+ AT1_SCHEDULE_6,
10278
+ AT1_SCHEDULE_7,
10279
+ AT1_SCHEDULE_5,
10280
+ AT1_SCHEDULE_9,
8484
10281
  AT4970
8485
10282
  ];
8486
10283
  const BY_ID = new Map(FORMS.map((f) => [f.id, f]));
@@ -8528,4 +10325,4 @@ function findBrokenLinks() {
8528
10325
  return problems;
8529
10326
  }
8530
10327
  //#endregion
8531
- export { SCHEDULE_2_CARRYFORWARD_YEARS as $, SCHEDULE_8_CCA_LINE as A, AT1_DONATION_CARRYFORWARD_YEARS as At, SCHEDULE_5_JURISDICTIONS as B, AT1_SCHEDULE_13 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_SECTION_34_2_GROSS_UP as Ft, SCHEDULE_4_LPP_CARRYFORWARD_YEARS as G, AT1_BALANCE_LINE as Gt, SCHEDULE_5_SALARIES_OFFSET as H, AT1_SCHEDULE_12 as Ht, SCHEDULE_7_PASSIVE_INCOME_THRESHOLD as I, AT1_SCHEDULE_17 as It, UnclassifiedLineError as J, AT4970 as Jt, SCHEDULE_4_NON_CAPITAL_CARRYFORWARD_YEARS as K, AT1_JACKET as Kt, T2_SCHEDULE_7 as L, AT1_SCHEDULE_17_RESERVES as Lt, SCHEDULE_8_RECAPTURE_LINE as M, AT1_SCHEDULE_20_POOLS as Mt, SCHEDULE_8_TERMINAL_LOSS_LINE as N, AT1_SCHEDULE_18 as Nt, SCHEDULE_13_RESERVE_ROWS as O, AT1_SCHEDULE_21 as Ot, T2_SCHEDULE_8 as P, AT1_SCHEDULE_18_CATEGORIES as Pt, T2_SCHEDULE_3 as Q, SCHEDULE_6_GRIDS as R, AT1_SCHEDULE_16 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_12_PAIRS as Ut, SCHEDULE_5_REVENUE_OFFSET as V, AT1_SCHEDULE_13_COLUMNS as Vt, SCHEDULE_4_CARRYBACK_YEARS as W, AT1_BALANCE_CREDIT_LINES as Wt, SCHEDULE_3_ELIGIBLE_PAID_LINE as X, buildFields as Y, AT4970_JURISDICTIONS as Yt, SCHEDULE_3_TAXABLE_PAID_LINE as Z, T2_SCHEDULE_33 as _, T2_TOTAL_TAX_PAYABLE_LINE as _t, getField as a, SCHEDULE_1_TOTAL_DEDUCTIONS_LINE as at, T2_SCHEDULE_31 as b, CO17_TAXABLE_INCOME_BOX as bt, T2_SCHEDULE_55 as c, indexByLine as ct, T2_SCHEDULE_53 as d, validateFormDefinition as dt, 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, SCHEDULE_1_TOTAL_ADDITIONS_LINE as it, SCHEDULE_8_COLUMNS as j, AT1_SCHEDULE_20 as jt, T2_SCHEDULE_13 as k, AT1_SCHEDULE_21_POOLS as kt, SCHEDULE_53_CLOSING_GRIP_LINE as l, inputFields as lt, SCHEDULE_43_DIVIDEND_ALLOWANCE as m, T2_NET_INCOME_FOR_TAX_LINE as mt, describeLine as n, SCHEDULE_1_LINES as nt, getForm as o, T2_SCHEDULE_1 as ot, T2_SCHEDULE_50 as p, T2_JACKET as pt, T2_SCHEDULE_4 as q, AT1_TAX_PAYABLE_LINE as qt, findBrokenLinks as r, SCHEDULE_1_LINE_BY_NUMBER as rt, T2_SCHEDULE_130 as s, fieldsInSection as st, FORMS as t, T2_SCHEDULE_2 as tt, SCHEDULE_53_GENERAL_RATE_FACTOR as u, 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_16_CARRYFORWARD_LINE as zt };
10328
+ export { SCHEDULE_2_CARRYFORWARD_YEARS as $, AT1_TAX_PAYABLE_LINE as $t, SCHEDULE_8_CCA_LINE as A, CONTINUITY_CAPTIONS as At, SCHEDULE_5_JURISDICTIONS as B, AT1_SCHEDULE_17_RESERVES 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_12 as Gt, SCHEDULE_5_SALARIES_OFFSET as H, AT1_SCHEDULE_16_CARRYFORWARD_LINE as Ht, SCHEDULE_7_PASSIVE_INCOME_THRESHOLD as I, AT1_SCHEDULE_18 as It, UnclassifiedLineError as J, AT1_SCHEDULE_2 as Jt, SCHEDULE_4_NON_CAPITAL_CARRYFORWARD_YEARS as K, AT1_SCHEDULE_12_PAIRS as Kt, T2_SCHEDULE_7 as L, AT1_SCHEDULE_18_CATEGORIES 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_JACKET as Qt, SCHEDULE_6_GRIDS as R, AT1_SECTION_34_2_GROSS_UP 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_13 as Ut, SCHEDULE_5_REVENUE_OFFSET as V, AT1_SCHEDULE_16 as Vt, SCHEDULE_4_CARRYBACK_YEARS as W, AT1_SCHEDULE_13_COLUMNS as Wt, SCHEDULE_3_ELIGIBLE_PAID_LINE as X, AT1_BALANCE_CREDIT_LINES as Xt, buildFields as Y, AT1_SCHEDULE_1 as Yt, SCHEDULE_3_TAXABLE_PAID_LINE as Z, AT1_BALANCE_LINE as Zt, T2_SCHEDULE_33 as _, T2_TOTAL_TAX_PAYABLE_LINE as _t, getField as a, SCHEDULE_1_TOTAL_DEDUCTIONS_LINE as at, T2_SCHEDULE_31 as b, CO17_TAXABLE_INCOME_BOX as bt, T2_SCHEDULE_55 as c, indexByLine as ct, T2_SCHEDULE_53 as d, validateFormDefinition as dt, AT4970 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, 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, inputFields as lt, SCHEDULE_43_DIVIDEND_ALLOWANCE as m, T2_NET_INCOME_FOR_TAX_LINE as mt, describeLine as n, SCHEDULE_1_LINES as nt, getForm as o, T2_SCHEDULE_1 as ot, T2_SCHEDULE_50 as p, T2_JACKET as pt, T2_SCHEDULE_4 as q, AT1_SCHEDULE_10 as qt, findBrokenLinks as r, SCHEDULE_1_LINE_BY_NUMBER as rt, T2_SCHEDULE_130 as s, fieldsInSection as st, FORMS as t, AT4970_JURISDICTIONS as tn, T2_SCHEDULE_2 as tt, SCHEDULE_53_GENERAL_RATE_FACTOR as u, 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_17 as zt };