@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/CHANGELOG.md +136 -0
- package/dist/forms/index.d.mts +2 -2
- package/dist/forms/index.mjs +2 -2
- package/dist/forms.mjs +1984 -187
- package/dist/index.d.mts +49 -3
- package/dist/index.mjs +2 -2
- package/dist/index3.d.mts +98 -18
- package/dist/index4.d.mts +2 -2
- package/dist/t2/index.d.mts +2 -2
- package/dist/t2/index.mjs +2 -2
- package/dist/t2.mjs +186 -26
- package/package.json +1 -1
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$
|
|
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$
|
|
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$
|
|
569
|
-
const SECTIONS$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
731
|
-
id$
|
|
732
|
-
id$
|
|
733
|
-
id$
|
|
734
|
-
id$
|
|
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$
|
|
740
|
-
const SECTIONS$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
1491
|
+
sections: SECTIONS$37,
|
|
1026
1492
|
fields: [...SINGLES.map(({ field, ...rest }) => ({
|
|
1027
1493
|
...rest,
|
|
1028
|
-
line: id$
|
|
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$
|
|
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$
|
|
1662
|
+
line: id$15(field)
|
|
1197
1663
|
})),
|
|
1198
1664
|
...AT1_SCHEDULE_13_COLUMNS.filter((c) => c.line).map((c) => ({
|
|
1199
|
-
line: id$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
2280
|
+
sections: SECTIONS$33,
|
|
1813
2281
|
fields: [...categoryFields, ...REST.map(({ field, ...rest }) => ({
|
|
1814
2282
|
...rest,
|
|
1815
|
-
line: id$
|
|
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$
|
|
1829
|
-
/**
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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$
|
|
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
|
-
...
|
|
2754
|
+
...isAppliedLine && pool.toSchedule12 ? { to: {
|
|
2174
2755
|
form: "AT1SCH12",
|
|
2175
2756
|
line: `012${pool.toSchedule12}001`,
|
|
2176
|
-
note:
|
|
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$
|
|
2770
|
+
sections: SECTIONS$31,
|
|
2189
2771
|
fields: [...PART_1.map(({ field, ...rest }) => ({
|
|
2190
2772
|
...rest,
|
|
2191
|
-
line: id$
|
|
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$
|
|
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.
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
8961
|
+
line: id$8(field)
|
|
8355
8962
|
})).sort((a, b) => a.line.localeCompare(b.line)),
|
|
8356
8963
|
provenance: {
|
|
8357
|
-
document: "research/sources/tra-
|
|
8358
|
-
retrieved: "2026-
|
|
8359
|
-
revision: "
|
|
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/
|
|
8971
|
+
//#region src/t2/at1/forms/schedule4.ts
|
|
8364
8972
|
/** `SSSFFFOOO` — schedule, field, occurrence. */
|
|
8365
|
-
const id = (field, occurrence = 1) => `
|
|
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/
|
|
8368
|
-
/**
|
|
8369
|
-
|
|
8370
|
-
|
|
8371
|
-
|
|
8372
|
-
|
|
8373
|
-
|
|
8374
|
-
|
|
8375
|
-
|
|
8376
|
-
|
|
8377
|
-
|
|
8378
|
-
|
|
8379
|
-
|
|
8380
|
-
|
|
8381
|
-
|
|
8382
|
-
|
|
8383
|
-
|
|
8384
|
-
|
|
8385
|
-
|
|
8386
|
-
|
|
8387
|
-
|
|
8388
|
-
|
|
8389
|
-
|
|
8390
|
-
|
|
8391
|
-
|
|
8392
|
-
|
|
8393
|
-
|
|
8394
|
-
|
|
8395
|
-
|
|
8396
|
-
|
|
8397
|
-
|
|
8398
|
-
|
|
8399
|
-
|
|
8400
|
-
|
|
8401
|
-
|
|
8402
|
-
|
|
8403
|
-
|
|
8404
|
-
|
|
8405
|
-
|
|
8406
|
-
|
|
8407
|
-
|
|
8408
|
-
|
|
8409
|
-
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
|
|
8414
|
-
|
|
8415
|
-
|
|
8416
|
-
|
|
8417
|
-
|
|
8418
|
-
|
|
8419
|
-
|
|
8420
|
-
|
|
8421
|
-
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8428
|
-
|
|
8429
|
-
|
|
8430
|
-
|
|
8431
|
-
|
|
8432
|
-
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
|
|
8440
|
-
|
|
8441
|
-
|
|
8442
|
-
|
|
8443
|
-
|
|
8444
|
-
|
|
8445
|
-
|
|
8446
|
-
|
|
8447
|
-
|
|
8448
|
-
|
|
8449
|
-
|
|
8450
|
-
|
|
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-
|
|
8474
|
-
retrieved: "2026-
|
|
8475
|
-
revision: "
|
|
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,
|
|
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 };
|